This file is part of the Perl 6 Archive

Note: these documents may be out of date. Do not use as reference!

To see what is currently happening visit

The Perl 6 Summary for the Week Ending 20020929

Okay, this is my last summary before I take a couple of week's holiday away from any form of connectivity. Will I cope? Can my system stand going cold turkey? Can you live without my summaries?

Luckily, Leon Brocard has been volunteered to step into the breach and produce summaries for the next couple of weeks.

Oh yes, due to my being a lazy swine and not reading release notes, combined with a new version of Spamassassin no longer delivering mail by default (now it silently drops mail on the floor in cases where it had previously just delivered the mail), I may be missing some messages from this week. Sorry.

We'll kick off, as usual with happenings on the internal list:

Of Variables, Values and Vtables

Dan stopped travelling (for a while at least), and listed the current short term goals for Parrot. They are:

  • Finish up the calling convention changes
  • Spec the PMC changes
  • Spec the vtable changes
  • Get exceptions fully defined and a preliminary implementation

and promised the variable/vtable stuff in the `next day or so', with the calling convention stuff a little earlier or later. Leo Toetsch offered some his thoughts on vtable methods for _keyed opcodes.[]


Leopold Toetsch provided a patch which `fixes all currently known problems [with respect to] IMCC/Perl6'. Andy Dougherty had some problems with the patch dumping core, possibly because of platform specific issues, and Steve Fink realised that there was an overlap between this patch and one he'd been working on. The patch has not yet been applied, but work continued.

Fun with intlists

Leopold Toetsch showed some benchmarks of intlist against PerlArrays, the difference is stunning. The intlist based test is some ten times faster than PerlArray, with most of PerlArray's time being spent allocating memory. Leo suggests using intlist as the PerlArray base class.

Having got bragging rights for one speed up, Leo sent in a second patch which gave another ten fold performance boost. Sean O'Rourke had a few questions about performance in typical usage and wondered if, we shouldn't look at using borrowing from SGI's STL implementation of a dequeue (double ended queue). Leo was ahead of him there; his second patch was already using the trick Sean had suggested.

Functions in Scheme

Jürgen Boumlmmels sent a pre patch which gets Scheme functions working. It's built on top of an early version of Sean O'Rourke's scratchpad.pmc, so be careful applying the initial patch. Sean hoped that it would be be easy to reconcile Jürgen's changes to the scratchpad pmc with the changes he'd made since he sent Jürgen his early code. Jonathan Sillito asked why the scheme interpreter maintained its own environment stack rather than use the pad_stack. Apparently the current pad_stack is very closely tied to Sub.pmc, which doesn't quite offer the semantics needed for scheme functions. Also, the pad_stack makes it tricky to implement set! and define correctly.

Dan chimed in asking everyone to hash out what they needed from scratchpads and lexical variables; once we have that nailed down it should be easy to get everything designed and implemented reasonably quickly, so Jürgen and Sean came up with a list between them. -- The patch -- Its description

Perl6 on HP-UX 11.00

H Merijn Brand was having trouble getting Perl 6 to work on HP-UX. It was initially thought that this was a problem with the version of perl he was using, but was eventually tracked down to a problem with make test; the tests passed when Merijn did perl6 --test. However the thread also covered making sure that the Perl6 build process rebuilt the Grammar if appropriate. There's also a theory that there's a problem with IMCC generating .pasm files.

Leopold Toetsch put his hand up for causing the problem, and submitted a patch to fix things. Applied.

The status of Leopold Toetsch's patches

Leo wondered what's happening with the pile of patches he's submitted this week. At the time he made the post, he had 15 patches outstanding (or is that `outstanding patches'?) and, as a result several of the patches were applied. Steve Fink voted that Leo should be given commit access to CVS and Leo was grateful for the vote of confidence.

Leo later sent in yet another patch for intlist, which after a short quibble from Tom Hughes, and a correction from Leo, was applied.

Of PMCs Buffers and memory management

Worker of the week, Leo Toetsch posted a bunch of questions about PMCs, Buffers and their associated memory management. Firstly, he wondered why there was a separation between the two. He commented that `If PMCs and Buffers are unified, it should be possible to mark [during a GC run] in one recursive process'. And there's the rub; we don't like recursion. PMCs are structured in such a way that a PMC tree can be walked in iterative fashion, which means that GC can be done in pretty much constant memory. Leo had a bunch of other questions, that were mostly answered by Mike Lambert, which drew supplementary questions from Leo. Both Mike and Leo agreed that the changes needed to Parrot for unification would lead to massive patches; but that's not a reason for not doing the work.

Add Stone Age Exception Handling

This should possibly really go in the 'In Brief' section because there was only one post in the `thread'. But it looks like an important post. Brent Dax sent in a patch which `adds a very, very rudimentary form of C-level exception handling' to parrot. Brent Reckons that brings parrot up to slightly better than `homo erectus' quality exception handling.

Meanwhile, in Perl 6

I can't remember who it was christened this week's monster thread `Paren Madness', but they weren't wrong. The `Here, we can build a list like this...' thread continued on its merry way. I'm afraid I pretty much stopped reading once it became apparent that the only thing that was going to stop the madness was Larry making a pronouncement. Eventually Dan stepped up and asked if someone could summarize the discussion, maybe with a few possible conclusions, and then leave it for a while 'til Larry got back. Luke Palmer wrote it up and offered a suggestion which looks at first glance to be sane, and which seemed to be well liked.[]

For loop and streams

In pretty much the only other substantial thread of the week, `[email protected]' had some problems with the new for loop using multiple counters, and wondered if this was because of problems with the current Perl6 implementation, or because of problems with his understanding. It turned out that it was a problem with Sean O'Rourke's understanding when he implemented the Perl 6 grammar; he'd missed something in the appropriate Apocalypse. There also seems to be a problem in that the current behaviour is mostly defined with hand waves, which is great when you're doing the broad brush design, but less great when you're trying to implement the language.

In Brief

Leopold Toetsch patched packfile.c to stop monkeying with the internals of key structures.

Parrot T Shirts, based on Andy Wardley's parrot logo design, are now available from Cafe Press at any proceeds go to YAS/TPF.

Simon Cozens found, and patched a problem with IMCC's `ostat' structure, which clashed with a structure in Darwin's stat.h.

Leopold Toetsch has been playing with using Doug Lea's memory allocator (see in Parrot. Apparently it makes `life' run faster, but appears to double the memory footprint.

Steve Fink sent in some patches for IMCC, Leopold Toetsch did some cherry picking and released an integrated patch.

Erik Lechak wondered if there was a getting started guide to parrot, and if there wasn't, how should he go about writing one? My tip: Do it, use the tools you prefer to make the kind of guide you would have welcomed finding when you first came to parrot. Just don't use proprietary formats. Heck, it's how I started writing these summaries.

Who's Who in Perl 6

  • Who are you?
  • Piers Cawley

  • What do you do for/with Perl 6?
  • I write the summaries every week, and try and contribute to perl6-language and perl6-internals when they're discussing things I know about.

  • Where are you coming from?
  • I've been a happy Perl user for since around 4.036, initially using it as a shell and awk replacement for system administration tasks, then moving over into a programming rôle where I got heavily into OO Perl. As so many others have said, Perl 5 fits my brain better than anything else I've been paid to do, but Perl 6 offers the chance to make that fit much closer.

  • When do you think Perl 6 will be released?
  • Sooner than we all think. Later than I want.

  • Why are you doing this?
  • Someone had to. I missed Bryan's summaries and decided that, if nobody else was going to volunteer it might as well be me.

  • You have 5 words. Describe yourself.
  • Just another opinionated Perl hack.

  • Do you have anything to declare?
  • I've run out of answer sets to this questionnaire. C'mon people, your summarizer needs you.


Thanks to Piers Cawley, for taking time out of his massively busy schedule to answer the questionnaire; to Leon Brocard, for not squawking too loudly when he got volunteered to do the next two summaries; to Leo Toetsch, for a fantastic number of patches this week; to Simon Cozens, for coming back to Perl 6; to the lovely Gill, for continuing to put up with me, day in, day out...

Hmm... check out the Oscar speech.

I'm trying an experiment this week, community proofreading. I'll run the speelchucker over this summary and release it to the ravening masses. Who knows, maybe it'll make sense. It does at least have the right date at the top of the page.

Once more, if you think this summary has value send money to the Perl Foundation and feed back and/or T?iBooks to me, mailto:[email protected] As usual, the fee paid for publication of this summary on has been donated directly to the Perl Foundation.