Back to the Future: The Story of Squeak, A Practical Smalltalk Written in Itself
Created on 2020-08-21T05:39:06.976675
- Started from an Apple Smalltalk image.
- Interpreter is written as a single class which both runs inside the Smalltalk VM, but can also be transpiled to C.
- #become: is slow under Squeak because there is no longer an object table.
- A subset of selectors were chosen to be allowed in the interpreter class; these are the ones the translator knows how to transpile to C.
- Aside from the memory layout, the runtime is otherwise based on the Blue Book.
Object Memory
- Size of the object
- Class pointer of the object
- Hash code of the object
- Format of the object (???)
Up to ~31 objects may be declared, at VM build time, to be "compact." These use a compact 32-bit class header. Other classes use a much larger class header.