It has been a while since we put together a release for SOMns. And it has been even longer, since I last wrote about it on this blog.

Though, since I recently described how to put together academic artifacts based on a CI setup, I wanted to use the opportunity to announce that the setup is now part of the latest SOMns release. This means SOMns comes now out of the box with the basic elements to generate artifacts for reproducible research.

Additionally, SOMns 0.7.0 accumulates all the changes done over the last 1.5 or so years.

Major new features include extension modules, support for snapshot writing, and various fixes for concurrency issues. With the update to GraalVM 19, we should also eventually get Windows support, though, the build scripts are not yet made compatible.

The number of contributors to SOMns is slowly growing, and I’d like to thank everyone.

0.7.0 - Extension Modules, Snapshots, Artifacts v7

New Features

  • Add support for extension modules #252
  • Object heap serialization #278, #271, #276
  • Optimized tracing and restoring replay support #261, #257
  • Added VirtualBox artifact #296, #299

Concurrency Issues

  • Swap tracing buffers for blocked threads #297
  • Renew Safepoint assumption only when invalid #291
  • Blocking primitives cannot participate in safepoints #288, #286
  • Fix object layout races #285

General Maintenance

  • Update Truffle to >19.0.1 release #298
  • Update Truffle to 1.0.0-rc5 #266, #295, #267
  • Make the current instance of SomLanguage accessible for language server #277
  • VMM’18 Demo and Kompos improvements #270
  • Add Kent CI and update ReBench, Checkstyle, and Kompos dependencies #258
  • Improve readability of Travis CI Logs by using folding #281
  • Update basic-setup documentation #284
  • Update list of publications in README #283
  • Use CompilerDirectives::castExact instead of ValueProfiles #256
  • Move Actor mailbox loop to Truffle #250
  • Change Warmup in harnesses to simply disregard measurements #249
  • Remove All.ns #248

Bug Fixes

  • Set promise data fields to null on resolution #300, #294
  • Fix Travis Error codes and Codespeed URL #287
  • Minimize the Truffle-related building #282
  • Remove dead code #275
  • Fix potential NPE in ExpressionNode.toString #269
  • Fix replay test flakiness #268
  • Redesign Timer Prim #264
  • Trace TimerPrim #262
  • Ensure charAt: and file read/write are compatible with PE #260
  • Signal exceptions without helper methods #251, #214