Spoofax 2.2.0¶
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.
Downloads¶
Eclipse plugin¶
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:
Update site¶
- Eclipse update site:
http://tinyurl.com/spoofax-eclipse-2-2-0
- Eclipse update site archive
IntelliJ plugin¶
- IntelliJ update site:
http://tinyurl.com/spoofax-intellij-2-2-0
- IntelliJ update site archive
Command-line utilities¶
Core API¶
- Spoofax Core uber JAR
- Spoofax Core uber Maven artifact:
org.metaborg:org.metaborg.spoofax.core.uber:2.2.0
StrategoXT¶
Maven artifacts¶
Maven artifacts can be found on our artifact server.
The Maven version used for this release is 2.2.0
. See the instructions on using MetaBorg Maven artifacts for more information.
Changes¶
Overall¶
- 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.
Core API¶
- 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.
Eclipse¶
- 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.
SDF3¶
- Feature: Re-implemented the parse table generator in Java, removing the dependency on a platform-specific
sdf2table
binary, 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 yourmetaborg.yaml
file:
language:
sdf:
sdf2table: java
- Improve: Moved the
placeholder
andpretty-print
options in themetaborg.yaml
file to be underlanguage.sdf
, as in:
language:
sdf:
placeholder:
prefix: "[["
suffix: "]]"
pretty-print: LangName
NaBL2¶
- 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.
SPT¶
- Fix: Several origin tracking issues related to section markers.