The Perl 6 Summary for the fortnight ending 2004-08-20 Harrumph. Note to self; never miss a week when you could actually have written the summary. I lulled myself into a false sense of security with the quiet week for the last summary. The last two weeks have been rather more busy and I've been away at EuroFoo over the weekend.
So, this fortnight's summary might be a bit sketchy. We're back with starting with perl6-internals this time as it continues to comfortably out traffic perl6-language (message count was running about 3:1 in favour of p6i). Register allocation Work continued apace on adding a bullet proof failsafe register spilling algorithm so that Dan's work project could be made to at least compile. There was much discussion of what was actually causing the problem and several attempts to fix it. Work is ongoing. Melvin Smith coined a new acronym: DSWEPIC, which stands for Dan Stop Writing Evil Pathological Intermediate Code though, as chromatic pointed out, it's actually Dan's compiler that's generating Evil Pathological code and Dan claimed that that's because he's writing a compiler for an Evil Pathological language. http://xrl.us/cub5 Parrot cvs mirrored with svk Chia-liang Kao announced that he (I'm guessing, I'm not very good at divining the gender of none western names. Sadly 'he' is usually a safe bet in this field though) was mirroring the Parrot CVS repository in a Subversion repository for those who didn't like CVS. There was a certain amount of chuntering but most people seemed pleased by this. http://xrl.us/cub7 The Pie-thon post-mortem Dan posted his notes on the aftermath of the pie-thon push. Next time we do this, we'll start earlier. http://xrl.us/cub8 An alternate call scheme Dan ruled on Leo's alternate call scheme proposal, but wasn't entirely comfortable with it. However, he sketched out another idea inspired by it. Leo didn't sound convinced. http://xrl.us/cub9 Source mangling slides Dan posted a link to an abortive talk on some of the cunning tricks we do with source mangling in Parrot. http://xrl.us/cuca http://xrl.us/cucb Making NCI work with a nasty library Hildo Biersma is trying to write parrot support for IBM's MQ library. He had a couple of questions about the best way to go about it. Leo and chromatic had some suggestions. http://xrl.us/cucc Functions for embedders to override Noting that Ponie was already have problems, Dan outlined those functions that embedding environments may need to override to get things working. He asked for help and comments in getting a system in place to allow overriding functions to be registered in order to give embedders control over parrot's interface to the real world. This is something which needs doing sooner rather than later so as to avoid storing up pain. This triggered a fairly wide ranging discussion, but progress is being made. http://xrl.us/cucd What Unicode means to us Mmm... Unicode. Dan outlined what need to deal with to do Unicode sufficiently well. Discussion ensued. http://xrl.us/cuce Fix generation of src/nci.c to be more efficient I don't normally point out patches, but Dan's patch to improve the generation of src/nci.c spawned a longish thread with commentary from Nicholas Clark and chromatic. http://xrl.us/cucf A small task for the interested Dan posted another of his small tasks for the interested (maybe we should start calling them STFTIs?). This time he's after source tests to test the embedding interface and some fixing of the auto-prefix scheme. http://xrl.us/cucg The encoding API Dan detailed the encoding API, the layer that mediates between Parrot, which sees strings as a sequence of codepoints and the underlying buffer full of bytes. Gopal V and Michael Stone had questions and suggestions. http://xrl.us/cuch COBOL on Parrot? Remember Dan pointed everyone at a GPL'd COBOL compiler and suggested that a Parrot backend would be cool? David Essex (if that's the British singer from the 70s then I'll be boggling like a good 'un) pointed everyone at a couple of others. He and Uri Guttman discussed runtime libraries. http://xrl.us/cuci The Perl 6 compiler pumpking Patrick Michaud, Perl 6 compiler pumpking, outlined his plan for getting us to a working Perl 6 compiler. http://xrl.us/cucj PMC semantics Leo kicked off what looks like being a long running thread when he opened discussion of the semantics of the various integerish PMCs in Parrot. Larry and Dan both pitched in with discussion. http://xrl.us/cuck Charset API Dan posted part two of the charset API, which confused me slightly by arriving on my computer before Part 1. http://xrl.us/cucm -- Part 1 http://xrl.us/cucn -- Part 2 Handling block parameters in Ruby Mark Sparshatt asked for advice on how to handle method invocations that include special block parameters like Ruby's. Leo thought that handling it in the parser/compiler and simply passing the block in as an extra parameter was the best way forward. Larry and Dan discussed complications associated with that idea. http://xrl.us/cuco Parakeet breaks and recovers Michel Pelletier updated his Parrot distribution and managed to kill his Parakeet language. Dan and Leo set about trying to track the underlying bug down. I presume it got fixed because Michel posted a new version of Parakeet soon after. http://xrl.us/cucp http://xrl.us/cucq NCI and callback functions Stephane Peiry had some problems getting NCI callbacks working with GTK. He and Leo went tried the debugging by email trick, but with little joy before the end of the week. http://xrl.us/cucr TODOs added Will Coleda added a vast number of TODO items to Parrot's RT queue. His TODO about the configuration system sparked a good deal of discussion. At least one person suggested ditching "make", which seems to be par for the course in these kinds of discussions. http://xrl.us/cucs http://xrl.us/cuct Popping an empty array Michel Pelletier wondered how to generate a catchable exception when he tried to "pop" from an empty PerlArray. Larry reckoned that, if it's really a PerlArray it should return an undef containing an unthrown exception. Which sparked a longish discussion... http://xrl.us/cucu Parrot interfaces Noticing that there appeared to be ops for handling interfaces, Michel Pelletier wondered when we might see an implementation or PDD covering their semantics. Our resident roles guy, chromatic, pointed out that Parrot will actually have roles, which can look like interfaces in the right light and pointed at Apocalypse 12 for more in the way of detail. Later on, Dan sketched out an initial interface spec. Parrot level interfaces are very simple indeed. http://xrl.us/cucv http://xrl.us/cucw Interpreter permissioning Felix Gallo sought input on the problem of interpreter permissioning. He got lots. http://xrl.us/cucx What? Dan Sugalski is a very, very bad man. Sure, he gets a good deal of mitigation from Parrot working as well as it does, but... well... Multi Method Dispatch on return continuations is sick, evil, and a strangely fascinating idea. http://xrl.us/cucy Span praise Dan's been catching up with his mail and popped his head up to say nice things about Span, a very pleasant looking OO language based around Parrot. http://xrl.us/cucz Incremental garbage collection Leo's working on implementing an incremental garbage collector for Parrot. The idea behind it is to reduce the amount of time the GC system spends with the world stopped. The response was generally positive, with discussion of potential edge cases. http://xrl.us/cuc2 http://xrl.us/cuc3 GC/DOD API Whee, a subject that's all acronym. That's Garbage Collection/Dead Object Detection Application Programming Interface for those of you who are bemused by the alphabet soup. Dan pointed out that, before we get a fully reworked garbage collection system in place, it would be a good idea to get the API designed and documented. http://xrl.us/cuc4 Meanwhile, in perl6-language Revision of Apocalypse 12's lookahead notions Larry posted a a message resolving issues with method lookahead and adverb parsing. And there was much discussion and clarification. Expect to see the results in Synopsis 12 when it gets written. http://xrl.us/cuc5 Handling block parameters in Ruby Matt Diephouse spawned a subthread from the A12 lookahead discussion by wondering how Perl 6 will handle multiple blocks as arguments. Larry had some thoughts. http://xrl.us/cuc6 Precedence table update Larry posted a newly tweaked Perl 6 operator precedence table. If you're one of those chaps who thinks Perl has too much syntax look away (or point and laugh depending on your persuasion) now. Various oversights were quickly spotted and fixed up. http://xrl.us/cuc7 Synopses drafts Larry posted the first draft of Synopses 1, 2 and 4 the condensed, updated, versions of their respective apocalypses. The list did the usual proofreading/patching thing. http://xrl.us/cuc8 http://xrl.us/cuc9 http://xrl.us/cuda Return with no expression Matt Diephouse found something surprising in Perl 5's handling of a return with no arguments and wondered if Perl 6 would magically solve his problem. Luke thinks it'll do the right thing by making the right hand side of a "=>" evaluate in a scalar context. http://xrl.us/cudb "<->" as "->" with automatic "is rw" Juerd scared me by proposing that "<->" be the equivalent of "->" with an implicit "is rw". Larry declared "It's really sick, and cute, and I love it." but thought that there might already be too many ways to declare a sub. http://xrl.us/cudc Announcements, Apologies, Acknowledgements Phew! I think I got this finished just before 'press' time for perl.com. Or maybe not. If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl. You might also like to send feedback or contributions to a 'getting Piers to OSCON 2005' fund to mailto:[EMAIL PROTECTED] http://donate.perl-foundation.org/ -- The Perl Foundation http://dev.perl.org/perl6/ -- Perl 6 Development site Oh yes, there's new content on my website for the first time in an age. Enjoy. http://www.bofh.org.uk/