This week on Perl 6, week ending 2003-06-15

Welcome to the last Perl 6 Summary of my first year of summarizing. If I were a better writer (or if I weren’t listening with half an ear to Damian telling YAPC about Perl 6 in case anything’s changed), then this summary might well be a summary of the last year in Perl 6. But I’m not, so it won’t. Instead, I’m going to try and keep it short (summaries generally take me about eight hours on an average day, and I really don’t want to lose eight hours of YAPC, thank you very much).

It’s getting predictable I know, but we’ll start with the internals list – again.

Class Instantiation and Creation

Dan continued slouching toward full OO and outlined the issues involved with setting up classes and asked for opinions. People offered them.

Writing Language Debuggers

Clinton Pierce wanted to know how to go about writing language level debuggers in Parrot. (This man is unstoppable, I tell you.) He offered some example code to show what he was trying to do. Benjamin Goldberg had a style suggestion for the code, but nobody had much to say about Clint’s particular issue.

Converting Parrot to Continuation-Passing Style

Much of this week’s effort was involved in getting support for the continuation-passing style function calling into Parrot. Jonathan Sillito posted a patch. This led to a certain amount of confusion about what needs to be stashed in the continuation and a certain amount of bemusement about the implications of caller saves rather than callee saves (in a nutshell, a calling context only has to save those registers that it cares about; it doesn’t have to worry about saving any other registers, because its callers will already have saved them if they cared.)

Dan ended up rewriting the calling conventions PDD to take into account some of the confusion.

I think the upshot of this is that the Parrot core now has everything we need to support the documented continuation-passing calling conventions. But I could be wrong.

Segfaulting IMCC for Fun and Profit

Clint Pierce’s BASIC implementation efforts continue to be one of the most-effective bug hunting (in code and/or docs) efforts the Parrot team has. This time, Clint managed to segfault IMCC by trying to declare nested .subs using the wrong sorts of names. Leo Tötsch explained how to fix the problem. It seems that fixing IMCC to stop it from segfaulting on this issue is hard, since the segfault happens at runtime.

Passing the Time

Clint’s BASIC can now place chess! Not very well, but we’re in ‘dogs dancing’ territory here. Bravo Clint! There was applause.

Meanwhile in Damian’s YAPC Address …

New DISPATCH method

Last week, Ziggy worried about multimethod dispatch not being good enough. This week at YAPC, Damian announced DISPATCH, a scary magic subroutine that allows you to define your own dispatch rules. Essentially, it gets called before the built-in dispatch rules do; beyond that, I know nothing.

Sorry, no link for this.

Meanwhile in perl6-language

Ziggy’s Obsolete Thread

Last week, I mentioned that Adam Turoff had worried a little about multimethod dispatch, and wanted to know whether it would be possible to easily override the dispatch system. This week, he outlines the types of things he might want to do.

See above for the resolution. Details don’t exist just yet, but we’ll get there.

Type Conversion Matrix, Pragmas (Take 4)

Michael Lazzaro posted the latest version of his Type Conversion Matrix and asked for comments and, hopefully, definitive answers. There was a small about of discussion …

Returning from a Nested Call

Whilst idly ‘longing for the cleansing joy [of] Perl,’ Dave Storrs wondered how/whether he could write a method that would return from its caller. Answer: yes, use leave.

printf like formatting in interpolated strings

Edward Steiner wondered about having some way to printf, like formatting of numbers in interpolated strings. Luke Palmer (who just told me he’s embarrassed about something I wrote about something he said last week, but I’d forgotten it) came up with a cool-looking suggestion in response.

Acknowledgements, Announcements and Apologies

Well, that wraps up my first year of summary writing. Thanks to everyone for reading, it’s been fun.

I have one announcement to make: As of next week, there will be no obligatory reference to Leon Brocard – I’m getting bored of it, you all must have been bored with it for months … .

If you’ve appreciated this summary, then please consider one or more of the following options:

  • Send money to the Perl Foundation at and help support the ongoing development of Perl.

  • Get involved in the Perl 6 process. The mailing lists are open to all. and are good starting points with links to the appropriate mailing lists.

  • /usr/bin/pod2html: p6s.pod: cannot resolve L<> in paragraph 50. Send feedback, flames, money, photographic and writing commissions, or a nice long US power cable to plug into my Mac power-brick to **.



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