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 Summary for the week ending 20021222

Hello, good morning and welcome to the Christmas edition of the Perl 6 summary. For some reason I have convinced myself to sit here on Christmas Eve writing a summary for all you crazy kids out there who hang on my every word. Plus, it beats wrapping all the presents and last minute panic shopping.

So, let's get perl6-internals out of the way first.

The Road to 0.0.9

The first half of the week saw a feature freeze in the run up to the release of Parrot 0.0.9, so people spent their time trying to track down and fix various tinderbox issues and other bugs.

Steve Fink worked on trying to get the NCI (Native Call Interface) tests to work properly.

Simon Glover and Leo Tötsch worked on tracking down a GC bug that was causing problems for the scratchpad tests.

Andy Dougherty is having problems getting languages/perl6 to pass its tests. Apparently part of the problem is that the undef function isn't fully defined.

Andy also found problems with sprintf and 64 bit INTVALs (fixed by Brent Dax), PMCs and 64 bit INTVALs (fixed by Leo Tötsch), PerlHashes and gcc-2.95.3 and 2.8.1 on Solaris (confirmed as a problem with other versions of gcc on Solaris by Joshua Hoblitt), dependency issues between Jako and IMCC from a clean directory and problems with the Jako life implementation.

Bruce Gray sent a pile of fixes for Win32 systems, covering GC and build problems.

Compiling to ParrotVM

Klaas-Jan Stol is thinking of writing a compiler that targets Parrot for his Bachelor's in Computer Science, probably a TCL compiler, and he asked for suggestions and tips.

David Robins made a few suggestions and pointed out that parrot is a moving target. Dan protested that it wasn't moving that much ("If I 'adn't nailed it to the perch, it'd've muscled up to them bars and... VOOM!") and said that he thought a TCL to Parrot compiler would be great. Will Coleda put up a URL for his first pass at such a beast and asked that we be gentle with him (he put up a URL for his second pass later, which is the link below). Gopal V pointed out that IMCC may be a better target than Parrot assembly as that took care of register allocation and generally helped programmers retain their hair and also suggested that, if the compiler was written in C then DotGNU's TreeCC would be worth looking at. Tanton Gibbs, who is working on a C++ compiler agreed that TreeCC is 'an extremely nice system' that he recommended highly.

Register scanning

Apologizing for reopening the register scanning can of worms, Steve Fink wondered about the requirement that all Parrot GC implementations scan all hardware registers for live pointers. Apparently this is a real problem with, for example, the IA64 architecture. He proposed that configure probe for systems that would support register scanning GC, but that the default implementation should use a 'registration' system. He followed this up with a 'naive' implementation of such a system. Jason Gloudon suggested another scheme that I'm afraid I didn't understand to implement 'accurate' GC.

Returning a new PMC from ops

David Robins wondered about the cleanest way to return a new PMC from an op. He and Leo Tötsch thrashed it out.

Parrot v0.0.9 "Nazgul" released

Steve Fink announced the release of Parrot version 0.0.9, aka "Nazgul" complete with a long list of new features, and the usual call for further assistance. Well done everyone. As Steve says, Parrot is getting dangerously close to being really usable...

Meanwhile, in perl6-language

It was quiet... too quiet. Only 48 messages in perl6-language, maybe we're all keeping quiet so as not to distract Larry from writing the next Apocalypse.

Comparing Object Identity

This thread (along with every other thread in the language list this week) continued from last week. Dan pointed out that using long lived object IDs (ie. unique for all time) would be expensive, and reckoned that the basic approach should be fast and good enough for the common case. Piers Cawley wondered if doing object 'identity' comparison with a method (eg: $$other_obj);) wasn't actually the best way forward. (Piers had been applying his OO rule of thumb -- if you're not sure of how to do something, take a look at a Smalltalk image). Dave Whipp proposed an adverb syntax ($a eq : ID $b) which would be generalizable:

   $a eq:i $b  # compare, case insensitive
   $a eq:w $b  # compare, ignoring whitespace differences
   $a eq:ID $b # are they the same object?

Which Austin Hastings (at least) liked.[]

Everything is an object

