Spoofax 2.5.8¶
Spoofax 2.5.8 includes several bugfixes and improvements.
Changes¶
SDF¶
- The Java version of sdf2table is now slightly faster and takes up less peak memory due to improvements in writing away the parsetable to file.
- The old (Aster based) version of make-permissive (to add error recovery to your grammar) used to be called in a way that create a small memory leak, which would compound over time with subsequent builds. This is has now been fixed. The old version of make-permissive is only in effect if you use
sdf2table: cin yourmetaborg.yamlfile.
Parser¶
- Add two experimental variants to the JSGLR2 parser:
recoveryandrecovery-incremental. - Add Unicode support to the JSGLR1 and JSGLR2 parsers. The meta-languages themselves do not support Unicode yet, because they are bootstrapped with and old version of SDF3. However, other languages built with Spoofax can use Unicode.
- Add logging to the JSGLR2 parser. Configure by setting
language.sdf.jsglr2-loggingtoall,none,minimal,parsingorrecoveryinmetaborg.yaml.
Programmatic API¶
TermFactoryfor building Stratego terms now supports a builder for lists that creates an arraylist-like structure instead of the standard linkedlist-like structure. This is typically more efficient for building stratego list terms in Java.- Add
org.spoofax.terms.util.TermUtilsclass with functions for working with terms. This replaces the equivalent (now deprecated) functions inorg.spoofax.interpreter.core.Tools.
NaBL2¶
- Improve error message location when scopes are used as term indices.
- Dropped support for polymorphism, which was unsound.
- Small improvements to solver performance.
- Add support for external calls for language with Stratego JAR compilation.
Statix¶
- Ability to automatically generate Statix signatures from SDF3 specifications.
- Add support for importing other modules in Statix specifications.
- Add support for custom messages, and a
tryconstruct for warnings and notes. - Add support for adding multiple values to AST properties.
- Improve disunification support in the solver.
- Extend reserved keywords to fix parsing problems.
- Several smaller bugfixes.
Overall¶
- Fixed several issues with files not being released properly, causing file I/O errors on Windows.
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://artifacts.metaborg.org/content/unzip/releases-unzipped/org/metaborg/org.metaborg.spoofax.eclipse.updatesite/2.5.8/org.metaborg.spoofax.eclipse.updatesite-2.5.8-assembly.zip-unzip/ - Eclipse update site archive
IntelliJ plugin¶
- IntelliJ update site:
http://artifacts.metaborg.org/content/repositories/releases/org/metaborg/org.metaborg.intellij.dist/2.5.8/org.metaborg.intellij.dist-2.5.8.zip - 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.5.8
StrategoXT¶
Maven artifacts¶
Maven artifacts can be found on our artifact server.
The Maven version used for this release is 2.5.8. See the instructions on using MetaBorg Maven artifacts for more information.