Spoofax 1.4.0 (06-03-2015)

We’re happy to announce the release of Spoofax 1.4.0, a minor release with SDF3 fixes and improvements to language plugins.

Changes

Language plugins

Reduced download size of deployed plugins

Previously, when creating an Eclipse update site for your language (see tutorial), the result was a ~90MB download that included meta-tools such as SDF3 and NaBL. We brought the download size down to ~60MB by removing dependencies to some of the meta-tools, since end-users of deployed languages don’t need them. In the future, we plan to bring the size further down by removing more dependencies.

Contributors: Oskar van Rest

Setting Java VM options for your language

For Spoofax and Spoofax-based languages to run smoothly, it is recommended to set Java’s -server flag and to increase the stack size and memory allocation pool:

  • -Xss<size> specifies the thread stack size
  • -Xmx<size> specifies the maximum size, in bytes, of the memory allocation pool.
  • -server selects server application runtime optimizations.

The server VM will take longer to start and “warm up” but will be more aggressively optimized. The -server option only affects 32-bit VMs and has influence on 64-bit VMs because these always use server optimizations. These options can be configured in eclipse.ini as described on the download page. The recommended settings for Spoofax are -server -Xss8m -Xmx1024m and a warning will pop-up if Eclipse is started with settings that are too low.

Previously, the same settings were assumed for deployed plugins and were enforced by a similar pup-up warning. With Spoofax 1.4.0, language developers can choose their own Java VM settings, which are then recommended to end-users of their language. This can be configured in editor/yourlang.main.esv. The syntax is as follows:

jvm opts: [-server | -X[ss|mx]<size>[g|G|m|M|k|K]]+

For example: jvm opts: -server -Xss8m -Xmx1024m. If multiple Spoofax-based languages are installed, the configuration warning will tell how eclipse.ini needs to be updated such that the requirements of all languages are satisfied.

Contributors: Oskar van Rest

Downloads

Eclipse plugin update site

The latest stable version of the Spoofax Eclipse plugin is always published to the stable update site: http://download.spoofax.org/update/stable. See the getting started guide for instructions on how to get started with Spoofax.

This specific release is also published to the release/1.4.0 update site: http://download.spoofax.org/update/release/1.4.0.

Sunshine JAR

The Sunshine JAR file corresponding with this release can be downloaded here. See the Sunshine documentation for more information on using Sunshine.

Maven artifacts

Maven artifacts can be found on our artifact server. The Maven version used for this release is 1.4.0. See the instructions on using MetaBorg Maven artifacts for more information.