Functional Perl 6 Compiler for Parrot Arrives

pudge on 2002-08-16T18:44:55

Dan writes "The Parrot Project is happy to announce that we have a functional Perl 6 compiler for parrot. This implements pretty much all of the language specified in Apocalypses 1 through 4, and we're working on Perl 6 regexes.

We also have, for the curious, a working Ruby parser, Python parser, BASIC interpreter, Scheme interpreter (well, it was working a while back), and Forth compiler. Plus some other toys.

CVS checkout instructions are at cvs.perl.org."


Questions

Ovid on 2002-08-16T18:58:50

From my comments at perlmonks.

Dang. This is incredible. I've been "sort of" keeping track of Perl 6 development, but this is much further along than I expected. I have a question, though. Parrot has always struck me as beng similar in concept (but not implementation) to the Java bytecode model. Implementation differences aside, how accurate is that? I'm also wondering how easy it is likely to be to mix the languages? Since they compile to parrot bytecode, can Ruby call Perl call Python? Ruby and Python both deserve wider audiences. It seems to me that being able to take advantage of a common bytecode model should be able to give them the edge they need to truly earn their place amongst "serious" languages.

It seems to me that Perl 6 will be powerful enough that the desired features of those other languages (continuations, coroutines, iterators, etc.) will not be much of a pull towards them. However, being able to utilize pre-existing libraries already written in another language should appeal to the virtue of 'laziness'.

Side note: I heard a rumor that here in Portland, Oregon, there was a company that was advertising for Ruby programmers but wound up switching to Python due to the lack of available Ruby programmers. I don't know the particulars, though.

Re:Questions

Elian on 2002-08-16T23:55:51

The short answer is that all supported languages on Parrot should be able to call into each other. Either they support the calling conventions or we'll provide a thunking layer to transform from one convention to the other.