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 of the week ending 20030928

This week, on perl6-internals, stuff was said, code was written, Leo Tötsch was the patchmonster, life got some colour, Amir Karger needs to work harder if he wants to be mentioned in the summary again, Dan Sugalski was our glorious leader.

Meanwhile, on perl6-language, Larry's back (yay!), Austin Hastings' front.

If you've enjoyed this summary please send lawyers, guns and money to...

Ah heck! Try as I might, I can't get away with that can I? Here's the real thing, starting with perl6-internals

parrot -t gets fixed

Will Coleda had some problems that parrot -t didn't seem to solve. This prompted Leo to take a look at the -t behaviour, which, whilst not actually leaking memory, nevertheless used an awful lot of it. So Leo fixed things up and posted an explanation of what got fixed. It looks to me as if said explanation might come in handy for anyone wanting to know how to play nice with the garbage collector. (The essential rule seems to be "Whatever you do, don't turn off garbage collection, you might have to jump through a few extra hoops when it's on, but trust us, it's worth it.")

Pondering argument passing

The prototyped and unprototyped parameter passing powwow perpetuated itself this week. It was decided/reiterated that all flattening happens in the caller and all binding happens in the callee. Steve Fink and Leo finally managed to get onto the same wavelength. Dan emphasised that passing everything in a PerlArray is the Wrong Thing. Parrot acquired a setp Ix, Py op, which does indirect register addressing.

Scary thought of the week: mutable default values.

Trig functions for vtables

Dan started collecting a list of trig functions to hang off PMCs. After an initial bit of quibbling about whether trig functions were really necessary, Leo Tötsch pointed out that they would be reached via a secondary vtable, akin to doing $obj->{vtable}{trig_funcs}{sin} (but not implemented in Perl.)

All hands to the pumps!

Leo Tötsch has been running the parrot test suite and looking for memory leaks. Things are not looking good. It looks like we'll be seeing a bunch of patches to patch the leaks soon. At least, I hope will will.

Notes from the Captain

Dan has been thinking hard about stuff. In particular, he's been thinking about namespaces and calling/return conventions. He's still undecided about how we're going to handle namespaces. The Calling/return conventions however have been settled (but not written up formally yet). Essentially, calling a subroutine and invoking a return continuation are pretty much indistinguishable, so returning a bunch of values will use the same mechanism as passing in a bunch of parameters.


Leo Tötsch is a scary man. 'Inspired' by Damian Conway's Acme::DWIM module, he's perpetrated Parrot::DWIM. You're better off not knowing. Honest.

Loading up bytecode segments

Now that we have dynamically loaded bytecode segments, Dan specified how they should be auto execed on loading (for running set up code etc). Leo and Dan had a short discussion about whether Dan's spec was the Right Spec, the two proposals were deemed equivalent, so Dan's spec was the one that gets implemented.

Another trivial language

Marcus Thiesen announced that he had ported another language to Parrot: URM -- 'Universal Register Machine' which is a teaching language used in German universities.


Dan's wrapped ncurses in parrot using NCI and used that to redo examples/assembly/life.pasm (which was originally written by Dan, but is often misattributed to Leon Brocard) as examples/assembly/ncurses_life.pasm, adding colorized goodness.

Lightweight Languages 2003 CFP

The Lightweight Languages conference LL3 has a Call For Papers out now. Dan posted it to the list.

Meanwhile, in perl6-language

Larry Wall is in the house

Larry popped up on the list for the first time in ages, answering questions about macro arguments and autovivification.

Pondering parametrized operators

Austin Hastings wondered about making parametrized operators. The example he gave was an infix version of strncmp. I can't see what's wrong with doing strncmp $this, $that, cmplen => 4, but Austin proposes a scheme where one could write "Dough" eqn(4) "Douglas" and have it return true. Various other possibilities were discussed.

Acknowledgements, Announcements, Apologies

Sorry it's late.

There's nothing new at Looks like it's turning into a dead blog.

As ever, if you've appreciated this summary, please consider one or more of the following options: