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]

Reply via email to