Hacking RSqueak/VM: A fast binary-compatible Squeak VM with PyPy

  • Thu, August 25, 12:00pm – 12:30pm
  • First Name: Tim
  • Last Name: Felgentreff
  • Title: Hacking RSqueak/VM: A fast binary-compatible Squeak VM with PyPy
  • Type: Tutorial

Abstract: Squeak, Pharo, and other related Smalltalk dialects run on the Cog virtual machine (VM) and share an object format that is tied to the internal representation of the VM. With RSqueak/VM, we have built a fast virtual machine using the meta-tracing JIT toolchain that also powers the PyPy Python VM and that supports a variety of object formats. In the course of building this VM, we have challenged or even ignored many "common wisdoms" of VM design: For example, we do not use tagged integers and we avoid VM-level primitives in favor of their Smalltalk implementations. Our Python-based VM implementation invites experiments and in this talk, I will show some of our most recent experiments such as how to inject full Ruby support into RSqueak/VM and how to re-use binary plugins from the Cog VM for extensions that have no Smalltalk fallback code.

Bio: I am a Ph.D. student at the Hasso Plattner Institute in Potsdam. My interests are in programming languages and virtual machine design. I focus on developing language features meant to improve expressiveness and VM technologies to make sure those language features offer good performance. I am involved in the PyPy/RPython project and various dynamic language VMs built on top of it, and I am the creator of the Babelsberg project, which has spawned a family of languages that integrate constraint solving with object-oriented programming. I prototype much of my research in self-supporting development environments such as Squeak/Smalltalk and the Lively Kernel.