Skip to content

QDucasse/opensmalltalk-vm

This branch is 570 commits ahead of, 4 commits behind pharo-project/pharo-vm:pharo-10.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a6609c0 · Mar 31, 2025
Oct 4, 2020
Feb 24, 2025
Jul 25, 2021
Mar 29, 2024
Jan 24, 2025
Jan 17, 2025
Jan 16, 2025
Mar 12, 2025
Nov 18, 2024
Jun 28, 2024
Mar 31, 2025
Mar 31, 2025
Oct 10, 2022
Nov 5, 2020
Jun 5, 2024
Feb 16, 2004
Jan 14, 2025
Feb 7, 2025
Mar 10, 2021
Jan 28, 2019
Jan 13, 2025
Jan 10, 2013
Dec 3, 2024

Repository files navigation

Pharo VM

This repository contains the code of the Pharo Virtual Machine. This implementation started as a fork of OpenSmalltalk-VM. The current project would not have been possible without all their previous work.

The current implementation has the following core features:

  • an indirect threaded bytecode compiler using GNU extensions
  • a generational scavenger garbage collector: a semi-space + nursery for the young generation, and a mark-compact collector for the old generation
  • a space for permanent objects that do not need 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 (fewer 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

About

This is the VM used by Pharo

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Smalltalk 72.9%
  • C 26.5%
  • CMake 0.6%
  • Shell 0.0%
  • Assembly 0.0%
  • PowerShell 0.0%