3 ms·
Thanks. It's work in progress since I currently implement a transpiler from ST to LuaJIT bytecode which will hopefully result in a substantial speedup. The curr
by Rochus 6y ago
Thanks. It's work in progress since I currently implement a transpiler from ST to LuaJIT bytecode which will hopefully result in a substantial speedup. The current interpreter runs decently fast on modern machines though and looks and feels like ST80 in the old days.
Also note that Squeak is not compatible with ST80 in both the bytecode and object memory format. If I succeed with my LuaJIT based implementation (i.e. if it performs better than Cog or the Graal or RPython version) I might try to make it compatible with Squeak or Pharo.
- jecel 6y agoThe evolution from Apple Smalltalk to Squeak did change the object memory quite a bit but only added a few bytecodes. The Cog project added even more to the bytecodes in several steps (specially with the change of blocks into proper closures) and more recently moved to a very different object memory called Spur.
- Rochus 6y agoDo you happen to have specifications of the bytecodes, primitives and object memory format compared to the Blue Book? I only have a plethora of (outdated) papers and presentations, nothing systematical.
- jecel 6y agoThe best documentation is inside Squeak itself, specially very early ones. In later version the VM code was spun off as an external VMMaker package that you have to explicitly load. This 2008 post in Eliot's blog shows the first changes he made to Squeak's bytecodes: http://www.mirandabanda.org/cogblog/category/cog/page/15/ http://www.mirandabanda.org/cogblog/category/cog/page/15/