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-10-09

Hello, and welcome to the first Perl 6 Summary to be published on my website rather than its former home at

This week in perl6-compiler

PGE error on failing subrules

Allison broke the resounding silence of the last two weeks by posting about some PGE errors she was seeing. No reply yet.

Tests converted from pugs' rules.t to Parrot::Test::PGE

Yuval Kogman announced that he'd written a script to convert pugs's rules tests into Parrot tests. The resulting test suite still needs some attention, and he outlined what was needed. No response so far on the list.

Meanwhile, in perl6-internals

Variable registers

Klaas-Jan Stol wondered about how the new lexical scheme was going to work. In particular, he wanted to know what was happening to scratchpads. Leo gave a very brief overview of the new scheme, which uses register frames for static lexicals and more conventional scratchpads for dynamic lexicals. As I understand it, they'll look pretty much the same from the PIR writer's point of view. Leo promised a PDD from Chip in the nearish future which would thrash out the details.

Exception handlers and calling conventions

Roger Browne wanted to know if exception handling had changed at the same time as the calling conventions. He presented some code that behaved differently depending on the Parrot version. Leo replied that exceptions still wind up in P5 and Roger had found a bug. So Leo fixed it.

Parrot 0.3.0 TODO

Having successfully got Parrot building on his Cygwin installation, Robert Eaglestone was casting around for something to do and listed a few possibilities. Will Coleda replied that he'd quite like to see a working Parrot equivalent to Perl 5's $0.

Parrot 0.3.0 and Tru64

Jarkko Hietaniemi posted a bunch of issues with Parrot on the Tru64 architecture. Leo addressed them. I'm not sure they're all fixed yet though.

TCL - Compiling

Will Coleda announced that ParTcl is now a compiler. Some tests are failing but Will claimed that this is because Jerry Gay was getting bored with all the tests passing. Jerry was delighted. As Will said later in the thread, the current iteration is doing the bare minimum needed to be called a compiler, but of course that will change over time. Good work Will.


Hey, now he's no longer my editor, I don't have to worry about making sure I don't put his name at the beginning of a sentence! Anyhow, chromatic posted a first cut at BROKEN.pod, the big list of broken stuff. There followed some discussion of how this should be organised in the future, particularly on the RT side. After discussion, it was decided to keep it as a single file for now, but to aim for generating it from multiple RT tickets in the future.

Stack call directives are deprecated

Using .param, .arg, .return, .result and call to do stack based calling conventions is now deprecated. Use save, restore, bsr and ret instead. Or, ideally, use the standard Parrot calling conventions.

Deprecation of rx ops

Brent Royal-Gordon confirmed that he was happy enough to see his experimental regular expression specific ops removed from Parrot.

They've not been removed yet, but they're certainly deprecated.

Software Architecture of Parrot

