Mac OS X Support
StrategoXT supports Mac OS X from release 0.11. The release page of the latest release contains links to binary distributions for Mac OS X.
Performance
The performance of
StrategoXT at Mac OS X is rather poor.
- The main reason for this is probably the architecture of the G4, which doesn't play too well with the implementation of choices (based on
jmp_buf
) in the Stratego compiler. The size of a jmp_buf
depends on the architecture of the processor and unfortunately RISC processors need a very large jmp_buf
.
- Another reason might be the performance of nested functions. This will be solved when the Stratego compiler no longer uses nested functions for the implementation of lexical scope of strategies in Stratego.
- Yet another reason is the performance of forking a process. Forking is much slower at Mac OS X (and Cygwin) then at a Linux system.
GNU/Linux at PowerPC
One of our master students (Dick Eimers) has installed Debian at a PowerMac6,3 and I've tried to build
StrategoXT on this machine. At first this wasn't very succesful. I was using FSF's GCC 3.3.4 and this resulted in the usual problems.
However, it works look a charm with GCC 3.4.1! Even more suprising to me is the performance, which is excellent. The
jmp_buf
size at Debian/PowerPC is much smaller than at Mac OS X!
mbravenboer@mcflurry:~$ uname -a
Linux mcflurry 2.4.25-powerpc #1 mer avr 14 15:38:38 CEST 2004 ppc GNU/Linux
mbravenboer@mcflurry:~$ more /proc/cpuinfo
processor : 0
cpu : 7455, altivec supported
clock : 1249MHz
revision : 3.3 (pvr 8001 0303)
bogomips : 1245.18
machine : PowerMac6,3
motherboard : PowerMac6,3 MacRISC3 Power Macintosh
board revision : 00000001
detected as : 287 (Unknown Intrepid-based)
pmac flags : 00000000
L2 cache : 256K unified
memory : 512MB
pmac-generation : NewWorld
jmp_buf size: 364
jmp_buf
size at same hardware, GCC 3.4.1 and running Mac OS X: 768
jmp_buf
size at my SuSE 9.0 at Pentium M system is 156.
History and Future
Mac OS X is support with a patched GCC from
StrategoXT 0.9.1. This patch has been implemented by
Eelco Dolstra.
In
StrategoXT 0.14 we hope to remove nested functions in the C sources produced by the Stratego Compiler (See issue
STR-119).
CategoryInstallation