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 2004-11-15 through 2004-11-22


Welcome to yet another summary. Although Aliya is present for this summary, I think the unnamed gecko with its tongue out will be the one who is helping to bring it to you, aided of course by Nicola Conte and Massive Attack. Without too much further ado, I give you Perl 6 Language.

Perl 6 Language

return values from a substitution

Nicholas Clark wondered what kind of return value the s/// operator would return. Larry provided the answer, a match object that does wicked smart things based on context (Boston is getting to me).

Deep Operators

Matthew Walton wondered about deep operators and return types. No answer yet, but it is still a little early to call in the awesome forces of Warnock.

Perl 6 Compiler

The race between google and the compiler is over, and google loses. badly. While, alas, I do not get a pretty interface, you all get links from Plus you get a nifty infant grammar engine to torture.

Parrot Grammar Engine

Patrick R. Michaud (for ever after known as Patrick) released a first version of the Perl 6 Grammar Engine (P6GE). Some time later, he renamed it to the Parrot Grammar Engine, as it will by standard in Parrot and PGE sounds better. He asked for people to poke and prod it. Many people did with quite some glee. Some work has been done adding it to the Parrot build and making it uses Parrot's configure/make system. As well as some cross platform cleanups. Patrick also put out a request for tests and explained the basic framework already in place. He also explained his short term plans. -- initial release -- cross platform happiness -- test explanation -- plans -- the great renaming

Synopses and Apocalypses

Larry has managed to persuade to host the latest and most up to date versions of the synopses. Consider the former link deprecated. Larry also mentioned that this should probably wait a little while before it hits slashdot. Dan put a desperate plea not to also, as "I feel obligated to actually *read* the comments on parrot and perl 6 stories on slashdot, at 0".


Having fought my way through the lack of google, I can now return to its calm warm tones and convenient threading.

RT Data Extraction

Will Coleda pointed out that he has the mystical power to extract and summarize data from RT automatically. Then he asked for suggestions about how to use this power for good or for awesome. -- the request -- for awesome

Locating Shared Libraries

Adam Warner has some trouble locating shared libraries on Debian. Leo pointed out that Debian was apparently naming these libraries funny things. The he added support for symlinks and asked Adam to provide the appropriate symlinks.

double vs float

Adam Warner was playing around with the Leibniz summation for PI example. But he could not get it to do more precision than 3.1431591. It turns out that the print opcode was at fault and that sprintf worked better. In fact it allows you to print more precision than you actually have. Ain't life in the floating point world a pain. We should all use integers where PI is exactly 3.


The on going thread of three three letter acronyms seems to have finally run its course. Ending in a climactic upgrade to perl 5.8.5.

New Calling Scheme Proposal

Leo posted a new calling scheme proposal. Dan stomped on hit hard, then he posted an updated version of PPD03 (calling convenctions). Some time was spent fleshing out every little corner of the new doc.

Parrot BASIC and blacklists

Joshua Gatcomb kindly acted as a mediary between the list and Clinton A. Pierce. Apprently Clinton's domain and ISP have been blacklisted by He would be willing to resume work on it, but he would like help and/or to be un-blacklisted. No real answer to Clinton's troubles. On a side note, my old email provider,, also occasionally gets blacklisted by (it seemed to go in fits and starts).

CVS access for parakeet

Michel Pelletier was wondering if he could get CVS access to the parakeet language directory now that he has a username (michel). Dan said that he had forgotten to mention that he had put in a request, and he would likely forget to mention when the request went through.

return with return continuation

In the confusion of what not to change and what to change, the op to return to the caller by invoking the current return continuation got lost in the shuffle. After sorting out the fact that Dan wanted it to go in. Leo added it. It was named returncc for lack of a better name.

Parakeet broken

Jeff Horwitz noted that Parakeet did not quite work. Leo pointed out that parrot had out flown parakeet and it needed to catch up with the new eval changes.

deprecation of P0, P1, P2

Leo sent a warning to the list that, as per PDD03, access to the current continuation and sub should only come from the interpinfo ops. Usage of P0 and P1 for these things is officially deprecated and soon to be discontinued. Also, P2 current object came along for the ride later, which caused troubles with imcc's self macro. Later, he removed the deprecated things. -- initial warning -- self stuff -- updated warning -- the removal

main is just a sub

Leo has coerced main into looking and acting exactly like any other sub. Consistency is nice like that.

Continuations, Basic Blocks, and Register Allocation

The thread of the week last week continued strong into early this week. Slowly but steadily misconceptions of certain summarizers who would like to remain anonymous got cleared up. Also, later in the week, Bill Coffman provided a summary of the problems and ideas thus far. We all eagerly await the resolution. -- the monster thread itself -- Bill's summary

