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 2005-11-27

Another week passes. Another summary is written. Another sentence remains steadfastly in the passive voice.

This week in perl6-compiler

Perl 5 tests for PGE::P5Regexp

Jerry Gay announced that he'd checked in a subset of perl 5.9.2's regexp tests to give PGE something to work on. Right now only 130 of 960 tests are running, in part because the test harness he's using can't quite cope with the test file syntax used for the original tests. I'm sure it won't stay that way or long.

A couple of days later he announced that more tests were being converted and that there were now 360 passing tests and a further 155 or so TODO tests.

Well done Jerry.

PDD 20 and :outer

Leo had some questions about the workings of lexical pads and :outer. He showed a couple of examples in high level language and wondered if his parrot conversions were right. Chip thought that Leo shouldn't worry about implementing the Perl 5 semantics of a named inner subroutine because the way Perl 5 does it is a bug not a feature. Dave Mitchell wasn't so sure.


Leo's working on implementing a DynLexPad PMC to provide 'a more dynamic lexpad' akin to the new deprecated ScratchPad PMC. He outlined his current plans and asked for comments from HLL authors about what they needed.

Punie to AST

Allison has checked in the code to transform PunieGrammar match objects into Abstract Syntax Trees (ASTs). Apparently the set of AST node types she's using isn't quite the same as the Pugs PIL. Hopefully one day we'll have a common AST format, and all manner of things shall be well.

Meanwhile, in perl6-internals


Joshua Hoblitt suggested that Jerry Gay should be added to the RESPONSIBLE_PARTIES file as the person in charge of the test suite. After a small amount of byplay suggesting the file be renamed, the nomination was strongly seconded and Jerry's name added to the list.

Curses and parrot problems?

Josh Isam has been having problems with using the curses library under both Darwin and freebsd. He wondered if anyone had any pointers for fixing things. Leo thought it might be that the parrot ncurses support was getting a function signature wrong somewhere and suggested Josh check that.

Subs may not contain dynamic call info, ever

Repeat after Chip: "Subs don't have callers. Call frames have callers."

After a short discussion with Leo, Chip wrote a short treatise on the relationships between Subs and Closures, noting that they should only hold static information.

Undefined labels

While working on TODO #37590 (catch illegal bsr at compile time), Leo's made parrot rather more picky about labels and how they are used. Essentially, if you weren't doing daft things with labels you're probably all right. If you were, you should probably check this post.

After Leo checked the fixes in (r10168), several PGE tests started breaking. Less than 6 hours later, Patrick check version r10176 in and the tests started passing again. Leo (and I) was impressed.

Exception handlers and calling conventions

Leo posted a brain dump about how to get exception handling to work in Parrot. In particular he wanted help with syntax (exception handling semantics aren't exactly rocket science when you've got a continuation based virtual machine after all). Warnock applied (However, I am reliably informed that next week's summary will have some responses; anyone who suggests that that's because this summary is late will be annoyingly Right).

Test::More and tests in PIR

Not content with having a pure PIR implementation of Test::Builder, chromatic posted his implementation of Test::More in pure parrot. Admittedly the current version should likely be called Test::Less::Is::More, but the journey of 1000 cliches starts with a single step and all that. And that's not all, the fearlessly lowercased one intends to start work on the big daddy, Parrot::Test with an eye to doing even more in Parrot. (Which makes a good deal of sense. After all, the plan is to get Parrot to a point where it can be built without needing a working perl installation)

Meanwhile, in perl6-language

\x{123a 123b 123c}

Juerd had praised Ruud H.G. van Tol's proposal of \x{123a 123b 123c} as a replacement for \x{123a} \x{123b} \x{123c} in rules. Larry wasn't so sure. He suggested \x[123a,123b,123c] but still wasn't exactly happy with it. He also had some thoughts about character class syntax, and the meaning of spaces within a character class spec. This being the language list, the discussion spun off in various directions (all related to rules, just not necessarily that much to do with the nominal subject). It was good stuff though; threads with Larry, Damian, Patrick and Luke in them usually are.

