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

This week on Perl 6 (17-23 June 2002)

by Piers Cawley, 020020624


It's been a while since the last Perl 6 digest and summarizing everything that's happened since then would take, ooh, a while. So I've punted on that, and just pretended that the last one was published this time last week. (Well sort of, sometimes I'll refer back to earlier posts in threads that continued this week.)

More 6PAN musings: local namespaces

John Siracusa a bunch of questions about the naming of local modules in Perl6, pointing us at java's style of, which makes sure that one organizations templating system won't clash with that of another. Various schema were proposed, then Larry and told us that there'd be more than one way to do it, along with a way of aliasing names to avoid RSI. Aaron Sherman warned us away from reinventing X.whatever it was addressing.

After some discussion about the merits of long, guaranteed unique module names versus a standardized module naming schema, Webb Sprague a CPAN "Curation Project" be formed. The idea being that there'd be the more or less unstructured seething mass of CPAN, and then there'd be a group of "highly managed, by real people" modules that were promoted from that pool to an "Extended Perl Library". Which led to a discussion about where you'd find the "real people" and a certain amount of silliness about acronyms.

Favourite quote of the thread:

Regexes and untainting

Miko that, by default regexes shouldn't untaint, and proposed a 'safer' mechanism for managing taintedness. Jonathan Paton that some of this is already possible in Perl 5. He also came up with the idea of marking different rules as untaint safe or unsafe when they are defined.

what's new

In an effort to understand the state of Perl 6, raptor a really good summary of some of the changes from Perl 5 to Perl 6 asking if he'd got the right end of the stick. Damian a few things and generally confirmed that the stick was correctly oriented.

Meanwhile... over in perl6-internals

latest Parrot

Luke Palmer why the latest ChangeLog entry was from March 19, and was the Parrot he'd just got from CVS really the latest version. Dan explained that it was, but that the ChangeLog wasn't being kept up to date 'for some reason', which triggered a small amount of kvetching about CVS. Robert Spier (sensible chap) that all non trivial patches should contain a 'human readable' changelog entry along with the patch and at least one test. Ask agreed. And so do I.

Perl6 grammar

Melvin Smith posted a towards being able to parse Perl 6. Jerome Vuillon pointed us at the beginnings of a that he was putting together using yacc, and Sean O'Rourke his Parse::RecDescent based grammar sketch. And there was much rejoicing.

Irrational fear of macros

Melvin Smith a joke in the perl 5 source about the sheer number of macros in the perl 5 source. Which provoked a variety of serious responses. Dave Goerhrig that macros weren't inherently bad, but having hordes of them wasn't necessarily good, and his sig quote:

   qw/ who is praying for parrot to support XS code, 
       cause he doesn't want to rewrite
       SDL_perl's 11,000 lines /;

provoked a from Tim Bunce proposing a 'wrapper that manages a simple perl5-like run-time environment'. Tim's .sig (Tim [who doesn't want to rewrite the DBI's ~4000 lines or tell the many DBD authors that they have to rewrite their drivers].) gave us a clue as to his motivation in wanting this too...

The 'Irrational fear of macros' thread proper was by that man Dave Goehrig as he launched a defence of macros, pointing out that "Perl 5's problem with macros ... is that too many of them remain largely undocumented, under-utilized, or over-exposed." He argued for "a dictionary, a work to explain the usage of each element of the API. Parrot needs a rosetta stone, through which future implementors will decipher and re-interpret the decisions made years in the past."

Melvin pointing out that macros don't play well with debuggers, and argued that it's far better to write code that is self explanatory than to write code that requires to to constantly refer back to a dictionary to understand it.

Larry, as is his wont, cut through all this with yet another of his explaining why perl 5's macro system looks like it does. "After all these years, I still know exactly what a dPOPTOPnnrl does, and it's not because I remember the name."

Meanwhile, Mike Schwern his splendidly cunning trick for defining something as both a subroutine and a macro. Well, I was impressed anyway.

Tasks for the interested

Dan posted a of other virtual machines, and asked interested people to try and make lists of the opcodes used by each of them, and what those opcodes do. And then to write opcode libraries for them. The usual suspects were all there (Perl5, Python, Ruby, JVM, .NET) along with the dark horse that is the Infocom Z-machine. Does Dan have a thing for classic text adventures?

Rafael Garcia-Suarez suggested that if anyone managed to do the job for Perl 5, p5p would definitely be interested in seeing the results.) Simon Wistow PHP/Zend as another candidate for this approach.

Dan pointed out that, daft as it seemed, the z-machine would be a really good system to tackle since, as well as needing a custom opcode library, the z-machine would also need the ability to load packed files, and that making

    $ parrot -m:zmachine lurking_horror.dat

do the right thing "involves most of the infrastructure we'd need to get working to get .NET and JVM code loaded in."

It looks like Josh Wilmes has stepped up to this particular plate.

On the Java front, Leon Brocard pointed out his <earlier post|> where he announced his proof of concept for loadable java bytecodes. Dan encouraged him to keep up the good work.

matrix design

Josef H\xF6\xF6k posted a which opened something of a can of worms. People for first class matrices (though Dan disagreed with them, pointing at the PDL project.)

Josef's basic design also got a of "Yech! :)" from Dan, who reckoned that it was better to start with a simple data structure, get that working and then worry about making it sparse. For some reason this led off into a discussion of hyper operators.

In a message that doesn't appear to have been archived, Paul Kienzle pointed us at and reckoned that a compatible representation would win big because of tools like LAPACK "which provides fast stable implementations of a lot of very useful linear algebra."

Ashley Winters that we take advantage of the lazy evaluation we're expecting from Perl 6 and set things up to do deferred calculation. He also suggested that we don't "need to worry about optimizing complex operations too much, the PDL people have come up with miracles before... they just need the tools." Which sounds good to me...

Stack and GC

Melvin Smith a few questions and made a few proposals about the stack and garbage collection with particular reference to continuations, coroutines and other entertaining flow of control constructs. And then released a patch containing his first cut at continuations and exceptions.


David Lloyd has updated the


The parrot glossary is now available at

More tests

Robert Spier that, according to the tests only cover 33% of the parrot codebase. We need more tests.


David Lloyd the arrival of a new _keyed_int form for every _keyed vtable method, and asked for contributions and tests that exercise them.

New stack tests

Simon Glover a torture test of the N stack.

Another new language

Jeff a (currently limited) implementation of FORTH.

.include directive for new assembler

Brian Wheeler has a .include directive for the assembler which was generally liked, eventually getting committed.

Steve Fink goes on hiatus

Steve Fink announced that, for at least the next couple of months, he was going to be too busy to do any work on parrot, and that anyone ho wanted to was to feel free to do whatever they wanted with has.c and the regex compiler he'd been working on. Given the speed of Parrot development it'll be interesting to see his reaction when he comes back...