Klaas-Jan Stol informed us that his Software Architecture professor had approved his proposal to write a paper on the architecture of Parrot. He outlined his plans for the paper and hoped that he would be able to count on people for proof-reading when the time came. Leo thought it was a marvellous idea (so do I come to that, but I didn't say anything on the list.)

ParTcl command line options, etc

Will Coleda kept us abreast of his progress with ParTcl in this thread, initially announcing the new -e flag which allowed for writing one liners. After a certain amount of havering before a final interface arrived, ParTcl also acquired a --pir flag, which dumps the results of compilation to a PIR file.

BASIC compiler

Will Coleda (does the man never sleep?) announced that the BASIC compiler is (sort of) working again with Parrot 0.3.0. There are still problems with the windows display code (the offending code is simply commented out), but code that doesn't need that appears to be working now. He noted that BASIC could really use a decent test suite, right now he was simply working to get programs like eliza2.bas and wumpus.bas working, which is okay as far as it goes, but he is sure that some parts of the language remain broken.

Meanwhile, in perl6-language

my $key is sensitive

While working on implementing a cipher framework for Perl 6, Brent Royal-Gordon realised it'd be really useful if he could mark a variable as 'sensitive' or 'secret', which would force the language to overwrite the memory used by the variable before deallocating it and to try and avoid swapping the value out to disk. There was some discussion -- some favourable, some not -- and a suggestion to refer the question to perl6-compiler.

zip: stop when and where?

The zip \xA5 operator's dead simple isn't it? You just do

    @a \xA5 @b # @a[0], @b[0], @a[1], @b[1], @a[2], @b[2] ...

Well, yes. And no.

Juerd asked what zip should do given 1..3 and 1..6. He outlined 4 distinct possibilities, all of which had their partisans. Interestingly, Damian proposed the most draconian of all the possibilities for the default behaviour, arguing that it was the safest way to go. The suggestion was that you could call zip with an adverb to specify different behaviour. As you can probably guess, there was plenty of discussion.

A listop, a block and a dot

Miroslav Silovic asked about a corner case he'd run across while playing with pugs. It turns out that that slurpy context doesn't quite behave as he expected (or even as it should). Autrijus fixed it. He did, however, wonder about the precedence of


It turns out that Pugs does the right thing with this.


Resumable exceptions continue to make p6l's branes hurt.

Roles and trust

Ovid made some observations about why he felt it would be good if Roles could specify trust. Luke wasn't sure it was necessary, Ovid was pretty sure it was. Your summarizer wasn't entirely sure what they were talking about.

$value but lexically

Dave Whipp wanted to be able to attach a but property to a value in a way that would only make the property visible within the lexical scope in which it was declared. Luke thought it could be done with lexically scoped roles (because a property is just a role). It looked rather ugly to me, but that's life I guess.

Type annotations

Autrijus convinced Luke that we have to nail down the semantics of type annotation without use static. So, prior to nailing anything down, Luke posted a proposal and asked for arguments either way. Not surprisingly, he got several. It's a matter of when and how things should break if called with the wrong type -- some people want more compile time failures, others want more runtime coercion. The phrase 'can of worms' springs to mind.

Sane (less insane) pair semantics

You may remember a few summaries back, Luke posted a modest proposal about demagicalizing pairs. Ingo Blechschmidt posted the results of further discussion of this on the #perl6 irc channel. It all looks pretty sane to me. Discussion of corner cases ensued, and the proposed spec seemed to bear up pretty well. Certainly the initial response was favourable.

Meanwhile, at @Larry

Because so many of @Larry were tied up with the Perl Whirl, there was no Cabal meeting this week.

The Unusual Coda

So long and thanks for all the fish

Don't worry, I'm not about to stop writing summaries. However...

Almost since my very first summary in 2002, these summaries have been published on the O'Reilly network's website. Initially the fee got paid to the Perl Foundation and, more recently, to me (when I remembered to invoice them -- I've only just started invoicing for 2004. That waiting for the dollar to get stronger plan really worked for me. Not.)

At the end of August our editor, chromatic, informed Matt and I that O'Reilly could no longer publish the summaries, effective immediately. Except, my mail system was dropping stuff on the floor at the time (perfect timing eh?). I only found out in the last week. Oops.

So, we're currently without a publisher. My plan at present is to continue to send my summaries to the perl6-announce mailing list and publish my summaries on my own website in the (possibly vain hope) of increasing my AdSense revenue. Summaries will also continue to appear after the traditional 2 week delay on

What I could really use though, is a sponsor. Until last month, the Summary was my only regular paying gig; it didn't pay a lot, but it kept the wolf from the door. If you're interested in sponsoring these summaries, please get in touch

[email protected]'>p[email protected] -- subscribe to Perl 6 announcements, including summaries -- The new home of my Perl 6 Summaries


I'd like to take this opportunity to thank my editors at O'Reilly, initially the prolific Simon Cozens and latterly the estimable chromatic. It's been fun. Hopefully we can do it again some time.

Help Chip -- This must not stand

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 the rest of my website, it's lovely.

Vaguely pretty photos by me can be found at: