The Perl 6 summary for the week ending 2005-06-07
    Crumbs. I've remembered to write the summary this week. Now if I can
    just remember to bill O'Reilly for, err, 2003's summaries. Heck, it's
    not like waiting for the dollar to get stronger has paid off.

    Ah well, no use crying over spilt milk. On with the show. Maybe, just
    maybe, darwinports will work its magic and I'll have a working Haskell
    compiler by the time I've finished writing.

This week in perl6-compiler
  Undef issues
    I'd probably forgotten this, but Larry pointed out that, in Perl 6 there
    would no longer be a function "undef()" and a value "undef". Instead
    there'd be a function "undefine()" and a value "undef". But he thought
    that we should usually "fail()" to construct our undefined values.

    <http://xrl.us/gcxo>

This week in perl6-internals
  Keys
    I'm not sure I understood what TOGoS was driving at with a suggestion
    about keys and properties. Luckily Leo, Dan and Chip all seemed to. The
    discussion continued through the week.

    <http://xrl.us/gcxp>

  Loop Improvements
    Oh no! It's the register allocator problems again. One of these days I
    swear I'm going to swot up on this stuff properly, work out whether it's
    really the case that full continuations break any conceivable register
    allocator and summarize all the issues for everyone in a nice white
    paper/summary.

    <http://xrl.us/gcxq>

  HP-UX build notes
    Nick Glencross posted some of his issues with getting parrot up on an
    HP-UX machine. After a good deal of discussion and tool chain fettling
    he got things building and posted a patch to fix the knowledge which was
    promptly applied (r8280 for those of you with the svn chops to know how
    to take advantage of that).

    <http://xrl.us/gcxs>

  mod_pugs status
    Jeff Horwitz announced that mod_parrot now comes bundled with mod_pugs,
    which means that you can now write Apache extensions in Perl 6. I don't
    know about you, but my mind is still boggling.

    <http://xrl.us/gcxt>

  Parrot 0.2.1
    Parrot spent most of the week in a feature freeze for the release of
    Parrot 0.2.1 "APW" which went ahead as planned on the 4th of June.

    <http://xrl.us/gcxu>

  Parrot on Solaris
    Peter Sinnott reported problems with Parrot on Solaris. It turns out
    that different implementations of "atan" behave slightly differently,
    which isn't good. I believe the problem remains unresolved.

    <http://xrl.us/gcxv>

  Parrot on Mac OS
    Joshua Juran's questions about getting Parrot running on MacOS Classic
    were Warnocked.

    <http://xrl.us/gcxw>

  Parrot tests get TODO
    Continuing the drive for consistent testing structures everywhere in
    Perl land, chromatic applied a patch to Parrot::Test which makes TODO
    tests work in a way that Test::Builder understands. Hurrah!

    <http://xrl.us/gcxx>

  Missing MMD default functions
    Dan was somewhat bemused to find that the MMD functions' defaults had
    disappeared when he did a sync with subversion. He wondered whether this
    was deliberate. Turns out that it was. I'm not sure whether Chip's ruled
    that it was Right though.

    <http://xrl.us/gcxy>

  Google's Summer of Code 2005
    Remember earlier when I talked about IMCC's register allocation? Well
    Dheeraj Khumar Arora is looking at working on improving IMCC's
    optimizations as part of Google's summer of code 2005. The usual thread
    ensued.

    <http://xrl.us/gcxz>

  Building nci/dynclasses on HP-UX
    Not content with getting Parrot to build on HP-UX, Nick Glencross next
    set his sights on getting nci/dynclasses working on HP-UX. It sounds
    like there'll be a patch forthcoming some time next week.

    <http://xrl.us/gcx2>

    <http://xrl.us/gcx3> -- Nick paints the big HP-UX picture

  Announcing amber for parrot 0.2.1
    Roger Browne announced another new language that targets Parrot. It's
    called amber, and it borrows a good deal of syntax and semantics from
    Eiffel with a large sprinkling of Ruby for good measure.

    <http://xamber.org/> -- the Amber website

    <http://xrl.us/gcx4>

  A note WRT exception handlers
    Leo posted a quick discussion of the correct use of exception handlers
    in Parrot. Essentially, the rule is, your exception handler should jump
    back to the point just after the exception handler block:

            push_eh except_N
              # Code that might fail
            clear_eh
        resume_N:
            ...
        except_N:
            ...
            goto resume_N

    Easy eh?

    <http://xrl.us/gcx5>

Meanwhile in perl6-language
  The reduce metaoperator thread
    Remember when I discussed this thread two weeks ago? It's still going
    strong.

    Larry ended up stating that there will be an optional property
    "identval" on operators which will be set by default on all operators
    with obvious identity values. Or it might be called "initvalue".

    <http://xrl.us/gcx6>

    <http://xrl.us/gcx7> -- Larry makes up his mind

  Construction clarification
    Carl Franks wondered about how object constructors would work. It turned
    out that the code he'd carefully written by hand pretty much described
    the default behaviour. Damian and Larry provided details. Hopefully some
    keen p6porter has already incorporated any new information into the
    appropriate synopses.

    <http://xrl.us/gcx8>

  A comprehensive list of perl6 rule tokens
    Patrick responded to his own post last week to clarify some things about
    the capturing behaviour of various rule types. He, japhy and Thomas
    Sandlaß thrashed out the gory details.

    <http://xrl.us/gcx9>

  Default invocant of methods
    Larry addressed Ingo Blechschmidt's questions about class methods.

    Class is a role? My head hurts.

    <http://xrl.us/gcya>

  "returns" and context
    Gaals Yahas wondered how to specify the signature of a context-sensitive
    function. The consensus seems to be to use a junction, like so:

       sub foo() returns Str|Int {...}

    <http://xrl.us/gcyb>

  Declarations of constants
    Adam Kennedy had wondered how much compile time optimization of
    constants would happen. Damian thought not as much as Adam thought, but
    you could use macros to get more optimization if you needed it.

    <http://xrl.us/gcyc>

  Time functions
    The good thing about "localtime" et al is that everyone knows them. The
    bad thing about them is that they're at such a low level that you either
    end up reinventing wheels, getting it wrong or boggling at the size of
    the library you need to install to get access to good Time manipulation.
    I wonder what Perl 6 will end up with.

    <http://xrl.us/gcyd>

  Empty Hash
    Luke wondered if "{}" should be an empty hash rather than empty code,
    and why "{ %hash }" no longer makes a shallow copy of hash, but code
    that returns %hash. There was some discussion, but no answers from
    anyone else on the design team.

    <http://xrl.us/gcye>

  "chars" in a list context
    Joshua Gatcomb revisited a long Warnocked subject. He wants

        @chars = 'hello'.chars; # <h e l l o>

     ie. In a list context, C<chars> should return a list of the characters in 
the
     string. Stuart Cook thought it was a good idea. 

    <http://xrl.us/gcyf>

  Transparent / Opaque references
    Um... I'm not sure what Thomas Sandlaß and Juerd were talking about.
    I'll tell you what, let's swap places: you read the thread and write me
    a summary of it.

    <http://xrl.us/gcyg>

  Idea for making @, % and $ optional
    Millsa Erlas wondered if it would be possible to make variable sigils
    optional. Short answer: yes, with a pragma, and probably left for CP6AN.

    <http://xrl.us/gcyh>

  Using rules
    BÁRTHAZI András wondered about using rules in web templating system he
    was working on. Aankhen supplied an answer.

    (Look, it's two messages, any summary I wrote that told you more than
    the above sentence would be about as long as the original messages.)

    <http://xrl.us/gcyi>

  (multi)subroutine names
    Dakkar wondered how he could get at the long name of a multi sub. Rod
    Adams thought it'd be:

        &foo<Array, Int>
        &foo<Hash, Int>

    but also thought it might have been changed. Thomas Sandlaß agreed that
    it had changed to:

        &foo:(Array, Int)
        &foo:(Hash, Int)

    Easy.

    <http://xrl.us/gcyk>

  Flattening arguments
    BÁRTHAZI András wondered about the behaviour of flattening arguments in
    Pugs when compared to that described in Perl 6 and Parrot Essentials.
    Answer: The book's right, they're just not implemented in Pugs. Yet.

    <http://xrl.us/gcym>

  "return()" in pointy blocks
    Oh boy. Ingo Blechschmidt opened a can of worms when he asked about
    return within pointy subs. However, because the worms were slow getting
    started you'll have to wait for Matt's summary next week when he
    explains:

        sub callcc (Code $code) { $code(-> $r {return $r}) }

    <http://xrl.us/gcyn>

Meanwhile, in another place
    Once upon a long time ago, Jon Orwant threw coffee cups and swore. And
    Perl 6 was born. Later that afternoon, Dan Sugalski started doodling
    design sketches for what was to become Parrot. Parrot's first README in
    CVS dates from August 11th 2001 and the first mailing list post about it
    that's archived is from August the 1st 2000, but that's a reply...

    As well as being Parrot's original developer, Dan is also Parrot's first
    commercial user.

    Last week he announced in his blog that, having already given up his
    designer's hat earlier this year, he's stopped doing any parrot
    development. The plan is that he'll be publishing a few design documents
    and historical explanations of various bits of Parrot design on his
    blog, but otherwise, that's all he wrote.

    I'm not the first, and I'm sure I won't be the last to say this. Dan,
    thank you very much for all the work you've put into Parrot over the
    years. Good luck with whatever you do next.

    <http://xrl.us/gcyo>

The end... for now
    If you find these summaries useful or enjoyable, please consider
    contributing to the Perl Foundation to help support the development of
    Perl.

    <http://donate.perl-foundation.org/> -- The Perl Foundation

    <http://dev.perl.org/perl6/> -- Perl 6 Development site

    Or, you can check out my website. Maybe now I'm back writing stuff I'll
    start updating it.

    <http://www.bofh.org.uk/>

    Vaguely pretty photos by me can be found at:

    <http://xrl.us/gcyp>

Reply via email to