Spoofax 2.5.12 (08-10-2020)¶
Spoofax 2.5.12 contains an experimental gradual type system for Stratego, performance improvements to NaBL2 and Statix, and updates to Eclipse installations and their embedded JREs.
Changes¶
Stratego¶
Stratego has two new reserved words: cast
and is
. Local variables
can be reserved words if they start with '
, so you can use 'cast
and
'is
.
Under the Stratego language options in your metaborg.yaml
file you can
turn on the gradual type system, if you use the incremental compiler.
This option is gradual: static
, and only tests the types statically.
The default is gradual: none
right now, meaning the gradual type
system is not on by default. The is
dynamic type check is not yet
supported at runtime, you may get Java compilation errors when
attempting to compile Stratego code with that. Dynamic type casts
inserted by the gradual type system are also forthcoming, runtime
support for this is not yet ready.
NaBL2¶
- NaBL2 supports a new resolution algorithm based on fexid-point
environment computation instead of graph search, which can be
enabled by adding
strategy environments
to thename-resolution
signature section. It has much better performance characteristics, especially when dealing with mutually importing scopes and transitive imports. Compared the the search-based, the environment-based algorithm can get stuck on scope graphs with cycles involving scopes importing references that can be resolved via that same scope. Note that the environment-based algorithm may increase memory usage. The default remains the search-based algorithm. - If a file was already analyzed in the editor, it is not reanalyzed on save anoymore.
Statix¶
- Analysis times of large, multi-file Statix specifications has improved significantly.
- If a file was already analyzed in the editor, it is not reanalyzed on save anoymore.
Eclipse¶
- Premade Eclipse installations have been updated from Eclipse Photon to Eclipse 2020-6.
- Premade Eclipse installations for 32-bit Linux are no longer created.
- Embedded JRE in premade Eclipse installations has been updated from 8u162 (Oracle JRE) to 8u265-b01 (AdoptOpenJDK).
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.12/org.metaborg.spoofax.eclipse.updatesite-2.5.12-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.12
- 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.12
StrategoXT¶
Maven artifacts¶
Maven artifacts can be found on our artifact server.
The Maven version used for this release is 2.5.12
.
Created: November 9, 2023