The Perl 6 Summary of the week ending 20031005 Hello, good evening, and welcome from the teeming metropolis that is Newcastle/Gateshead, home of The Angel of the North, the Winky Eye Bridge, the ham and pease pudding stotty and freezing your extremities off on a Saturday night down the Bigg Market.
This isn't (yet) a permanent move, but I'm here, my laptop is here, and there's a summary to write so let's get on with it shall we? As per always, we'll start with the internals list. Disassembler issues Marcus Thiesen had some problems getting the disassembler working (it was throwing segfaults, never a popular behaviour). Leo Tötsch (who else?) fixed it. http://xrl.us/v4g Pondering proper parameter passing The argument passing discussion continued. Leo suggested some changes to PDD03 for Dan to bear in mind when he rewrote it. (Something that was only going to take a few hours last week. Dan? I don't wish to nag you understand.) http://xrl.us/v4h Multimethod dispatch function installation issues Dan's in the process of writing the the Multi Method Dispatch (MMD) subsystem (at least the parts needed for operator overloading) and is scratching his head over what to do when a Multimethod is defined that references some other class that hasn't yet been loaded. He asked for the list's assistance in choosing one of two alternative approaches. The list refused to choose (no surprise there), and suggested a third option. http://xrl.us/v4i Library Loading an initialization sequence Dan is also working on what happens when PMCs are loaded -- how they are initialized etc -- so he posted a long message documenting his current thinking in this area. http://xrl.us/v4j MANIFEST failings, and how to overcome them There's been a few language checkins recently that have broken the MANIFEST, Robert Spier asked for a little help writing a MANIFEST checker which could be used as part of the CVS checkin which would make CVS refused to check anything in unless the MANIFEST was also up to date. Garrett Goebel came up with the goods and now, anyone attempting to check something in that invalidates the MANIFEST will be made to fix it before proceeding. Which is nice. http://xrl.us/v4k Testing Parrot IO (PIO) Last week, Michael Scott submitted a bunch of tests for the Parrot IO subsystem. This week, Jürgen Bömmels responded and he and Michael thrashed out some of the issues arising. http://xrl.us/v4l Waiting for the great renaming Leo Tötsch and others are working on getting things ready for when everything gets moved around and IMCC starts getting built as the one true parrot. http://xrl.us/v4m LVALUE casts considered scary Andy Dougherty found a problem building Parrot with Sun's Workshop compiler, which doesn't like having casts as lvalues. Leo proposed a (mistyped fix) and then ended up implementing a macro, "LVALUE_CAST(type, value)" to do the job reliably. So, if you find yourself wanting to use a cast as an lvalue when working on Parrot, use "LVALUE_CAST" instead. http://xrl.us/v4n Parrot on AIX Adam Thomason has taken on the task of getting Parrot to build on an IBM RS/6000 running AIX 4.3 with VisualAge C 6. He submitted a patch which fixes most things, but there's still one failing test (something to do with negative zero). His big patch was applied, and there's now a little debate about whether -0 should be a valid value. Later in the week, Adam tracked down what was causing the -0s. http://xrl.us/v4o Parrot gets Perl regular expressions Actually, Parrot gets pcre.imc: Leo Tötsch has wrapped libpcre, the Perl Compatible Regular Expression library that almost every language out there (except Perl of course) uses for its regexes. Leo thinks it might be useful for bootstrapping Perl6 rules. Dan doesn't want to have PCRE in core, or for it to be required for any part of building parrot, so the wrapper will be available in our current 'catch all' directory for such things, runtime/. http://xrl.us/v4p Parrot on Itanium Aldo Calpini is busy bringing parrot up on an Itanium box. It's not quite there yet, but it's getting there. Thanks Aldo. http://xrl.us/v4q The beginnings of an extension mechanism Dan's checked in the first part of the extension code for parrot, which lives in extend.c and which will be documented in docs/extend.pod. For now, Dan's post is the only extant documentation. http://xrl.us/v4r Safe mode for Parrot -- Call For Volunteers Dan reckons it's time to start on getting a safe mode for Parrot, which will (eventually) need a lot doing. However, the initial bit is thought to be relatively simple. Dan asked for a a volunteer with enough appropriately shaped tuits to start in on that task. Gregor N Purdy delivered something in slightly less than a day. Leo checked things over and offered a few suggestions, patches got altered and discussion continued. http://xrl.us/v4s Meanwhile on perl6-language The Block Returns Luke Palmer decided to make people's heads hurt with the following snippet of code: sub foo () { return my $self = { print "Block" return $self; } } print $block = foo; print "Main"; $block(); print "End"; The problem has to do with where the block returns to, depending on how you interpret the apocalypse's descriptions of block behaviour (the option that I found most consistent with the Apocalypse was the one that leads to an infinite loop, but I think there's another option). Austin Hastings jacked up the insanity level by proposing a version of "~=" ("~=" is the Perl 6 equivalent of Perl 5's ".=") that works with blocks -- The idea being that you can do $block = { print "First"; } ... $block ~= { print "Second"; } and end up with a block that's equivalent to { print "First" ; print "Second"; } Luke pointed out that you can already do something very like this with "wrap", but that wasn't good enough for Austin. Judging by the responses of Luke and Dan, it looks like this particular extension won't be part of core Perl 6. http://xrl.us/v4t Acknowledgements, Announcements, Apologies Hmm... it looks like Tuesday might be the new Monday as far as getting this summary out to the list is concerned. (At least on those occasions when I spend Sunday night in Newcastle). http://www.bofh.org.uk:8080/ actually got some new content this week. Maybe it's not dead after all. If you found this summary valuable, you might like to consider one or more of these suggestions: * Get involved. There's always room for more people to work on both Parrot and Perl 6 (admittedly implementing Perl 6 is a little further out, but if you want to earn *huge* amounts of kudos, you could have a crack at implementing Perl 6 rules in Parrot assembly before Damian gets Perl6::Rules released). Start at http://dev.perl.org/perl6/ and http://www.parrotcode.org/ for links to the mailing lists and other useful stuff. * Support Larry and co financially by donating to the Perl Foundation at http://donate.perl-foundation.org/. * Tell me how much you enjoy/hate/can't live without these summaries. Suggest improvements, point out grammatical howlers, hire me or just press gifts upon me at [EMAIL PROTECTED]