IronPython 2.7 now provides a subprocess module, and the good news is that Waf will be able to run on it. The changes are only in Waf head for now, they will be available in Waf 1.6.5 once a remaining issue is resolved (the logging module behaves differently on IronPython).


A few of you may be curious to know how well Waf performs on different python interpreters. Different propjects may have different requirements, so the tests are always biased in one way or another. Among all the tests considered so far, the genbench script provides a good balance between project size, process execution, regexps and parsing. The numbers collected represent the best run in in five executions:
./genbench.py /tmp/build 50 100 15 5
cd /tmp/build
waf clean; time waf build -p -j3

On Windows XP, the IronPython runtime is fairly close to the Pypy one. And Pypy 1.5 did not complete normally (file descriptor leak).

Windows XP
cPython 2.7 IronPython 2.7 Pypy 1.5
1m54 2m14 2m05

IronPython requires .NET 4, and it would not run on Linux using Mono 2.10.2. It is no surprize that the test completes faster as spawning new processes (fork) is slower on Windows. Pypy 1.5 could not even complete normally once in about 10 runs.

Linux
python 2.6.5 python 3.2 jython 2.5.2
1m41 1m41 5m30

For the moment, the best interpreter remains cPython for both portability and performance.