{"id":15107354,"url":"https://github.com/pharo-project/pharo-vm","last_synced_at":"2025-04-12T21:25:13.420Z","repository":{"id":1116727,"uuid":"193659611","full_name":"pharo-project/pharo-vm","owner":"pharo-project","description":"This is the VM used by Pharo","archived":false,"fork":false,"pushed_at":"2025-04-10T11:34:27.000Z","size":262345,"stargazers_count":119,"open_issues_count":215,"forks_count":74,"subscribers_count":14,"default_branch":"pharo-10","last_synced_at":"2025-04-10T12:53:30.201Z","etag":null,"topics":["pharo"],"latest_commit_sha":null,"homepage":"http://pharo.org","language":"Smalltalk","has_issues":true,"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/pharo-project.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-25T07:43:11.000Z","updated_at":"2025-04-10T11:34:32.000Z","dependencies_parsed_at":"2023-07-05T18:48:15.780Z","dependency_job_id":"e7725dc1-8f9d-44de-b1fc-243d0597f856","html_url":"https://github.com/pharo-project/pharo-vm","commit_stats":{"total_commits":9471,"total_committers":124,"mean_commits":76.37903225806451,"dds":0.6063773624749235,"last_synced_commit":"6cdb1e5ddc4af8767e38aa0acda69d05fb0c118e"},"previous_names":[],"tags_count":66,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-project%2Fpharo-vm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-project%2Fpharo-vm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-project%2Fpharo-vm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-project%2Fpharo-vm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pharo-project","download_url":"https://codeload.github.com/pharo-project/pharo-vm/tar.gz/refs/heads/pharo-10","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248633246,"owners_count":21136838,"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":["pharo"],"created_at":"2024-09-25T21:23:59.313Z","updated_at":"2025-04-12T21:25:13.392Z","avatar_url":"https://github.com/pharo-project.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pharo VM\n\nThis repository holds the code of the Pharo Virtual Machine.\nThis implementation started as a fork of [OpenSmalltalk-vm](https://github.com/OpenSmalltalk/opensmalltalk-vm).\nThe current project could not have been possible with all their previous work.\n\nThe current implementation presents the following core features:\n- an indirect threaded bytecode compiler using GNU extensions\n- a generational scavenger garbage collector: semi-space + nursery for the young generation, a mark-compact collecting for the old generation\n- a space for permanent objects that need not to be scanned by the GC\n- a baseline JIT compiler that\n  - translates primitive operations using IR templates\n  - translates bytecode methods using a simple abstract interpretation approach to reduce memory pressure (less loads/stores)\n- FFI through the well-known [libFFI](https://github.com/libffi/libffi), and support for non-blocking FFI using worker threads\n\nFor more details about the whole Pharo VM project refer to our [wiki](../../wiki). \n\n# Table of Contents\n\n- Building the Virtual Machine\n  - [Flavors](https://github.com/pharo-project/pharo-vm/wiki/Flavors)\n  - [Different VM Configurations](https://github.com/pharo-project/pharo-vm/wiki/PharoVM-Versions)\n  - [Build Options](https://github.com/pharo-project/pharo-vm/wiki/CMake-Configuration-Options)\n  - Building in Different Platforms\n    - [General Build Information](https://github.com/pharo-project/pharo-vm/wiki/General-Build-Information)\n    - [Detailed Build Guide](https://github.com/pharo-project/pharo-vm/wiki/Detailed-Build-Guide)\n    - [Detailed Development Guide](https://github.com/pharo-project/pharo-vm/wiki/Detailed-Development-Guide)\n    - Windows Build Information\n      - [Building on Windows](https://github.com/pharo-project/pharo-vm/wiki/Building-on-Windows)\n    - OSX Build Information\n      - [Compiling OSX third party dependencies](https://github.com/pharo-project/pharo-vm/wiki/Building-OSX-ARM64-Third-Party-Dependencies)\n      - [Building in OSX](https://github.com/pharo-project/pharo-vm/wiki/Building-in-OSX)\n    - Linux Build Information\n      - [Open Build Service](https://github.com/pharo-project/pharo-vm/wiki/Pharo-on-Open-Build-Service)\n      - [Installing Pharo into Linux Distributions](https://github.com/pharo-project/pharo-vm/wiki/Installing-Pharo-into-Linux-distributions)\n      - [Cross Compiling ARM64 in Ubuntu](https://github.com/pharo-project/pharo-vm/wiki/Crosscompiling-ARMv8-in-Ubuntu)\n      - [Cross Compiling ARM32 in Ubuntu](https://github.com/pharo-project/pharo-vm/wiki/Crosscompiling-ARMv7-in-Ubuntu-for-Rasbian)\n      - [Compiling in Manjaro ARM64](https://github.com/pharo-project/pharo-vm/wiki/Compiling-in-Manjaro-ARM64)\n      - [Compiling in Fedora](https://github.com/pharo-project/pharo-vm/wiki/Compiling-in-Fedora)\n      - [Compiling in Debian](https://github.com/pharo-project/pharo-vm/wiki/Compiling-in-Debian)\n      - [Compiling in Ubuntu/Mint](https://github.com/pharo-project/pharo-vm/wiki/Compiling-in-Ubuntu)\n      - [Compiling i686 third party dependencies](https://github.com/pharo-project/pharo-vm/wiki/Building-Linux-i686-(32bits)-Third-Party-Dependencies)\n      - [Compiling ARM64 third party dependencies](https://github.com/pharo-project/pharo-vm/wiki/Building-Linux-ARM64-Third-Party-Dependencies)\n      - [Compiling ARM32 third party dependencies](https://github.com/pharo-project/pharo-vm/wiki/Building-Linux-ARM32-Third-Party-Dependencies)\n  - [Troubleshooting](https://github.com/pharo-project/pharo-vm/wiki/Troubleshooting)\n- [Continuous Integration](https://github.com/pharo-project/pharo-vm/wiki/Continuous-Integration)\n- [Developer documentation](#developer-documentation)\n  - [Source Directory Structure](https://github.com/pharo-project/pharo-vm/wiki/Source-Directory-Structure)\n  - [Simulation Environment](https://github.com/pharo-project/pharo-vm/wiki/Simulation-Environment)\n  - [Slang](https://github.com/pharo-project/pharo-vm/wiki/Slang)\n  - [JIT compiler](https://github.com/pharo-project/pharo-vm/wiki/JIT-Compiler)\n  - [Debugging - GDB](https://github.com/pharo-project/pharo-vm/wiki/gdb)\n  - [Debugging Windows ARM64 builds with Visual Studio](https://github.com/pharo-project/pharo-vm/wiki/Debugging-ARM64-on-Windows-with-Visual-Studio)\n- [How to contribute](https://github.com/pharo-project/pharo-vm/wiki/How-to-contribute)\n- [Glossary](https://github.com/pharo-project/pharo-vm/wiki/Glossary)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharo-project%2Fpharo-vm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpharo-project%2Fpharo-vm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharo-project%2Fpharo-vm/lists"}