This Week in Perl 6, July 5-12, 2005


Welcome to another summary from the frog house, a house so green you can see it from outer space (according to Google Earth).

Perl 6 Compiler

Building Pugs Workaround

Sam Vilain posted a useful workaround to the error error: field `_crypt_struct' has incomplete type, which occurs on some systems. Fortunately, Salvador Ortiz Garcia found a fix.

Pugs, Pirate. Pirate, Pugs.

Autrijus began plotting with the Pirate folks. Thoughts include unifying PIL and PAST, or possibly retargeting PIL to PAST. Perhaps the result should be a more nautical dog. Maybe schipperke.

Implicit Invocants and Pain

Larry (as the summary will later explain) ruled that ./method was gone. He further ruled that .method would pitch fits at either compile or run time if $_ =:= $?SELF were false. Autrijus found this quite difficult to implement. Talk continues, and my instincts tell me that this too will pass, although Larry assures us that it is absolutely permanent for at least a week.


Key Question

Klass-Jan Stol found that using a assigning a floating point value to a key and then using it makes Parrot segfault. Warnock applies.

Parrot Copyrights

Allison Randal hinted that the Perl Foundation has almost finished hammering out some legal stuff and there will soon be sweeping changes throughout the repository addressing copyright issues.

Character Classes in Globs

Will Coleda noted that Tcl would pass more tests if PGE supported character classes in globs. Patrick, unable to resist the siren call of passing tests, implemented it.

Amber for Parrot

Roger Browne announced that he had succeed in extracting viable DNA from a Parrot encased in amber since the Jurassic age. Either that or he released Amber version 0.2.2–I’m not sure which.

Leo’s Branch

Leo has created a branch in SVN (branches/leo-ctx5) of his work implementing the new calling conventions. This led to some discussion of how to deal with optional arguments.

Leo’s Branch Meets mod_parrot

Jeff Horwitz posted some observations and troubles he was having with Leo’s branch of new calling conventions. Leo warned that the branch was still young, but would gladly take test cases.

Leo’s Branch Meets PGE

After the initial discussion of optional parameters, Patrick updated the leo_ctx5 branch of PGE to the new calling conventions. All tests pass.

Get Onto the Bus

Matt Diephouse found a Bus Error when running languages/tcl/examples/bench.tcl. Warnock applies.

MinGW Patch Resurrection

Fran├žois Perrad resurrected a patch from mid-June with a set of action items. Warnock applies.

Scared Parrots Like Scheme

Joh Lenz posted an announcement that he had an alpha version of Chicken (a Scheme to C compiler) backending to Parrot. Leo provided answers to some of his questions.

Bytecode Vs. PMCs

Matt Diephouse posted a list of questions about the place of PMCs. Some of the core tradeoffs include maintainability, portability, optimization, duplicate implementations, and security.

make svnclean

Leo pointed out that someone removed make svnclean, but that he found it useful. Chip suggested renaming it make svnclobber, as it does more than just clean. Bug

Nicholas Clark found a bug in the shortcut to avoid writing a PMC dump file. Warnock applies.

Define cache

Nicholas Clark suggested that it was probably not wise to #define cache. They removed it.

Parrots Getting Smarter

Leo pointed out that at least one parrot understood the concept of zero, putting it some distance ahead of Romans when it comes to math. Once the Parrots start to grow opposable thumbs, I will welcome our new Parrot overlords.

Leo’s Branch Meets Exceptions

Leo posted two suggestions for how the new calling conventions could interact with exceptions. Autrijus liked the idea of unifying exception handlers with the rest of calls and returns.

Control Flow Graph Bugs

Curtis Rawls noted what he thought might be a bug in the compute_dominators function. Leo confirmed that it was likely a bug. Later he posted a note saying he was working on a new implementation for some of the CFG algorithms. He asked for a hand, but Warnock applied. Actually, I think I have looked at that code before. I would help be happy to take a look, Curtis.

TODO: Steal Good Ideas from Dan

Will Coleda opened a ticket suggesting that we open tickets based on some of Dan’s latest posts to Squaks of the Parrot. Remember: “talent imitates, but genius steals.”


Allison Randal wants to add Punie (a Perl 1 compiler) to SVN. Response was positive.

Mobilizing PM groups

Will Coleda wondered if there had been any work mobilizing Perl Monger groups for the good of Parrot. Maybe I should finally look up the Cambridge or Boston PM group.

Perl 6 Language

As usual in p6l land, there are a couple of really long threads. As usual in p6summarizer land, they will get short summaries. Odd how that happens.

Conflicting Autogenerated Accessors

Last week, Stevan Little wondered what would happen with conflicting autogenerated accessor names. Larry said they would carp as soon as they were discovered.

DBI v2

The first really long thread has to do with the next version of DBI. I am not really a database person, but apparently those who are have strong opinions.


The next really long thread has to do with the next version of Time::Local. I am not really a Time person, but apparently those who are have strong opinions.


Stevan Little and Larry Wall talked about submethods, their purpose, and their interaction with the metamodel. I must say that I have only partially wrapped my head around metamodels at all.

SMD Considered Harmful?

Last week, Yuval Kogman conjectured that MMD should be the one true MD, as it allowed nifty extensibility. This week, Stuart Cook offered a sort of compromise. I rather like Stuart’s compromise.

Dependency Injection

Piers wants to be able to have classes that inject themselves in correctly at use time, based on what is actually used. Larry commented, but one quote really caught my attention: “Globals are bad only if you use them to hold non-global values.” <off-topic>There is an important lesson imbedded in that quote. We really should learn rules not to follow them blindly, but so that we understand the spirit behind them and respect that instead. Not that I have had screaming matches with any programmers who blindly eschew globals and gotos without understanding why. </off-topic> That was more of a rant then just off-topic. Oh well. Interface

Wolverian wondered what the seek interface would look like for handles. Larry likes the idea of it working entirely through opaque position objects using ` to specify units.

