Slashdot Mirror


Parrot 1.0.0 Released

outZider writes "Parrot 1.0.0 was released last night! The release of Parrot 1.0 provides the first "stable" release to developers, with a supportable, stable API for language developers to build from. For those who don't know, Parrot is a virtual machine for dynamic languages like Perl, PHP, Python, and Ruby, and is best known as the virtual machine for Rakudo, the reference implementation of Perl 6."

8 of 120 comments (clear)

  1. Slashdotted parrot by davidwr · · Score: 4, Funny

    I'll tell you what's wrong with it, my lad. 'E's slashdotted, that's what's wrong with it!

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    1. Re:Slashdotted parrot by Yvan256 · · Score: 4, Funny

      Not it's not! It's just swapping!

  2. 1.0 is for a stable API by tcsh(1) · · Score: 4, Informative

    Remember that their plans for the 1.0 release was for a stable API for language implementors, not highly optimized performance.

  3. Re:VM question by outZider · · Score: 5, Informative

    I'm not very good with thedetailed explanation, as I am not a Parrot developer, but Parrot's VM is geared toward dynamically typed languages like Perl, Python, Ruby, and PHP. The JVM and CLR are geared toward static typed languages, which is why dynamic language ports to the CLR generally require code changes and cleanup to work properly under those environments.

    Parrot gives all the benefits of a virtual machine to the dynamic side of the language aisle, while being incredibly easy to extend and build on, and is open source from the start.

    --
    - oZ
    // i am here.
  4. Re:Is it really ready? by hardburn · · Score: 4, Informative

    Version 1 is supposed to be reasonably complete and provide a consistent API for language developers.

    Version 2 is intended to be the production-ready version. According to the roadmap laid out last Dec., that's due to come in another year. So far, they've stuck to the roadmap pretty well.

    --
    Not a typewriter
  5. Re:Compiler for Perl? by hardburn · · Score: 4, Insightful

    Perl 5 isn't really bytecode at all. It basically just walks the parse tree directly.

    Perl 6/Parrot is bytecode just as those from Python or Java have come to expect. Perl 5 could be reimplemented this way, but nobody seems to want to bother.

    If your goal is to obfuscate your code to prevent people from copying it, please give up.

    --
    Not a typewriter
  6. The original Parrot was an April Fool's joke by ptbarnett · · Score: 5, Informative
    The original Slashdot article from almost 8 years ago: Perl + Python = Parrot.

    It included a mock press release: Perl and Python Announce Joint Development.

    And a joint "interview" of Larry and Guido.

    O'Reilly Media even tossed in a bogus book announcement: Programming Parrot in a Nutshell.

    A few days later, O'Reilly published The Story Behind the Parrot Prank.

    The name was eventually adopted by this project.

  7. Re:VM question by mj41 · · Score: 4, Informative
    chromatic said on reddit.com:

    "It's not so much that the CLR's limitations prevent it from running dynamic languages but that the CLR's limitations require you to invent a lot of your own infrastructure to run dynamic languages. If the CLR in itself assumes that it can resolve all method dispatches (or jump targets or attribute accesses) statically at compile time, you have to invent your own dynamicity atop that. If the CLR does not support first class functions, you have to invent your own approach. If the CLR does not support first-class continuations, you have to invent your own calling structure. Ditto named parameters, optional parameters, default parameters, and whatever other features that the CLR doesn't support.

    I'm not saying that the CLR doesn't support all of those features -- I know that it does support some of them, to some degree. The DLR supports more. The question is whether Turing equivalence (and I hate this argument) is sufficient, or whether you're better off not inventing your own method dispatch system."