Spoofax 2.2 improves on Spoofax 2.1 with a new NaBL2 constraint solver which is optimised for performance, improved progress reporting and cancellation in Eclipse, an experimental replacement for
sdf2table which fixes several long-standing bugs, improvements to the core API, and several bug fixes.
See the corresponding migration guide for migrating from Spoofax 2.1 to Spoofax 2.2.
Premade Eclipse installations¶
With embedded JRE:
- Windows 32-bits, embedded JRE
- Windows 64-bits, embedded JRE
- Linux 32-bits, embedded JRE
- Linux 64-bits, embedded JRE
- macOS, embedded JRE
Without embedded JRE:
- IntelliJ update site:
- IntelliJ update site archive
- Spoofax Core uber JAR
- Spoofax Core uber Maven artifact:
- The deprecated libraries and files from Spoofax 2.1.0 have been removed. If you have not done so yet, follow the Spoofax 2.1.0 migration guide to migrate your project to the new Spoofax library.
- Improve: Spoofax/190 - Extend API for language discovery. This deprecates several methods in the language discovery API, see the migration guide on how to migrate your code.
- Improve: Spoofax/193 - Stratego warnings in Spoofax language projects with NaBL2 analysis. The excessive number of warnings from Stratego compilation are now filtered out.
- Improve: Parsing and analysis can report progress and be cancelled.
- Improve: Builds now report progress.
- Fix: Path and project path that are passed to the editor hover strategy are now consistent with paths passed to other strategies.
- Fix: Spoofax/187 - Provide simplified builder API.
- Fix: Spoofax/188 - Java type error in documented language processing code.
- Upgrade: Eclipse Neon (4.6) is now required.
- Improve: Added several switches to the Spoofax (meta) menu for disabling analyses and builds, to improve usability in cases where these operations are very slow.
- Improve: Bind new progress reporting and cancellation in core to Eclipse progress monitors, enabling reporting of builds and cancellation of analysis.
- Fix: Fix cancellation not being propagated in SubMonitors, preventing cancellation from working in many places.
- Feature: Re-implemented the parse table generator in Java, removing the dependency on a platform-specific
sdf2tablebinary, and fixing several long-standing bugs. This implementation is still being tested, it is therefore only enabled after opt-in. To enable the new implementation, set the following option in your
language: sdf: sdf2table: java
- Improve: Moved the
pretty-printoptions in the
metaborg.yamlfile to be under
language.sdf, as in:
language: sdf: placeholder: prefix: "[[" suffix: "]]" pretty-print: LangName
- Improve: Introduces a new solver implementation with improved performance.
- Improve: Introduces separate signature sections for constructors, relations, and functions.
- Deprecate: The types signature, which will be removed in the next release.
- Fix: Several origin tracking issues related to section markers.