Perl 6/Perl 5 ~ 82%

Michael Hendricks noticed that (according to Text::TypingEffort). Perl 6 requires 18 percent less effort than Perl 5. He suggests that this is a bad thing for the community’s waistline. I conjecture that Perl developers will use the extra time they save for activities such as running and canoeing, and as a result will paradoxically lose weight from expending less effort at work.

Creating Value Types

Ingo Blechschmidt wondered how to create a value type. Luke Palmer suggested using an is value trait. He then went on to speculate about mutating value traits and COW semantics. Larry though that perhaps an is copy trait was called for. Oooh, a preposition at the end of a sentence; makes me want to occasionally split infinitives.

OO .isa

Ingo Blechschmidt viciously lied when claiming to post a “quick” isa question. This quickly went the way of the meta object. I think I mentioned my take on those earlier (powerful, but ow).

Method Call on Invocant

The last really long thread has to do with the next chapter in the “method call on self” saga. I am a bit of a “method call on self” person, and apparently those who are have strong opinions. It’s worth noting this time that Larry updated the current state of the world. Now ./method is gone and .method only works when $_ =:= $?SELF.

use and require Question

Ingo Blechschmidt wondered what use and require actually do. Gall Yahas suggested they return the last thing in the used/required file. Larry agreed and held that they would also return the same thing. He also warned that %INC would probably work differently in Perl 6.

User-Defined infix

Autrijus wondered if an method infix:<===> would need marking as export for a script that uses it to get the method. Larry explained that the method infix:<===> would be available by name, but would have to be marked as export for the syntactic sugar of A === B to work.

Hackathon Notes

Autrijus posted a link to his Hackathon notes. This spawned several threads. David Storrs tried to convince people to change subject lines, with limited success. Much of the discussion focused on MMD and how confusing it was. Damian Conway posted his set of three rules that would prevent AIs from harming humans and his set of eight rules that would prevent MMDs from harming programmers, proving that MMDs are almost three times more dangerous than AIs.

Raw Binary Data

David Formosa wanted to play with raw binary data in Perl 6. I try and avoid raw things except sushi. Larry suggested that this would just be a string with its maximum abstraction level set to bytes.

To post to any of these mailing lists please subscribe by sending email to,, or 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



Something wrong with this article? Help us out by opening an issue or pull request on GitHub