{"id":21169442,"url":"https://github.com/smarr/trufflesom","last_synced_at":"2025-07-09T18:31:56.462Z","repository":{"id":9310352,"uuid":"11150741","full_name":"smarr/TruffleSOM","owner":"smarr","description":"A SOM Smalltalk implemented on top of Oracle's Truffle Framework","archived":false,"fork":false,"pushed_at":"2025-06-28T00:23:13.000Z","size":8257,"stargazers_count":35,"open_issues_count":0,"forks_count":21,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-28T01:26:08.438Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smarr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-07-03T12:49:55.000Z","updated_at":"2025-05-19T09:02:55.000Z","dependencies_parsed_at":"2023-02-18T12:40:49.942Z","dependency_job_id":"f516a65f-b4b3-48c7-8c56-59ec06ac5173","html_url":"https://github.com/smarr/TruffleSOM","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/smarr/TruffleSOM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FTruffleSOM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FTruffleSOM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FTruffleSOM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FTruffleSOM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smarr","download_url":"https://codeload.github.com/smarr/TruffleSOM/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FTruffleSOM/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264502387,"owners_count":23618587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T15:30:13.633Z","updated_at":"2025-07-09T18:31:53.872Z","avatar_url":"https://github.com/smarr.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"TruffleSOM - The Simple Object Machine Smalltalk implemented using the Truffle Framework\n=========================================================================================\n\nIntroduction\n------------\n\nThis is the repository for TruffleSOM, an implementation of the Simple Object\nMachine (SOM). SOM is a minimal Smalltalk dialect that was used to teach VM\nconstruction at the [Hasso Plattner Institute][SOM]. It was originally built at\nthe University of Århus (Denmark) where it was used for teaching and as the\nfoundation for [Resilient Smalltalk][RS].\n\nIn addition to TruffleSOM, other implementations exist for Java (SOM), C (CSOM),\nC++ (SOM++), and Squeak/Pharo Smalltalk (AweSOM).\n\nA simple Hello World looks like:\n\n```Smalltalk\nHello = (\n  run = (\n    'Hello World!' println.\n  )\n)\n```\n\nTruffleSOM is a [Truffle][T]-based implementation of SOM, including SOM's\nstandard library and a number of examples. Please see the [main project\npage][SOM] for links to other VM implementations.\n\nObtaining and Running TruffleSOM\n--------------------------------\n\nTo checkout the code, run:\n\n    git clone --depth 1 https://github.com/graalvm/mx.git\n    git clone https://github.com/SOM-st/TruffleSOM.git\n    export PATH=$PATH:`pwd`/mx\n\nTruffleSOM uses the [mx](https://github.com/graalvm/mx) build tool, which is\neasiest to use when on the PATH.\n\nAfter downloading the git repositories, TruffleSOM can be build with:\n\n    cd TruffleSOM\n    ./som --setup labsjdk  # downloads a compatible JDK\n    mx build\n\nAnd now we, can execute tests with:\n\n    ./som -G -cp Smalltalk TestSuite/TestHarness.som\n   \nA simple Hello World program is executed with:\n\n    ./som -G -cp Smalltalk Examples/Hello.som\n\nTo work on TruffleSOM, mx can generate project definitions for\nEclipse, IntelliJ, and NetBeans. Chose the one you prefer:\n\n    mx eclipseinit\n    mx intellijinit\n    mx netbeansinit\n\nTruffleSOM uses the Graal compiler to reach state-of-the-art performance.\nTo use it, we need to compile it together with TruffleSOM:\n\n    mx --env libgraal build\n\nAfterwards, we can run a benchmark, and observe that the initial iterations\ntake much longer, but after a while we reach magnitudes faster execution speeds:\n\n    ./som -cp Smalltalk Examples/Benchmarks/BenchmarkHarness.som Mandelbrot 100 500\n\nInformation on previous authors are included in the AUTHORS file. This code is\ndistributed under the MIT License. Please see the LICENSE file for details.\n\n\nBuild Status\n------------\n\nThanks to GitHub Actions, all commits of this repository are tested.\nThe current build status is: ![Build Status](https://github.com/SOM-st/TruffleSOM/actions/workflows/ci.yml/badge.svg)\n\nYourKit\n------------\nThis Project makes use of the Yourkit profiler to help find performance bugs and aid in our research of profilers.\n\nYourKit supports open source projects with innovative and intelligent tools\nfor monitoring and profiling Java and .NET applications.\nYourKit is the creator of \u003ca href=\"https://www.yourkit.com/java/profiler/\"\u003eYourKit Java Profiler\u003c/a\u003e,\n\u003ca href=\"https://www.yourkit.com/dotnet-profiler/features/\"\u003eYourKit .NET Profiler\u003c/a\u003e,\nand \u003ca href=\"https://www.yourkit.com/youmonitor/download/\"\u003eYourKit YouMonitor\u003c/a\u003e.\n\n![Yourkit Logo](https://www.yourkit.com/images/yklogo.png)\n\n [SOM]: https://www.hpi.uni-potsdam.de/hirschfeld/projects/som/\n [SOMst]: https://github.com/SOM-st/TruffleSOM/actions\n [RS]:  https://dx.doi.org/10.1016/j.cl.2005.02.003\n [T]:   https://www.christianwimmer.at/Publications/Wuerthinger12a/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmarr%2Ftrufflesom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmarr%2Ftrufflesom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmarr%2Ftrufflesom/lists"}