The Perl 6 Summary of the week ending 20031102
    It's Monday morning, the croissants have been baked, the focaccia is
    glistening with all the extra virgin olive oil I poured on it as it left
    the oven and, in the airing cupboard, a raisin borodinsky slouches
    towards full proof (thought at the rate it's currently rising it'll
    probably be Tuesday before I can bake it off), what better time could
    there be to pause and write a summary?

    So, I'll kick off with perl6-internals because, well, it's on the
    summary checklist (which goes something like: 1. Wibble about the
    weather or something before; 2. Start with perl6-internals; 3. Continue
    with perl6-language if it saw any traffic; 4. Make announcements,
    suggest people give money to the Perl Foundation; 5. Make sure Leon
    Brocard gets a mention; 6. Aspell; 7. Mail PODs to http://perl.com and
    a text version to perl6-announce; 8. Profit!)

  NULL Px Proposal
    Right at the end of the previous week, Melvin Smith suggested having the
    initial 'empty' PMC registers all point at a global PMCNull which would
    throw an exception if you tried to invoke any of its methods. Which
    sounds weird, but it does mean that you get a real exception instead of
    a segfault, and exceptions are so much more trappable. Dan liked the
    idea.

    Melvin later posted a patch implementing the idea, which Leo TÃtsch
    fixed up slightly an applied.

    http://xrl.us/2w8

    http://xrl.us/2w9

  Parrot Calling Convention Confusion
    Steve Fink is having problems using an unprototyped call to a prototyped
    function, which he thinks is a reasonable thing to do (and I think I
    agree with him; I can imagine cases where you have a function pointer or
    something where you don't know its exact prototype, but you do want to
    make a call to it so you'd be forced to make an unprototyped call.).
    Melvin Smith disagrees with him. Steve then went on to point out that
    he's still getting failures when the function is both declared and
    called in an unprototyped fashion. According to Leo, this is because
    unprototyped returns are neither defined nor implemented. Which is odd
    really -- I thought they were exactly the same as an unprototyped call,
    but you invoke the return continuation (P1) instead of P0, the other
    registers are set up exactly as if you were making an unprototyped
    function call.

    http://xrl.us/2xa

  A clash of symbols
    Arthur Bergman, Ponie stablemaster, popped up to point out that
    definitions like

        #define version obj.version

    (found in include/parrot/pobj.h if you're interested) did some scary
    things to "Perl_utilize" in the Perl 5 core. Steve Fink stuck his hand
    up to being the person who added the version field (which is apparently
    rather handy if you're debugging the Garbage Collection (GC) system. Leo
    fixed things by applying a "s/version/pobj_version/g" patch.

    http://xrl.us/2xb

  Storing external data in PMCs
    Arthur popped up again asking for help with implementing a Perl5LVALUE
    PMC. It turns out that the API doesn't quite support what he needs.
    After a certain amount of discussion of various options Arthur proposed
    a "Parrot_PMC_attach_data(Parrot, PMC, *void)" extension to the API. He
    didn't *quite* get what he wanted, but he got something very like it
    later in the week.

    I did like Arthur's reasons for starting the serious Ponie effort by
    working on Perl5LVALUEs though: "[because] it is so obscure that it's
    hardly used anywhere and is limited to a few small areas in the core".

    http://xrl.us/2xc

  Screaming Pumpkins Ahoy!
    On Monday, Leo declared that yes, Melvin Smith's proposed Halloween
    'Screaming Pumpkin' Parrot release would be happening. Various people
    promised extra goodies, and a few problems were sorted out with some
    platforms.

    Features were frozen on Wednesday and Parrot 0.0.13 "Screaming Pumpkin"
    was released upon a cowering world at 2003103114:11:46 precisely. For
    all the astonishing speed of the release cycle, there's a lot of good
    stuff to be had in the screaming pumpkin, check out Leo's announcement
    for details.

    http://xrl.us/2xd

    http://xrl.us/2xe -- Leo's announcement

  Header Dependencies
    JÃrgen BÃmmels wasn't entirely happy with the way Parrot's headers are
    set up. Apparently there are some nasty dependency (and crypto
    dependency) issues. He proposed fixing up the headers as much as
    possible to eliminate these issues. Dan and Leo thought it would be
    nice, but Dan thought there wouldn't be that much point in doing it as
    things would probably decay, and pretty much everything internal should
    just be using parrot.h, and everything external should be using extend.h
    or embed.h.

    http://xrl.us/2xf

  Tinderboxen
    JÃrgen BÃmmels triggered a quick bout of tinderbox fixing, as various
    different hardware experts helped to figure out why several of the
    tinderboxes weren't building and testing successfully. Jonathan
    Worthington submitted a few patches to clean up the various Win32
    warnings. David Robins submitted similar patches to clean up some
    Solaris warnings.

    http://xrl.us/2xg

  Wrapping C/C++ libraries
    Anuradha Ratnaweera asked a bunch of questions about how Parrot and Perl
    6 would interface to external C and C++ libraries. The Leo and Dan
    provided the answers.

    http://xrl.us/2xi

  Broken Windows
    (Sorry about the heading, I couldn't resist). Jonathan Worthington
    reported some breakage of NCI on Win32. He and Leo worked through the
    issues in search of a fix.

    http://xrl.us/2xj

  Garbage-collecting classes
    Luke Palmer responded to the comment in last week's summary about the
    way to instantiate an object in class Foo being:

        new P5, .Foo

    He worried that, because classes are now simply integers, there was no
    way to garbage collect class objects if anonymous classes were used
    heavily. Jeff Clites, Leo and Dan all rushed to reassure him.

    http://xrl.us/2xk

  Parrot IO Fun
    On Thursday, Melvin Smith announced that Parrot had fetched its first
    web page. Your parrot can fetch webpages too, just update to the latest,
    check out examples/io/http.imc and the world is yours. Everyone made
    impressed noises.

    http://xrl.us/2xl

  Melvin Smith, tease of the week
    Melvin announced that, in his personal copy of Parrot he has most of the
    Class metadata declaration support working, but that he wouldn't release
    it 'til after the Screaming Pumpkin release. If it's as good as he
    promised, I guess we can wait.

    http://xrl.us/2xm

  Character classification functions
    Noting the presence of the "is_digit" function, Peter Gibbs wondered if
    it would be useful to have a set of "is_foo" functions, or better to
    have a single "is_ctype" function with an enum parameter. He preferred
    the "is_ctype" option, and set about implementing it. Ever the speed
    demon, Dan thought it best to have a reasonable set of "is_foo"
    functions for 'common' chartypes and a fallback "is_ctype" function for
    the rest. Once they were all wrapped up in sensible macros that would
    mean that you didn't have the possibility of a very small speed hit
    getting multiplied up in the middle of a tight loop, but the programmer
    wouldn't have to worry about which types were checked in which fashion.

    http://xrl.us/2xn

  Moving to a new PMC compiler
    Leo TÃtsch posted a patch to switch Parrot over to using pmc2c2, the new
    version of the PMC compiler, but didn't commit it because his Makefile
    was playing up. He asked for some help to fix that before the patch
    could be committed.

    http://xrl.us/2xo

  Summary suggestion
    Ron Grunwald suggested that it might be a good idea to include a
    glossary with each summary explaining what IMCC, PMC and PIR stand for
    (um... Incredibly Magnificent Compiler Compiler(?), Parrot Magic Cookie
    and Parrot Intermediate Representation(?) respectively) and maybe giving
    some explanation of other bits of Parrot jargon. Which is a jolly good
    idea. But laziness dictates that, instead I point you all at
    docs/glossary.pod which, following a gentle nudge on the mailing list,
    covers the above acronyms and more (but sadly some of 'em are missing
    from the Screaming Pumpkin release).

    http://xrl.us/2xp

Meanwhile, in perl6-language
    There was some real traffic. With questions. And Answers! What is the
    world coming to? Admittedly, there were only 10 posts in the week, but
    it's the *quality* that counts.

  Alternately named arguments
    Remember last week, when Luke "Edgecase finder general" Palmer asked
    about named return values and made David Storrs boggle? This week he was
    answered. By Damian. And Larry. Any question that elicits a "Please,
    no!" from Damian has got to be a good question methinks.

    The question revolves around the statement in Apocalypse 6 that a list
    on the left hand side of a binding operator (":=") is interpreted in the
    same way as a function signature. Which means that you can use 'named'
    binding:

       (who => $name, why => $reason) := (why => $because, who => "me");
       # ($name == "me") && ($reason = $because)

    What elicited the "Please, no!" was Luke's logical conclusion that this
    could also mean that you could do:

       (+$name, +$id) := getinfo();

    and the unary "+" would be treated as a 'named only' marker in the same
    way it would be in a function signature.

    Interestingly, Larry was less convinced that this was inherently a bad
    thing, though he did propose that, under most forms of stricture that it
    should only work in the case of:

       my(+$name, +$id) := getinfo();

    because the "my" helps the reader to realise that "+" may not be in
    Kansas any more without having to reach the ":=" and then reinterpret
    everything that went before. (If you've heard Damian, Allison or
    possibly even Larry talking about Perl 6, you've almost certainly come
    up against the concept of "end weight"; this is an example).

    http://xrl.us/2xq

  State of the Conway
    It's been a while since Damian said anything in perl6-language, so David
    Wheeler welcomed both him and Larry back. Damian thanked him, and posted
    a short status report. While he's not been in quite the same state as
    Larry, "mild influenza and a little light pneumonia" don't sound like a
    barrel of laughs either. Anyway, he's back on the case when he can spare
    the time from putting food on the table.

    http://xrl.us/2xr

  Questions about currying
    Joe Gottman had some questions about currying. Luke Palmer and Jonathan
    Scott Duff answered 'em. I'm getting quite good at this summarizing
    malarkey aren't I?

    http://xrl.us/2xs

Acknowledgements, Announcements, Apologies
    Whee! Monday is this week's Monday! What's the betting I can keep it up?

    Those of you who've been reading this summary since almost the beginning
    will remember that I copped the basic 'chunks of text followed by a link
    or two' format/structure(hah!) of these summaries from NTK. Well, this
    Friday's NTK had some coverage of the state of Larry and Damian's health
    in their HARD NEWS section (http://www.ntk.net/2003/10/31/).

    If you found this summary valuable, please consider one or more of:

    *   Join in! The project needs people. http://dev/perl.org/perl6/ and
        http://www.parrotcode.org/ are good starting points for
        information.

    *   Chip in! Money helps keep the wheels turning, programmers like
        Larry, Dan and Damian have families to feed and medical bills to
        pay, finding that money takes time away from getting Perl 6 out of
        the door. By donating money to The Perl Foundation
        http://donate.perl-foundation.org/ you can help.

    *   Chime in! It's always good to get direct feedback from readers. Drop
        me a line to let me know what you think at
        <[EMAIL PROTECTED]>, I promise I'll reply (assuming it's
        not spam, in which case I shall simply wish recurrent hemorrhoids on
        you).

Reply via email to