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-29 through 2004-12-06


Last week I asked for help identifying the source of a quotation. One friendly soul suggested Alan J. Perlis, but could not find an actual attribution. It did lead me to find a very applicable (and in my mind funny) quote from Perlis, which I will now inflict upon you all, before your regularly scheduled summary:

When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop. -Alan J. Perlis

Perl 6 Language


Jim Cromie wondered if there could be a qq:i which sometimes interpolates and sometimes doesn't depending on whether the variable had been previously defined. There was some discussion which led to the conclusion that this was just asking for strange bugs.

getters and setters

John Siracusa wanted to know if Perl 6 would allow one to expose a member variable to the outside world, but then later intercept assignments to it without actually having to switch to using getters and setters in all of the code that uses the variable. The answer: yes, yes you can.

\xAB foo >>

Richard Proctor asked if he could do <<list of words\xBB. Juerd pointed out that this had already been asked. Which brings us to the fine point, ask not Larry for he will tell you both yes and no. Although in this case I think he said, probably...

flipflop operator

Juerd wondered about the fate of the flipflop. Larry explained that while it had lost the election it was still going to work hard for you in the Senate. Err, that's not quite right, he said that "It's leaving syntactically but not semantically.", but the new syntax has not been specified...

temp $var

Alexey Trofimenko wanted to know whether temp would preserve or destroy its old value. Larry is leaning towards the Perl 5 semantics of destroying, I think.

state vs my

Alexey Trofimenko wondered how much advice about optimizing Ruby also applied to perl. Unfortunately, he also misunderstood the state specifier. The topic then quickly veered into what exactly state does.

specifying a hash's key type

Abhijit Mahabal wanted to know if he could specify a hash's key type. The answer is yes, but the exact syntax seems to be worth a discussion. Luke Palmer, in his Mathematician's rage, attempted to shoot down any usage of Domain and Range, as they really should be Domain and Codomain. -- wikipedia: range Range (mathematics) - Wikipedia, the free encyclopedia

container methods

Ashley Winters wants to have syntax for calling a method on the container object rather than the containee. Luke Palmer agreed that this was problematic. Larry appears to be in no hurry to add more operators for this one, yet.

slight discrepancy between synopses

St\xE9phane Payrard pointed out a small issue in some synopses. Larry replied oops.

arrays, lists, iterators, functions, coroutines, syntax

Many people suggested many things about the best thing to replace the now missing < > op. I think Larry is leaning towards adding a undare = op, which would do cool things. I don't thing anything is final yet. -- iterators as functions -- unary = talk


Many folk voiced their dislike of shift and unshift. I must agree with them, but they also suggested a great many alternatives, including pull/put, get/unget, and even getting rid of Push/Pop. I must say that I really dislike that last idea, fortunately I am no alone. Currently we are waiting for inspiration to strike.


It was noticed that for might override one's topic at undesired times. Larry rumminated about ways to solve this.

Required Whitespace

Rod Adams does not like inconsistent whitespace rules. Larry explained why the existing rules really were consistent.

Perl 6 Compilers

The lack of traffic on p6c has given me another space to abuse. You should listen to "Soul Coughing". If you would like to join in the fun of abusing p6c, you should submit tests. Nothing is more abusive then stress testing ;-)


Tuning and Monitoring

Matt S asked how much support for tuning and monitoring. This week I exercise the awesome powers of the summarizer and invoke the mighty Warnock's Dilemnia.


Leo removed some imcc globals. Nice work.

ensure directories exist first

Andy Dougherty fixed a problem with writing a file in a non-existant directory. Leo applied the patch.

Namespace-sub invocation

Last week Luke Palmer wanted to know about calling subs in namespaces. I posted Leo's answer, but Dan does not like it. It should be a two step process. First fetch, then invoke.

What is an opcode?

Thomas Seiler attempted to clear up some perceived confusion about what exactly an "opcode" is. No responses...

Lexicals, continuations, and register allocation

Dan voiced a final word in this long lived and lively thread, which kicked off several children. Return Continuations (even once promoted) restore their registers. -- Dan's ruling -- the long and lively thread

keyword arguments

Sam Ruby wondered how he out to handle keyword arguments to functions. Dan admitted that this is complex and outlined the cheat he has been contemplating. No one has either commented on or implemented it yet.

What is and isn't up for grabs

Dan attempted to layout clear rules as to what things he would entertain until parrot was functionally complete. Lets hope it sticks.


Bernhard Schmalhofer provided a patch to fix some of the :-(. Leo applied it.

t/dynclass/pybuiltin.t fails

Will added a BUG to RT for this.

benchmark tests

Justin DeVuyst submitted a patch, which fell through the cracks, to make the benchmarks also be tests. Fortunately Matt Diephouse rescued it from the cracks, and Leo applied it.

too many opcodes

Leo voiced his opinion that there were too many opcodes and suggested a scheme for cutting down on them. Dan corrected him that there were not too many. Despite this surface disagreement, however, the spirit of Leo's complaint was addressed by Dan. Thus, they can both be happy.

C89 issues

There was a little confusion about whether or not variable declarations could follow code or not in C89. The answer is not.

perlhash iter busted

Sam Ruby noticed that the perlhash iter did not work. So he submitted a test case for it. Leo fixed it (and presumably applied the test).

warnings cleanup

Garrett Rooney submitted a patch to fix some warnings. Leo applied it.

Objects, classes, metaclasses, and MMD dispatch

Dan's attempt to spec out objects from last week led to some discussion of MMD. Leo suggested an implementation, and silence reigned. -- more MMD stuff

more Tcl stuff

Will added more new stuff to Tcl. Yay, Will!

internal exception clean up

James deBoer submitted a patch that cleans up internal exception output. Then later he submitted a second better version of the patch. Warnock applies.

dynamic evaluation of PAST

Bernhard Schmalhofer submitted a patch to add support for PAST dynamic evaluation. Leo applied it.

Inline Caching

Leo explained inline caches and why 19 out of 20 calls like them. This led to his suggesting that some of the opcodes we have which get offsets from strings are a premature optimization. This led to some discussion about whether or not what he suggested was in the Dan's earlier mandate. -- inline caching -- Leo's suggestion

help target in make

Bernhard Schmalhofer (whose name makes me very thankful for copy and paste) submitted a patch anding new help target to parrot/docs/Makefile. Will appied it.

Parrot and Strong Types

Cameron Zemek asked about supporting strongly typed languages on Parrot. I got strong typing and static typing confused, fortunately Dan came to the rescue with a good explanation. During the course of this thread, both Haskell on Parrot and Prolog on Parrot got suggested. I like them both, a lot. -- original message -- Dan to the rescue

move libnci.def out of root dir

Mitchell ::mumble:: provided a patch to do the above some time ago. Will rescued it and asked for a ruling. The ruling is that it should be done. I don't know if it WAS done, but it should be.

Tru64 cc/ld issues

Jarkko Hietaniemi posted a problem with building on Tru64. Sam Ruby committed it.

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