This release includes many bug fixes, performance improvements, and new features.
- We are now closer to using RSqueak/VM for development, but our main objective is still to make code fast that we think is likely to be run in production, rather than at development time. We run benchmarks every day on http://speed.squeak.org/.
- We have added and are currently working on optional, non-standard plugins that enable tail-call optimization, JIT profiling, and integration of a Ruby and a SQLite runtime directly with the VM and its JIT (so code across the language boundaries is also JITed).
- We have worked to improve RSqueak/VM's test coverage with unit tests from previously ~50% to over 80%. This helps us give students a more reliable base to work against in our teaching with RSqueak/VM and is also meant to make it easier for other new contributors to approach the code base (over 30% of the code is now in tests).
- Since the first alpha release, we have fixed many bugs and crashes, and are now able to run all but two tests in the default Squeak image. Of the two tests that do not work, one segfaults (TestValueWithinFix) and one hangs (SUnit>>testTimeoutLoop). Of the remaining tests (~4500) about 300 produce errors (many due to incomplete features, such as Sockets) and about 200 fail (some of those failures assert things that we believe should not be part of the language definition, but that's another story).
As before, RSqueak/VM is still being tested on a regular basis to work with images starting with Squeak 2 (the mini.image) up to the most recent Spur images. We still do not include BitBlt or Balloon as plugins, so we rely on the Slang code or some other fallback code for those plugins to be loaded into the image. As of now, running those plugins in Smalltalk rather than compiling them as a plugin can be between 5-100x slower compared to Cog, with 32-bit operations being on the faster end of that spectrum and blitting between different color depths (some bitmapped fonts are 16-bit) being on the slower end.
All RSqueak/VMs by default work with 32-bit images, so even the 64-bit VMs for Linux and macOS run off a 32-bit image. Image saving for older image versions is still in its early stages, so make sure to have backups of any image you test.
The bundle only includes 64-bit Linux, 64-bit macOS, and 32-bit Windows VMs. 32-bit x86 and ARM VMs for Linux are available separately from our Github page:https://github.com/HPI-SWA-Lab/RSqueak
Season's Greetings and a Happy New Year
from the people at HPI's Software Architecture Group