Latest Developments

Stratego -- Strategies for Program Transformation

2008-05-24

Stack traces on "rewriting failed"

Since late March, the Stratego compiler and auxiliary libraries have supported stack traces upon rewriting failed. The following trace is taken from a typical XTC component that uses io-wrap:

./prog: rewriting failed, trace:
        main_0_0
        io_wrap_1_0
        option_wrap_5_0
        lifted144
        input_1_0
        lifted145
        output_1_0
        lifted0
        my_wrap_1_0
        foo_0_0
        bar_0_0
        zap_0_0

More details may be found in two posts to our planet.

2008-04-24

New URLs for Subversion, Releases, and Bug-tracking

All the Stratego/XT development tools have been moved to subdomains of strategoxt.org. An overview:

Thanks to Eelco Dolstra for doing most of this work!

2007-04-26

Global Variables

Stratego now supports scoped global variables. In the context of a dynamic rules section one can now write

    rules( Foo := <compute> )
which abbreviates the following commonly used programming pattern:
    x := <compute>
    ; rules( Foo : _ -> x )
The value bound in the assignment can be retrieved by the application <Foo>. The usual scoping features of dynamic rules apply to global variable as well. For more information see this blog.

2007-04-03

AspectJ-front revived, support for Microsoft Windows

The AspectJ-front package has been updated to be easier to install and be more portable. The AspectJ syntax definition of AspectJ-front heavily exercises the SDF parser generator, which used to make it rather difficult to install the package on machines with a limited amount of memory. The new packages includes the compiled parse tables and also the package is more portable, including support for native Microsoft Windows! The package now also provides a library (DLL on Microsoft Windows) for parsing and pretty-printing AspectJ source files.

2007-03-01

x86-64 support for Stratego/XT!

Stratego/XT supports x86-64 processors (in 64-bit mode) from release 0.17M3pre16744 (or later), the sdf2-bundle from release 2.4pre212034 (or later). The preliminary releases are available from our new Nix buildfarm at the TU Delft. The x86-64 support is based on a branch of the ATerm library developed by Eelco Dolstra and Erik Scheffers, and some new 64-bit patches for the sdf2-bundle. The x86-64 bit requirements are completely hidden in the ATerm library and the Auto/XT build system, thus packages based on Stratego/XT should support x86-64 machines out of the box if they do not contain custom native C code. The preliminary releases with 64-bit support will soon be used in the Stratego/XT packages integration build, which currently still refers to the Nix Buildfarm at Utrecht University. More information about the issues and the specific patches required for x86-64 support is available in a post at Subject to Meta Programming.

2007-01-18

Stratego/XT Packages Channel

The Stratego/XT packages channel now provides integration builds for Stratego/XT, its dependencies, and packages based on Stratego/XT. We have created this channel after frequent questions about which packages work together. From now on, this is the way to install the latest developments of Stratego/XT. If you install packages from this channel, then they are guaranteed to work together. If your favorite Stratego/XT package is currently not on the channel, just send us a request. If the package is maintained and in reasonable use, then we will add it to the channel.

2006-08-20

New Translation Scheme

By a new translation scheme in the back-end of the Stratego compiler, the dependency on nested functions in gcc has been eliminated. The compiler now produces ANSI C compliant code, increasing the portability of Stratego code in terms of compilers and platforms.

2006-06-05

Support for Mac OSX / Intel

Announced support for Mac/Intel machines in the the latest unstable releases, including an installer.

2005-11-04

Stratego/XT Manual

The first Stratego/XT Manual has been released with tutorial, examples, and reference material.

2005-11-04

Stratego/XT 0.16

Stratego/XT 0.16 has been released. This release introduces a major refactoring of the Stratego Language and compiler. Furthermore, many outstanding issues have been addressed, and we have a manual!

2005-11-04

Stratego Shell 0.6

Stratego Shell 0.6 has been released. This release features a major reimplementation of the interpreter and compatability with the Stratego Core language introduced in Stratego/XT 0.16.

2005-11-04

BibTex Tools 0.2

BibTex Tools 0.2 is the first official release of the Stratego/XT BibTeX Tools package, which provides components for processing BibTeX files, mainly for producing publication lists.

2005-11-04

Java-front 0.8

Java-front 0.8 has been released. This is a major update, fixing some usability issues in parse-java, improving the support for compilation the command-line, and fixes in the pretty-printer.

2005-08-31 Stratego/XT 0.16M1 has been released. This releases features a redesign of the Stratego compiler, e.g. a new compilation scheme which should give a huge performance boost on Mac OS X machines.

2005-07-05 Stratego/XT 0.15 is now available. It is an experimental release featuring a major refactoring of the internal representation of Stratego and the Stratego compiler.

2005-05-24 Java-front 0.7 is now available. A few minor bugs in the syntax definition have been fixed and hexadecimal floating-point literals are now supported.

2005-05-20 Stratego Shell 0.5 is now available. This release fixes various bugs and supports Stratego/XT 0.14.

2005-01-14
Stratego Shell 0.4, the first offical release, is now available! The Stratego Shell implements a Stratego interpreter and an interactive shell for Stratego programming. The interpreter and shell are very useful for learning Stratego and for implementing small tests.

2005-01-14
Java-front 0.6 has been released. This release improves the embedding of Java in Stratego.

2005-01-13
Stratego/XT 0.13 has been released. This releases features the implementation of dependent dynamic rewrite rules and various bug-fixes and new features of the Stratego compiler and the transformation tools of Stratego/XT. See the release page for more details.

2004-11-24

Builds of Stratego/XT and extension packages is now done continuously using a Nix build farm. Source and binary distributions are available only hours after committing a change.

2004-10-04

Java-front 0.5 has been released. Java-front adds support for Java program transformation to StrategoXT. It provides a handcrafted SDF syntax definition and pretty-printer for Java (J2SE 5.0).

2004-10-04

StrategoXT 0.12 has been released. This releases improves the usability of several tools and extends the support for XML exchange. Also, the error reporting of format-check has improved drastically.