Piers Cawley and Dave Storrs went back and forth a few times about left to right and right to left 'pipelines' in Perl 6. Piers was arguing that Perl5ish right to left pipelines (@out = grep rx/.../, map {...} @in should work without any extra syntax in Perl 6 and would be happy if that meant the only support for left to right pipelines was @out ={...}).grep(rx/.../). Dave agreed with Piers about right to left pipelines, but wants a less ugly left to right syntax. Both of them would like to see an 'official' Collection hierarchy, which led Simon Cozens to suggest that we're getting close to inventing Ruby. Andy Wardley didn't think this was a bad thing, and Dan pointed out that actually we're getting closer to inventing Smalltalk, which was fine, so long as we don't end up inventing Lisp.

Dan Sugalski isn't sure about the value of a special syntax for left to right pipelining and, after a certain amount of back and forth provided a really good summary of why.

After that I get the impression that we're getting a little bogged down. Everyone's stated and restated their position and I'm not entirely sure that we're moving forward. It's probably time to appeal to Larry, but he's busy writing an Apocalypse and doing the Christmas thing.[]

Is it required to use type declarations

The week before, Dave Storrs mentioned that he was worried that Perl 6 was moving further and further away from Perl 5's (almost) typelessness and wondered if type declarations would be required in Perl 6. Piers Cawley pointed out that there's a difference between typed variables and typed values, argued that typed values were the most useful. He then gave a rundown of where he saw utility in declaring variable types with the 'safety' issue way down at the bottom (of the three entry list, it'd be lower down if I could think of any other reasons though).

In Brief

A discussion of Leon Brocard's Curses Life turned into a discussion of the merits of 'caller saves' calling conventions. Leo Tötsch thinks it's suboptimal, Piers Cawley doesn't, pointing out that there will always be cases where one style loses, but that caller saves makes tail call optimization and continuations a good deal easier to implement.

Jerome Quelin upgraded his befunge interpreter giving it a big version number bump to 0.1.0 from 0.07 because he's now using an array of PerlArrays instead of an array of strings.

Leo Tötsch continued down the road towards unifying buffers and PMCs. (Which covers a lot of ground in one sentence...).

Jason Gloudon fixed a bug with PARROT_GC_DEBUG

Who's Who in Perl 6

I've been getting a few 'strange' entries in the questionnaire inbox recently from names I don't recognize so I've decided to summarize the answers:

  • Who are you?
  • I know this will come to you as a surprise and I do not wish to impose upon you, but I am Doctor Fred Mbogo, the only son of the former minister of the Nigerian treasury, Kevin Mbogo.

  • What do you do for/with Perl 6
  • Gather MILLIONS of ADDRESSES for you to deliver your email AD to so many People at such a low cost!!!

  • Where are you coming from?
  • Nigeria

  • When do you think Perl 6 will be released?
  • WHILE stocks LAST!

  • Why are you doing this?
  • Because l wish to solicit for you assistance in a transaction which l strongly believe will be of mutual benefit to both of us.

  • You have 5 words. Describe yourself
  • Red Hot Lolitas for you!

  • Do you have anything to declare?
  • This message isn't spam. Honestly. Really. If you don't believe me send mail to addresstrap at scum-sucking-spammer dot com and I'll send you lots more mail that isn't spam.


Well, Christmas is coming, the goose is getting fat so, for once this didn't get written on a train. It got written sat in a comfortable chair with the ginger ninjas (our two new kittens, Sully & Mike) tearing up the place.

I'd like to say a big "Go disembowel yourselves over a red hot brazier you worthless pustules on the backside of humanity" to the folks who spam the questionnaire mailbox with pointers to photos of naked 12 year olds, stock tips and offers of a share of millions of dollars of fairy gold. Seriously folks, Christmas is a season of Peace and good will to all men so, do the world a favour and remove yourselves from it.

Ahem. Merry Christmas to everyone else, have a great holiday.

Proofreading was done by the ever lovely Aspell and the ever ugly Piers Cawley. Between them, they probably screwed it up again.

If you're not a pustule on the backside of humanity, please consider answering the questionnaire and sending it to mailto:[email protected]

If you didn't like this summary, what are you doing still reading it? If you did like it, please consider one or more of the following options:

  • Send money to the Perl Foundation at and help support the ongoing development of Perl 6.
  • Get involved in the Perl 6 process. The mailing lists are open to all (except the aforementioned pustules). and are good starting points with links to the appropriate mailing lists.
  • [email protected]'>Send feedback, flames, money and/or a household robot to do the chores (we're in the future now, everyone should have robots) to mailto:[email protected]

The fee paid for publication of these summaries on is paid directly to the Perl Foundation.