This week on Perl 6, week ending 2003-07-20

By Piers Cawley on July 20, 2003 12:00 AM

Welcome back to an interim Perl 6 Summary, falling between two conference
weeks — OSCON and YAPC::Europe. For reasons involving insanity, a
EuroStar ticket going begging, and undeserved generosity, I shall be bringing
my conference haul up to 3 for the year. Yay me! Now if I can just finagle a
talk into the schedule I will have spoken at all three too. I'll certainly have
heckled at all three.

The State of the Onion

Tim Howell wondered if Larry's State of the Onion address to OSCON would be
available anywhere. Robert "White Camel" Spier didn't rest on his laurels, but
posted a link to Larry's slides and transcript. chromatic popped up with a
different link which neatly combines slides and transcript. However, they both
lack the funny balloon pony which I gave Larry just before the talk. Maybe
there will be video later.

A Small Perl Task for the Interested

A few weeks back, Dan asked for volunteers to improve Parrot's build system.
Lars Balker Rasmussen stepped up to the plate and offered a simple wrapper.
Josh Wilmes seems to be somewhat sceptical about the whole endeavour, pointing
at libtool as an illustration of the size of the problem.

env.pmc

Parrot is in the process of getting an env PMC, for accessing
environment variables. Dan and Leo's discussion of the patch took in iterators
and the wisdom of caching values. In the end, Dan prevailed and the environment
PMC doesn't cache values.

Event handling

Event handling appears to be the topic of the week. The consensus seems to
be that getting it right is hard. Lots of people offered constructive
suggestions and problem cases. I sat on the sidelines and trusted them to get
it Right (a strategy which seems to pay off remarkably often, thankfully).

Damien Neil was rather less sure of the wisdom of Parrot's events and
asynchronous IO model, arguing for a system based on threading. Dan was
unconvinced. I don't think Damien was convinced either.

IMCC sub names are not labels

Luke Palmer had some problems with using continuation passing style
subroutines in IMCC. Leo initially pointed out that IMCC didn't support CPS.
Then he fixed it so that it did (sort of: the user still has to do a chunk of
the work, but sometimes that's a good thing).

In an example of synchronicity, Will Coleda had a similar problem. Leo's fix
helped him too, and he went off to continue hacking on Tcl. (It helps me too,
as I have this cunning plot....)

More on targeting GCC

In last week's summary I wondered what Tupshin Harper was talking about when
he suggested emulating a "more traditional, stack-oriented processor". This
week, Tupshin wished that "people had the decency to tell me how insane [the
idea] is". Dan obliged, telling Tupshin that he was insane (but he did it with
a smile).

The problem boils down to GCC's assumptions about the "shape" of the stack.
GCC assumes a conventional, contiguous area of stack memory filled with stack
frames. Parrot assumes a garbage collected chain of continuations, which is
about as far as you can get from GCC's beliefs.

The big core.ops split

Brent Dax has started work on splitting core.ops from being the
second largest file in the Parrot distribution (108k) into a total of ten more
narrowly defined .ops files. Benjamin Goldberg wondered if this
would be a good time for tidying up the parrot directory structure. At the
very least, he called for moving the source files into a src
subdirectory.

Dan asked for a volunteer to rough out a move plan covering which files move
where and what the new directory structure would look like, which would allow
the perl.org jockeys to rearrange things in such a way that the various files
remember their histories.

Parsers with Pre-processors

I didn't quite understand what Dave Whipp was driving at when he talked
about overloading the <ws> pattern as a way of doing
preprocessing of Perl 6 patterns. I didn't understand Luke Palmer's answer
either. Help.

Protocols

Luke Palmer's been toying with Objective-C (and why not, it's a nice
language) and would like Perl 6 to steal Objective-C's protocols. Protocols are
a little like Java's interfaces, but nicer. I'm waiting for him to latch onto
the idea of Categories which are Objective C's way of adding methods to a
class, at runtime.

Discussion of Luke's proposal centered on a couple of his peripheral points.
Nobody's yet addressed his main point, but it looks like a decent idea to
me.

Acknowledgements, Announcements, and Apologies

First of all, I plead insanity for my mistake of last week's summary. PONIE
does not stand for "Perl On New Internal Architecture", it obviously stands for
"Perl On New Internal Engine". I'm very, very sorry and I'll try not to do it
again.

Editor's note: the Ponie expansion was corrected in both summaries
before publication. The summarizer has been whacked appropriately.

Secondly, an announcement, I've started one of those
punditry/bloggy things. It's at
http://pc1.bofhadsl.ftech.co.uk:8080/
(Snappy URL eh?) and it's called 'Just A Summary'. I'm expecting it
to concentrate on Perl and Perl 6 related issues, but at the time
of this writing I've only got two 'real' articles up there so
anything could happen.

As ever, if you've appreciated this summary, please consider one or more of
the following options:

Send feedback, flames, money, requests for consultancy, photographic and
writing commissions, or an Apple 23' Cinema Display to p6summarizer@bofh.org.uk (One
of these days that begging request will work, and I'll be flabbergasted).