yesterday I released version 1.0 of SqueakJS, exactly 7 years after my
first public announcement on December 20, 2013.
Arguably I should have done this back in 2016 when it could run Spur
images. What got it over the last hump was Fabio's interpreter for Sista
bytecodes and Erik's refactoring for Node.js.
SqueakJS is now the most compatible Squeak VM: it can run pre-release
images from 1996 as well as the latest Squeak 6.0 trunk image.
For production, you should still use non-Sista images, because no JIT has
been implemented yet.
A big Thank You to all the contributors over the years, and to Dan Ingalls
for the inspiration, and funding the initial development.
There are still many things to work on:
- a simple JIT for Sista bytecode to bring its speed at least up to par
with its pre-Sista speed
- a "real" JIT with context mapping (keeping temps in JS vars rather than
on the stack) and send optimizations (mapping sends to JS function
- 64 bit support for pre-Spur images
- big-endian support for 64 bit images
Help is very welcome at https://github.com/codefrau/SqueakJS
Happy Holidays to Everyone!