m4 0.0.10

To keep up with the aforementioned eval changes, m4 got some improvements, thanks to Bernhard Schmalhofer.

light-weight calling conventions

Dan, Leo, and Patrick had an interesting discussion about the speed of various calling conventions. While BSR/RET beats continuations, continuations with tailcall optimization beat BSR/RET; however, BSR/RET with tailcall optimization edges out continuations. In the end, the PGE will be written calling convention agnostic so as to provide a real world test for bench marking. Either way, fear the Big Sweaty Russian (ask Mike Z if you want to know ;-)

NCI signature correction

Last week I incorrectly claimed that the 'd' signature allowed access to a raw buffer. I was wrong, it was 'b'. Thanks for the catch Bernhard.

void functions don't return things

Andy Dougherty noticed that matchrange.pmc was attempting to return something from a void function. He supplied a patch, but there seems to be no response...

perl6 --tree

Gerd Pokorra submitted a patch to fix a problem with perl6 --tree. Warnock applies.

ResizableIntegerArray needs soda

Patrick requested that someone provide the wonderfully amazing ResizableIntegerArray pop. Once that is done, PGE should switch from using a PerlArray to a ResizableIntegerArray. Patches welcome. -- pop request -- conversion request

no perldoc => WARNING

James deBoer provided the previously requested patch for doing the right thing when there is no perldoc present. Leo applied it.

broken benchmarks

The great thing about breaking benchmarks is that if you do it right, you execution time goes from a big number to nearly nothing. It provides one hell of a speed up. Unfortunately, it also means they don't work. Alas, such is life. Fortunately Leo provided an explanation if not a fix.

MMD with native types

Leo voiced his confusion about MMD_ADD_INT. When Leo is confused, I get worried.

Polymorphic Inline Caches

Leo posted some interesting stuff about PICs and provided some preliminary bench marks. He also provided a link to the article from which the idea was drawn. -- Leo's post -- the paper

OS X.2 failures

Klaas-Jan Stol noticed that was failing on his 10.2 installation. He asked for help, but no responsed yet...

inconsistent opcode names

William Coleda noticed that we did not consistently use_underscores or pushwordstogether. Everyone agrees this is a problem, so we are probably just waiting on a brave soul who can make the necessary sweeping change. I think that underscores_won_out.

Tcl supports lists

Will Coleda added basic list support to Tcl. Then he threatened to do more with it. I for one welcome our new list overlords.

Build problems on PPC Linux

chromatic (whose name google rudely capitalizes) had some trouble building parrot on PPC Linux. No resolution yet.

new TODO items.

Will Coleda added some new todo items. -- finish split opcode -- remove perl dependancy on split -- add split to Tcl -- add \u support to Tcl

Intellectual Property

Tim Brunce asked how Parrot was handling IP concerning. Dan told him that we have lawyers working up "Real Paperwork" even as we speak. In the mean time, it is mostly an honor system.

1 - 2 == BOOM

Will Coleda found a bug in MMD. Leo took responsibility and submitted a fix.

escaping strings

Patrick wondered if goes was sitting around that would properly escape a string into a nice clean form. The answer, yes, use Data::Escape.

bug in method calling with nonconst keys

Luke Palmer found this bug. Leo fixed it.

underscores on subs

Luke Palmer wondered if subs still had to have _ before their names. Leo provided the answer: no, and the docs are out of date.

silent effect of opcodes

Leo noted that opcodes with silent effects need a little more special treament. This morphed into a conversation about the continuation troubles that have been haunting us all and exceptions too.

IMCC tracing, leaving subs

Will Coleda asked if it would be possible to indicate what routing we are returning to after a returncc opcode. Leo liked the idea and put in a quickl hack for it which neads cleanup.

Threads, events, and Win32 (oh my)

Gabe Schaffer continued to explore the problems and approaches to portable threading with Leo's help. Best of luck guys.

IMCC Register mapping.

Will Coleda noticed a possible optimization with register mapping. Leo said that it was not that simple, but it would be implemented at some point in the new register allocator.


Exceptions hurt my head. Especially Dan's description of them. Thus I will just leave you to read it for yourself, so your head can hurt too. -- Dan's initial post -- Will's troubles

missing Makefile dependencies

Leo noticed that the makefile is not quite right about it dependencies. This frequently recurs.

JITted vtables for sparc

Stephane Peiry provided some more JIT support for the sparc. Leo applied the patch.

PGE namespaces and names

Will Coleda, Luke Palmer, Jerome Quelin, and Patrick all worked to clean up PGE to have its own namespace and consistent naming.

The usual footer

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