"I think my imagination's broke. Lemme try and think up the best thing ever. Umm... beef... stew. Yup it's busted alright. I'm gonna go... place."
- Strong Bad
On behalf of the Parrot team and an enthusiastic but undiscriminating dachshund that followed me home last week, I'm proud to announce Parrot 3.0.0, also known as "Beef Stew", or at the insistence of a shadowy government organization, "Snowflake". Parrot is a virtual machine that dreams about running all dynamic languages everywhere, even the one you're think about right now. Parrot has big plans, even if needs a haircut and sometimes goes outside with its shoes untied.
Parrot 3.0.0 is available from an Internet near you. Instructions on fetching and building are here, or you can go directly to our ftp site and grab it there. As a special incentive, the first 255 downloaders will receive a limited-edition byte autographed by John de Lancie. If you're interested in helping improve Parrot or if you just happen to find a misplaced lolcat in our documentation, you can fork Parrot on GitHub and send us your fix as a pull request. Please be aware that due to our stringent security policy, we are not able to accept malicious pull requests with the evil bit set. If you would like to submit a malicious pull request, please verify that the evil bit has not been set.
Here are some highlights from this release:
- Core + A new embedding API is available in "parrot/api.h" and documented in docs/pdd/pdd10_embedding.pod . + Packfile PMCs were refactored and can now be used to produce runnable bytecode. + Packfile manipulation code now throws embedder-friendly exceptions rather than printing error details directly to stderr. + Unicode support for file IO, environment variables, program names, and command-line parameters was improved. + An experimental gdb pretty-printers in tools/dev for Parrot STRINGs and PMCs is now available. (gdb 7.2 or later and Python are required) + c2str.pl and pmc2c.pl improvements result in a noticeably faster build. + Bugs in our Digest::sha256 library and bit-related dynamic ops were fixed by GCI student Nolan Lum. Both now work correctly on 32 and 64 bit systems. - Languages + Ωη;)XD - OMeta for Winxed https://github.com/plobsing/ohm-eta-wink-kzd - Community + tree-optimization by GSoC student Tyler L. Curtis joined the nest and now lives at http://github.com/parrot/tree-optimization . + Plumage now lives at http://github.com/parrot/plumage and is installable. + Christmas went as scheduled. The Parrot team does not take credit for this event. - Documentation + HTML documentation generation has been rewritten and greatly simplified. + We have improved documentation in docs/project/git_workflow.pod about keeping a fork of parrot.git in sync. + Translations of our README in various languages are now in the docs/translation directory, thanks to Google Code-In students. - Tests + A better way to write "todo" tests with Parrot's Test::More was implemented by GCI student Fernando Brito. + Major increases in test coverage of many core PMCs, dynamic PMCs and dynamic opcodes resulted from GCI and the intrepid students it attracted. + Jonathan "Duke" Leto set up Debian Linux x86_64 and sparc32 smokers in the GCC Compile Farm, which continually submit smoke reports with a variety of configuration options and compilers. Thanks, GCC! + Makefile dependency checking is now automatically tested, resulting in a more reliable parallel build. + Coverage tests were improved for platforms with and without Devel::Cover.
Many thanks to all our contributors for making this release possible and to our sponsors for supporting this project. Special thanks go out to Peter Lobsinger and his language Ωη;)XD for breaking nearly everything it touches by mere virtue of its name. Our next scheduled release, 3.1.0, is scheduled for February 15th, 2011 and will most likely not be named "Snowflake".
Thanks are due to the following people who made Parrot 3.0.0 happen. Contributors marked with "(gci)" made contributions as part of Google Code-In. We're grateful to Google for sponsoring GCI and providing us with a small army of energetic and highly capable minions.
Andrew Whitworth, Andy Dougherty, Andy Lester, Bob Rogers, Christoph Otto, Daniel Arbelo, Daniel Kang (gci), Daniel Toma, David Czech (gci), Fernando Brito (gci), François Perrad, Gerd Pokorra, Jim Keenan, Jonathan "Duke" Leto, Julian Albo, Léo Grange (gci), Mariano Wahlmann, Matt Rajca (gci), Michael H. Hind, Natan Yellin (gci), Nick Wellnhofer, Nolan Lum (gci), Paul Johnson, Peter Lobsinger, Tony Young (gci), Vasily Chekalkin, Will Coleda
The sha256sums for the tarballs are:
9e21675b030f33b74cdd8c01d91680d6aa0e688d075ba74780617bdc9a46a6b5 parrot-3.0.0.tar.gz 20be15504420ea37b2a1e19343c3905c68af01c3f9700b868a9c42097cbbef80 parrot-3.0.0.tar.bz2