Monday, April 27, 2009

Rakudo on OS X 10.4

I've decided to do the download, compile and run the test suite for each of the Perl6 implementations which are being actively developed: Rakudo, SMOP, and Elf.

Rakudo seems to have the largest number of developers, the most activity, and passes more of the spec tests. So I'll start with it.

From the Get Rakudo page I found the latest snapshots. At the time I'm writing, the latest snapshot is rakudo-2009-04.tar.gz.

So starting with my macbook running OS X 10.4... I downloaded it, opened terminal, untarred it, cd'd into the resulting rakudo-2009-04 dir and per the instructions executed:
$ perl Configure.pl --gen-parrot

This results in:
Generating Parrot ...
perl build/gen_parrot.pl

Checking out Parrot r38250 via svn...
Can't exec "svn": No such file or directory at build/gen_parrot.pl line 46.
[...]

Looks like I never reinstalled Subversion when I reinstalled OS X 10.4 onto a larger drive.

Okay. So I head over to http://subversion.tigris.org/getting.html#osx and click on the openCollabNet link (because I already have the Apple Developer Tools installed). Once there, I filled out a request for contact information (blech), and downloaded the 18MB Subversion 1.6.1 Universal.dmg. Yes, I could compile from source, but I'm being lazy.

After running the pkg installer, in order to get svn in my PATH, I had to edit ~/.profile and add the line:
export PATH=/usr/local/bin:$PATH

Okay... back to where I began:
$ perl Configure.pl --gen-parrot

I get further. Up to the point where it is brought to my attention that the certificate for https://svn.parrot.org:443 does not come from a trusted certificate authority. It reminds me of Adam Kennedy's comments in his recent "Beautiful is better than ugly" post:
And for god sake, can someone with a spare thousand bucks leftover from a YAPC PLEASE organise legitimate crypto certificates for the SSL websites? This whole self-signed certificate crap makes us look like incompetent amateurs (when we are supposed to actually be competent amateurs)

Oh well... I accept it and spend the next few minutes watching it fetch, configure, and compile the parrot source in a subdirectory.

Finally...
You can now use 'make' to build Rakudo Perl.
After that, you can use 'make test' to run some local tests,
or 'make spectest' to check out (via svn) a copy of the Perl 6
official test suite and run its tests.


That jives with the original instructions. So I do:
make

...and a minute or two later after no apparent errors:
make test

...and less than a minute later:
make spectest

...this one results in spec tests being sync'd via svn before running. It took about 34 minutes before spitting out:
All tests successful.
Files=367, Tests=10640, 1445 wallclock secs ( 6.53 usr 2.91 sys + 2019.76 cusr 86.89 csys = 2116.09 CPU)
Result: PASS

I noticed that by default, rakudo produces a perl6 binary. So for fun:
$ ./perl6 -e q{hello}.say
hello
$

Not hard at all. No frustrations. Easy as pie.

In my next post, I will find time to lather, rinse, and repeat on boxes running WinXP and Linux. Then, time permitting, I'll start digging into the tests and specifications...

cheers...