3 ms·
> Switches the default bytecode set to SistaV1. This lays the basis for a new generation of VM optimizations (Sista: Speculative Inlining Smalltalk Architecture
by Qem 4y ago
> Switches the default bytecode set to SistaV1. This lays the basis for a new generation of VM optimizations (Sista: Speculative Inlining Smalltalk Architecture). With Sista, blocks are represented by CompiledBlocks and instantiated as FullBlockClosures, the stability of which has been improved in the course of this switch (fixed bugs in FullBlockClosure >> #= and InstructionStream >> #scanForInstructionSequence:). Provides new encoding accessors.
Nice to see Sista finally seeing the light of the day. Hope it will be available Pharo as well, by the next release. That's awesome!
- scroot 4y agoMy understanding is that the optimizations haven't been implemented yet in the VM, but that this initial step is to enable the new bytecodes. Could be wrong.
- jecel 4y agoThe idea in sista is to do all fancy optimizations in the image by translating bytecodes to different bytecodes. The VM (called Cog, in this case) just has to translate the bytecodes to native binaries on demand. This requires new bytecodes, like unchecked fast primitive calls, so that sista can have Cog generate better binaries.
- protomyth 4y agoIs there a specification for the SistaV1 bytecodes?
- jecel 4y agoThis paper compares the "blue book style" bytecodes (also known as V3 bytecodes) with the new ones used by sista: https://www.researchgate.net/publication/280793584_A_bytecode_set_for_adaptive_optimizations https://www.researchgate.net/publication/280793584_A_bytecod...