This is 'Niecza', which will eventually be a Perl 6 implementation focusing on optimization research. It targets the Common Language Runtime (ECMA-335; implementations are "Mono" and ".NET").
There is also a Common Lisp backend in the works.
To see the current state of the art,
the best documentation is the testsuite,
- To run on Mono: 2.6.4 and later are well-tested,
though success has been reported with 2.4.x as well.
ggoebel on #perl6 reports that 2.6.7 fails with a bus error on OS X 10.4 x86,
but 2.6.4 works; 2.6.7 is fine on other platforms.
2.8.2 or later is recommended for best performance; you should use
RUN_CLR=mono-sgenin this case.
Debian and derivatives have a modular mono packaging; you should install 'mono-complete'. (The other packages exist for the sake of Debian-packaged programs.)
- To run on Windows/Microsoft .NET 3.5 (2.0 runtime with 3.5 extensions) or .NET 4.0:
Currently, you need to make a change to the
Makefileto enable a successful build under Cygwin, but once sorear makes a
Configure.pland/or uses the mono autotools templates, this won't be needed... merely remove
monofrom the line starting with
RUN_CLR=. Niecza also runs on mono/Windows.
- wget (to fetch a bootstrapping binary).
- GNU make
$ make ... snip build spam ... $ mono run/Niecza.exe niecza> say 2 + 2 4 niecza> ^D $ mono run/Niecza.exe -e 'say 2 + 2' 4 $
Notes: The first time the compiler is run, the setting must be compiled, which adds about a minute on most hardware to the runtime. The second run will be much faster. Also, the recompilation checker is not robust to file format changes; it may be necessary to clean temporary files after updates.
Niecza is Copyright 2010 Stefan O'Rear et al. It may be used and distributed under the Artistic License 2.0 (included under LICENSE).
This project was originally a spin-off of experiments done for Matthew "diakopter" Wilson's sprixel project, and is heavily inspired by many of its lower-level details.