This Fortnight In Perl 6 (July 22 - Aug. 4, 2001)
Table of Contents
You can subscribe to an email version of this summary by sending an empty message to email@example.com.
Please send corrections and additions to firstname.lastname@example.org.
My apologies, again, for the lack of a summary recently. My last one, covering July up to the beginning of The Perl Conference, was apparently lost in the shuffle or the noise that was TPC, because it never made its way to the list or perl.com. And fool that I am, I didn’t bug Simon about it, fearing I would be burdening an already overloaded schedule (shades of Warnock’s Dilemma). But have no fear. If you’ve a penchant for ancient history, you can find it here in my personal archive.
As far as current news, there were 120 messages across 28 threads, with 34 authors contributing, most of which occurred the week following the conference.
The Perl Conference 5.0
Despite accounts to the contrary, Perl 6 actually played a very small role in the production that was The Perl Conference.
This isn’t a bad thing, mind you. Perl 6 still exists only in the minds of a few select individuals, and it would make a very uninteresting conference to have tutorials and sessions based on a language that doesn’t exist, and is still in flux. Thus, with a few exceptions, TPC was geared around the here-and-now of Perl 5.
Perl 6…, well, who cares anything about Perl 6?
But Larry didn’t recant last year’s proclamation, and Jon Orwant didn’t throw mugs asking why we were working on a new version when there was so much interest in the old.
So Perl 6 moves on. Slowly but surely. In no hurry. And so, a brief overview of what did happen at TPC with Perl 6.
The Perl 5 Porters Meeting
Before the conference even started, the attending Perl 5 Porters got together for a business meeting (of sorts), to talk about the past, present, and future of Perl. Nat Torkington was kind enough to allow me to attend, and there was a long enough break in the Perl 5 action for he and Dan Sugalski to summarize what has been done so far for Perl 6.
The State Of The Onion
Larry’s State Of The Onion was all Perl 6, or at least what he could get out 55 seconds at a time. It was, we hope, a preview of some upcoming Apocalypses. You can read Simon Cozen’s review here, and Nat announced an MP3 recording of it on perl5-porters.
The P 6 Q & A
‘Being Dan Sugalksi’
Folks were later able to get a glimpse at the inside of Perl 6 through the eyes of Dan, who is heading up the internals effort. His slides can be found here.
Perl 5.6 pumpking Gurusamy Sarathy finished the week with his vision of what Perl 6 should be. It was a much different perspective from the ones pitched before, as it was based on what he sees as the problems in Perl 5, untainted by the Perl 6 process (which he has not been following).
In some cases, there was complete overlap (garbage collection and more pluggable components, for instance); in others, a different perspective (heavier reliance on facilities provided by the underlying architecture - physical or virtual - instead of rolling our own).
The Opcode BOF
Dan, Simon, and I attended Uri Guttman’s Op Code BOF to try to flesh out more details of the op code and event dispatch loop. Gurusamy and newly appointed pumpking Hugo van der Sanden also sat in.
The meeting was short and vociferous. About the only major idea added to Dan’s current PDD was a prioritization scheme for event handling. No notes are posted anywhere, so the following comes from my own scribblings:
Events will be priority based, much like a real CPU. System events - signals, etc. - will naturally have a higher priority than user events. The opcode dispatch loop will check for events after each opcode, and if there are queued events at a higher level than our current state, the opcode loop will exhaust them. (That prevents events from interrupting themselves, since the event handlers themselves will consist of opcodes, between which events will be checked for.)
Obviously, there are still a lot of details to be worked out, but that was the plan at the time.
The Mailing Lists
Opcode Dispatch, Continued
(6 posts) In blatant defiance of Knuth, I decided to test some of the ideas from opcode discussions of past and present, and coded a couple variations of dispatchers to get a feel for performance. Following some suggestions from Nick Ing-Simmons and Dan Sugalski, testing continues.
(12 posts) I also did a brain dump of some ideas on module versioning. There was some brief discussions on what could (and couldn’t) and should (and shouldn’t) be done. Bart Lateur pointed everyone to an old message from Ilya Zakharevich, where he suggested a potential solution to the conflicting DLL issue.
Interestingly enough, a similar discussion took place on perl5-porters at about the same time.
(1 post) Dave Mitchell released an update for his PDD on Perl coding conventions and guidelines.
Adding Methods To Builtins
(1 post) Brent Dax suggested a method (no pun intended) for adding methods to the builtin types.
If Then Else Otherwise
(22 posts) Raptor started a thread that began with a specialized conditional block construct tuned to the return values of
<=> and cmp called
if-else-otherwise, and later shortened to
?::. Once the participants worked past the actual syntax of his proposal, it was clear that he was looking for some form of computed goto, a la FORTRAN’s arithmetic conditional,
IFA. There were plenty of examples of how many different ways you could accomplish the same in Perl 5.
(7 posts) David Nicol then extrapolated this into a generic macro language proposal for Perl 6.
(10 posts) Ilya Sterin asked about the difficulty in solving the circular reference problem, which several folks kindly answered.
Now’s a good time to re-advertise that Perl 6 will have a better garbage collection system.
(12 posts) I had to go and revisit some potential problems in the (currently proposed) property mechanism. Dan quietly pointed out that Damian and Larry were working on it.
(9 posts) Adam Turoff explained a little about the Perl Documentation Project - a project similar to the Linux Documentation Project. He will speak more on this later.
One of the recurring Perl 6 questions at TPC was documentation. “The Apocalypse and Exegesis series are nice, but is there a complete picture of what Perl 6 is going to look like?”
Soon, there will be. I’m working on two forms of “snapshots” of what Perl 6 is, in parallel with Larry’s pronouncements and various implementations being done. The first is to be a dull, dry, boring, reference document, which will briefly describe the current feature set of Perl 6, and how it ties to the internals. The second will be a Perl 6 version of the existing PODs - or at least all the ones that make sense. As Larry and Damian leak various tidbits of Perl 6, I’ll update those documents to add any new features, or rip out dead Perl 5 ones.
Something wrong with this article? Help us out by opening an issue or pull request on GitHub