Two decades of smalltalk VM development: live VM development through simulation tools

Eliot Miranda, Clément Béra, Elisa Gonzalez Boix, Dan Ingalls
2018 Proceedings of the 10th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages - VMIL 2018  
OpenSmalltalk-VM is a virtual machine (VM) for languages in the Smalltalk family (e.g. Squeak, Pharo) which is itself written in a subset of Smalltalk that can easily be translated to C. Development is done in Smalltalk, an activity we call "Simulation". The production VM is derived by translating the core VM code to C. As a result, two execution models coexist: simulation, where the Smalltalk code is executed on top of a Smalltalk VM, and production, where the same code is compiled to an
more » ... able through a C compiler. In this paper, we detail the VM simulation infrastructure and we report our experience developing and debugging the garbage collector and the just-in-time compiler (JIT) within it. Then, we discuss how we use the simulation infrastructure to perform analysis on the runtime, directing some design decisions we have made to tune VM performance.
doi:10.1145/3281287.3281295 dblp:conf/oopsla/MirandaBBI18 fatcat:iv5swfasavagvcjh5f3dzkwlgq