Skip to content

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.



Contributors: Eduardo Amorim

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

Last update: April 19, 2024
Created: April 19, 2024