Spoofax 2.5.8 (28-04-2020)¶
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: c
in yourmetaborg.yaml
file.
Parser¶
- Add two experimental variants to the JSGLR2 parser:
recovery
andrecovery-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-logging
toall
,none
,minimal
,parsing
orrecovery
inmetaborg.yaml
.
Programmatic API¶
TermFactory
for 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.TermUtils
class 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-signature-generator>
{.interpreted-text role="ref"} Statix signatures from SDF3 specifications.- Add support for importing other modules in Statix specifications.
- Add support for custom messages, and a
try
construct 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:
- 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.5.8/org.metaborg.spoofax.eclipse.updatesite-2.5.8-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.5.8
- 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
.
Last update:
October 17, 2024
Created: October 17, 2024
Created: October 17, 2024