Microsoft Windows Support

Stratego -- Strategies for Program Transformation


On Microsoft Windows StrategoXT requires Cygwin.

In StrategoXT 0.9.4 all serious problems on Microsoft Windows/Cygwin are solved. Standard tarball distributions now can be installed without applying any patches. No modifications of the srts are required and memory usage has been reduced considerably. The solution to the issue was an optimization of the choice implementation. The Stratego Runtime now allocates the jmp_buf storage on the heap and increases the size of the storage when necessary. This has been implemented by Eelco Dolstra.

Microsoft Windows+Cygwin support is not yet verified in the daily build.

ATerm library

  • Installation of the ATerm library 2.0.x is no problem if configured --with-gcc.


  • Installation of toolbus-lib, pt-support and SGLR is no problem.
  • check succeeds.


  • asf-support 1.0: no problem
  • asc-support 1.6: no problem
  • sdf-support 1.0: no problem
  • pgen 1.6: no problem (sdf2table is a shell-script)

The following information does not concern the latest sources. It is a log of the problems we encountered in the past.

The Stratego Run Time System ( SRTS ) installs fine, but bootstrapped C sources compiled with the runtime will cause a segementation fault on any invocation of a procedure in the SRTS.

-- MartinBravenboer - 17 May 2003

Cygwin doesn't like this:

srts/src/stratego-choice.c :

  #define JMPBUFS 1638400
  jmp_buf jmpbufs[JMPBUFS];

The number of JMPBUFS is too large. Currently I'm using 563840 for testing purposes, but this might be a problem in heavy Stratego programs (abox2text for example).

Does anybody know what might be the reasoning behind disallowing such large arrays on Microsoft Windows/Cygwin?

-- MartinBravenboer - 19 May 2003

More complex Stratego program run if compiled with the adapted SRTS. implode-asfix has been compiled to an .exe. The first step towards Microsoft Windows Support is a binary distribution of sdf2. See this message on the mailing list.

-- MartinBravenboer - 19 May 2003

StrategoXT 0.9.1 compiles on cygwin, after changing the above (stratego-choice.c) and the removal of the asource tool. Problem that occurs now is that in the XTC repository tools occur as follows: (Tool("meta-explode.exe"),[("0.9.1","/opt/strategoxt/bin/meta-explode.exe")]), so with the extensions of executables.

-- RobVermaas - 12 Jun 2003

bootstrap scripts (or shell scripts without an extension in general) need to have a '#!' as first characters to be executable on cygwin.

-- RobVermaas - 16 Jun 2003

XTC tools are registered properly now. Current LatestSources? compile on cygwin, but only if you have the right permissions (it fails at boxenv, when running 'latex boxenv.ins').

Don't be surprised if memory-usage goes up to 800 MB sometimes. We should do somthing about this.

-- RobVermaas - 16 Jun 2003