This Week in Perl 6 (5 - 11 August 2001)


This Week in Perl 6


Damian's Perl 6 Talk, Take Two

Opcode Dispatching


given (Properties) { when: Proper }

Eval/o's Vs. Evil Woes PDDs Released

You can subscribe to an email version of this summary by sending an empty message to

Please send corrections and additions to

There were 129 messages across 19 threads, with 31 authors contributing.

Damian’s Perl 6 Talk, Take Two

Damian Conway has released an updated version of his Perl 6 slides (PDF). Plenty of hints of things to come in this one… or of things that came.

Opcode Dispatching

(32 posts) There were some brief peeks into the opcode dispatch engine. Here, Dan Sugalski explains why he wants 32-bit-wide opcode tables…

>but a pure 32 bit table can be very large (and sparse) if we have those gaps you seem to propose below.

True, but only if we actually use the whole set. We’re 32 bit for a few reasons, none of which are to provide a billion opcodes:

* So all the pieces of the op stream are the same size

* It avoids alignment problems we’ll see on many processors

* It means the endian preprocessor we’ll need on some platforms can be very fast, as it can just byteswap everything rather than actually need to know which pieces are which size.

Basically everything gets compacted down at one end, and we’ll probably (dynamically) limit the table size to 1K custom opcodes in force at once or something.

…and how multiple dispatch tables will be handled.

Simple. As I said, the opcode function table is lexically scoped. Jump into code from another scope and the ‘correct’ function table is automagically (well, OK, there’s an opcode for this, but…) installed for you. So while opcode 774 used to be “socketpair”, in the new lexical scope it might be “LWP::Simple::get”, but that’s OK because since we swapped in a new table everything’s just fine.

Other brief discussions included Dan on opcode numbering, shared libraries, and event handling; and myself on the latest in testing.


(28 posts) Kirrily Robert posted what she feels the Perl 6 community should do for the next generation of Perl’s reusable code base.

At YAPC, I told Nat I wanted to get involved with modules-related work for Perl 6. To that end, I’ve put together a bit of a list of what I think needs to be done in that area. The list appears below, in POD format. If you’re interested in being involved in this stuff, or just have comments, please follow up to, which is probably the most suitable place available to us.

There was lively discussion, mostly giving examples of the points she made in her posting. (Namespace messes, implementation issues, etc.)

given (Properties) { when: Proper }

(10 posts) The discussion on properties continued with Damian Conway posting the revised draft he sent to Larry for (re)consideration, and answering a few questions on global variables:

But, yes, I would fully expect that the global punctuation I/O control variables will become attributes/properties/traits of individual filehandles.

(2 posts) Damian also explained in detail about the given/ when construct.

Eval/o’s Vs. Evil Woes

(5 posts) David Nicol proposed an o switch for string evals - indicating ‘compile once’, a la the regex o switch - to solve some issues he has with alternate syntaxes.

Bart Lateur and Marc-Oliver Ihm went one step further, by just having eval compile the code and return the compiled code block.

PDDs Released

(2 posts) Dave Mitchell released the final draft for his Conventions and Guidelines for Perl Source Code PDD.

(20 posts) Dan Sugalski previewed his first draft on Perl’s assembly language. The initial discussion pointed out some areas for needed clarification, and coverage of this document will pick up as it matures.

Bryan C. Warnock



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