Spoofax 2.2.0 (18-04-2017)¶
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 <2.2.0-migration-guide>
for migrating from Spoofax 2.1 to Spoofax 2.2.
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 <2.1.0-migration-guide>
{.interpreted-text role="ref"} 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 <2.2.0-migration-guide>
{.interpreted-text role="ref"} 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.
DynSem¶
- Fix: Analysis crashes on empty rules sections (#161)
- Improve: Support for abrupt termination: automatic expansion and propagation of read-write semantic components with default values
- Improve: Analysis performance improvements
Downloads¶
Eclipse plugin¶
Premade Eclipse installations¶
With embedded JRE:
- macOS 64-bit with embedded JVM
- Linux 64-bit with embedded JVM
- Windows 64-bit with embedded JVM
- Windows 32-bit with embedded JVM
Without embedded JRE:
Update site¶
- Eclipse update site:
https://artifacts.metaborg.org/content/unzip/releases-unzipped/org/metaborg/org.metaborg.spoofax.eclipse.updatesite/2.2.0/org.metaborg.spoofax.eclipse.updatesite-2.2.0-assembly.zip-unzip/
- Eclipse update site archive
IntelliJ plugin¶
- IntelliJ update site:
https://artifacts.metaborg.org/service/local/artifact/maven/redirect?r=releases&g=org.metaborg&a=org.metaborg.intellij.dist&p=zip&v=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
.
Last update:
July 30, 2024
Created: July 30, 2024
Created: July 30, 2024