The Squeak Virtual Machine
Last updated at 3:41 am UTC on 1 October 2010
This page is intended to serve as documentation for the Squeak Virtual Machine (VM) application that you need to run on your machine.
Notes and Documentation
- A number of VM Command Line Options are available.
- A Tour of the Squeak Object Engine , by Tim Rowledge from Squeak: Open Personal Computing and Multimedia (ed. Mark Guzdial & Kim Rose, Prentice Hall)
- To build a new VM should you want to extend, alter or port it, See Building the VM - most likely you will need the VMMaker package
- Squeak VM Plugins
- If you are curious about this idea of garbage collecction and automatic menory management, read The Squeak Garbage Collector
- The implementation of the VM follows the Implementation section of the Blue Book. The Blue Book definition was the starting point for defining the Squeak VM – from the beginning, the idea was to develop, simulate, and test the Squeak VM within Squeak as Squeak code – since the Blue Book defines a complete Smalltalk VM using Smalltalk code, it was the ideal starting point (also, the VM defined in the Blue Book is for the original release of the Xerox PARC Smalltalk Virtual Image, which was the direct ancestor of the Squeak image).
- The Cog VM extends the VM with context-to-stack mapping and a just-in-time compiler that together provide a significant speedup over the original interpreted VM.
- Question: To what extent does the Squeak VM follow the Blue Book VM definition? Hannes Hirzel
The bytecodes are are fairly close, function-wise, though a few are added or extended in Squeak. The garbage collection changed almost completely, and the object memory no longer uses indirection through an object table but instead uses direct references to objects. The original VM was 16 bits – all of which has been updated to 32 bits in one way or another. The primary changes made to create the Squeak VM are covered fairly well in the original Back to the Future paper. Now, of course, the use of numbered primitives has been replaced by named primitives. – Dwight Hughes
Also see:Simulating the Interpreter, VMMaker