Spoofax 2.5.10 (07-07-2020)¶
Spoofax 2.5.10 contains several smaller improvements.
Changes¶
Overall¶
-
Update Apache VFS2 to 2.6.0
-
Support for TypeSmart was removed. We anticipate a more useable type analysis for Stratego in the form of a gradual type system.
The
metaborg.yaml
file of a generated project used to contain adebug: typesmart: false
. This was to turn off the TypeSmart dynamic analysis by default. This analysis would stop any Stratego code when it tried to construct a tree that did not conform to the grammar of the project.To our knowledge TypeSmart was not used in any active Spoofax project. It did, however, slow down the build time of all Spoofax projects, because extraction of the grammar into a TypeSmart readable format had to be done even if the analysis was off for that project. These two points, and the anticipation of a gradual type system for Stratego, were the reasons to drop TypeSmart support.
SDF3¶
Lexical and context-free sort declarations: In SDF3 you can now
explicitly declare your sorts. Declare lexical sorts in a
lexical sorts
block, and context-free sorts in a context-free sorts
block. Sorts declared in a kernel sorts
block default to declaring
context-free sorts until a suffix such as -LEX
is added. Note that you
have to use sdf2table: java
to support lexical sorts.
Statix¶
- New project that use Statix automatically have the Statix signature
generator enabled. For this to work properly, declare your lexical
and context-free sorts in SDF3 explicitly. See the
Statix signature generator <statix-signature-generator>
{.interpreted-text role="ref"} documentation for more information. - Statix specifications are now compiled as much as possible, even if there are errors in some files. Errors in Statix files that are not actually imported, do not cause analysis to fail on an empty specification anymore.
- The AST property [type]{.title-ref} is now a built-in, which is automatically used in the default editor hover strategy.
Stratego¶
Combined compiled Stratego and helper code Compilation of Stratego and
helper code written in Java (in src/main/strategies
) is now combined
in a single jar file per Spoofax language instead of two. See the
migration guide for more information on what to change in your Spoofax
project.
SPT¶
SPT gains support for the parse ambiguous
expectation, which succeeds
when a fragment parses successfully but with ambiguities. Tests with the
parse succeeds
expectation will now fail when the input parses
ambiguously. To write tests for ambiguous parses, use the
parse ambiguous
expectation instead.
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.10/org.metaborg.spoofax.eclipse.updatesite-2.5.10-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.10
- 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.10
StrategoXT¶
Maven artifacts¶
Maven artifacts can be found on our artifact server.
The Maven version used for this release is 2.5.10
.
Created: October 1, 2024