apt-get install g++ icu make cvs -d :pserver:firstname.lastname@example.org:/cvs/public login cvs -d :pserver:email@example.com:/cvs/public co parrot cd parrot perl Configure.pl --cxx=g++ make make test
Watching the messages go by, you see good programming practice,
like enabling all warnings with
-Wall, preceded with
harmless inanity like defining a library directory named
arry. Not to be outdone, this too is preceded by
a define of
All tests successful, 4 tests and 52 subtests skipped. Files=122, Tests=1864, 174 wallclock secs (121.09 cusr + 37.77 csys = 158.86 CPU)
Concrete evidence of test-driven development is a real confidence builder. As is the use of the International Components for Unicode library.
The RESPONSIBLE_PARTIES file contains a request soliciting volunteers for Garbage Collector. Parrot contains a gc_ims (Incremental mark and sweep) garbage collection implementation, so I guess the responsible party just doesn't want to fess up.
I programmed for a decade in 370 assembler. I have studied the Java byte codes. I was a member of the ECMA committee which standardized the CLI.
With this background, Parrot feels distinctly alien. In the worlds that I am familiar with, every bit in an instruction is a precious thing, and opcodes in particular are hoarded and doled out extremely sparingly.
By contrast, in Parrot, there is an opcode for factorial.
Sampling the test cases, they appear to be all written in Perl5. Upon closer inspection, the Perl5 is just a thin wrapper for either Parrott assembly code or C/C++ code and expected results. Some of the documentation (and by this, I mean the comments inside the test cases themselves) is written in LISP. Apparently, one needs to be a polymath to participate or even follow along.
The almost, but not-quite, successful pie-thon code is included too. Apparently, the early attempts were to convert the Python byte codes to Parrot byte codes, but based on the results to date, a newer effort has been spawned trying to start earlier in the process with the Python AST, which contains more metadata.
While the efforts to integrate Python and Parrot seem to be driven by the Parrot team, a number of the developers of PHP seem interested.
There even seems to be aspirations of running Parrot on top of the JVM/.Net.