Pharo VM
This repository holds the code of the Pharo Virtual Machine.
This implementation started as a fork of OpenSmalltalk-vm.
The current project could not have been possible with all their previous work.
The current implementation presents the following core features:
- an indirect threaded bytecode compiler using GNU extensions
- a generational scavenger garbage collector: semi-space + nursery for the young generation, a mark-compact collecting for the old generation
- a space for permanent objects that need not to be scanned by the GC
- a baseline JIT compiler that
- translates primitive operations using IR templates
- translates bytecode methods using a simple abstract interpretation approach to reduce memory pressure (less loads/stores)
- FFI through the well-known libFFI, and support for non-blocking FFI using worker threads
For more details about the whole Pharo VM project refer to our wiki.
Table of Contents