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 (http://parrot.org) 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 at http://parrot.org/download, or you can go directly to
http://ftp.parrot.org/releases/stable/3.0.0/ 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 at http://github.com/parrot/parrot 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:
+ A new embedding API is available in "parrot/api.h" and documented in
+ Packfile PMCs were refactored and can now be used to produce runnable
+ 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
+ Ωη;)XD - OMeta for Winxed https://github.com/plobsing/ohm-eta-wink-kzd
+ 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
+ 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.
+ 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