StrategoXT 0.9.1

Version StrategoXT-0.9.1 released on June 4, 2003



Source distribution

StrategoXT is built using the ATermLibrary, the SDF syntax definition formalism and parser generator, and optionally the Nancy Choice Point Library cpl (with some adaptations for Stratego).

Binary distribution

[under construction]

Development Snapshot

See Latest Sources? for information on how to obtain the latest developments (at your own risk).


StrategoXT is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.


Please report any problems with installation or bugs in the implementation to the stratego-bugs mailing list. Please check the archive of the list to see if a report about the problem was already submitted.


Besides the dependency on the aterm-1.6.7 and sdf2-1.5, StrategoXT has the following dependencies:

The Stratego Compiler depends on

  • gcc (the extension of C with nested functions)

The build of the source distribution depends on the following software packages

  • gmake

Developers who need to rebuild Makefiles and the configure scripts will need

  • automake 1.6
  • autoconf 2.53

In addition the autoxt package that is part of the StrategoXT distribution should be installed prior to autobootstrapping such that the autoxt tool is visible from the path.



The StrategoXT distribution consists of the following


  • Migrate CVS repository to Subversion repository

  • Get the daily builds? completely running

  • Refactoring tool packages?

  • XTC
    • Improve error reporting :
      • if an imported XTC repository doesn't exist
      • if a user doesn't has the rights to register a tool in an XTC repository

  • SSL
    • Remove some modules from the SSL because the just don't work for now: server-test, client-test, accept-test, connect-test, communication, connect. Maybe we should work on sockets in the stratego-net package.
    • Move all unit tests of the SSL to a seperate directory: do not install them and do not create rtrees .
    • Efficient native implementation of concat-strings (required for ExtendibleDocumentationGenerator).
    • Remove abox and abox-ext module from SSL: tools operating on the BoxLanguage should use the signatures of GPP

  • StrategoFront
    • TupleCong is overloaded for the empty tuple congruence and tuple congruences with strategy arguments. GPP cannot handle this because constructor names cannot be overloaded.

  • make boxenv an AutoXT powered package and include boxenv.sty in distribution to prevent install time dependency on LaTeX?.

  • make stratego-util an AutoXT powered package and include it in the list of packages

Previous Releases

Note that this wiki page is versioned. Pointers to earlier (beta) releases can be found on earlier versions of this page. Not all beta distributions are guaranteed to be available though.


From the NEWS file

StrategoXT 0.9.1 -- released June 04, 2003

This is a bugfix and cleanup release. Many packages were thoroughly
refactored, mainly by Martin Bravenboer. StrategoXT is now being
tested on a daily basis [4] in the buildfarm of the st-lab at Utrecht

Also we spent some time on improving the Stratego website. A fresh
look (less Wiki, more content), an improved structure and improved
content should make the Stratego website more accessible, especially
to new users. Eelco Visser has created a detailed tutorial on how to
set up a Stratego package [1]. During the month May the Stratego
website had the largest number of edits ever!

Eelco Dolstra has been experimenting with StrategoXT on Mac OS X
[2]. With a patched GCC there seem to be no major problems left,
except for performance. Performance is unacceptable since the current
choice point implementation does not behave very well on the Mac
architecture. Something to think about for future releases.

Martin Bravenboer has worked on porting StrategoXT to Microsoft
Windows with Cygwin [3]. For this platform there also does not seem to
be any serious problems. For now there is a binary distribution of
some tools of sdf2 + implode-asfix, in the near future we hope to
offer full binary distributions of the sdf2 bundle and StrategoXT for
Microsoft Windows.



  The download page contains the source distribution:


  The installation instructions page can be consulted for detailed
  information on how to install StrategoXT and its dependencies:


  * StrategoXT
    - StrategoXT repository moved from CVS to Subversion
    - StrategoXT is again part of a daily build system

  * aterm-tools (Martin Bravenboer)
    - pp-aterm: new tool to ugly-print an ATerm more pretty. Useful for 

  * boxenv (Martin Bravenboer)
    - install-time dependency on LaTeX removed

  * sdf-front (Martin Bravenboer)
    - new package the standard -front package structure: syntax definition,
      pretty printing and signatures for SDF 2.1

  * c-tools (Stefaan Himpe)
    - various improvements to the C syntax definitions reported by Stefaan 

  * gpp (Merijn de Jonge)
    - tohtml tool has returned
    - many fixes to asfix2abox, abox2latex, abox2text
    - abox-ext moved from SSL to GPP. Consider to use StrategoBox.

  * graph-tools (Merijn de Jonge)
    - Sync'ed dot grammar/signature with dot-tools package
    - graphxml2dot now produces AST based on dot grammar with grammar
      identifier 'dot-1'.

  * srts (Martin Bravenboer)
    - many new POSIX IO and process primitives. The better IO facilities will 
      be completed and documented in 0.9.3
    - cgi and connect (socket) primitives removed. cgi is part of 
      stratego-net, connect should be improved.

  * ssl (Martin Bravenboer, Rob Vermaas)
    - list-sort.str: quick sort by Rob Vermaas
    - many new IO and process related strategies: read-text-file, 
      read-text-from-stream, fprint, fputc, dirname, access, fgetc, 
      write-to-stream in baf/taf/text, fopen, strlen, strcat, stdin-stream, 
      stdout-stream, open-stream, fileno, P_tmpdir and temp-dir, mkstemp, kill
    - fork-and-wait: show warning if child process terminated because of a
      signal (useful for segmentation faults)
    - moved the collect strategies to a new module "collect".
    - debug-depth for debugging with big ATerms.
    - abox.str and abox-ext.str moved to GPP.
    - ugly-print.str: moved to aterm-tools
    - connect modules (client-test, communication, connect-test, connect, 
      server-test) removed.
    - unit test modules are no longer installed

  * stratego-front (Eelco Visser, Martin Bravenboer, Rob Vermaas)
    - characters can also be used as congruences (of course).
    - unescaped newlines in String literals are now allowed
    - improved pretty-printing of Stratego (reported by Rob Vermaas as a 
      result of his work on StrategoDoc)

  * stratego-util
    - package re-added to distribution. Contains a Stratego mode for emacs


  * The build of the StrategoXT package invokes 'make install' since the 
    installation of the libraries in srts are needed for the build of the
    rest of the package. This makes building of debian packages
    problematic. This problem will be addressed in future releases.

  * When bootstrapping the package from Subversion it is necessary to install the
    autoxt package before calling the main 'bootstrap' script since that
    calls the autoxt tool.


  * Bug reports and suggestions for improvements where submitted by: 

    Rob Vermaas, Jonne van Wijngaarden, Jozer Kruger, Armijn Hemel, 
    Stefaan Himpe

  * The major developments were carried out by 

    Eelco Visser, Martin Bravenboer, Eelco Dolstra, Merijn de Jonge