One little tidbit that came out of this was a reminder that the best place to read synopses and apocalypses is at or because they are kept up to date, unlike the ones at

Multidimensional argument list binding

Ingo Blechschmidt's question from the end of last week about multidimensional argument list binding got addressed this week. He, Luke and Larry discussed different aspects of slurpiness. Personally, I expect I'll be using the *@;foo for almost all my slurpy needs.


Ingo Blechschmidt had asserted that for is not strictly a Perl 6 keyword, but is (conceptually at least) at statement control subroutine. Rob Kinyon wondered what other 'keywords' were actually statement control subs. According to Ingo, pretty much everything that's used for control flow modification is a statement control subroutine, but that they'll almost certainly be optimised away to 'primitives' of some sort (after all, it's rather hard to come up with a definition of if, say that isn't at least slightly circular).


Perl 6's stock of agricultural operators continues to grow apace. Not content with gather, we now have till, which replaces the old flipflop operator .. (sorry beachware fans).

Larry had some thoughts on the detailed semantics in response to a question from Ingo. Most of Ingo's problems disappeared when he realised that till would be a macro.


Joshua Gatcomb wondered what was happening to Ponie and if Fotango would continue to fund it. Warnock applies.

Dis-junctive patterns

Gaal Yahas found what looked like a bug in pugs. Larry agreed that it looks pretty entomological. It's probably already fixed in bleadpugs.

Type sigils and a new unary ^ operator

Larry announced that, after all the discussion of coming up with a type sigil and searching for various possibilities, he's ended up back at ::, which was what it was before the discussion started. Apparently the tipping point came when he realised that he wanted ^$x back as a unary operator that's short for 0..($x-1) which would make it easy to write things like:

  for ^5 {...}

without falling foul of fencepost errors etc. Some people didn't like it. Vocally. Larry stood firm. Yay Larry. (Impartial summarizer? What's that then?)

Lazy lists in Str context

Flavio S. Glock reckoned it would be nice if:

  say substr( ~(1..Inf), 0, 10 )

printed "1 2 3 4 5". There was discussion, but I think we stayed firmly in "Not going to happen." Unless I completely misread the thread of course.

Binding of list slice elements

Ingo Blechschmidt is great at posting a few lines of not particularly mind bending code and then following consequences through until either your mind is broken, or you assume that Ingo's must be (more usually the former than the latter, to Ingo's everlasting credit).

This time he followed through on the implications of binding array slices. Nothing from @larry yet, but he posted at the end of the week.

Acknowledgements, apologies and everything else

This summary was made from the finest mailing list posts, each individually plucked and filleted for your delight and elucidation. The alert among you will have noted that today is Wednesday and not Monday, which means we're a little late. What can I say? It's ready when it's ready.

This summary was also brought to you through the labours of Piers Cawley and not Matt Fowles as we had planned when, dewy eyed and innocent, I set off on the long journey down to the wilds of London with the express intention of attending the London Perl Workshop, the International Magic Convention, Sharp's folk club and divers fine gentlemen's outfitters, jewellers, bookshops and quality eating establishments.

All was proceeding flawlessly, until, on Saturday morning as the tube train doors began to close in front of me, I attempted to stop running and discovered that the soles of my shoes had other ideas and fell on my arse, twisted my ankle and scraped an unfeasibly large amount of skin from my shin off on the bottom of the aforementioned tube train. Luckily the driver noticed my plight and did not drive off, taking my left foot with him. Instead he opened the doors and waited for me to dust myself off and board his vehicle, which carried me to Paddington where, after much hobbling and swearing I was bandaged and deposited once more on London's cold and unfeeling streets.

So, I hopped into a taxi (and I use the word hopped advisedly) and repaired straightway to King's Cross and thence home to Gateshead, where my discomfort was somewhat ameliorated by the distraction of preparing this week's summary. I hope to be writing next week's summary as well because the week after I'll be moving house and don't quite know when I'll have my bandwidth back.

Help Chip -- Chip still needs help.

The usual coda

If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl. -- The Perl Foundation -- Perl 6 Development site

Check out my website, it's lovely.

Vaguely pretty photos by me can be found at: