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

Perl 6 Summary for 2005-10-10 through 2005-10-18


Welcome to another Perl 6 Summary. Sadly, this week's summary is not brought to you by cookies as I already finished them. Sadder still, it is also brought to you a week late. On the plus side, Mike Doughty's "Haughty Melodic" is quite good.

Perl 6 Compilers

This was a shockingly high volume fortnight for p6c with 5 different threads on it!

Feather: A Retrospective

Juerd thought that now would be a good time to evaluate the usefulness of feather to the community. Warnock applies, but he probably found answers off list...

PGE Better, Stronger, Faster

Patrick announced "significant internal updates" to PGE. It looks like things are coming along very nicely. Yay, Patrick!

PGE Now With Better Balance

Patrick also announced the subrule PGE::Text::bracketed which is similar to Text::Balanced from Perl 5. Now where, did I put my darn push-down automata.

Object Space Thoughts

Stevan Little posted some of his thoughts about how the meta-model can be built up from run time primitives. It is pretty neat.

Parrot PMCs within Pugs

Christian Renz wondered how to get at Parrot's PMCs from Pugs. Autrijus admitted that that feature was not currently available, but offered a commit bit and suggested that adding tests would be a good start.



Michael Cartmel fixed a few spelling errors in README.win32. Joshua Hoblitt applied the patch.

parrot-config.imc Documentation

Roger Browne offered a patch fixing documentation in parrot-config.imc. Warnock applies.

Train Parrot to Flex

In the RT clean up, an old ticket has resurfaced. Parrot needs to be updated to use flex 2.5.31, which is incompatible with 2.5.4. Patches welcome.

Dynamism Defeats Static Analysis

Patrick and I had a brief back and forth about detecting PGE recursion. The short answer is that it is possible in the static case, but not in the face of changing rules. Stupid halting problem, where did I put my PDA.

void function return

Will Coleda is tired of special casing void functions and wants () = function() to be legal in PIR.

Bison >= 1.75c

Joshua Hoblitt noticed that the newer Bisons have slightly different error messages than older ones. He felt that we should either standardize on the newer bison or explicitly declare error messages. No official ruling on which...


Patrick needed a way to distinguish __set_pmc_keyed_int from __set_pmc_keyed. Leo gave it to him.

HLL type mappings

Roger Browne wondered how he could set HLL type mappings from PIR. Leo said it was not yet implemented or speced. Roger suggested adding a few opcodes.


Jonathan Scott Duff submitted a patch which swapped @directives to :directives everywhere. Leo applied most of it in several smaller patches. Language maintainers are encouraged to look over this patch and apply appropriate portions to their languages.


Cygwin Doesn't Smoke

Nick Glencross noticed that cygwin was having troubles submitting smoke tests. It appears bzip/gzip related. He put out a request to have Compress:Bzip2 installed on the smoke server.

Obsolete Win32 Exports

Michael Walter found and removed some obsolete Win32 Exports. Jonathan Worthington applied the patch. Weren't we planning on auto generating these?

Name Space is Dead; Long Live Namespace

Matt Diephouse announced the deprecation of get_name_space in favor of get_namespace.

split with a string

Jonathan Scott Duff posted a patch to split on strings rather than regular expressions. Warnock applies.

Typo Fixes

Nick Glencross fixed a few typos he found. Will Coleda applied the patch.


Patrick submitted a patch adding __delete_keyed_int support to PMCs. Warnock applies.

Variable-sized Register Frames

Leo warned people that variable sized register frame changes were starting to hit Parrot.

Leaky Parrot

Alberto Sim\xF5es is having trouble with Parrot leaking memory and a bad free. Warnock applies.

-0.0 Issues

Leo posted a patch for comment which updates some of our double printing code to get around -0.0 issues. Simon Vogl seemed happy with the patch, but I don't know if it got applied...

Execute Permissions for Libraries

Joshua Hoblitt resurrected (and applied) an old patch from Nick Glencross which sets execute permissions for libraries for some platforms.

Fighting with a Tiger

Alberto Sim\xF5es was having troubles with Tiger. Jonathan Worthington provided a little C wizardry, and Alberto was happy. He asked to have the patch applied, but Warnock did instead.

More Tiger Issues

Alberto Sim\xF5es found a new build problem on Darwin. Jonathan Worthington admits to making the problem and announced its fix.

Debug Segments

Jonathan Worthington announced that he was making progress on his debug segment work, but would soon half to dive into IMCC. As a slight corollary all existing PBCs were invalidated.

HP-UX mmap

Nick Glencross uncovered a mmap issue on HPUX. Later, he posted a patch to fix it.

TODO - formats rt ticket names

Joshua Hoblitt has been going through RT fixing up tickets to have a more standardized subject of the form "[TODO] <subsystem/component/topic> - <summary of task>". This will probably make many lives easier.

HP-UX smoke tests

Nick Glencross skipped a few tests and set up a smoke test for HP-UX. Joshua Hoblitt applied the patch.

Patch Resolution Checklist

Joshua Hoblitt suggested a checklist of things to do when resolving a patch. Leo thought that perhaps it would be better if RT were scripted to do it automatically.

Handle Mixed Endian Doubles

Leo opened a todo for ARM mixed-endian doubles, apparently Parrot doesn't handle them correctly.

Patches Accumulating

Leo warned that he was running low on tuits and that people with commit bits should apply some of the, now piling up, patches.

Copyright Confusion

Jonathan Worthington had some questions about the copyrights in Parrot. Allison Randal provided some cogent answers.

IO Opcodes

IO opcodes will eventually be removed, thus tickets about them failing will also be removed eventually.

parrot_config dependencies

Nick Glencross has been working to relax Parrot's dependency on parrot_config files. Leo found a few issues, apparently more work is needed.

UUIDs for PBCs

Chip has declared that all pbc files will have a UUID in the header to allow parrot to avoid leading multiple copies. It sounds like people are leaning toward using and MD5 or similar hash algorithm to generate the UUIDs. Although I am not sure that any official decision has been made.


Jonathan Worthington has decided to try translating .NET byte code to PIR for his thesis. Now he just needs a catchy name like .PET or something.


Perl 6 Language

There have been some long threads here

Magical Pairs

Like Lord Farquaad, Ingo Blechschmidt set out to destroy magical things (in Ingo's case pairs). Like Farquaad, Ingo stirred up a lot of controversy (or at least confusion). Unlike Farquaad, Ingo succeeded. Thus, according to Larry "the compiler will be able to determine at compile time which pairs are intended to be named arguments and which ones positional parameters".

Complex Types

Sam Villain noticed that S06 is missing boxed complex types. Larry admitted that it was an omission, and Autrijus fixed it.

Multiline Comments

Alfie John wanted to know if parrot would support multiline comments. Luke Palmer explained that it would in the form of POD comment blocks that would not disturb the rest of the documents POD. Alfie was happy.

Roles and Trust

Ovid and Piers managed to come to what they felt was a satisfactory conclusion to their issues with roles and trust, using my multi to do the dispatch for them. Piers, the ever summarizer friendly, posted the results of the #perl6 discussion back to the mailing list. Thanks, Piers!

err the One Line Try Block

Austin Hastings decided that he liked the idea of having a single line try/catch called err. Perhaps it will catch on...

Closed Classes Meet Religion

chromatic opened a can of worms when he claimed "Closed classes should not exist". Naturally this led to arguments about freedom and commercial viability.

What the is a submethod good for?

Luke Palmer asked a question that I know was on my mind: "What the is a submethod good for?". Damian posted an example that uses submethods but does not answer the question. Brent 'Dax' Royal-Gordon noted that the use of them in BUILD could be subsumed into more powerful cascade methods, which I like.

Thoughts on

Dave Whipp, while reading theory.pod, wondered about automatically testing and assert axioms (like pre and post conditions) on code. This led to some discussion about the usefulness of randomly generated tests.

Inheritance of Class Methods

Stevan Little often makes my head hurt. I think we should abandon the whole metaclass system for a nice simple easily understood object system like Javas.

Role and Class Merger?

Rob Kinyon wondered if Roles and Classes should be merged. The consensus was that while they might be very similar internally, they signalled different intent and thus would remain separate.

Migrating to Perl 6

Yuval Kogman started a migrating to perl 6 page on the pugs wiki. The basic intent is to have a book like this come out about the same time as perl 6, with the wiki page serving as a sort of brainstorming space.

Graphical Primitives for Perl 6

Markus Laire wondered if Perl 6 would have any gui primitives in its core library. People felt that this would best be farmed out to a library and people could use whichever library they wanted.

Making Wrong Code Type Wrong

Yuval Kogman posted an analysis of a JoelOnSoftware article about using code tagging (marking variable names as safe or unsafe manually). Seems like a useful idea...

Selling Perl 6 to Academics

Uri Guttman has the chance to try and sell some CS faculty on Perl 6, so he asked the list for some good selling points.

S29 Problem

Aaron Sherman reported that his free time was running low and, as a result, his S29 work was also slowing. As a result he opted to narrow the focus of his work and push on.

MetaModel Diagrams

In an cruel attempt to make my head hurt more, Stevan Little posted some pretty diagrams of the metamodel in action. Don't fall for his ploy of making things more accessible so he can throw harder stuff at you. Resist checking the link. -- pictures -- posting

Transliterating Using Pairs

Peter Makholm was having issues with the transliterations of ranges do to stringification issues. Larry indicated that there => appeared to be autoquoting its left argument a little to eagerly.

subclassing associated classes

Darren Duncan wondered how to make his pair of associated classes act intelligently. Larry, Stevan Little, Rob Kinyon, and Luke Palmer all provided suggestions.

Class::Role and Runtime Composition

Tim Bunce wondered if anyone would be able to hack in run time role composition for the perl5 module Class::Role. Warnock applies.

New MetaModel

Rob Kinyon proposed a new meta model that is much closer to the prototype paradigm. Warnock applies.

Module Version Syntax

Nicholas Clark wondered how he could get access to multiple different versions of a module at once. This spawned a lot of debate.

Perl 6 Fears

Juerd (probably inspired by some of the aforementioned debate) started a list of Perl 6 Fears. The idea being that, given a comprehensive list of fears, we can efficiently assuage peoples recurring worries.

Inheritable Class Methods?

Stevan Little proposed that class methods should not be inheritable. This sparked a large debate which Stevan apparently lost (by his own omission).

++ should mean ++$_

Juerd wonderd about making more operations (like ++, +=, and x=) all operate on $_ by default. Response seems mixed but favorable.

$_ ~~ bool::true

Ilmari Vacklin noticed an error in S04 centered aroud given/default. Luke Palmer and Larry agreed that it was a problem.

zipping several arrays

Mark Reed wondered how to zip several arrays given that zip was an infix operator. Luke Palmer explained that it was actually a listfix operator like ,.

New Class Sigil \xA2

Larry announced that there would be a new class sigil, namely \xA2. This allows you to write functions like sub sametype (\xA2T $x, \xA2T $y) {...} . People generally like the idea but not the charcter. I must admit that I agree with people.

The usual footer

To post to any of these mailing lists please subscribe by sending email to <[email protected]>, <[email protected]>, or <[email protected]>. If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl. You might also like to send feedback to [email protected] -- The Perl Foundation -- Perl 6 Development site -- Parrot Blog aggregator