Perl 6 Summary for 2004-11-08 through 2004-11-15 All~ Welcome to yet another Monday summary. This would have been a Sunday summary, but Avernum (from Spiderweb Software) forcibly prevented it. As usual, we will start out with Perl 6 Language.
Perl 6 Language modules and exports Aaron Sherman wanted to know some specifics about exporting things from modules. In particular, he did not want to have to retype a whole bunch of things. Larry gave an answer indicating that some of what Aaron wants should occur, but some things are difficult for good reason. <http://xrl.us/dy47> AUTOCLASS(DEF)? hooks Rod Adams wanted to know if he could get AUTOCLASS and AUTOCLASSDEF hooks. Larry told him that he probably could. Rod also wanted module name aliasing. Larry told him that he could. Rod wanted to have module names with arbitrary strings. Larry told him that he could. Rod wanted to be able to load multiple version of the same module. Larry told him that he could. The summarizer wanted each question of different focus to be in a different message. Hopefully, Larry will tell him that they should... <http://xrl.us/dy48> matching the nth occurrences Sudarshan Gaikaiwari wanted to know how to match the "2nd last" last occurrence in Perl6 rules. I think the message might have been posted directly to google groups, as I did not get it in my email and nobody replied. The example given matches the 2nd occurrence. As I am not sure what is meant by "2nd last", I will answer the question I do know. "m:2nd/foo/" will match the second occurrence of foo. The nth occurrence can be accessed similarly. <http://xrl.us/dy49> Perl6 Compilers Once again it is a race to see whether someone posts a comment to or google picks up Perl6 Compilers first. Parrot Welcome to the week of the continuation. If continuations make your head hurt overly, I advise taking a few Advil's before continuing. If continuations are the way you naturally think, I would advise you to stop playing with LISP compilers. string pinning Bernhard Schmalhofer wanted to pass the same C-string into to different external functions so that the first could do things to it that the second required. However, the solution that he found kept eating his string after the first invocation. Dan and Leo came to the conclusion that the 'd' parameter for NCI was the correct thing to use in this situation. <http://xrl.us/dy5a> GC invocation Last week Leo posted a radical idea about GC invocation, and I decided not to invoke Warnock's Dilemma too soon. This week, I invoke it. <http://xrl.us/dy5b> perl vs /usr/bin/perl Gerd Pokorra requested that "#! perl" be changed to "#! /usr/bin/perl". Although Warnock applied, I think that this will likely not happen as perl in not necessarily installed in user bin and people might want to change which perl is invoked by changing there path. <http://xrl.us/dy5c> Command line support for various compilers Will Coleda added a TODO item so that parrot can take various compiler arguments on the command line. What are you waiting for? <http://xrl.us/dy5d> Register Stomping Matt Diephouse was having troubles with his newly updated forth compiler. The verdict seems to be that he has uncovered a bug. To quote Matt, "*sigh*". <http://xrl.us/dy5e> Calling Continuations, Basic Blocks, and Register Allocation Either Leo or Jeff Clites (I don't recall who) started what is probably the largest thread for this week, whose focus is register allocation and continuation troubles. Apparently the presence of continuations can unduly extend the life time of registers (as can try-catch things, but they seem less important. The suggested sollutions all have some shortcomings, although it appears that only using lexicals is winning. <http://xrl.us/dy5f> <http://xrl.us/dy5g> basic compilation example Jeff Clites wondered how something like (a + b) would compile. The answer is that intermediate PMC should be initialized to Undef which will morph as appropriate. <http://xrl.us/dy5h> eval changes Leo updated the implementation of eval to make it even cooler or possibly just clean it up and fix some bugs.... I forget. <http://xrl.us/dy5i> Basic operations for MMD Dan asked for volunteers to speck out the basic vtable and MMD functions for CLS (common language something-or-other). Sam Ruby said he would be willing to take a stabe at it in a few weeks. One week has gone by, and Sam grows ever closer to stabbing things. <http://xrl.us/dy5j> no limit on imcc identifier length Will Coleda noted that there was no limit on the length of imcc identifiers. Here come the eval buffer overflow attacks... <http://xrl.us/dy5k> Duplicate local labels break PASM Will noticed that duplicate local labels cause IMCC to output broken PASM. I could be mistaken, but I though that IMCC -> PASM has been broken for a while... <http://xrl.us/dy5m> Parrot API Leo wondered if the parrot_api.pl could be less strict about what it thought was public and what was not. Jarkko Hietaniemi responded that that was not his call to make, and silence reigned supreme. <http://xrl.us/dy5n> Empty Sub troubles Will Colleda posted a bug for empty subs in IMCC. Stéphane Payrard provided a fix. Leo applied it. <http://xrl.us/dy5o> Languages with Object Support? Jeff Horwitz wondered if there were any languages with object support that he could bend to the evil ends of mod_parrot. While no one answered, I think Parakeet might be such a language... <http://xrl.us/dy5p> WinXP problems Christian Lott has been having troubles with WinXP. In particular problems with ops2vim.pl. Read on for the blow by blow. <http://xrl.us/dy5q> Strings + Woking Correctly = Pain In his noble efforts to make Parrot respect foreign languages and cultures, while not necessitating ICU. Dan has been doing massive reworkings of strings. He reports... progress... He also posed a question for all to ponder: "How global should the defaults be?" <http://xrl.us/dy5r> <http://xrl.us/dy5s> <http://xrl.us/dy5t> <http://xrl.us/dy5u> runtime/parrot/library/config.pbc Nicholas Clark wondered what would generate this file. Leo answered. Nicholas tracked his problem down to a quirk in FreeBSD make and fixed it. <http://xrl.us/dy5v> #line directives from PMC files Nicholas Clark announced his triumph over #line directives in pmc2c2.pl. People were impressed, but promptly asked how to turn it off. Kids these days don't appreciate what they got ;-) <http://xrl.us/dy5w> Tail Calls Jeff Clites asked about tails calls in the pressence of continuations. After much debate, the concensus seems to be that they don't effect eachother much at all. In fact continuations make tail calls easier. However, the topic of whether these were an optiization that IMCC should detect or they should be explicitly generated by the compiler also came up. I think the final decision was compiler generated, although I doubt I would be alone in not minding if IMCC had a flag to allow it to add them as it saw fit... <http://xrl.us/dy5x> Character Classes Patrick R. Michaud wanted to know if Parrot had character class support (i.e. checking membership). Leo responded that it would after Dan's aforementioned string stuff. <http://xrl.us/dy5y> POSTCOMP vs LOAD Leo asked what the differences between POSTCOMP and LOAD are. Dan provided the answer: POSTCOMP is run only when (and as soon as) the sub is compiled. LOAD is run when the sub is loaded. This need not be the same time if the source is used to generate bytecode which is later executed. <http://xrl.us/dy5z> Register allocation/spilling/volatitlity Jeff Clites suggested using variable size register frames with explicit volatile and non-volatile sections. Leo responded that this would cause serious code bloat, and pointed him to his and Miroslav Silovic's "watermark" scheme. Others voiced support for this as well as removing the implicit operands. Dan said no. <http://xrl.us/dy52> AIX JIT gnomes Adam Thomason observed that the AIX JIT problems have gone away and thanked the gnomes responsible. Remember, the proper sacrifice for little people like gnomes are mini-Milanos or other reduced size cookies (nothing from Keebler as the gnomes and elves have long unresolved issues). <http://xrl.us/dy53> Register Allocation for Fun and Profit Bill Coffman's register allocator (or should I say his implementation of the Matula/Chaitin/Briggs algorithm) grows ever closer to being commited (although my initial prediction of two weeks ago was clearly wrong). In fact, his algorithm is so good that it even turned up bugs from other peices of the code. Dan started a test run on his evil code, so we should have truly stressed performance numbers within the next several fortnights. <http://xrl.us/dy54> <http://xrl.us/dy55> imcc segfault on bad if Gopal V found a way to make imcc segfault. I think it is still waiting for a fix... <http://xrl.us/dy56> no perldoc == BIG FAT WARNING James deBoer submitted a patch to fail if config did not find perldoc last week. This week the request has gone out to modify it to warn in a big and preferably fat way. No answer yet. <http://xrl.us/dy57> RT clean up Will Coleda, whose dilligent minding of the RT queue is much appreciated, closed a few tickets which no longer applies. <http://xrl.us/dy58> <http://xrl.us/dy59> BASIC compiler Will "Dr. Frankenstein" Coleda has attempted to resurrect the basic compiler with some major surgery. He is making progress. Joshua Gatcomb put out a request for a new maintainer. <http://xrl.us/dy6a> <http://xrl.us/dy6b> Config provides slightly more info Luke Palmer provided a patch for making Configure.pl slightly more informative. Brent 'Dax' Royal-Gordon applied it. <http://xrl.us/dy6c> find-method inheritence Sam Ruby asked for comment before committing a patch to allow calling of attributes as methods and to allow inheritence of attributes. When no one commented, he committed. <http://xrl.us/dy6d> Threads, Events, Win32 Gabe Schaffer pointed out some issues with threads and events from a Win32 perspective. Leo pointed out that this has not yet been fully implemented/abstracted/documented and observed that Gabe would be a welcome volunteer. <http://xrl.us/dy6e> core dump on japh16 Bernhard Schmalhofer noticed that japh16 coredumps. He also submitted a simplistic fix. <http://xrl.us/dy6f> The usual footer 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 to [EMAIL PROTECTED] http://donate.perl-foundation.org/ -- The Perl Foundation http://dev.perl.org/perl6/ -- Perl 6 Development site http://planet.parrotcode.org/ -- Parrot Blog aggregator