This Week on Perl 6, Week Ending 2004-09-24

The Perl 6 Summary for the week ending 2004-09-24

This is my last summary before I start my teaching practice. Hopefully I’ve things set up so writing the summary isn’t going to interfere with that, and vice versa.

This week in perl6-compiler

State of Rules

Discussion of the state of the Perl 6 compiler (with particular reference to the rules engine) continued. People wanted to make sure that the rules engine that Luke and Patrick are working on would be flexible enough to cope with different languages in closures.

Synopsis 5 updated

Ed Peschko asked that there be some way of “turning the rules engine inside out” to make something which, given a rule, would generate strings that could match against it. Actually, this is the second time Ed asked for this, as Luke reminded him. Luke went on to implement a generator in hypothetical perl 6, which seemed to please everyone but Ed.

Rod Adams wins the “making the summarizer smile wryly” occasional prize.

Meanwhile, in perl6-internals

Problems Reimplementing Parrot Forth

Matt Diephouse fell afoul of problems with the compile and compreg opcodes in his efforts to reimplement Parrot Forth in PIR. Steve Fink made some suggestions for workarounds based on his work on writing a regular expression compiler.

From further discussion, it seems that, if you’re implementing a stack based language, you’d do well to manage the language’s stack yourself rather than using Parrot’s User stack which is interestingly scoped.

__init not being magically called

Will Coleda had some problems with a class’s __init function not being called magically. Nobody else could reproduce the problem. After a certain amount of confusion, Will did make realclean; perl; make; make test and all was well again.

If you’re experiencing a weird problem, it’s probably best to do the rebuild before posting to the list. Or you could fix the build system to have more accurate dependencies…

Incremental collector and finalization

Jeff Clites had some questions about how finalizers interact with the work that Leo’s done while implementing an incremental garbage collector for Parrot. Leo had some thoughts, but noted that there’s still a problem with ordered finalization and destruction.

[Your summarizer is really starting to understand why old school GC types really don’t like finalizers…]

Python bytecode volunteers

Dan asked for volunteers to finish the task of getting Python bytecode working on Parrot; he reckoned that the work was mostly done, but that neither he nor Leo have the time to go the last couple of yards.

Come on people, this would definitely be a cool thing to have.

mod_parrot 0.0

Jeff Horwitz announced the release of version 0.0 of his mod_parrot Apache module. It’s remarkably powerful for version 0.0.

The compile op and building compilers

Dan had some thoughts on tidying up the spec for the compreg and compile operators and asked for comments before he nailed the spec down. Steve Fink and Leo had comments.

Misc. remarks about YAPC::EU

Leo popped up to thank everyone who’d donated to The Perl Foundation and thus supported the purchase of shiny new Apple Powerbook G4 that he’d used to run his presentation at YAPC Europe in Belfast.

He went on to outline some of the things he’d done and heard in Belfast, including the fact that one French teacher is using Parrot for teaching assembly language.

Parrot m4 0.0.8

Bernhard Schmalhofer announced version 0.0.8 of Parrot m4. There’s no new functionality, “just” some structural improvement and tidying.

Parrot TCL

Will Coleda posted a progress report on his Parrot TCL implementation which is progressing gradually towards being a full blown TCL implementation; he’s working towards using special Tcl* PMCs with real TCL semantics instead of the current scheme which uses Perl PMCs.

Namespaces, Part 1

Dan posted the first part of his Namespaces spec. There was, of course, much discussion. Inevitably, there was another revision, and further discussion.

Dan’s initial post

The revised version

Towards a new call scheme

Leo posted an overview of the work he was doing on Parrot’s internals to put a faster calling scheme in place (as discussed endlessly). The usual perl6-internals discussion and revision process swung into action.

Hello everybody

Remember the French teacher that Leo mentioned? Well, the man himself, Christian Aperghis-Tramoni, popped up on the list and pointed everyone at his work so far, and asked for help in finding more information.

If anyone would like to translate Christian’s work from French to English…

Bits of introspection

Leo announced that he’d started work on adding more introspection features to Parrot, accessible through the interpinfo op. This looks very cool.

Why lexical pads

Klaas-Jan wondered why Parrot had support for lexical pads, as he thought that PIR’s .local syntax was good enough.

Several people explained. Essentially, lexical pads are really handy, bordering on the essential, when you’re implementing a language with closures.

Meanwhile, in perl6-language

In Brief

Discussion of various synopses continued.

Larry can be very persuasive when he’s right.

Michele Dondi is a chap. (See last week’s question.)

Trying to run a thread across multiple mailing lists is the sort of thing that annoys a summarizer.

You have to write something before it goes in the core.

Patrick hopes to have a first cut at the Perl 6 rules engine available within a couple of weeks.

Pipeline Performance

Luke showed off Perl 6’s little known gather {...; take ... } construct in some example code. People were impressed.

Unary dot and custom control

Luke Palmer wondered about topicalization and scope in:

    method foo () {
        preserve {

In particular, he hoped that the topic that .bar sees is the topic that’s lexically current.

Larry set his mind to rest. (Well, he set my mind to rest).

attributes/methods on sigils

Michele Dondi wondered if sigils could be “(sort of special) operators … thus allowing attributes/methods or even adverbs”. Larry’s response was superbly deadpan.

Hmm… maybe I should trying doing the perl6-language summary like that every week; it’s certainly quicker to write like that. Let me know what you think.

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 or contributions to a getting Piers to OSCON 2005 fund.

The Perl Foundation

Perl 6 Development site

Or, you can check out my website.



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