Skip to content

pharo-project/pharo-vm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6cdb1e5 · Sep 2, 2024
Oct 4, 2020
Aug 29, 2024
Jul 25, 2021
Mar 29, 2024
Aug 28, 2024
Jun 28, 2024
Jun 5, 2024
Aug 26, 2024
Dec 15, 2020
Nov 6, 2022
Apr 27, 2023
Jun 28, 2024
Aug 30, 2024
Aug 26, 2024
Mar 14, 2024
Oct 10, 2022
Nov 5, 2020
Jun 5, 2024
Feb 16, 2004
Sep 2, 2024
Sep 2, 2024
Mar 10, 2021
Jan 28, 2019
Jun 28, 2024
Jan 10, 2013
Sep 7, 2023
Jun 20, 2021
Jan 12, 2022
Mar 30, 2021

Repository files navigation

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