I've been meaning to do something about testing for the kp6-lisp backend. Previously we compiled all tests to stand-alone executables using sbcl, the reason for this being that I didn't know about --noinform --noprint at the time and dumping the lisp image was the hacky solution to making sbcl not print out all that superfluous output.
This meant we had to wait for sbcl to compile each test before we could run any, and each test produces an approximately 30MB executable which meant the test directory grew to several hundred megabytes.
Everything is much better now, you can select the backend you want when writing the makefile:
KP6_TARGET=KP6-LISP-sbcl perl Makefile.PL
or
KP6_TARGET=KP6-LISP-clisp perl Makefile.PL
or
KP6_TARGET=KP6-LISP-ecl perl Makefile.PL
And then run the tests on the selected backend:
make test
All the backends fail the same 56 tests out of a total of 85 so it looks like the backend code is pretty portable. There's a significant speed difference between the implementations, since most of their time is taken up by compilation this makes a lousy general benchmark but testing uses clisp is the best of the three:
ecl: real 2m3.895s clisp: real 1m7.318s sbcl: 4m16.725s
Things could be made a lot faster for all of them by only compiling the backend runtime once instead of doing it for every test, or running lisp as it's supposed to be run, in one persistent compiler.
That and adding options to kp6(1) for running code directly with a given runtime is a task for another day.
One day I hope to write some perl 6 code that will ultimately be executed on a parrot VM. Not a subset of perl 6, but the full thing. Self hosting and producing parrot byte code that runs fast.
There seems to be a new perl 6 implementation everytime I check here. And let's not mention the buffet of backends I can compile some arbitrary subset of perl 6 to.
It's been almost 8 years since topaz. I want my perl 6 already. Focus people. Focus.
Posted by: Jeff | 2007.10.21 at 02:51 PM