Announce: Parrot 2.0.0 "Inevitable" Released!

chromatic on 2010-01-21T04:37:49

The Beyond and below are like a deep of ocean, and we the creatures that swim in the abyss. We're so far down that the beings on the surface — superior though they are — can't effectively reach us. Oh, they fish, and they sometimes blight the upper levels with points we don't even understand. But the abyss remains a relatively safe place.

— Vernor Vinge, A Fire Upon the Deep

On behalf of the Parrot team, I'm proud to announce Parrot 2.0.0 "Inevitable." Parrot is a virtual machine aimed at running all dynamic languages.

Parrot 2.0.0 is available on Parrot's FTP site, or follow the download instructions. For those who would like to develop on Parrot, or help develop Parrot itself, we recommend using Subversion on our source code repository to get the latest and best Parrot code.

Parrot 2.0.0 News:

  • Features

    • Context PMCs now support attribute-based introspection
    • Context and CallSignature PMCs merged into CallContext
    • .lex directive throws exceptions when used with incorrect register types
  • Platforms

    • Packaging improved for free OS distributions
    • PPC, PPC64, and ARM now tested when running Linux
  • Performance

    • Minor improvements to the profiling runcore
    • Improvements from the CallContext PMC merge
  • New deprecations

    • In/out parameters in STRING modification functions
    • Void handling in NCI signatures
    • Parameter passing opcodes order in PBC
  • Tests

    • Continued migration of core tests from Perl 5 to PIR
  • Tools

    • dependency checker improved
  • Miscellaneous

    • Deprecation cycle length changed to three months from six
    • GC accuracy improved
    • PMC freeze improvements; much more reliable
    • Makefile improvements for dependency handling

Thanks to all our contributors for making this possible, and our sponsors for supporting this project. Our next release is 16 February 2010.

Enjoy!


ALL dynamic languages?

btilly on 2010-01-22T17:32:38

I think that claim should be eliminated from Parrot's description until it is able to run Python.

You know, the widely used dynamic language that was one of Parrot's two original target languages, which happens to have been ported and runs well on several other platforms, including the JVM and .NET.

You know, the one which lead to Dan Sugalski getting pie in the face when he couldn't even get the benchmark to run correctly, let alone run faster than the native C platform as promised.

Re:ALL dynamic languages?

chromatic on 2010-01-22T19:17:18

I think that claim should be eliminated from Parrot's description until it is able to run Python.

See the Pynie repository and the list of languages running in whole or in part on Parrot.

Re:ALL dynamic languages?

btilly on 2010-01-22T19:41:38

The fact that a port has been started does not mean it is useful.

Pynie looks like a recent attempt to start porting a version of Python that is not in widespread use. Pirate would be the attempt to port the version of Python that is actually used widely, and its current status is pretty useless.

I have respect for Allison, but she isn't done. Therefore I reiterate. Until there are actual, useful ports of the most popular, widely used, and widely ported dynamic languages out there, I think that claiming that Parrot supports all dynamic languages is false advertising.

A decade ago it was reasonable to insert the claim in the hope that you'd make it true. A decade in the claim is an embarrassment.

Re:ALL dynamic languages?

chromatic on 2010-01-22T20:33:21

I think that claiming that Parrot supports all dynamic languages is false advertising.

Whoever said that Parrot 2.0 currently runs all dynamic languages in full? Certainly I never did.

A decade in the claim is an embarrassment.

Project management is easy if you have a time machine and an army of fungible volunteers.

Re:ALL dynamic languages?

duff on 2010-01-22T20:35:02

I don't get it ... What's the problem? Parrot is still "aimed at supporting all dynamic languages"--even ones that don't yet exist. Just because there is no viable implementation of a particular language that runs on Parrot now doesn't mean anything in particular.

Re:ALL dynamic languages?

btilly on 2010-01-22T21:46:16

I take it you weren't at Sam Ruby's OSCON talk a few years back where he gave a post mortem on why the Pirate effort failed.

The fact of failure is one thing. The reasons for that failure are quite another. The historical importance of that failure adds even more weight.

Re:ALL dynamic languages?

chromatic on 2010-01-22T22:20:11

The historical importance of that failure adds even more weight.

Parrot is a very different project than it was in 2004 and 2005.

Re:ALL dynamic languages?

btilly on 2010-01-22T23:18:46

I'm aware of that fact and consider it a generally good thing. But I'll need to see actual success before my opinions about the project change substantially.

I would recognize success for the platform as a whole if Parrot is the default platform for a widely used language. A relatively objective definition of "widely used" could be that it shows on the TIOBE top 20 list. (Yes, I know all of the problems with that index. Still it is better than nothing.)

My definition of success for the goals the platform has set for itself is that Parrot becomes a popular platform for running at least one widely used language that was not originally associated with the Perl or Parrot communities.

Note that both the JVM and .NET are successes by those measures.

My current belief is that the odds are against success by my first definition, and are strongly against success by the second definition.

Re:ALL dynamic languages?

chromatic on 2010-01-23T00:05:23

Now your song has changed from "Don't claim you run all dynamic languages!" (demonstrably untrue) to "You're not successful in Tillylandia until you run Python and Ruby as well as the DLR and JVM do, as measured by an unreproducable statistic widely debunked!"

You're welcome to have your own goals for the project, but as with every project, the goals a project meets are often the goals of those who contribute in some fashion. If the volunteers doing actual work don't meet your goals, well, I consider that no failure on their parts.

Re:ALL dynamic languages?

btilly on 2010-01-23T00:18:52

You're a great one for setting up straw men so you can knock them down, aren't you?

Until Parrot can run at least one of the two original target languages, I consider its stated goal of aiming to support all dynamic languages an embarrassment. At the current point it runs neither, and there are no plans in place that I can see to change that. (Though you recently started a project to try to run the designated successor of one of the two original target languages.)

Getting from the point of embarrassment to actual success is a different question.

I've told you what looks like embarrassment in my eyes, what looks like success in my eyes, and what I think looks like success according to your stated goal. Three different goalposts. As always you are free to pay attention or disregard my opinion as you wish.

Re:ALL dynamic languages?

btilly on 2010-01-23T00:21:43

And this is why I should always preview. :-(

Re:ALL dynamic languages?

chromatic on 2010-01-23T00:59:16

You're a great one for setting up straw men so you can knock them down, aren't you?

No, Ben. You are the one with the bizarre definitions of standard English words such as "run" and "plan":

At the current point it runs neither (Perl 6 or Python), and there are no plans in place that I can see to change that.

If you want to deny that Lua, Python, Tcl, Ruby, Scheme, Common Lisp, JavaScript, and a handful of other languages indeed exist and run on Parrot and pass tests on Parrot and interoperate on Parrot, that's your prerogative. You are free to stay that stubborn and ignorant.

You won't catch anyone in the know claiming that they're all feature complete (though Lua has been for multiple years). No one has claimed that. Yet when you claim that they don't exist and we have no plans to make them exist, you're full of wrongness and you will get called on it.

I'm finished with this discussion.