{"id":21169449,"url":"https://github.com/smarr/pysom","last_synced_at":"2025-07-16T09:41:14.131Z","repository":{"id":10614806,"uuid":"12833884","full_name":"smarr/PySOM","owner":"smarr","description":"PySOM - The Simple Object Machine Smalltalk implemented in Python","archived":false,"fork":false,"pushed_at":"2025-07-04T14:34:03.000Z","size":1523,"stargazers_count":18,"open_issues_count":0,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-04T15:49:44.919Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","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-09-14T18:26:15.000Z","updated_at":"2025-07-04T14:34:08.000Z","dependencies_parsed_at":"2023-12-05T16:43:09.022Z","dependency_job_id":"845c9599-1854-41a6-bb00-8228e0379963","html_url":"https://github.com/smarr/PySOM","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/smarr/PySOM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FPySOM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FPySOM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FPySOM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FPySOM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smarr","download_url":"https://codeload.github.com/smarr/PySOM/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FPySOM/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265500636,"owners_count":23777521,"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:16.861Z","updated_at":"2025-07-16T09:41:14.104Z","avatar_url":"https://github.com/smarr.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"PySOM - The Simple Object Machine Smalltalk\n===========================================\n\nIntroduction\n------------\n\nSOM is a minimal Smalltalk dialect that was used to teach at the [Hasso\nPlattner Institute][SOM] and before that at the University of Århus\n(Denmark) where it was used for teaching and as the foundation for [Resilient\nSmalltalk][RS].\n\nIn addition to PySOM, other implementations exist for Java (SOM, TruffleSOM),\nC (CSOM), C++ (SOM++), Python (PySOM), 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\nThis repository contains a Python-base implementation of SOM, including\nSOM's standard library, and a number of benchmarks. The [main project\npage][SOMst] has links to other SOM VM implementations.\n\nPySOM implementation use either an abstract-syntax-tree or a \nbytecode-based interpreter. One can choose between them with the `SOM_INTERP` environment variable.\n\n - AST-based interpreter: `SOM_INTERP=AST`\n - bytecode-based interpreter: `SOM_INTERP=BC`\n\nTo check out the code, run:\n\n    git clone --recurse-submodules https://github.com/SOM-st/PySOM.git\n\nNote the `--recurse-submodules` option. It makes sure that the core library,\ni.e., the Smalltalk code is downloaded.\n\nPySOM's tests can be executed with:\n\n    SOM_INTERP=AST ./som.sh -cp Smalltalk TestSuite/TestHarness.som\n   \nA simple Hello World program can be started with:\n\n    SOM_INTERP=AST ./som.sh -cp Smalltalk Examples/Hello.som\n\nTo compile PySOM, a recent PyPy is recommended and the RPython source\ncode is required. The source distribution of PyPy 7.3 can be used like this:\n\n    wget https://downloads.python.org/pypy/pypy2.7-v7.3.1-src.tar.bz2\n    tar xvf pypy2.7-v7.3.1-src.tar.bz2\n    export PYPY_DIR=`pwd`/pypy2.7-v7.3.1-src/\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\nHistory\n-------\n\nIn 2013, the implementations of PySOM, RPySOM, and RTruffleSOM where split\nover multiple repositories. Since end of 2020, they are reunited here and PySOM\ncan be used with Python 2.7, Python 3.8, as well as compiled with RPython.\nThus, https://github.com/SOM-st/PySOM is again the only and the canonical\nrepository.\n\n\nBuild Status\n------------\n\nThanks to GitHub Actions, all pull requests of this repository are automatically tested.\nThe current build status is: [![Build Status](https://github.com/SOM-st/PySOM/actions/workflows/ci.yml/badge.svg)](https://github.com/SOM-st/PySOM/actions)\n\n [SOM]: http://www.hpi.uni-potsdam.de/hirschfeld/projects/som/\n [SOMst]: https://travis-ci.org/SOM-st/\n [RS]:  http://dx.doi.org/10.1016/j.cl.2005.02.003\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmarr%2Fpysom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmarr%2Fpysom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmarr%2Fpysom/lists"}