Spoofax 1.3.0 (12-11-2014)¶
We’re happy to announce the release of Spoofax 1.3, which improves SDF3, the build system for languages, and the build system for Spoofax itself.
The build for language projects has changed since the last Spoofax, so your language projects need to be migrated. To automatically migrate your project, follow these steps:
- Right click the project in Eclipse
- Choose Spoofax -> Upgrade Spoofax project
- Press Finish
This will automatically upgrade your project to the latest format, after which you can build your project normally. The build might fail with:
sdf2parenthesize: BUILD FAILED /Users/gohla/spoofax/workspace/runtime-Spoofax/Entity/build.generated.xml:266: The following error occurred while executing this line: Target "sdf2parenthesize.helper" does not exist in the project "Entity".
If this is the case, build again, because some files are only upgraded after building once.
Compiled Java files are now stored in the
target/classes directory instead of the
bin directory, so the
bin directory can be deleted.
SDF2 and old SDF3 grammars can be migrated following these instructions: How to migrate old SDF grammars into latest SDF3?.
Some manual changes might still be necessary since a sort cannot have more than one constructor with the same name and arity, and priority rules may contain the entire production instead of priority shorthands.
Several improvements have been made to increase the consistency and robustness of SDF3.
- Regular productive productions can be mixed with template productions in the context-free syntax section.
- Each production defines a non-unique sort and a unique constructor of that sort. References point to these definitions and errors are given for undefined elements in the grammar.
- Signatures are generated on-save following the sorts used in the right-hand side of a production and the sort and constructor that are being defined.
- All code generated from SDF3 grammars is organized in the
src-gendirectory of the project, which keeps Spoofax projects more clean and structured.
Contributors: Eduardo Amorim
Building language projects¶
Projects are built using Ant Macros tailored to make the build system more incremental.
Language projects can now also be built on the command-line using Maven. See the instructions on building Spoofax languages for more information.
Contributors: Eduardo Amorim, Gabriël Konat
Building and developing Spoofax¶
The build system for Spoofax itself has been refactored from a Nix build into a full Maven build. This enables local builds on any system that Maven supports, which is basically any system that supports Java. See the instructions on building Spoofax for more information.the instructions on using MetaBorg Maven artifacts for more information. There is now also documentation on Setting up Eclipse for Spoofax development, which explains how to set up an environment for developing projects which are included in Spoofax.
The nightly version of Spoofax is now built on our Jenkins server: http://buildfarm.metaborg.org/. It publishes artifacts to our artifact server: http://artifacts.metaborg.org/. To use these artifacts, read the instructions on the instructions on using MetaBorg Maven artifacts for more information.
Contributors: Gabriël Konat, Danny Groenewegen, Elmer van Chastelet
Eclipse plugin update site¶
The latest stable version of the Spoofax Eclipse plugin is always published to the
stable update site:
http://download.spoofax.org/update/stable. See the getting started guide for instructions on how to get started with Spoofax.
This specific release is also published to the
release/1.3.0 update site: