The Perl 6 Summary for the Week Ending 20020915
    Happy birthday to me!
    Happy birthday to me!
    Happy birthday dear meeeee! 
    Happy birthday to me!

    And, with a single breech of copyright, Piers was free. The production
    of this summary was delayed by my turning 35 on the 15th and then
    spending the Monday train journey reading one of my birthday presents
    (*Dead Air* by Iain Banks, it's jolly good) instead of writing a
    summary. So this morning I left the book at home.

    So, what's been going on with Perl 6. We'll start, as usual with
    perl6-internals.

  Goal call for 0.0.9
    The week before, Dan had asked for some suggestions as to what should be
    the priorities for the 0.0.9 release of Parrot. One of Nicholas Clark's
    goals from last week was the `Careful elimination of all compiler
    warnings, particularly on non x86 platforms, and for builds with
    non-default INTVAL size', and discussions of how to go about doing this
    (and indeed some doing) carried on into this week. There was also some
    discussion about whether IMCC and the Perl 6 compiler should be built by
    default. On the one hand, it would mean that the tinderboxes were
    testing those important subsystems, on the other hand, it was thought
    that there were some people who wouldn't be interested in testing those
    things. Consensus seemed to be that we should just build and test them
    anyway.

    http://makeashorterlink.com/?M2E0225D1

  Scheme Implementation Details
    Jürgen Bömmels and Piers Cawley continued their discussion of how to go
    about implementing a scheme interpreter, and "lambda" in particular.
    Piers made noises about a proof of concept implementation of Scheme that
    he'd made using Perl objects, but didn't show code. (And, I can
    exclusively reveal, will not be showing (the original) code owing to
    badness with backups and lackadaisical use of CVS). Jürgen, who had
    actually made the effort of writing some code, listened politely and
    agreed that Piers' suggestions looked like they might be a way forward.
    Jürgen went away and implemented a first cut at "quote", "define" and
    "set!".

    http://makeashorterlink.com/?O2F0325D1

    http://makeashorterlink.com/?K101255D1

  "chr", "ord" etc.
    Clinton A Pierce restarted this thread and discussed what he'd like to
    see (apart from a pony) from Parrot's equivalent of Perl 5's "pack".
    Clint wondered whether Parrot "pack" should use a template, or if it
    should be implemented as a horde of smaller ops, each handling a
    different conversion, so that a single, Perl level call to pack would
    become lots of op calls at the parrot level. Clint also drools at the
    thought of doing "sprintf" at the parrot level. Aaron Sherman agreed
    with most (all?) of Clint's proposals, and also wants a pony. (Who
    doesn't?). Peter Gibbs went so far as to offer a patch which implemented
    a subset of pack functionality, and was applauded. Graham Barr wondered
    if pack should also allow for packing to 'native' types, which wouldn't
    have to worry about endian issues. Peter thought that would be a good
    idea. Nicholas Clark pointed out that extending the code to cope with
    unsigned integers would be a good idea too.

    http://makeashorterlink.com/?A311215D1

  Lexicals
    Jürgen Bömmels asked a pile of questions about the implementation of
    lexical variables and how one could use them to make a closure. Jonathan
    Sillito provided a mixture of answers and guesses. It seems that we're
    waiting on Dan to firm some things up about lexicals.

    http://makeashorterlink.com/?E221215D1

  IMCC 0.0.9 Runs 100% Perl 6 Tests + Various Results
    Leopold Toetsch has been working on getting IMCC to generate parrot
    bytecode directly rather than going through a stage of generating an
    intermediate ".pasm" file, and had been having some problems with
    `writing out the .pbc, especially Const_Table, type PFC_KEY /
    PARROT_ARG_SC'. Two hours later he announced that he had all the perl6
    tests running successfully within IMCC, but only if GC was turned off
    (there are problems with the longer running tests when GC is turned on).
    Things get progressively worse as first JIT, and then Predereferencing
    are turned on.

    Dan wondered what the GC bug could be. Leo wasn't sure but posted some
    possible pointers. Peter Gibbs thought that at least one of the bugs was
    in continuation.pmc and posted a patch which fixed one of the problems
    when running under parrot. Meanwhile Leo tracked down the bug to a bit
    of code that he'd appropriated from debug.c, so he fixed his IMCC and
    sent in a patch to fix debug.c as well. Applying both patches meant that
    the tests all passed under both IMCC and parrot.

    Dan applied both patches.

    Leo later fixed his problem with writing out a .pbc file directly from
    IMCC, and offered a patch to packout.c which he described as ugly, but
    working.

    I think Mr Toetsch is going go get my 'kudos' award for this week as he
    later patched things to make the 'predereferenced' run mode work again
    (all perl6 tests pass when run with -P). By the way, there appears to be
    no reference to 'predereferenced' in the glossary.

    http://makeashorterlink.com/?R241515D1 -- Problem

    http://makeashorterlink.com/?V551125D1 -- Qualified success

    http://makeashorterlink.com/?H261615D1

  Problem Parsing Builtins
    Aaron Sherman and others have been torture testing the Perl 6 compiler.
    The most comprehensive test is the Builtins.p6m file (now split into
    several smaller files) which provides prototypes (and a smaller number
    of implementations) for Perl 5's built in functions (we don't know what
    Perl 6's builtins will be, so Perl 5 is a good start). Sadly, right now
    the Perl6 compiler can't cope with all the builtins, so there's been a
    game of working out which is broken, the parser, or the code. Aaron has
    posted many short scripts highlighting problems he's found. My
    particular `favourite' is "my $x = 1; $x = +x" sending the compiler off
    into an infinite recursion. Sean O'Rourke has added these issues to his
    queue.

  [RFC] buildings core.ops op_hash at runtime
    Leopold Toetsch posted a proposal for altering the build system to get
    rid of some rather over the top duplication of (generated) code.
    Nicholas Clark liked the idea, but I don't believe the patch got
    applied. Yet.

    Leo also suggested moving the op_info_table out into a separate file
    which could be shared by the various core_ops*.c files.

    http://makeashorterlink.com/?C171325D1

    http://makeashorterlink.com/?I181315D1

  IMCC / Mac OS X problem
    Leon Brocard (yay! Still batting 100% on this one...) has been having
    problems building IMCC under Mac OS X. The individual .c files all
    compile, but bad things happen at link time. Leo, Kevin Falcone, and
    Andy Dougherty all pitched in and, after a flurry of patches, IMCC is
    now building and working correctly under Mac OS X.

    http://makeashorterlink.com/?R591215D1

  Problems with 64 bit integer builds
    There have been problems building Parrot on some of the tinderbox
    systems, and many boxes are not green. Andy Dougherty had some thoughts
    on this, and on how to improve things. Andy's view is that so many of
    the tinderboxes are broken, it's hard to tell whether your new patch is
    making things better or worse, especially when the rebuilds can take
    several hours in some cases. Andy hopes that, once the majority of boxes
    are green most of the time, people will take more notice when one or
    another turns orange or red. In another thread, Andy offered a patch
    which had been a showstopper for some architectures, which would dump
    core during config's alignment detection tests.

    http://makeashorterlink.com/?Q1A1235D1

    http://makeashorterlink.com/?Z6B1335D1

  RFC: How are compound keys with a PerlHash intended to work?
    Leopold Toetsch wondered about the handling of compound keys in PerlHash
    objects. Dan confirmed that Leo's intuition about this was right, which
    was good, because Leo had a patch ready, but he still wondered about a
    some additional vtable methods. So he made some more proposals about how
    to deal with that case. Dan again agreed with Leo's analysis, and Leo
    came up with another patch. Steve Fink apologised for not having done
    this already but his `tuit shipment was confiscated due to heightened
    airport security.' Steve also neatly summarized the conclusions reached
    last time this came up.

    Meanwhile, Graham Barr wondered where any type checking would happen.
    Leo thought it was implicit on lookup and showed code. So did Dan, but
    Ken Fox is still unsure.

    http://makeashorterlink.com/?P2C1325D1

    http://makeashorterlink.com/?N2D1625D1 -- Leo's patch

    http://makeashorterlink.com/?I1E1215D1

Meanwhile, in perl6-language
    The week before, Erik Steven Harrison had wondered what counted as a
    runtime property, apart from "true" and "false". This week Damian popped
    up with a list of ten off the top of his head. "return 255 but undef;",
    or "$name = "Damian" but We_better_call_ya("Bruce")" anyone?

    http://makeashorterlink.com/?F2F1125D1

  Second try: Builtins
    Aaron Sherman's efforts at producing an initial builtins list for Perl 6
    got discussed on the language list as well. Chuck Kulchar had wondered
    how well, if at all, they worked with the current perl6 compiler (they
    don't... yet), and why they were written in Perl. Aaron Sherman posted
    his reasons (maintainability, maintainability and maintainability).
    Nicholas Clark argued that Parrot code wasn't necessarily hard to
    maintain, and also made the case for implementing some functionality in
    C. Aaron thought that, eventually, they're be a mix of different
    implementation languages, with many of the `munge args, call equivalent
    library function' type functions moved out into libraries anyway.

    http://makeashorterlink.com/?N202515D1

  More A5/E5 questions
    Discussions of the Perl 6 rules system rolled on. David Helgason had
    worries about hypothetical variables but keys in a hash and should not
    therefore have sigils in their names at all. Damian pointed out that
    *all* Perl 6 variables were just keys in a hash. David wondered about
    the difference between binding a value to a variable in a containing
    scope and just binding to an entry in the match object (Damian and
    Allison apparently have a really neat idea for this, but it's not yet
    had the Larry stamp of approval). David's last worry was that $0 was a
    rather cryptic name for the match object and shouldn't it have a
    meaningful name like $MATCH (Damian thought that squashing a cryptic
    name in favour of an arbitrary one wasn't necessarily a win.

    Jonathan Scott Duff had wondered (in off list mail to Damian, but Damian
    answered in public) how he could tell "^^" and $$ only to match just
    after and before his platform specific newline sequence. Damian thought
    that suggested rolling ones own "<sol>" and "<eol>" rules. Jonathan had
    also wondered about some of the the binding semantics of nested rules.
    Damian's answer gave him an appropriate `ah! yes!' moment.

    Aaron Sherman had another question about rules and kicked off the
    `Throwing lexicals' (Weren't they a band?) by wondering `How do rules
    create hypotheticals?' Everyone passed up the chance to do a `Well, a
    mummy rule, and a daddy rule, who are very much in love...' joke,
    leaving it to the summary writer.

    I confess, I'm not sure I understand Aaron's concern (about what to do
    when you assign to a hypothetical that doesn't exist in a containing
    scope. I thought you just bound to an appropriately named key in the
    current match object), which makes things a tad tricky, but Luke Palmer
    seemed to understand and wondered if there would be some way of
    declaring that a given hypothetical *wouldn't* infect its containing
    scope(s). Damian popped up again, promising that, once Larry had made a
    decision, he would be unveiling one of the solutions that he and Allison
    have cooked up.

    http://makeashorterlink.com/?H312525D1

    http://makeashorterlink.com/?W122245D1

    http://makeashorterlink.com/?F232265D1

  Blocks and semicolons
    Piers Cawley wondered about blocks, statements and when they need
    terminating semicolons, and kicked off a long thread. To be honest, I'm
    not sure it really went anywhere, but we covered a lot of ground. The
    confusion arises, I think, because the design of Perl6 has moved (rather
    substantially in places) from the design described in some of the
    earlier apocalypses and exegeses. Questions like `is "when" a statement,
    or just a clever function?', `has Larry changed his mind about no
    special cases for blocks?' and others would appear to be standing in
    need of some definitive answers. These will, of course be forthcoming,
    if only in Perl6's final grammar, but we're an impatient lot.

    http://makeashorterlink.com/?L242565D1

  XS in Perl 6
    Aaron Sherman had a few thoughts about XS (well, whatever is going to
    replace it in Perl 6 and Parrot anyway) which he shared with the list.
    Essentially his proposals covered ways in which modules that are
    partially implemented in other languages could be cleanly declared and
    prototyped using Perl syntax rather than the current method involving
    XS, which looks like no other language on ghod's green earth. Brent Dax
    proposed a slightly different syntax, using a "returns" property ("sub
    foo is returns(...)"? Don't you love grammar?). The thread got rather
    long as Brent and Aaron discussed things back and forth, with Nicholas
    Clark interjecting at one point to draw the participants attention to
    the fact that they seemed to be on the verge of reinventing Inline::C.
    Tim Bunch suggested that we `should be thinking about the forward
    declaration syntax and semantics for using existing libraries at this
    stage. [He suspects] that it'll then become clear how to add extra code
    in a simple and natural way.'

    Tim also pitched in with a long quote from Larry about his goals for the
    Perl 6 extension mechanism.

    David Whipp wondered if we shouldn't actually be thinking about
    *Parrot's* XS replacement rather than Perl 6's. Aaron thought not,
    because even when parrot's extension model was fully specced out, we
    still need to worry about how that interacts with Perl at a language
    level. Dan Sugalski disagreed with Aaron, pointing out that Perl 6 XS
    isn't due to be dealt with until Apocalypse 21. Aaron wondered if this
    *really* meant we'd be waiting for `16 more Apocalypses before we write
    code that allows "chdir()" to call the C library function?' Dan thought
    Aaron was worrying unduly and pointed out that "chdir" is, or will be, a
    Parrot opcode. Aaron responded to this by stepping back and defining
    some useful terms and stated his current position in those terms. And
    then the week ran out.

    This one could run and run. Tune in next week for the exciting
    continuation. (Ooh, we haven't done continuations recently have we?)

    http://makeashorterlink.com/?I252215D1

    http://makeashorterlink.com/?Q462215D1

    http://makeashorterlink.com/?C272115D1

    http://makeashorterlink.com/?W482235D1

  Passing arguments
    In a subthread of the `blocks and semicolons' thread, Aaron Sherman
    wondered about passing arguments. Aaron listed five different forms of
    and wondered about how one would mix up the different styles. Luke
    Palmer and Brent Dax both wondered what made one of his special cases a
    special case. Again, it looks like the whole area of prototypes could
    use some cleaning up (but then we're currently working on clues from
    other design documents; hopefully the upcoming Apocalypse 6 will clear
    up many of these issues).

    http://makeashorterlink.com/?N392225D1

In Brief
    Steve Fink committed his IntList patch, and Josef Höök queried the
    creation of an intlist.c file in the parrot core, as his matrix patch
    had been rejected for doing something similar. Nobody has responded to
    this yet...

    Ramesh Ananthakrishnan wondered whether compiling C down to Parrot would
    be a useful thing to do, as a way of magically porting useful stuff that
    was already written in C. Aaron Sherman thought that it wouldn't be
    useful as a 'magic porting' tool, as that would be better done by
    linking to existing C libraries, and that for small fragments, a manual
    conversion would probably be better anyway.

    Ramesh (or should that be Ananthakrishnan) also wondered if it is
    possible to write networking code in parrot. Answer, not yet, but a
    Sockets extension is almost bound to get written at some point.

    Andy Dougherty patched the build's link order to take traditional, order
    dependent, linkers into account.

    Jerome Quelin fixed Befunge (though, with a language like that, how
    anyone could tell it's broken is a mystery) to use the new "chr" opcode.

    Dan Sugalski turned 35 on the 12th. I turned 35 on the 15th. Did I miss
    anyone else's birthday?

    Leopold Toetsch patched "Parrot_vsprintf_s" and after prompting supplied
    a test which failed without the patch in place. (Remember boys and
    girls, if you're offering a patch that fixes a bug, make sure you also
    supply a test that shows up the bug.)

    Jeff Forr wanted to declare next (this) week to be a week of bug
    hunting, but Nicholas Clark pointed out that this clashed with
    YAPC::Europe and maybe it was better to make the week after a bug hunt.
    Jeff agreed.

The Perl 6 Mini Conference in Zurich
    Also going on last week was a Perl 6 mini conference, held in Zurich.
    Larry, Damian, Dan, Allison and Hugo all gathered to sit round a table
    and thrash out some more of the Perl 6 design. I assume that whiteboards
    were also available. As well as doing design work, there was a mini
    conference, complete with talks from all of the above, and due to time
    and money commitments I couldn't make it. However, Paul Johnson could,
    and he wrote me a report, which I present here pretty much unedited.

  A Report, by Paul Johnson
    Last week, Perl 6 moved to Zürich. The bulk of the Perl 6 design team
    was here as guests of ETH, and spent the week, er, designing Perl 6 I
    suppose. But maybe they were out exploring Zürich and its environs. If
    they were, who can blame them? If they weren't, well they'll just have
    to came back another time :-)

    On Thursday and Friday they also managed to fit in a Mini::Conference on
    Perl 6. In attendance were Larry Wall, with his wife, Gloria, Damian
    Conway, Dan Sugalski, Allison Randall and Hugo van der Sanden.

    We were treated to two days of talks and discussion about Perl 6. Larry
    Wall gave the keynote speech to start the conference. As always, Larry's
    talk was interesting and entertaining. The scheduled topic was "Studies
    in the Ballistic Arts", however, Larry said that this title was prepared
    before the talk itself, and the talk, along with the title, morphed into
    one about the Science of Perl. This will be heard again at YAPC::E in a
    few days, and so I won't spoil it by attempting to summarise it here.

    Next up was Damian Conway, who gave his presentation entitled
    "Introduction to Perl 6", covering the first five Apocalypses. Damian
    has managed to acquire quite a reputation within the Perl community, and
    Larry promised that Damian would be more entertaining than he. That was
    quite a promise, but I don't think anyone was disappointed. Damian in
    turn promised that Dan, speaking next, would be more entertaining than
    he. I think Dan was probably too busy to notice, checking in some
    patches or redoing the GC or something.

    Damian noted that the audience was probably more sympathetic than most
    he gave the presentation to, given that they had come to a two day
    conference devoted to Perl 6. There were nonetheless a number of people
    who were worried about the move to Perl 6, and one who was still worried
    about moving to Perl 5! I think that most of Damian's jokes flew high
    over the heads of most people, but I appreciated them at least. I
    suppose that XXXX (4x) hasn't made it to Switzerland. And maybe
    Crocodile Dundee wasn't such a big hit. Even Switzerland's joining of
    the UN two days earlier seemed to go unnoticed, although it is UNO here.
    I think there were a few Java programmers in the audience too, since
    when Damian mentioned about Java having a HelloWorld library about half
    the audience laughed and half seemed a little concerned that they hadn't
    heard of it before. And the suggestion that Archbishop Tutu might not
    like being interpolated was entirely missed. (Should we interpolate $to
    too?) Still, had the jokes been in German, they'd have flown right past
    me instead. And I trust Damian's German accent will stay in place should
    he have occasion to talk about B&D languages in Munich.

    Unsurprisingly, Dan spoke about "The Parrot Virtual Machine". Dan
    actually gave two presentations back to back. The first was an overview
    of Parrot, and the second was a more detailed look at parts of it. This
    was a very interesting look at the fast moving world of perl6-internals
    and seemed to be well received by a knowledgeable audience.

    The second day started with a presentation by Allison Randall entitled
    "Linguistic Basis of Perl 6". Every so often, in perl6-language in
    particular, some discussion about linguistics crops up, often referring
    to tagmemics. Allison explained to us what a tagmeme is, and how it
    relates to the design of Perl 6. I won't pretend to understand it all,
    but apparently tagmemics is the Swiss Army Knife of linguistics, a
    tagmeme is a unit in context, tagmemes are fractal, and both "etic" and
    "emic" are real words, protestations of my spell checker to the contrary
    notwithstanding. I understand that Allison gave this talk at TPC and
    will also give it at YAPC::E, so soon we'll all understand tagmemic
    matrices and be perfectly happy to get dropped off into some uncharted
    jungle.

    Following Allison's presentation there were questions about some minor
    syntactic issues such as why the switch statement used "given" and
    "when" instead of "switch" and "case". The explanation of how nicely it
    read in English was countered with arguments that that wouldn't benefit
    the German speakers so much and that "switch" and "case" were probably
    already familiar to programmers. Damian suggested that maybe a German
    Perl grammar would be in order, to which the inevitable response was
    that a Swiss German grammar was really required, but which dialect would
    it be in? Damian showed how easy it would be to derive your own Perl
    grammar and change keywords if you didn't like them. This was also
    useful to the chap who wanted elsif spelt correctly.

    Damian's second presentation was "Programming in Perl 6" in which he
    took a number of real Perl 5 programs written and regularly used by
    prominent members of the Perl community, and he changed them into Perl
    6. He did this twice, first to produce a minimal delta change and second
    to produce idiomatic Perl 6, at least insofar as Perl 6 has managed to
    acquire idioms. Both of Damian's presentations were punctuated with
    questions to Larry, asking if what Damian had just presented was true
    this week too. In some cases the language design seemed to be taking
    place before our eyes.

    This presentation seemed to allay a lot of fears and everyone seemed
    quite happy with Perl 6 to the extent that Damian finished half an hour
    early. The option was a long lunch or Damian offered to give his
    Lingua::Romana::Perligata presentation. I don't think there was ever any
    doubt, but when Larry mentioned that he had never heard that talk it was
    decided. The talk is normally two hours long, but Damian managed to
    squeeze it into 45 minutes. I think this was probably aided in part by
    most people simultaneously missing the jokes and being comfortable with
    a language which requires the matching of number, case and gender. I
    suspect this is the opposite from most native English speaking
    audiences.

    Finally Hugo was here representing the face of sanity. He told us of his
    plans for Perl 5.10. These included making perl clean, small and fast.
    To this end he intends to rewrite parts of the regular expression
    engine, to oversee the creation of a scheme whereby there are multiple
    blessed perl installations, and to claw back some of the speed that has
    been lost since version 5 was released. In short, to ensure that making
    Perl 6 better, faster and stronger than Perl 5 is as difficult as
    possible.

    Last on the agenda was a question and answer session with the entire
    team. This was especially interesting, in part I think because there was
    not an enormous number of questions. This allowed the answers to be
    complete, to the point of verging on rambling. That's not a bad thing,
    because it let us get past the superficial answers and into more
    philosophical areas. Dan told us why Parrot was called Parrot. Larry
    told us why Perl was called Perl, what it stood for and when, and why it
    was perfect for search engines even before there were search engines.
    Dan told us not to get worried about everything, after all, it's only
    ones and zeros. Damian and Dan alluded to interesting things they could
    tell us, but then they would have to shoot us. Larry speculated on
    whether placing a time bomb in the perl interpreter would help us find
    out who is using Perl and for what. Larry and Damian told us some scary
    things that people do with Perl and Larry told us he flew over here in
    one of them. Larry also told us the secret of leadership (which is at
    least 2000 years old), and talked about how well his goal for the
    community's rewrite of the community is working. And there was a bunch
    of other stuff that I was far too busy enjoying to make notes about.

    All in all, it was a thoroughly enjoyable and informative couple of
    days. Many thanks to ETH Zürich and in particular to David Schweikert
    for organising the event. Attendance was about 90, and profits, which
    look to be around CHF 4000 or so go the the Perl Foundation. Next stop:
    Münich.

Who's Who in Perl 6
    You lucky people, last week you got Dan, this week it's Damian. Next
    week the World! Bwah hah hah ha! Ahem. Without further ado:

    Who are you?
        Damian Conway

    What do you do for Perl 6?

      * I help Larry with the design of the language syntax and semantics
      * I write the Exegeses (which explicate Larry's Apocalyptic designs)
      * I create Perl 5 modules to prototype and demonstrate Perl 6 features
      * I roam the worlds -- both real and virtual -- explaining Perl 6

    Where are you coming from?
        Two years of Electrical Engineering degree, four years of Computer
        Science degree, six years of PhD research, eight years of designing
        programming languages, two decades of teaching programming, an
        abiding interest in human-computer interaction, a deep scepticism of
        formal/theoretical solutions to practical problems, an abiding
        belief that computers and languages were meant to serve humans not
        vice-versa, and the overriding axiom that simpler is better (or, at
        least, simpler).

    When do you think Perl 6 will be released?
        By Christmas.

    Why are you doing this?
        I'd been doing language design for the better part of a decade
        before I started using Perl. So when the opportunity arose to work
        on my favourite language and collaborate with such an
        extraordinarily talented team of people, how could I possibly
        resist?

    You have 17 syllables. Describe yourself.

               Out of the torrent
            an excited voice describes
               the passing wonders.

    Do you have anything to declare?
        You're kidding, right? *How* many hours do you have?

Acknowledgements etc.
    You may have noticed that I'm a little late mailing the summary out this
    week (though if you read this at www.perl.com you're probably wondering
    what I'm on about). Things have been hectic, and I really can't type or
    think fast enough. Normal service will hopefully be resumed this week.

    Thanks are due to Damian for making the time to answer the
    questionnaire, even if he did cheat on the `five words' question. Thanks
    are also due to everyone who has taken the time to send me answers over
    the weeks, apologies for not thanking you immediately. As usual, If
    you're involved on either of the main Perl 6 development lists, please
    consider answering the questions and sending your answers to
    <[EMAIL PROTECTED]>. I'm running low on answers, and I'd really
    like to see responses from (among others) Leopold Toetsch, Steve Fink,
    Brent Dax, and Jeff Goff. I don't *care* if you've already answered
    Bryan Warnock's questions, it's a different summary now.

    Thanks too to the crack team of proofreaders from the rhizomatic.net irc
    server who will hopefully have whipped my grammar into shape by the time
    I think `I really should get my finger out and post this'.

    As usual, if you think that this summary has value, please consider
    sending money to the Perl Foundation http://donate.perl-foundation.org
    and help to support the ongoing development of Perl. The O'Reilly
    Network will, as usual, be paying my publication fee for this article
    directly to the Perl Foundation. If you didn't like the summary, write
    your own; different viewpoints are always welcome.

    If you want to reward me directly, well, iBooks are always nice (but I'd
    be *so* embarrassed if I received one), but so is feedback. Let me know
    what you think.


-- 
Piers

   "It is a truth universally acknowledged that a language in
    possession of a rich syntax must be in need of a rewrite."
         -- Jane Austen?

Reply via email to