Sista is an adaptive optimizer using speculative inlining that is implemented entirely in Smalltalk, and is "live" in the system, meaning that the optimizer runs in the same run-time as the application and potentially can be interactively developed. Sista makes use of Smalltalk's support for first-class activation records (contexts), both to analyse the running system, and to allow manipulation of execution state to effect switching from unoptimized code to optimized code and back. Because Sista optimizes from bytecoded methods to bytecoded methods which are normal Smalltalk objects:
- Sista starts off "hot", code being already optimized when the system starts; and
- Sista is platform-independent; the VM is responsible for generating processor-specific code.
Eliot Miranda is a long-time Smalltalk virtual machine architect. He authored the BrouHaHa portable Smalltalk VM in the 80's which grew from a student project to a useful tool. In the 90's he joined ParcPlace and became technical lead for VisualWorks Smalltalk, implementing the first 64-bit Smalltalk. In the 00's he joined Qwaq, which built a virtual reality system for business communications above Smalltalk. At Qwaq Eliot authored the Cog Smalltalk VM, an open source JIT VM written in a subset of Smalltalk that can be translated to C. Cog is now the standard VM for the Squeak and Pharo Smalltalk dialects and the Newspeak system. Eliot works at Cadence Design Systems where Newspeak above Cog is the bottom of a software stack providing design support for ARM-based System-on-Chip components such as those in smart phones. He is collaborating with Clément Béra on an adaptive optimizer/speculative inliner for Cog called Sista, that is innovative in using Smalltalk's reflective facilities and bytecoded architecture to provide an optimiser that runs above the VM, resulting in several advantages that will be explained in the talk.
Clément Béra is a PhD student working on virtual machines for object oriented languages at Inria, Lille. He is now focusing on runtime optimisations for the Cog virtual machine and its Smalltalk clients.