This week on Perl 6, week ending 2003-02-16
Welcome to the all new, entirely unaltered, all singing, all dancing Perl 6 summary. Your beacon of reliability in the crazy world that is Perl 6 design and development.
Another quiet week. Even quieter than last week in fact, unless my mail spent some of the time up the spout, but I don’t think so.
So, as is traditional, we kick off with perl6-internals
CGP - The Computed Goto Prederefed Runloop
Last week I mentioned that nobody seemed to have commented on Dan’s bet with Guido van Rossum that Parrot would outperform Python by OSCON 2004. (I also missed the fact that the penalty for losing the bet now involves cream pies as well as $10 and a round of drinks…). After I posted the summary to the mailing lists, Leopold Tötsch informed me that he had commented indirectly by announcing his new, improved, ludicrously quick runloop that combines computed GOTOs and predereferencing. Whatever that means.
This week, Leo and Nicholas Clark worked out how to combine the blistering pace of the JIT core (for operations that had been translated into hand hacked machine code) with the blistering pace of the CGP runloop (for the other ops). As far as I can tell, this involved turning the idea ‘inside out’, the VM actually starts up running JIT compiled code and calls out to the CGP core to execute non-JITable sequences of ops. The numbers for this approach look fantastic (quite stunningly quick…) So Leo checked it in.
http://groups.google.com/groups
http://groups.google.com/groups – Some numbers
http://groups.google.com/groups – Check in notice
Optimized runloops and threading issues
Last week we were reminded that JIT and Predereferenced runloops don’t work in a threaded environment. This week Jerome Vouillon pointed out an approach that looks like it could fix that (it seemed to convince Leo). Dan (possibly playing mail catchup) said he was okay with having to fall back to the old fast core (as opposed to the current, stupidly fast core) in the presence of threads, but Leo seem to think that, using Jerome’s scheme we’ll be able to have our cake, eat it and still throw the cream pie at the Python team. Huzzah!
http://groups.google.com/groups
keyed_int
issues
Leo Tötsch had wondered about why {get,set}_<type>_keyed_int
vtable methods needed to take an INTVAL*
value instead of a plain INTVAL
as it introduced some possibly unneeded conditional code, a stack variable for the key and made life hard for JIT code. It looks like the pointer is a holdover from an early approach to doing multidimensional keyed structures.
http://groups.google.com/groups
Changes to the calling convention and other fallout
Dan returned from the Sebastapol Perl 6 meeting with a few announcements and one change in the parrot calling convention (how many calling conventions have we had now?).
http://groups.google.com/groups
Macro support in IMCC
Jürgen Bömmels announced that he’d implemented macro expansion in IMCC (Yay Jürgen!). Leo liked it, but requested a few changes before he’d check it in, so hopefully, some time soon the mainline IMCC will have macros, which is very nice.
http://groups.google.com/groups
Meanwhile, in perl6-language
Almost all the discussion was about the difference between arrays and lists. Deborah Ariel Pickett came up with a good list of questions about arrays and array references in scalar and list contexts, which Michael Lazzaro answered (very neatly I thought) with a list of their different contextual behaviours. Deborah extended Michael’s list to hashes and hashrefs in a reasonably obvious way. Smylers came up with a possible new sigquote (after paraphrasing): ``We should limit new features to those that arise from a desire for the functionality rather than a desire to use up ‘spare’ syntax”. (Okay, it’s not exactly snappy, but I think it’s important).
http://groups.google.com/groups – Deborah’s questions
http://groups.google.com/groups – Michael’s answers
And that wraps it up for the language list. I’m sure it’ll pick up again soon though. There are rumours of a draft apocalypse in the next couple of weeks, and presumably that implies a real apocalypse soon after. Assuming we haven’t had another kind of Apocalypse in the mean time.
Announcements, Acknowledgements and AnotherWordBeginningWithA
This week’s summary was again prepared in the comfy chair with surprisingly few distractions apart from the late arrival of mail from Leon Brocard announcing that he’d implemented a brainf*ck compiler in brainf*ck, but that didn’t really happen this week so I’ve got no excuse for mentioning Leon’s name in this summary.
Thanks to everyone who dropped us a line about our American Odyssey; I’m hoping I’ll have one of those web page things up at some point with a rough itinerary in case anyone wants to come and throw rotten tomatoes at me (or, preferably, buy me sushi).
Proofreading services were again down to Aspell and me.
If you appreciated this summary, please consider one or more of the following options:
- Send money to the Perl Foundation at http://donate.perl-foundation.org/ and help support the ongoing development of Perl.
- Get involved in the Perl 6 process. The mailing lists are open to all. http://dev.perl.org/perl6/ and http://www.parrotcode.org/ are good starting points with links to the appropriate mailing lists.
- Send feedback, flames, money, job offers or 17 inches of aluminium goodness to p6summarizer@bofh.org.uk
This week’s summary was, once more, sponsored by Darren Duncan. Thanks Darren. If you’d like to become a summary sponsor, drop me a line at p6summarizer@bofh.org.uk.
Tags
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub