The Stratego compiler is bootstrapped in three steps from a Java version of Stratego from 2014 as the base. However, currently that build uses the base in each step to compile. Therefore it doesn’t actually bootstrap. I think changes are need both in the Maven modules that encode the three steps and the Ant build that’s called to actually build Stratego.

To check that the build doesn’t bootstrap, you can do the following: (1) Add a with(fail) in the definition of the strj strategy. (2) Check that a single build indeed gives a broken strj. (3) Try the bootstrap build. If it really bootstraps it should fail at the second step, but instead it currently builds successfully. You can inspect the results of each step, each of those compilers will fail due to the with(fail).

Submitted by Jeff Smits on 7 April 2018 at 20:38

On 1 June 2018 at 15:27 Jeff Smits commented:

Today I looked at this problem with Gabriel, and found that the issue is in the Maven build. The bootstrap-pom.xml combined bootstrap modules and only expands variables once instead of separately for every module. Therefore the baseline for the bootstrap builds stays the same, and so nothing bootstraps. Doing the maven builds from the different modules separately will fix this.
However, due to changes in the command line tools and the strategoxt-antlib the current code does not bootstrap. I’m working on that right now.


On 3 June 2018 at 18:43 Jeff Smits commented:

After some changes in the strategoxt and jsglr repos, the bootstrap build now works locally with a manual string of maven commands. The tests succeed, and when an explicit with(fail) is added the second step fails as expected.
Now the maven commands just need to be integrated into the build script.


On 3 June 2018 at 20:36 Jeff Smits commented:

I’ve changed the Python build script for bootstrapping to do the separate maven commands, and had to revert an improvement that apparently interferes with optimisations. But everything bootstraps now.


On 3 June 2018 at 20:36 Jeff Smits closed this issue.

Log in to post comments