I'll send this out more widely on Tuesday, but here it is... --------------
A great crowd of people were standing all round the Stone Table and though the moon was shining many of them carried torches which burned with evil-looking red flames and black smoke. But such people! Ogres with monstrous teeth, and wolves, and bull-headed men; spirits of evil trees and poisonous plants; and other creatures whom I won't describe because if I did the grownups would probably not let you read this book---Cruels and Hags and Incubuses, Wraiths, Horrors, Efreets, Sprites, Orknies, Wooses, and Ettins. - "The Lion, The Witch and the Wardrobe", CS Lewis What have we unleashed? As promised, the latest release of Parrot, 0.0.3, contains support for complex, language-specific data types to be created. PMCs, or Parrot Magic Cookies, are abstract object data types, with class libraries written in C specifying their behaviour. To start you off, we have implemented nice, happy, polymorphic Perl undef, Perl Integer, Perl String and Perl Number classes. There's also a default class you can inherit from if you're rolling your own data types. See docs/vtables.pod for all the juicy details. That's not all, however... We've more documentation, examples, a minature Scheme implementation, support for pushing and popping onto register and global user stacks, subroutine support for Jako, better platform support, and a whole lot more. See the NEWS and ChangeLog files for the rest. You can get the source tarball in (currently) two different ways: From CPAN: http://www.cpan.org/authors/id/S/SI/SIMON/parrot-0.0.3.tar.gz http://www.cpan.org/src/parrot-0.0.3.tar.gz (once the mirrors have updated) From CVS: See the Parrot CVS home page at http://cvs.perl.org/ Once you've unpacked parrot, you should be able to run "Configure.pl" and "make test_prog", and then run some tests: perl Configure.pl make test_prog make test Take a look at docs/parrot.pod for where to go from there. The special kudos for this release goes to Jeff Goff, who produced most of the vtable methods for the Perl Number and Perl String classes. There are two major goals for Parrot 0.0.4; first, I'd like to see the string handling stuff all sorted out, by bringing the support for UTF8, UTF16 and UTF32 up to the current standards of support for plain old ASCII. Secondly, we want array and hash support. Amazingly, Jeff has apparently already done most of this. Patches should be sent to the perl6-internals mailing list, where I'll take a look at them and apply them to the CVS tree. As time goes by, people who regularly submit good patches will be given committer access to the tree, and can help me out applying other patches from the list. Have fun, Simon -- new P1, PerlString set P1, "Just Another Parrot Hacker, " print P1