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]