Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Perl 6--not just for Larrys anymore

by Elian (Parson)
on Aug 16, 2002 at 18:01 UTC ( [id://190718]=perlnews: print w/replies, xml ) Need Help??

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

Replies are listed 'Best First'.
Re: Perl 6--not just for Larrys anymore
by Ovid (Cardinal) on Aug 16, 2002 at 18:36 UTC

    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.

    Cheers,
    Ovid

    Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.

      The parrot VM is in some ways like the JVM. One of the central design goals is to make it possible for the various languages running on it to call each other properly, and seamlessly. Which means that your perl proram will be able to call routines written in Ruby, Python, Java (yes, really), .NET code, APL, or even INTERCAL. One of the joys of a standardized calling convention. (And mandated thunking layers to wedge in languages that wouldn't otherwise play ball)

      Oh, and Intel hired python people instead of Ruby ones? Pity.

        Would that intel postion happen to be this one mentioned on jobs.perl.org (Intel/Oregon/Ruby??) If so, could they not find perl programmers either?

        p.s. I checked out parrot and am quite impressed. The mandelbrot example is pretty nifty too. ;-)

        -Blake

Re: Perl 6--not just for Larrys anymore
by drewbie (Chaplain) on Aug 16, 2002 at 19:23 UTC
    What about objects - anything done in that area? I know A1-4 didn't directly talk about any new object behavior other than calling syntaxes, etc, so I wonder when that might be done? I'm guessing it would be hard to have that done when there hasn't been much design specs completed...

    All in all though, this is VERY cool! So does this mean that we might have a working perl 6 distribution next year? I'm quivering with excitement to know the answer. ;-)

      Consider this just a prototype :) It's parsed with a slightly hacked version of Parse::RecDescent, and then compiled into parrot assembler using Perl 5. As such, its really slow. Don't fret though. The real perl6 compiler will probably be written in pasm or C, and parsed with perl6 grammar; it will be really fast.

      As for objects - like Elian said, not even close. After Larry issues his proclamation from on high about the syntax in Apoc 6, several things will need to be done. First, code needs to be added to the grammar to support objects. Next, a node definition will need to be added, and then a tree representation defined. Finally, a compilition method to convert the tree representation to parrot bytecode needs to be added to the compiler itself. Also, subroutine functionality needs to be completed before methods can work.

      If you'd like to help with any of this, you should contact Sean O'Rouke (known to frequent perl6-internals), the brain behind this monster :)

        If you'd like to help with any of this, you should contact Sean O'Rouke.

        I really would love to help out, but parrot is far over my head at this point since I have the barest understanding of C. I should point out that I have decided to learn C/C++ and have picked up a copy of Thinking in C++ to help me get started with a low-level language. It has a good thick chapter on the C you need to know C++ too. :-) Once I know C I can help out with parrot development.

        Would perusing the parrot sources be helpful to me in my quest to learn C? If so, I can kill two birds with one stone (pun intended :-)

      Objects aren't defined at the perl level yet, but I've a pretty good idea of what semantics we'll need, so they should get defined at a lower-level quite soon.

      Don't know that I'd count on a working perl 6 distribution until after Larry finishes the definiton, though. :)

Re: Perl 6--not just for Larrys anymore
by RMGir (Prior) on Aug 16, 2002 at 20:29 UTC
    Very nice!

    Slurped down everything from http://cvs.perl.org, built it, and ran the tests. Forth works! :)

    It built without problems on cygwin.
    --
    Mike

And another thing...
by Elian (Parson) on Aug 17, 2002 at 16:40 UTC
    While I don't know that it warrants a full announcement, we just committed a Befunge-93 interpreter into the Parrot repository. (Along with a BNF->P::RD converter to help us in writing front-ends for Parrot)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlnews [id://190718]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (5)
As of 2024-04-19 04:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found