This week's summary. Part 1
The Perl 6 summary for the week ending 2006-02-12 Welcome to part one of this week's summary. Owning to chronic problems with deadlines I've only got time to summarize perl6-compiler and perl6-internals tonight; I'll do perl6-language when I get back from $paying_job on Thursday night. You shall just have to contain your excitement 'til then. This week in perl6-compiler Tokenizer hints, supporting delimited identifiers or symbols Darren Duncan said that he'd like for there to be a simple and terse way for Perl 6 identifiers or symbols to be able to composed of any characters whatsoever (even whitespace). After all, it's allowed in lots of other languages (including, although Darren didn't mention it, Perl 5 -- consider ${var with spaces} = 'foo' if you don't believe me. Lexical vars are a wee bit trickier). I turns out that, as Larry said $::You can already do that!;, which is nice. It turns out there's quite a few ways of doing it and Larry discussed them all. http://xrl.us/j2bf Meanwhile, in perl6-internals Parameter count checks One of the tricky things about having PIR level parameter count checks is coming up with a good syntax for it; in particular, Chip wanted an easy way of expressing common things like void calls. It turns out out that Common Lisp is one of the trickier languages to deal with here since it allows for multiple values returned from a function, but ignores every return apart from the first unless you specifically ask for them. Which can be nice, but is weird. I'm not sure we have a syntax for it yet, I'm sure one will be forthcoming eventually. http://xrl.us/j2bg Add methods in dynpmc François Perrad had some trouble adding methods to Lua PMCs and asked for help. Leo provided it and all was gorgeousness again. http://xrl.us/j2bh {null,parrot,installable}_config.o Florian Ragwitz is the Debian maintainer of the pugs and parrot packages and he has problems getting the latest pugs to link with Parrot, mostly because of the way parrot stores information about where things are installed. He made a few suggestions for resolving the issue. I'm not sure Leo's answer was much use to him. http://xrl.us/j2bi Heureka - from the -Ofun department Leo announced that Parrot is now running the Ackermann benchmark faster than C. It turns out that tail recursion elimination is a really good thing to have. It also turns out that we only get the really blistering speed on x86 and ppc architectures, because those are the architectures with a working JIT core. Things aren't quite so rosy on SPARC, for instance. Still. Wow! http://xrl.us/j2bj :non_volatile is now :unique_reg Jonathan Worthington checked his :non_volatile patch back in, but with the new :unique_reg name. Which is nice. http://xrl.us/j2bk Sub introspection: filename and line Jerry Gay had some questions to ask about walking the Parrot call chain and getting at file and line info. It turns out that the Sub PMC doesn't have the methods he needs. Johnathan Worthington corrected what he'd said on IRC about how to walk the call chain, pointing out that, instead of walking subs, you need to walk contexts, but that contexts aren't actually PMCs because we don't have weak references yet. Apparently, we will have weak references eventually, at which point we'll be able to have context PMCs, which can be used for introspecting on the call chain. Me? I don't quite understand what's the difference between these 'contexts' of which Jonathan speaks and return continuations. But I'm odd like that. http://xrl.us/j2bm Q. Namespaces and classes Leo wasn't entirely sure of what semantics are needed by namespace PMCs. He talked around the issues and asked if he was going along sane lines. I can't tell if Jonathan thought Leo was sane or not, but Leo seemed to find the response useful. http://xrl.us/j2bn Quis custodiet ipsos custodes? Misspelling Juvenal slightly, Jerry Gay observed that there are no tests for Parrot::Test and made a plea for this to be remedied. You're on your own with the Latin. http://xrl.us/j2bo PIC/JIT update Leo announced that the PPC JIT core can now compile subs on the fly, just like the x86 core. But only for integer code apparently. http://xrl.us/j2bp Integer divide overflow Leo observed an overflow issue with integer division and asked for comments. Jonathan Worthington suggested going to the pub. It won't fix the problem, but we'll feel better about it. We definitely seem to be in Don't do that then. territory. http://xrl.us/j2bq Find a multi-method/multi-sub by name and signature Jonathan Worthington's work on a .NET translator 'ambles on'. He's working on mapping .NET's static
Um... this week's summary
Unless Matt takes pity on me, and writes a summary at disgustingly high speed, there won't be a summary this week. Assorted things got in the way on Monday or Tuesday, and I'm now at my consulting gig 'til the end of the week with no time for summarizing. I'm really, really sorry. -- Piers Cawley [EMAIL PROTECTED] http://www.bofh.org.uk/
This week's summary
The Perl 6 summary for the week ending 2006-01-01 Another year, another summary. You might think I'm going to summarize the events of the whole year, but it turns out that chromatic's already done it. So in the spirit of laziness, I'll just point you at his year end summary. http://xrl.us/jfai Sadly for us all, he doesn't go into enough detail on the events of the last week for me to go straight into the coda. I shall have to talk to him about next year. This week sees a big non-technical change in the Pugs camp, lots of roadmapping and implementation in the Parrot camp, and a more and more concrete feel of what the language is going to look like in the perl6-language camp. Pretty much business as usual really. This week in perl6-compiler Runtime typecasting Autrijus Tang is now Audrey Tang. Read her explanation on her blog. Speaking personally I'm delighted that she's found the courage to make the change and wish her the best of luck and happiness in her new/true identity. http://xrl.us/je9a Pugs on Cygwin There was a fair amount of discussion on getting pugs and parrot running in the Cygwin environment this week. Last time I looked, things were working again. http://xrl.us/jfaj This week's Pugs developments Audrey's taken to summarizing pugs developments on her blog and to posting digests of these posts on the list. She wrote about PIL and Rules this week. http://xrl.us/jfak -- Pugs-PIL developments http://xrl.us/jfam -- Pugs-Rule developments http://xrl.us/jfan -- Pugs-Rule: Grammar support Meanwhile, in perl6-internals Threading PDD? Patrick Michaud suggested, after a question from Klaas-Jan Stol, that it might be a good idea to create a placeholder Threading PDD (Parrot Design Document) noting that threading hasn't been specced yet and that a draft would be welcomed. Warnock applies. http://xrl.us/jfao Pugs is the official Perl 6? Or am I putting words into Luke's mouth? Read, then decide. http://xrl.us/jfap .imc or .pir? There can only be one As part of the great Parrot reorganization, Chip declared that the IMC vs PIR ambiguity had to be resolved. As he put it: IMC vs. PIR Two names enter One name leaves The name that left was PIR, any files you find with .imc extensions should be cruelly laughed at while you kick sand in their faces. http://xrl.us/jfaq Dynamic binding patch Bob Rogers offered up a patch to implement dynamic binding of globals for the list's consideration. Leo thought the patch was mostly sound, but that the whole dynamic binding thing needed more thought and infrastructure. Which is probably a broad hint to Chip and possibly @Larry (said hint hasn't been taken yet though, well, not in public). http://xrl.us/jfar Smoke testing Leo pointed everyone at the Perl Image Testing Architecture, which has possibly the coolest acronym of any Perl project in recent years. He thought it would be useful to use for additional Parrot platform testing as well. http://xrl.us/jfas http://ali.as/pita/ Lots and lots of TODOs I'm not going to enumerate them here, but Will Coleda, Matt Diephouse and others have been adding loads of TODO entries to the Parrot bugtracker. Which is nice. IMCC optimizer instruction duplication and opcode write/reads Amos Robinson wanted to know how to go about duplicating instructions and wondered about the correct semantics of in/out/inout arguments. Leo came through with the answers. http://xrl.us/jfat Meanwhile in perl6-language Iterating over complex structures Rob Kinyon applied the 'What does Ruby do?' pattern to the problem of iterating over complex structures. Mostly it looks good, but I'm hoping that someone else considers applying the 'What does Smalltalk do?' pattern as well. Subject to tuit supply, I might even do that myself. http://xrl.us/jfau Match objects Who is Match, and to what does he object? Sorry. Couldn't resist. Patrick and Luke discussed the behaviour of match objects. (Array) introspection Ilmari Vacklin wondered about how to introspect on the structure of arrays and other data structures. Warnock applies. http://xrl.us/jfav Array/list transformations Rob Kinyon pointed out the difficulties of dealing with binding array slices and other such goodies. Larry thought it wasn't really that difficult (from the point of view of the perl programmer, things might be different for the implementers) http://xrl.us/jfaw Relationship between slurpy parameters Austin Frank wondered about the different uses of prefix:* in parameter lists and elsewhere. Stuart Cook had answers. Piers Cawley worried about the current behaviour of prefix:* in parameter lists and about how
Re: This week's summary
ti, 2006-01-03 kello 13:57 +, The Perl 6 Summarizer kirjoitti: Planet Perl Six is a handy news aggregator of several Perl 6 related sources. http://planet6.perl.org/ I believe that is actually http://planetsix.perl.org Thanks for the great summary! -- wolverian [EMAIL PROTECTED]
This week's summary
The Perl 6 summary for the week ending 2005-12-18 Welcome to another Perl 6 summary. This has been a week of shootouts, cleanups, relationships and cunning translations. Read on for the details (or, this being a summary, pointers to the details). This week in perl6-compiler 2 messages? Sometimes I wonder why I even bother summarizing this list; I could just paste its contents in their entirety. However: Call for a Pumpking: Do you want a Ponie? Jesse announced that Nicholas Clark was retiring as Ponie's Pumpking following his departure from Fotango. So we're looking for another volunteer to take Ponie from its current state to a working Perl 5 runtime fully integrated with Parrot. If you're a C programmer with a good grasp of the Perl 5 internals and you're interested in taking on the job, [EMAIL PROTECTED] is eager to hear from you. http://xrl.us/i9rz Pugs, Javascript and Perl 5 Continuing Pugs' tradition of linguistic mashup, Chia-liang Kao announced that Pugs Javascript backend can now support Perl5. http://xrl.us/i9r2 Meanwhile, in perl6-internals Parrot Shootout Work continued on implementing and optimizing Parrot's entry for the Language Shootout. http://xrl.us/i9r3 http://xrl.us/i9r4 http://xrl.us/i9r5 http://xrl.us/i9r6 http://xrl.us/i9r7 http://xrl.us/i9r8 Variables, Aliasing and Undefined-ness Matt Diephouse wondered how he should translate the following in to PIR code: $var = Foo; *alias = *var; $alias = undef; $alias = Baz; print $var, \n; Audrey Autrijus Tang suggested that allowing multiple LexInfo names to point to the same underlying register would make this sort of thing (and several Perl6isms) a good deal easier to implement. Leo pointed out that it actually had been implemented, though I'm not sure if Luthor includes this. (Pugs always targets the latest Parrot release). http://xrl.us/i9r9 Cleaning up the build process Joshua Hoblitt went to town on RT posting a breakdown of proposed refactorings of the Parrot build process ParTCL shootout Will Coleda suggested that it would be useful to set things up to run the TCL shootout benchmarks on ParTCL. He's not exactly sure that they'd *work* just yet (or be fast, come to that), but they'd certainly be a handy test/benchmark suite. After a couple of patches, it seems that ParTCL can at least run the hello benchmark. Still, a journey of a 1000 miles starts with but a single step and all that. http://xrl.us/i9sa Parrot directory reorganization (phase 2 mark 3) Jerry Gay's reorganization of the Parrot distribution's directory structure continued apace. Reorganizing the JIT subdirectory and its associated config system proved to be something of a sticking place, but Joshua Hoblitt sorted things out. http://xrl.us/i9sb Bug or feature? Chip had some thoughts about PIR's macro support and concluded that we need a robust multi-line quoting convention in order to pass multiple lines of code to macros. He outlined some suggested syntax. Discussion ensued, mostly favourable. http://xrl.us/i9sc Building Parrot includes Leo noted that the files in runtime/parrot/include/*.pasm are created by configure. He argued that they should really be generated by a Makefile rule, which would have the advantage of taking note of dependencies. There followed a certain amount of quibbling with Joshua Hoblitt, but I don't think anyone disagrees with the gist of the proposal. http://xrl.us/i9sd Library loading - no more duplicates Leo announce that, as a of r10458, Parrot doesn't load_bytecode from the same file twice any more. Chip and Nicholas Clark applauded the change and plotted ways to make it even more effective. http://xrl.us/i9se Fixing japhs Not content with implementing shootout benchmarks, Joshua Isom has also fixed a few of Parrot's example japhs. http://xrl.us/i9sf Q: String.get_integer Leo had some questions about magical conversion between strings and integers. Patrick and others reckoned that his proposed behaviour was about right. Personally, I'm not convinced that the basic String PMC should do any magic conversion, but PerlString definitely should. http://xrl.us/i9sg Parrot Borking Steve Gunnell had a problems with Parrot throwing segfaults. Leo gave him some pointers to tracking the issue down and recommended using the SVN repository and not the CVS mirror. http://xrl.us/i9sh Meanwhile, in perl6-language Relational data models and Perl 6 Darren Duncan's been doing some thinking about Relational data models and how to support working with them in Perl 6 and posted the results of his thought on this to the list. Lots of discussion ensued. There was a fair amount
This week's summary
The Perl 6 Summary for the week ending 2005-12-04 I heard a rumour on the London.pm mailing list week. Apparently the Perl 6 Summaries are no longer being published. As I'm sure you can imagine, it came as something of a surprise to me. This week has been all about Parrot, Leo's got the new lexical scheme, calling conventions and exception handlers working and made Parrot stricter about arguments. The end of the week saw the release of 'Luthor', version 0.4.0 of Parrot. Read on for more details... This week in perl6-compiler Um... one post in perl6-compiler this week. And that was crossposted to perl6-language. And because it got posted at the end of the week, none of the actual discussion occurred this week. Moving swiftly on... This week in perl6-internals Much more going on here as everyone rushed towards the release of Parrot 0.4.0 Luthor at the end of the week. Exception handlers and calling conventions As I predicted last week, Leo's brain dump about exception handling got discussed this week. It was well liked, and after a small bit of sugar was sprinkled on to make ParTCL's life a little easier (and possibly unsprinkled later) all manner of things were well. http://xrl.us/i5nt Subs may not contain dynamic call info, ever Chip posted a clarification of his comments on what data could and couldn't be hung off a Sub object at runtime. Let's be reentrant people. http://xrl.us/i5nu PDD20 Tcl Will Coleda announced that ParTCL is now working with the new lexically lovely Parrot calling conventions. There was much rejoicing. http://xrl.us/i5nv Test::More and Tests in PIR Leo showed the love for chromatic's shiny pure parrot implementation of Test::More. So the patch was applied. http://xrl.us/i5nw Upcoming changes Leo announced the scratchpad's impending doom and outlined the planned change for comment. Nobody commented, and the changes went in. http://xrl.us/i5nx Parrot directory reorganization Quick quiz: where would you expect to find tests in the parrot distribution? How about generated source files? Jerry Gay proposed a reorganization to make things a little more lovely. The consensus seemed to be that a reorg along Jerry's lines wouldn't be a bad idea, but Chip pointed out that, whatever gets done it should be done 'cautiously so as to minimize unpleasantness'. So Jerry is proceeding cautiously, starting with a host of new TODO tickets in RT. http://xrl.us/i5ny Solving = confusion: ':=' for aliasing There are those of us who are wondering why this one took so long... Chip proposed that people start to spell aliasing as := and assignment as =. I think it's a really good idea, but then I don't have a large amount of PIR code to maintain so what do I know. Some other folks weren't so sure, but Chip is not to be denied. Discussion then span off into what language to write the automagical translator in. I believe this may involve writing it in PIR then converting it to PIL, which would be converted to Perl 5 using pugs and then Larry's Perl 5 to Perl 5 project could be used to convert it to XML, which could then be modified using XSLT and converted back into PIR using some scary voodoo magic. Or they could just write it in Perl 5. Prosaic, but possible right now. http://xrl.us/i5nz PDD03 Revisions Chip announced that he'd put up another revision of PDD03 on Parrot calling conventions. Most of the changes are simple clarifications and flag renaming, but he's also proposing a new READONLY flag for get_params to make it easy to support the default Perl 6 argument mode. Response was muted, but favourable. http://xrl.us/i5n2 PDD03 and Overflow/Underflow It's been mandated for ages that Parrot should throw an exception when functions get called with the wrong number of arguments. It's always been one of those things that will be implemented 'some day'. Well this week had a someday in it as Leo made parrot do what it's supposed to do. And broke PGE for a while... http://xrl.us/i5n3 PDD20 questions Jonathan Sillito is a class act. He didn't just ask a bunch of questions about the new PDD20 on lexical variables, he promised to take the answers he received and use them to patch PDD20 to make things clearer. Spurred on by this promise, Chip was unstinting in his answers and clarifications of them. Which is nice. http://xrl.us/i5n4 PIR methods and local variables occupy the same 'namespace' Allison Randal used Snarks, Boojums and Thingies to demonstrate a possible problem with the way Parrots local variable and method namespaces overlap. Leo pointed out that this can sometimes be useful. So, for the time being, Parrot continues as is in this area. If you go getting the
This week's summary
The Perl 6 Summary for the week ending 2005-11-27 Another week passes. Another summary is written. Another sentence remains steadfastly in the passive voice. This week in perl6-compiler Perl 5 tests for PGE::P5Regexp Jerry Gay announced that he'd checked in a subset of perl 5.9.2's regexp tests to give PGE something to work on. Right now only 130 of 960 tests are running, in part because the test harness he's using can't quite cope with the test file syntax used for the original tests. I'm sure it won't stay that way or long. A couple of days later he announced that more tests were being converted and that there were now 360 passing tests and a further 155 or so TODO tests. Well done Jerry. http://xrl.us/i2be PDD 20 and :outer Leo had some questions about the workings of lexical pads and :outer. He showed a couple of examples in high level language and wondered if his parrot conversions were right. Chip thought that Leo shouldn't worry about implementing the Perl 5 semantics of a named inner subroutine because the way Perl 5 does it is a bug not a feature. Dave Mitchell wasn't so sure. http://xrl.us/i2bf DynLexPad Leo's working on implementing a DynLexPad PMC to provide 'a more dynamic lexpad' akin to the new deprecated ScratchPad PMC. He outlined his current plans and asked for comments from HLL authors about what they needed. http://xrl.us/i2bg Punie to AST Allison has checked in the code to transform PunieGrammar match objects into Abstract Syntax Trees (ASTs). Apparently the set of AST node types she's using isn't quite the same as the Pugs PIL. Hopefully one day we'll have a common AST format, and all manner of things shall be well. http://xrl.us/i2bh Meanwhile, in perl6-internals RESPONSIBLE_PARTIES or ENTITIES_AT_FAULT? Joshua Hoblitt suggested that Jerry Gay should be added to the RESPONSIBLE_PARTIES file as the person in charge of the test suite. After a small amount of byplay suggesting the file be renamed, the nomination was strongly seconded and Jerry's name added to the list. http://xrl.us/i2bi Curses and parrot problems? Josh Isam has been having problems with using the curses library under both Darwin and freebsd. He wondered if anyone had any pointers for fixing things. Leo thought it might be that the parrot ncurses support was getting a function signature wrong somewhere and suggested Josh check that. http://xrl.us/i2bj Subs may not contain dynamic call info, ever Repeat after Chip: Subs don't have callers. Call frames have callers. After a short discussion with Leo, Chip wrote a short treatise on the relationships between Subs and Closures, noting that they should only hold static information. http://xrl.us/i2bk Undefined labels While working on TODO #37590 (catch illegal bsr at compile time), Leo's made parrot rather more picky about labels and how they are used. Essentially, if you weren't doing daft things with labels you're probably all right. If you were, you should probably check this post. After Leo checked the fixes in (r10168), several PGE tests started breaking. Less than 6 hours later, Patrick check version r10176 in and the tests started passing again. Leo (and I) was impressed. http://xrl.us/i2bm http://xrl.us/i2bn Exception handlers and calling conventions Leo posted a brain dump about how to get exception handling to work in Parrot. In particular he wanted help with syntax (exception handling semantics aren't exactly rocket science when you've got a continuation based virtual machine after all). Warnock applied (However, I am reliably informed that next week's summary will have some responses; anyone who suggests that that's because this summary is late will be annoyingly Right). http://xrl.us/i2bo Test::More and tests in PIR Not content with having a pure PIR implementation of Test::Builder, chromatic posted his implementation of Test::More in pure parrot. Admittedly the current version should likely be called Test::Less::Is::More, but the journey of 1000 cliches starts with a single step and all that. And that's not all, the fearlessly lowercased one intends to start work on the big daddy, Parrot::Test with an eye to doing even more in Parrot. (Which makes a good deal of sense. After all, the plan is to get Parrot to a point where it can be built without needing a working perl installation) http://xrl.us/i2bp Meanwhile, in perl6-language \x{123a 123b 123c} Juerd had praised Ruud H.G. van Tol's proposal of \x{123a 123b 123c} as a replacement for \x{123a} \x{123b} \x{123c} in rules. Larry wasn't so sure. He suggested \x[123a,123b,123c] but still wasn't exactly happy with it. He also had some thoughts about character class
Re: This week's summary
Piers~ On 11/30/05, The Perl 6 Summarizer [EMAIL PROTECTED] wrote: So, I hopped into a taxi (and I use the word hopped advisedly) and repaired straightway to King's Cross and thence home to Gateshead, where my discomfort was somewhat ameliorated by the distraction of preparing this week's summary. I hope to be writing next week's summary as well because the week after I'll be moving house and don't quite know when I'll have my bandwidth back. That sounds fine to me. After next weeks I will start writing weekly summaries until you send me an email saying you are ready to resume. Don't hurry on my account; I know moving is a pain. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
This week's summary
The Perl 6 Summary for the fortnight ending 2005-11-13 Welcome to another fortnight's worth of summary. We'll get back to a weekly schedule one of these fine days, you see if we don't. This fortnight in perl6-compiler There was a surprisingly large amount of activity on the list, but again, the place to look for perl6 compiler news is the Planet Perl Six aggregator. http://planetsix.perl.org/ PGE improvements and changes Patrick announced that he'd checked in some major changes to the PGE internals. The changes include a shiny new shift-reduce operator precedence parser which is used to parse the rules themselves. PGE finally has a p6rule parsing rule which can be used to parse a valid Perl 6 rule. There are other changes, but those two are the headlines. Patrick asked for the usual questions, comments, patches and tests. A couple of days later, he posted a more comprehensive overview of the new and shiny bits in PGE. http://xrl.us/ifuy http://xrl.us/ifuz PGE problem with non-greedy quantifiers Allison fell foul of some changes in the new PGE. This turned out to be a bug in PGE, so Patrick fixed it. http://xrl.us/ifu2 The meaning of \n and \N Noting that Synopsis 5 says that '\n now matches a logical (platform independent) newline, not just \012', Patrick asked the list for more details about what that should mean so he could get on and implement it in PGE. He offered up a suggested matching rule. Larry thought that the suggested rule was close enough for jazz. http://xrl.us/ifu3 [] and () on rule modifiers Patrick continues to work on the PGE. This time he asked about the behaviour of rule modifiers, with particular reference to the :w modifier. Larry had answers. http://xrl.us/ifu4 Parrot 0.3.1 Wart released Leo announced the release of Parrot 0.3.1 Wart, complete with shiny new features like variable sized register frames and no more spilling, a much better PGE (see above) and other goodies. The latest release has more than 3000 tests, and that's probably still not enough. http://xrl.us/ifu5 Octal in p6rules (and strings) Patrick Continued his voyage of stringy discovery, this time asking about the black art of specifying glyphs/bytes/whatever using octal notation. He wondered about his assumption that the correct way to do it is with \o123 by analogy with using 0o123 to specify a number in octal. He also wanted confirmation that the \nnn notation had been dropped. A surprisingly long discussion ensued as Larry did a good deal of thinking aloud and Patrick got on with implementing the nailed down bits. http://xrl.us/ifu6 Meanwhile, in perl6-internals SWIGging Parrot John Lenz is one of the developers a SWIG, which started off as the Python equivalent to Perl's XS. He had some questions about writing a SWIG module for parrot and asked if there would be interest in having SWIG be one of the 'official' ways of doing native calls from Parrot. Leo thought not, pointing out that Parrot's NCI is fully dynamic and groovy. http://xrl.us/ifu7 NCI using ffcall library Garrett Goebel joined in the ongoing discussion of using ffcall to implement the Parrot NCI (Native Call Interface) by pointing back to an earlier discussion of using libffi to implement the Parrot NCI. Last time round, Dan had pointed out that, because libffi is an external library, there still needs to be a supported (if possibly hackish) way of doing NCI that comes with Parrot, but that configure could probe for external libraries to use where they are available. http://xrl.us/ifu8 Heredocs in function calls Patrick wondered if there might be a convenient way to support heredoc parameters in PIR function calls. Nicholas Clark wondered why one would bother since most PIR code should be generated code. Later on, Leo implemented them. About the only place they don't work now is in macro arguments. http://xrl.us/ifu9 http://xrl.us/ifva Simple register allocation Summarizing a discussion on IRC, Patrick noted that it would be nice if the PIR compiler had a way to use a very basic register allocation for .subs that only use a small number of registers. After all, there's little point in doing a complex analysis of control flow if a sub uses (say) 5 registers at most. The problem is that this analysis gets harder as the subs get longer (O(n) on the length of the sub). In the case of PGE (for instance), the subs can get very long, with lots of control flow statements, but use a maximum of 10 PMC, 9 int and 4 string registers for the whole thing. Warnock applies. http://xrl.us/ifvb Careful with that bsr Eugene Leo noted that, with the introduction of variable sized register frames, it is no longer
Re: This week's summary = Perl 6 perlplexities
On Tue, 15 Nov 2005, The Perl 6 Summarizer wrote: Perl 6 perlplexities Michele Dondi worries that the increase in complexity of some aspects of Perl 6 is much bigger than the increase in functionality that the complexity buys us. In particular Michele is concerned that the Perl 6 parameter passing and signature stuff is going to be a big loss. People mostly disagreed with him. Rob Kinyon made a remark that chimed strongly To be sure, I never intended to claim that signature stuff is going to be a big loss, and I hope that I didn't. First of all I chose it solely as an example. Then the sense that I was trying to convey is that 90% of what has already been stuffed in it will already be the best thing since sliced bread, and that trying to fit the remaining 10% of all fancy types of parameter passing may not really make it better hence resulting in a _possible_ loss. Michele -- premature optimization is the root of all evil - Tad McClellan in clpmisc, Re: Whats the variable holding the dir seperator?
Re: This week's summary
On Nov 15, 2005, at 17:24, The Perl 6 Summarizer wrote: The Perl 6 Summary for the fortnight ending 2005-11-13 string_bitwise_* Leo, it seems to boil down to a choice between throwing an exception or simply mashing everything together and marking the 'resulting bit mess' as binary. Warnock applies. I've today cleaned up the string_bitwise code a bit. These rules apply now: - usage of non-fixed_8 encoded strings in binary string ops throws an exception - else the result string has charset binary, fixed_8 encoded. Thanks again for your concise summaries, leo
Re: This week's summary
On Fri, 4 Nov 2005, The Perl 6 Summarizer wrote: Slightly tangentially to this, Dan Sugalski blogged a couple of weeks ago about his successes and failures with Parrot. The comments are worth reading -- there's a fair few more or less well founded complaints about the way the Perl 6 project has been managed, many of which seem already ^^^ ^^^ to have been addressed. Certainly the design process is rather more visible now. Comments that made me thought about the need for the verb to damanage, when I first read them! ;-) Michele -- Did I get that right? I know what I said, but I don't see how I can answer questions about how it seemed to you. Such propositions are independent of my axioms. - Dave Seaman in sci.math, Re: Is zero even or odd?
This week's summary
The Perl 6 Summary for the week ending 2005-10-30 Hmm... Thursday afternoon and I've only just started writing the summary... What happened to professionalism? What happened to rigid, albeit self-imposed deadlines? Um... I've had a cold. The cats ate my homework. This week in perl6-compiler It's weird isn't it? Activity on Pugs and the other Perl 6 compiler tools shows no signs of slowing (especially now conference season is over), but the volume of mail on the list continues to be tiny. Autrijus seems to be Erdösing round Europe and writing everything up on use.perl. I could give you a bunch of links to various other blogs and journals where various Perl 6 developers are writing up their work, but it's probably easiest just to point at the Planet Perl Six aggregator. It's good to see so much of this stuff becoming a little more visible. http://planetsix.perl.org/ Meanwhile, in perl6-internals Discussion of the Parrot JSON serialization code span off into a discussion of generalized serialization for Parrot data structures. http://xrl.us/ia4m Determining the number of return values expected Leo and Jonathan Worthington discussed how to find out about the number and types of return values the caller expects. Jonathan ended up implementing an experimental op to kick around. http://xrl.us/ia4n Rules for changing APIs Leo talked about the Parrot policy for changing APIs. In general, it's a good idea not to have to change a public API, but in practice, it happens. As Leo said, the general rule is You break it, you fix it, so the policy is that if any API changes break anything in the Parrot subversion tree, it's up to whoever changed the API either to fix it or to work with the the sub project's 'owner' to get it fixed. Projects that aren't in the tree will need to keep themselves up to date, but if you didn't document your changes well enough, expect to be fielding questions for a while after your changes. http://xrl.us/ia4o check_progs is not portable François Perrad pointed out that the check_progs subroutine used by Parrot's config system doesn't work on windows. He suggested using the CPAN module File::Which instead. This turned into a discussion about whether it would be good to have a Bundle::Parrot set up on CPAN with all the CPAN modules needed for Parrot to build, or if we should continue to bring those modules that Parrot needs into the Parrot distribution so that, once you've downloaded the Parrot tar file you won't need to scurry off to CPAN for various supporting bits and pieces. http://xrl.us/ia4p The Configure System Understating the case somewhat, chromatic pointed out that the plugin system for configuration is grotty. Everyone agreed pretty much, but the question is whether to do anything about it since the current configuration is supposed to be a stopgap solution until we get the proposed miniparrot scheme up and running. Pretty big gap eh? Hopefully this means we're going to get work started on the miniparrot approach. Or maybe someone will clean up the stopgap. Neither would be bad. http://xrl.us/ia4q Yet another C compiler Leo pointed everyone at the Amsterdam Compiler Kit, which is the default compiler for Minix and wondered if anyone wanted to experiment with it to see if it could compile parrot. http://tack.sourceforge.net/ http://xrl.us/ia4r Deprecation warning Leo announced that the newsub operator is about to be removed. Check docs/compiler_faq.pod for details of the Right Way of making subs. Patrick had a few questions so he could track the changes in PGE. Leo answered them. http://xrl.us/ia4s Compiling parrot with c++ Nick Glencross wondered if it would be a good idea to make it so that Parrot couple be compiled by a compiler in C++ mode. The answer appeared to be 'yes'. http://xrl.us/ia4t Documenting new_pad Jerry Gay asked about the use of the new_pad op, which appears to be both undocumented and untested. Not good. He posted some apparently reasonable code that fails. Matt Diephouse reduced it to a simpler failing case and Leo tracked down the bug. None of which addresses the lack of documentation of course, but it's a start. http://xrl.us/ia4u All tests successful considered harmful Jerry Gay pointed out that All tests successful is only a useful message when you're confident that your test suite has good enough coverage. Jerry thinks parrot has too few tests. So he's started writing more and sending in patches. He noted that trying to write tests was a very good way of discovering areas of Parrot that aren't sufficiently (at all) specced. He called for others to join him in writing tests and picking off parrot's low hanging fruit. Go
Re: This week's summary
The Perl 6 Summarizer skribis 2005-11-04 14:34 (+): $_ defaulting for mutating ops Probably I have not been clear enough about that I no longer think this is a good idea. Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html
This week's summary
The Perl 6 Summary for the week ending 2005-10-09 Hello, and welcome to the first Perl 6 Summary to be published on my website rather than its former home at http://www.perl.com/ This week in perl6-compiler PGE error on failing subrules Allison broke the resounding silence of the last two weeks by posting about some PGE errors she was seeing. No reply yet. http://xrl.us/hx2j Tests converted from pugs' rules.t to Parrot::Test::PGE Yuval Kogman announced that he'd written a script to convert pugs's rules tests into Parrot tests. The resulting test suite still needs some attention, and he outlined what was needed. No response so far on the list. http://xrl.us/hx2k Meanwhile, in perl6-internals Variable registers Klaas-Jan Stol wondered about how the new lexical scheme was going to work. In particular, he wanted to know what was happening to scratchpads. Leo gave a very brief overview of the new scheme, which uses register frames for static lexicals and more conventional scratchpads for dynamic lexicals. As I understand it, they'll look pretty much the same from the PIR writer's point of view. Leo promised a PDD from Chip in the nearish future which would thrash out the details. http://xrl.us/hx2m Exception handlers and calling conventions Roger Browne wanted to know if exception handling had changed at the same time as the calling conventions. He presented some code that behaved differently depending on the Parrot version. Leo replied that exceptions still wind up in P5 and Roger had found a bug. So Leo fixed it. http://xrl.us/hx2n Parrot 0.3.0 TODO Having successfully got Parrot building on his Cygwin installation, Robert Eaglestone was casting around for something to do and listed a few possibilities. Will Coleda replied that he'd quite like to see a working Parrot equivalent to Perl 5's $0. http://xrl.us/hx2o Parrot 0.3.0 and Tru64 Jarkko Hietaniemi posted a bunch of issues with Parrot on the Tru64 architecture. Leo addressed them. I'm not sure they're all fixed yet though. TCL - Compiling Will Coleda announced that ParTcl is now a compiler. Some tests are failing but Will claimed that this is because Jerry Gay was getting bored with all the tests passing. Jerry was delighted. As Will said later in the thread, the current iteration is doing the bare minimum needed to be called a compiler, but of course that will change over time. Good work Will. http://xrl.us/hx2p BROKEN.pod Hey, now he's no longer my editor, I don't have to worry about making sure I don't put his name at the beginning of a sentence! Anyhow, chromatic posted a first cut at BROKEN.pod, the big list of broken stuff. There followed some discussion of how this should be organised in the future, particularly on the RT side. After discussion, it was decided to keep it as a single file for now, but to aim for generating it from multiple RT tickets in the future. http://xrl.us/hx2q Stack call directives are deprecated Using .param, .arg, .return, .result and call to do stack based calling conventions is now deprecated. Use save, restore, bsr and ret instead. Or, ideally, use the standard Parrot calling conventions. http://xrl.us/hx2r Deprecation of rx ops Brent Royal-Gordon confirmed that he was happy enough to see his experimental regular expression specific ops removed from Parrot. They've not been removed yet, but they're certainly deprecated. http://xrl.us/hx2s Software Architecture of Parrot Klaas-Jan Stol informed us that his Software Architecture professor had approved his proposal to write a paper on the architecture of Parrot. He outlined his plans for the paper and hoped that he would be able to count on people for proof-reading when the time came. Leo thought it was a marvellous idea (so do I come to that, but I didn't say anything on the list.) http://xrl.us/hx2t ParTcl command line options, etc Will Coleda kept us abreast of his progress with ParTcl in this thread, initially announcing the new -e flag which allowed for writing one liners. After a certain amount of havering before a final interface arrived, ParTcl also acquired a --pir flag, which dumps the results of compilation to a PIR file. http://xrl.us/hx2u BASIC compiler Will Coleda (does the man never sleep?) announced that the BASIC compiler is (sort of) working again with Parrot 0.3.0. There are still problems with the windows display code (the offending code is simply commented out), but code that doesn't need that appears to be working now. He noted that BASIC could really use a decent test suite, right now he was simply working to get programs like eliza2.bas and wumpus.bas working, which is okay as far as it goes, but he
Re: This week's summary
HaloO, The Perl 6 Summarizer wrote: Meanwhile, in perl6-language \(...) Oh look, a thread in p6l that's still going more than a fortnight later. How unusual. Is a long running thread considered a bad thing on this list? I have grasped so far, that spawning a new thread after some divergence from the original topic is considered nice. This particular instance of the form is nominally about the behaviour of \($a, $b) but various subthreads have drifted onto discussions of context in general and meaningful whitespace. So far there has been no discussion of the return value of Pin.head.contents.grep - Angel $a {$a.is_dancing} but I'm sure it's only a matter of time. Please tell me if the particular pinhead is me. I'm actually about to reply to Juerds question about my ranting about code backing the interpolation of data into strings. Or is that considered counter productive hairsplitting? -- $TSa.greeting := HaloO; # mind the echo!
Re: This week's summary
TSa skribis 2005-09-27 10:15 (+0200): Is a long running thread considered a bad thing on this list? Just like how a post being Warnocked can have one or more of several causes, a long running thread can. Some are bad, some are good. As a thread becomes longer and more fanned out, it becomes hard to manage, and everyone has their favourite subthreads. This results in uninformed discussion, divergence and it getting even harder to reach concencus. I have grasped so far, that spawning a new thread after some divergence from the original topic is considered nice. Whenever you want to react on several posts simultaneously, consider it as a whole, and say what you have to say about it, usually with a new proposal, I do think it is better to start an entirely new thread. It can make a subject more accessible for outsiders, who have neither the time nor the will to read the original 50-message discussion. If this is the goal, the new thread should start off with a well structured explanation, instead of just referring to previous discussion. There are many huge differences between repying and starting a new thread, but still it can be hard to decide what to do. For me, the most noticeable difference is the time spent thinking and writing: for replies it's short, for new messages, it's long. Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html
Re: This week's summary
TSa [EMAIL PROTECTED] writes: HaloO, The Perl 6 Summarizer wrote: Meanwhile, in perl6-language \(...) Oh look, a thread in p6l that's still going more than a fortnight later. How unusual. Is a long running thread considered a bad thing on this list? Nah, it's just hard to summarise. I have grasped so far, that spawning a new thread after some divergence from the original topic is considered nice. Definitely. This particular instance of the form is nominally about the behaviour of \($a, $b) but various subthreads have drifted onto discussions of context in general and meaningful whitespace. So far there has been no discussion of the return value of Pin.head.contents.grep - Angel $a {$a.is_dancing} but I'm sure it's only a matter of time. Please tell me if the particular pinhead is me. I'm actually about to reply to Juerds question about my ranting about code backing the interpolation of data into strings. Or is that considered counter productive hairsplitting? Just a reference to the old philosophical question of how many angels can dance on the head of a pin. That and the fact that I occasionally get curmudgeonly and hit the send button before I have second thoughts. The weird thing is that the syntax I rolled there is soon to be the topic of an original thread, once I've got the thing written up a little more. -- Piers Cawley [EMAIL PROTECTED] http://www.bofh.org.uk/
This week's summary
The Perl 6 Summary for the week ending 2005-09-25 Hello all. It's another Monday afternoon, which means I'm writing another summary. There's no cricket to distract me this week, so I'm letting iTunes Party Shuffle attempt to distract me instead. This week in perl6-compiler Nobody said anything on the list this week. I blame IRC. Meanwhile, in perl6-internals About multithreading Leo pointed everyone at an article about about 'A Fundamental Turn Toward Concurrency in Software'. Jonathan Worthington liked it. http://xrl.us/hq4w Bug Wrangling It's possibly a failing of mine as a summary writer, but I've not been following Parrot's RT traffic. Luckily, Joshua Hoblitt has volunteered as a Bug Wrangler and he's hoping to increase the signal/noise ratio. To that end, he'll be pinging people who reported bugs that are older than 3 or 4 months to find out if they're still current or can be closed. It sounds like a mammoth task in the short term, but it also sounds like a very useful project that'll get easier once the big house cleaning has been done. He hinted that this is the sort of project that *really* benefits from having more than one volunteer doing the work. Later in the week, he posted a bunch of IMCC TODOs. http://xrl.us/hq4x Tcl, exceptions in leo-ctx5 Andy Dougherty posted some more details about a bug in ParTcl when running under Leo's branch. The bug seems to depend on whether there's a slash in the script path passed to ParTcl. There was no response, but hopefully work continues on fixing it. http://xrl.us/hq4y [RFC] Debug Segment, HLL Debug segment and Source Segment Jonathan Worthington posted a discussion of how debugging segments could work in Parrot in the future. He outlined a suggested unified debug segment format that should work for both PASM/PIR and high level language debugging requirements. Roger Browne applauded Jonathan's efforts and made some further suggestions. And then the thread got Warnocked. http://xrl.us/hq4z Magic is useless unless verifiable Jonathan Worthington posted a discussion about how Parrot bytecode files should handle their magic number. At present, apparently, Parrot checks the magic number only after it's tried to work out word size and bytecode. Which is somewhat bass ackward. After some discussion, Chip reckoned that the solution would be to have a magic string rather than a magic number. http://xrl.us/hq42 loadlib and libraries with '.' in the name Ross McFarland found a problem with loadlib. Apparently it won't let you load a library that has a '.' in the name. It turns out that fixing things robustly isn't quite as straightforward as it at first appears. Discussion ensued. Ross posted a patch to RT. http://xrl.us/hq43 http://xrl.us/hq44 Find copied and pasted code That gentleman of great intelligence, sagacity, wit and annoying capitalization; the one and only chromatic wondered what running PMD's copy and paste detector plugin on Parrot's .c files would show. If anyone has run it yet, they haven't reported on its findings, but it surely won't be long now. http://pmd.sf.net/cpd.html http://xrl.us/hq45 Amber's Ashes Announced Roger Browne announced the release of Amber for Parrot version 0.2.3a (Ashes). According to the announcement, Amber's a Eiffel like scripting language for Parrot. Joe Bob says Check it out! http://xamber.org/index.html http://xrl.us/hq46 Meanwhile, in perl6-language \(...) Oh look, a thread in p6l that's still going more than a fortnight later. How unusual. This particular instance of the form is nominally about the behaviour of \($a, $b) but various subthreads have drifted onto discussions of context in general and meaningful whitespace. So far there has been no discussion of the return value of Pin.head.contents.grep - Angel $a {$a.is_dancing} but I'm sure it's only a matter of time. http://xrl.us/hq47 Junctions, patterns and fmap again Luke continued to discuss Junctions and fmap with Stuart Cook. http://xrl.us/hq48 Conditional wrapper blocks Yuval Kogman discussed the inelegance of code that reads like: if $condition { pre } unconditional midsection; if $condition { post } And proposed a possible syntax that could be implemented in a macro. I confess that I would be taking this thread more seriously if, when I was writing this summary I had been able to come up with a realistic example of code that had this problem. Anyhoo, it sparked a good deal of discussion. http://xrl.us/hq49 Object Model Pictures Stevan Little's ongoing development of the Perl 6 MetaModel continues to yield pictures. This week he incorporated Roles into the bigger picture.
Re: This week's summary
On Mon, Sep 26, 2005 at 18:12:23 +0100, The Perl 6 Summarizer wrote: Allomopherencing Not satisfied with inventing Exceptuations, Yuval invented Allomopherencing as well. Just don't ask me what it means because I don't know. It was just a bad joke on Exceptuation's expense ;-) The thread asks whether disabling strong and compile-time-angry type ineferencing should ever be disabled, since we have much better allomorphism-oriented support for typing and introspection. -- () Yuval Kogman [EMAIL PROTECTED] 0xEBD27418 perl hacker /\ kung foo master: /me spreads pj3Ar using 0wnage: neeyah!!! pgpfR0MdzmzgI.pgp Description: PGP signature
This week's summary
The Perl 6 Summary for the week ending 20050814 As you will note from the date in the title, it's been a short week. We're switching back to a midnight Sunday/Monday rollover in order to make life easier for the perl.com types. So, if I can avoid being distracted too much by the second Ashes test we'll try and get the summary finished on before Monday is out, which should please chromatic. This week in perl6-compiler Another low volume week in perl6-compiler; probably because, with the high speed of pugs development, most of the discussion happens on IRC. Container model - pictures and questions Autrijus fielded some questions about and updated the pictures of the container model. http://xrl.us/g5kk Why PXPerl? Robert (No Surname) asked what were the benefits of PXPerl over the ActiveState distribution. In short, PXPerl comes with Parrot and Pugs, which ActiveState doesn't. If you set your path appropriately, you can continue to use the ActiveState Perl and just rely on PXPerl for Parrot and Pugs. http://xrl.us/g5km Hoisting lexical declarations Larry answered some of Autrijus's questions about Perl 6's lexical scoping rules. Apparently what Pugs currently does is close enough to sane to be going on with. http://xrl.us/g5kn Warnock in Pugsland Autrijus noted that, in Pugsland, a Warnocked patch usually means that the person who posted the patch simply got given a committer bit and didn't mention the fact on the list. http://xrl.us/g5ko MetaModel Notes Nathan Gray posted some notes and ASCII art about the Metamodel. Autrijus added pointers to further pictures. http://xrl.us/g5kp http://xrl.us/g5kq http://xrl.us/g5kr Meanwhile, in perl6-internals Updated intro.pod Jonathan Worthington posted a rewrite of Parrot's intro.pod document, now with a discussion of PIR. Huzzah! http://xrl.us/g5ks Test::Builder and friends on Parrot Following prompting from Geoff Young and Jeff Horwitz, chromatic has implemented Test::Builder and Test::Builder::Tester in pure parrot. For his next trick, he intends to port Test::More and Parrot::Test. Tests are good, m'kay? http://xrl.us/g5kt How to add a new opcode? Gerd Pokorra asked how to add an opcode to Parrot. Klaas-Jan Stol and Leo gave the answers. http://xrl.us/g5ku Cleaning up the call opcodes Leo reposted about cleaning up the various function calling opcodes to take account of the fact that the calling conventions have changed. He asked for opinions and actually got a couple, which is handy since he got Warnocked last time. http://xrl.us/g5kv parrot -I Amir Karger wondered if there was some way of telling Parrot to add directories to its load path. Leo seemed not to think it was that good an idea, and proposed using a relative path in a .include directive. http://xrl.us/g5kw Dominance Frontiers Curtis Rawls continued his work on dominance frontiers to improve Parrot's optimizer. http://xrl.us/g5kx PGE globber, empty strings Will Coleda reported that trying to match empty strings with PGE's glob implementation. It turned out to be a problem with Data::Escape. Leo fixed it. http://xrl.us/g5ky Deprecated opcodes Leo posted a list of opcodes that are due for the chop (or alteration) soon. If you're doing anything with Parrot, it's probably a good idea to take a look at this. One of those who did was chromatic, who asked if Leo could give some examples of translating code so as not to use the old forms. http://xrl.us/g5kz Meanwhile, in perl6-language Hmm... 8 balls to go with one wicket needed. I think I'll pause for a while... Damn. Australia have saved the game. Translating (or at least parsing) Java interface definitions Tim Bunce wondered if anyone had done any work on parsing Java interface declarations and (ideally) translating them to roughly equivalent Perl 6. Apparently Gaal Yahas has done something along these lines (with Parse::RecDescent for Perl 5) but doesn't own the code. He outlined the approach he took. http://xrl.us/g5k2 Perl 6 Meta Object Protocols and $object.meta.isa(?) Stevan Little is busy documenting the Perl 6 Meta Model that he's implemented in Perl 5 and that Autrijus is busy porting to Haskell. He posted an overview to the list and asked for comment. There then followed lots of discussion. I think I understood some of it. http://xrl.us/g5k3 $object.meta.isa(?) redux Stevan split the discussion of $object.meta.isa(?) off from the earlier metamodel thread into a thread of its own and asked for comments once more. Larry commented that the Apocalypses are primarily intended to be entertaining rather than factual. Also in this thread, Luke let slip that there's now a
This week's summary
The Perl 6 Summary for the week ending 2005-07-19 Welcome to another Perl 6 Summary, brought to you by the words 'displacement' and 'activity'. So far today I've caught up with everything unread in NetNewsWire, my Flickr groups, every other mailing list I'm subscribed to and completed about 5 Sudoku. And now I'm dragging out this introduction and I don't know why; I enjoy writing these things. This week in perl6-compiler Another quiet week on the list. However, you only have to watch the svn commit log and the other stuff on PlanetSix to know that things are still proceeding apace. Last time I looked it seemed that Stevan Little was working on bootstrapping the Perl 5 implementation of the Perl 6 MetaModel so that it's implemented in terms of itself. Rather mindbogglingly, Pugs is now targeting Javascript as well. The Current Pugs release is 6.2.8 http://xrl.us/gtdv Creating threads in BEGIN Nicholas Clark posted what he described as a 'note to collective self' wondering about how Perl 6 will cope with people creating threads inside BEGIN blocks. According to Luke it won't. Larry thought that it might be okay to create threads at CHECK time, so long as any spawned threads didn't do any real work later than CHECK time. http://xrl.us/gtdw Perl 6 Modules Gav... (I presume the ellipsis is important to someone) wondered what he needed to do to write Perl 6 modules. Nathan Gray pointed him at the porting howto in the pugs distribution. http://xrl.us/gtdx http://xrl.us/gtdy Is namespace qualification really required? Phil Crow came across some weirdness with namespace resolution. It seems that you have to explicitly qualify function names in signatures. Autrijus agreed that it was a bug and asked for Phil to write a TODO test. Discussion ensued -- I think it's fixed in SVN now. http://xrl.us/gtd2 Parsing perl 6 grammars Nathan Gray wondered about the state of Jeff 'Japhy' Pinyan's effort to implement a Perl 6 rules parser. Japhy said that it's been on hold for a while, but that he'd started to work on it again, basing it on his earlier Regexp::Parser module. http://xrl.us/gtd4 Meanwhile, in perl6-internals PMC changes? Nicholas Clark wondered if the PMC layout is likely to remain stable, or if there might be changes in relation to the generational garbage collector. In particular, he wanted to know if the API would remain stable. Leo thought that there might be changes in the layout, but the API shouldn't change. http://xrl.us/gtd5 ParTcl Accelerator Will Coleda showed some timings for ParTcl, the Parrot implementation of Tcl and made a few suggestions about how to get things going faster. Patrick and Leo mused on the issues involved. http://xrl.us/gtd6 Partitioning PMCs Nicholas Clark had some questions about making PMCs and Ponie play well together, with particular reference to using SvFLAGS(). http://xrl.us/gtd7 Embedding/extending interface Nicholas Clark wondered if chromatic was still waiting for confirmation that his automated embedding tools were the Right Thing. Apparently, chromatic is waiting for confirmation, but offered to send his existing patch, if only to force the discussion. http://xrl.us/gtd8 Ponie Questions Nicholas Clark had a bunch of questions about various subsystems, mostly in relation to Ponie. Leo came good with answers. http://xrl.us/gtd9 http://xrl.us/gtea http://xrl.us/gteb Parrot Project Management I'm not sure if Will Coleda's suffering culture shock about the way Parrot project management is done, or if we're really not doing it right. The first rule of Parrot/Perl 6 development is that if you really want something then the only way to guarantee that it gets done is to do it yourself. It's certainly worked for me over the years. http://xrl.us/gted Tcl GC issues... solved Matt Diephouse announced that as of r8617 in svn, the longstanding GC bug that was occasionally tickled by ParTcl has been fixed. There was no rejoicing on list, but at least one summarizer was really pleased to hear it. http://xrl.us/gtee GMC for dummies Summer of Code intern, Alexandre Buisse, who is working on a new GC system for Parrot pointed us all at an introduction to the Generational Mark and Compact scheme that he's working to implement. He and Leo had a discussion about implications, assumptions and other stuff. Bob Rogers asked some tricky questions relating to circular structures and timely destruction. Discussion of this continues. http://xrl.us/gtef http://xrl.us/gteg Register Allocation fun There was a flurry of patches from Curtis Rawls who appears to be working on refactoring and (one hopes) fixing the IMCC register
This week's summary
The Perl 6 summary for the week ending 2005-07-05 My, doesn't time fly? Another fortnight gone and another summary to write. It's a hard life I tell you! This week in perl6-compiler Where's everyone gone? It seems that most of the Perl 6 compiler development is being discussed at Hackathons and IRC, and summarized in developers' weblogs. What's a summarizer to do? For now, I'll point you at Planet Perl 6, which aggregates a bunch of relevant blogs. http://xrl.us/gn5n PGE now supports grammars, built-in rules Allison Randal raved about the totally awesome PGE grammar support. I doubt she's alone in her enthusiasm. http://xrl.us/gn5o Multiple implementations are good, m'kay? Patrick discussed the idea of a 'final' Perl 6 compiler, pointing out that it isn't clear that there needs to be a final compiler. So long as multiple implementations are compatible... http://xrl.us/gn5p Meanwhile, in perl6-internals New calling conventions Klaas-Jan Stol asked a bunch of questions about the new calling conventions and Leo answered them. http://xrl.us/gn5q Parrot Segfaults What's a tester to do? You find a bug that makes Parrot dump core, so you write a test to document the bug and make sure it gets fixed. But the test leaves core files lying about. It goes without saying that Parrot should never dump core without the active assistance of an NCI call or some other unsafe call blowing up in its face. Which makes it a little embarrassing that PIR code generated by Pugs can cause a parrot segfault, though that appears to have been caused by mixed up calling convention style in the generated call. http://xrl.us/gn5r http://xrl.us/gn5s - Brian Wheeler's segfaulting Pugs script Python PMCs Leo pointed out that the various dynclasses/py*.pmc parrot support PMCs don't yet support all the semantics that Python needs. He outlined some outstanding issues announced that, as calling conventions and context handling were changing he'd be turning off compiling py*.pmc for the time being. http://xrl.us/gn5t PGE bug It appears that the upcoming changes in Parrot's context handling tweak a bug in PGE. The discussion moved onto a discussion of PGE's implementation strategy, Nicholas Clark was keen to make sure it didn't repeat some of the Perl 5's regex engine's infelicities. While this discussion continued, Leo spent half a day with gdb and tracked down the problem, which turned out to be that a register wasn't getting initialized in the right place. http://xrl.us/gn5u Left-recursive grammars are bad m'kay? While experimenting with PGE grammars, Will Coleda managed to write a left-recursive grammar that blew Parrot's call stack with impressive ease. Luke apologized for things blowing up so spectacularly, but pointed out that left-recursive grammars weren't supported, and showed a rewritten grammar that didn't have the same problem (but which doesn't appear to match the same expressions). http://xrl.us/gn5v Coroutines Leo pointed to a summary of coroutines, and noted that we still hadn't defined the syntax of Parrot coroutines, especially with respect to argument passing. He discussed it with Matt Fowles and solicited a set of tests that expressed the semantics they came up with. http://xrl.us/gn5w ftp://ftp.inf.puc-rio.br/pub/docs/techreports/04_15_moura.pdf ParTcl, Perl6 Grammars Will Coleda announced that, thanks to Matt Diephouse's work, ParTcl (Tcl on Parrot) is now able to run part of tcl's cvs-latest test suite. The tests aren't fully native yet, they're currently driven through a Perl test harness and only passing 10% of the tests, but hopefully the situation will improve and ParTcl will end up able to run the tests completely natively (while passing far more of them). Congratulations on the work so far though. http://xrl.us/gn5x Python and Parrot Kevin Tew popped up to say that he too is working on a Python compiler targetting parrot and wondered how to handle things like Python's self parameter. Michal Wallace and Leo chipped in with suggestions. http://xrl.us/gn5y Another month, another release Has it really been a month? Seems so. Parrot walked through the traditional feature freeze, code freeze before being released on Sunday. The latest release is called 'Geeksunite', referencing the website that discusses Chip's problems with his former employer. You should definitely visit the Geeksunite site -- Chip needs our help. http://xrl.us/gn5z http://geeksunite.org/ -- Support your local Pumpking lower in default find_name scope Patrick posted a code fragment whose output surprised him -- it turned out that looking up lower as a name in the default scope returns an NCI object.
This week's summary
The Perl 6 summary for the fortnight ending 2005-06-21 Surprise! It's me again. You may be wondering what happened to last week's summary (I know I was) and where Matt had gone. Well, I'm not entirely sure where exactly he is now, but last week was moving week for him. Those of you reading this on the mailing lists may also be wondering why this summary is so late. Um... three words: World of Warcraft. This week in perl6-compiler As a Summarizer, when you see the 'last fortnight' view of a mailing list containing 21 messages, several thoughts spring, unbidden, to your mind: Is my mail broken again? Has everyone given up? Phew, this group won't take long to do. It turns out that the answer to both of those questions is No. What actually happened was that most of the stuff that normally happens in mail happened at the Austrian Perl Workshop and Leo Tötsch's house, with a side order of IRC conversation. Oh, and a bunch of spin off threads in p6l and p6i. So, in the last fortnight Pugs reached the point where it has a (mostly) working Parrot back end and BÁRTHAZI Andras wondered if we shouldn't start a perl6-general mailing list. http://xrl.us/gia7 - Autrijus's Pugs development journal http://xrl.us/gia8 - perl6-general anyone? This week in perl6-internals 140 messages in this one. p6c lulled me into a false sense of security. Again, you may notice a bewilderingly fast rate of change this summary. It turns out that they weren't just working on Pugs at Leo's house. Perl 6 Hackathons give great productivity. This is not your father's Parrot There's been some serious work going on under the Parrot hood in the last two weeks. The calling conventions have been drastically reworked and now uses 4 new opcodes, set_args, set_returns, get_params and get_results. At the time of writing, IMCC doesn't give you full syntactic help with them, but they're easy enough to use explicitly for the time being and the help is getting there. Check out the PDD for details. Also getting rejigged is the continuation/register frame architecture. Taking advantage of the fact that this is a *virtual* machine, we now have an unlimited number of registers per register frame. Combine this with the new calling conventions, in which arguments are passed outside the register frame and all of a sudden a full continuation becomes a simple pointer to the register frame and everything gets saved as if by magic. Which opens up a whole bunch of possibilities. Which has interesting implications for the register allocator. http://xrl.us/gia9 -- The new calling conventions http://use.perl.org/~chip/journal/ -- Chip's design notes New Generational GC scheme Alexandre Buisse posted his outline for a Google Summer of Code project to implement a shiny new Generational Garbage Collection scheme. Discussion of tunability and threading issues followed. http://xrl.us/giba Ordered Hashes -- more thoughts Steve Tolkin helpfully provided a summary of his thoughts about ordered hashes: An ordered hash that does not support deletes could cause a user visible bug. At a minimum it should support the special case of delete that is supported by the Perl each() operator. Dan pointed out that reusing the ordered hash code for anything other than the lexical pad it was specifically implemented for was just looking for trouble. http://xrl.us/gibb The thread that I really hoped Matt would be summarizing AKA Attack of the 50 foot register allocator vs. the undead continuation monster. Piers Cawley and Chip had something of a disagreement about interactions between continuations and the register allocator. After discussion on IRC it became apparent that they were talking past each other. The new 'the register frame is the continuation' means that yes, the register allocator definitely can't rely on being able to reuse registers that persist over function calls, but that's all right because you can always grab more registers. http://xrl.us/gibc Missing MMD default functions Remember the missing Multimethod functions I mentioned last time. At the time Chip hadn't ruled on whether taking them out was the Right Thing or not. He has since ruled that it was. This is probably not quite the right place to suggest this, but what the heck. Maybe in future when user visible changes of this sort are planned they should spend at least one release period deprecated and throwing warnings when used. http://xrl.us/gibd PGE, namespaced rules William Coleda worried that PGE subrules appear to be globally scoped. It turns out that Patrick worries too, but is currently in the process of thrashing out how they should be scoped. He outlined his current thinking. http
This week's summary, correctly formatted
The Perl 6 summary for the fortnight ending 2005-06-21 Surprise! It's me again. You may be wondering what happened to last week's summary (I know I was) and where Matt had gone. Well, I'm not entirely sure where exactly he is now, but last week was moving week for him. Those of you reading this on the mailing lists may also be wondering why this summary is so late. Um... three words: World of Warcraft. This week in perl6-compiler As a Summarizer, when you see the 'last fortnight' view of a mailing list containing 21 messages, several thoughts spring, unbidden, to your mind: Is my mail broken again? Has everyone given up? Phew, this group won't take long to do. It turns out that the answer to both of those questions is No. What actually happened was that most of the stuff that normally happens in mail happened at the Austrian Perl Workshop and Leo Tötsch's house, with a side order of IRC conversation. Oh, and a bunch of spin off threads in p6l and p6i. So, in the last fortnight Pugs reached the point where it has a (mostly) working Parrot back end and BÁRTHAZI Andras wondered if we shouldn't start a perl6-general mailing list. http://xrl.us/gicz - Autrijus's Pugs development journal http://xrl.us/gic2 - perl6-general anyone? This week in perl6-internals 140 messages in this one. p6c lulled me into a false sense of security. Again, you may notice a bewilderingly fast rate of change this summary. It turns out that they weren't just working on Pugs at Leo's house. Perl 6 Hackathons give great productivity. This is not your father's Parrot There's been some serious work going on under the Parrot hood in the last two weeks. The calling conventions have been drastically reworked and now uses 4 new opcodes, set_args, set_returns, get_params and get_results. At the time of writing, IMCC doesn't give you full syntactic help with them, but they're easy enough to use explicitly for the time being and the help is getting there. Check out the PDD for details. Also getting rejigged is the continuation/register frame architecture. Taking advantage of the fact that this is a *virtual* machine, we now have an unlimited number of registers per register frame. Combine this with the new calling conventions, in which arguments are passed outside the register frame and all of a sudden a full continuation becomes a simple pointer to the register frame and everything gets saved as if by magic. Which opens up a whole bunch of possibilities. Which has interesting implications for the register allocator. http://xrl.us/gic3 -- The new calling conventions http://use.perl.org/~chip/journal/ -- Chip's design notes New Generational GC scheme Alexandre Buisse posted his outline for a Google Summer of Code project to implement a shiny new Generational Garbage Collection scheme. Discussion of tunability and threading issues followed. http://xrl.us/gic4 Ordered Hashes -- more thoughts Steve Tolkin helpfully provided a summary of his thoughts about ordered hashes: An ordered hash that does not support deletes could cause a user visible bug. At a minimum it should support the special case of delete that is supported by the Perl each() operator. Dan pointed out that reusing the ordered hash code for anything other than the lexical pad it was specifically implemented for was just looking for trouble. http://xrl.us/gic5 The thread that I really hoped Matt would be summarizing AKA Attack of the 50 foot register allocator vs. the undead continuation monster. Piers Cawley and Chip had something of a disagreement about interactions between continuations and the register allocator. After discussion on IRC it became apparent that they were talking past each other. The new 'the register frame is the continuation' means that yes, the register allocator definitely can't rely on being able to reuse registers that persist over function calls, but that's all right because you can always grab more registers. http://xrl.us/gic6 Missing MMD default functions Remember the missing Multimethod functions I mentioned last time. At the time Chip hadn't ruled on whether taking them out was the Right Thing or not. He has since ruled that it was. This is probably not quite the right place to suggest this, but what the heck. Maybe in future when user visible changes of this sort are planned they should spend at least one release period deprecated and throwing warnings when used. http://xrl.us/gic7 PGE, namespaced rules William Coleda worried that PGE subrules appear to be globally scoped. It turns out that Patrick worries too, but is currently in the process of thrashing out how they should be scoped. He outlined his current thinking. http
This week's summary
The Perl 6 summary for the week ending 2005-06-07 Crumbs. I've remembered to write the summary this week. Now if I can just remember to bill O'Reilly for, err, 2003's summaries. Heck, it's not like waiting for the dollar to get stronger has paid off. Ah well, no use crying over spilt milk. On with the show. Maybe, just maybe, darwinports will work its magic and I'll have a working Haskell compiler by the time I've finished writing. This week in perl6-compiler Undef issues I'd probably forgotten this, but Larry pointed out that, in Perl 6 there would no longer be a function undef() and a value undef. Instead there'd be a function undefine() and a value undef. But he thought that we should usually fail() to construct our undefined values. http://xrl.us/gcxo This week in perl6-internals Keys I'm not sure I understood what TOGoS was driving at with a suggestion about keys and properties. Luckily Leo, Dan and Chip all seemed to. The discussion continued through the week. http://xrl.us/gcxp Loop Improvements Oh no! It's the register allocator problems again. One of these days I swear I'm going to swot up on this stuff properly, work out whether it's really the case that full continuations break any conceivable register allocator and summarize all the issues for everyone in a nice white paper/summary. http://xrl.us/gcxq HP-UX build notes Nick Glencross posted some of his issues with getting parrot up on an HP-UX machine. After a good deal of discussion and tool chain fettling he got things building and posted a patch to fix the knowledge which was promptly applied (r8280 for those of you with the svn chops to know how to take advantage of that). http://xrl.us/gcxs mod_pugs status Jeff Horwitz announced that mod_parrot now comes bundled with mod_pugs, which means that you can now write Apache extensions in Perl 6. I don't know about you, but my mind is still boggling. http://xrl.us/gcxt Parrot 0.2.1 Parrot spent most of the week in a feature freeze for the release of Parrot 0.2.1 APW which went ahead as planned on the 4th of June. http://xrl.us/gcxu Parrot on Solaris Peter Sinnott reported problems with Parrot on Solaris. It turns out that different implementations of atan behave slightly differently, which isn't good. I believe the problem remains unresolved. http://xrl.us/gcxv Parrot on Mac OS Joshua Juran's questions about getting Parrot running on MacOS Classic were Warnocked. http://xrl.us/gcxw Parrot tests get TODO Continuing the drive for consistent testing structures everywhere in Perl land, chromatic applied a patch to Parrot::Test which makes TODO tests work in a way that Test::Builder understands. Hurrah! http://xrl.us/gcxx Missing MMD default functions Dan was somewhat bemused to find that the MMD functions' defaults had disappeared when he did a sync with subversion. He wondered whether this was deliberate. Turns out that it was. I'm not sure whether Chip's ruled that it was Right though. http://xrl.us/gcxy Google's Summer of Code 2005 Remember earlier when I talked about IMCC's register allocation? Well Dheeraj Khumar Arora is looking at working on improving IMCC's optimizations as part of Google's summer of code 2005. The usual thread ensued. http://xrl.us/gcxz Building nci/dynclasses on HP-UX Not content with getting Parrot to build on HP-UX, Nick Glencross next set his sights on getting nci/dynclasses working on HP-UX. It sounds like there'll be a patch forthcoming some time next week. http://xrl.us/gcx2 http://xrl.us/gcx3 -- Nick paints the big HP-UX picture Announcing amber for parrot 0.2.1 Roger Browne announced another new language that targets Parrot. It's called amber, and it borrows a good deal of syntax and semantics from Eiffel with a large sprinkling of Ruby for good measure. http://xamber.org/ -- the Amber website http://xrl.us/gcx4 A note WRT exception handlers Leo posted a quick discussion of the correct use of exception handlers in Parrot. Essentially, the rule is, your exception handler should jump back to the point just after the exception handler block: push_eh except_N # Code that might fail clear_eh resume_N: ... except_N: ... goto resume_N Easy eh? http://xrl.us/gcx5 Meanwhile in perl6-language The reduce metaoperator thread Remember when I discussed this thread two weeks ago? It's still going strong. Larry ended up stating that there will be an optional property identval on operators which will be set by default on all operators with obvious identity values. Or it might be called initvalue. http://xrl.us/gcx6
This week's summary
The Perl 6 Summary for the week ending 2005-04-26 It's my turn again. What fun. What, I hear you all ask, has been going on in the crazy mixed up world of Perl 6 design and development? Read this summary and, beginning with perl6-compiler, I shall tell you. This week in perl6-compiler Refactoring Test.pm Stevan Little had an idea while he was refactoring Test.pm. He wondered whether to get rid of the various todo_* functions in favour of just using a t/force_todo file. Which led him to wonder about doing away with t/force_todo in favour of a force_todo() function. He asked for opinions before he started making the change (which isn't exactly a refactoring). General opinion seemed favourable, though I confess I am perturbed by the proposed release trick of proclaiming all failures, whether expected or not, to be TODOs. The current system generates an explicit list of tests that are failing on 'core' systems. The proposed solution would seem to make all failures equal, so even unexpected 'platform' failures wouldn't be caught. http://xrl.us/fwkn Weird thing with say ++$ What do you know, say $i++, ++$i behaves weirdly. http://xrl.us/fwko Pugs 6.2.1 released Autrijus announced the availability of Pugs 6.2.1 which comes complete with much shininess. http://xrl.us/fwkp This week in perl6-language Parrot Common Lisp Cory Spencer's port of Common Lisp to Parrot was much admired (it's got some way to go before it's *really* Common Lisp, but it's a cracking start). Uwe Volker suggested porting emacs to it and was promptly accused of being Erik Naggum by Lars Balker Rasmussen. Cory acquired (or is acquiring) a committer bit. http://xrl.us/fwkq State of the Tcl Will Coleda gave the list a heads up on the state of ParTCL, the Parrot TCL port. It's still failing some tests, apparently because of GC issues. A few days later, these problems went away (we're not quite sure how though). http://xrl.us/fwkr http://xrl.us/fwks alarm() and later() Leo stated that Parrot provides subsecond timer resolution as well as alarm callbacks and multiple timers. Hurrah! http://xrl.us/fwkt RFC assign Px, Py Leo posted a discussion of the semantics of assign and set, with a proposed change to PIR syntax. Warnock applies. http://xrl.us/fwku RFC unary operations In another RFC, Leo discussed changes to Parrot's unary operators and proposed other changes. http://xrl.us/fwkv One more MMD -- assignment Dan noted that he was writing a great deal of code in his set_pmc vtable methods that looked very MMD-like. He suggested that adding assignment to the list of MMD functions might be a good idea. Leo pointed him at his assignment RFC. http://xrl.us/fwkw Fun with morph() Nicholas Clark wondered about the responsibilities of the morph method with respect to handling PMC_struct_val. In the subsequent discussion it became apparent that morph can get complicated. Bob Rogers supplied a bunch of extra complications and wondered about the feasibility of making Parrot morph-free. Leo agreed that it seemed feasible and is probably a good idea. Another subthread made my head hurt -- I can understand this stuff much better when I'm sat 'round a table with people and we're kept supplied with drinks, notepaper and, in Leo's case, industrial quantities of tobacco. (Ah... YAPC::Paris!) http://xrl.us/fwkx Building an incomplete code generator into Parrot [EMAIL PROTECTED] (that's the only name I have) has started work on implementing a JIT backend for the AMD64 processor. He asked a few questions and Leo provided answers. http://xrl.us/fwky Calling Convention Abstraction This thread continues to rumble on. Leo said that what he wants is for the HLL folks to create a workable scheme for abstract and extendable calling conventions that could express all the various HLL specific semantics of function calling, pointing out that, unless we have this we can forget interoperability (or at least, easy interop). http://xrl.us/fwkz Alpha development Box Bob Rogers 'has' an Alpha development box that can be used for open source projects. He wondered if the Parrot project could make use of it, and if so what was the best way of doing this. Some discussion occurred on the list, but I assume (hope) more happened offline. http://xrl.us/fwk2 Meanwhile, in perl6-language Calling junctions of closures Brad Bowman wondered about calling junctions of closures. He guessed that the rule is call 'em all and return a similarly structured junction. but wasn't sure. Thomas Sandlaß wasn't so sure. My head hurts. http://xrl.us/fwk3 { = } autocomposition Autrijus asked about the following fragment: %ret
This week's summary
The Perl 6 Summary for the week ending 2004-09-24 So, this is my last summary before I start my teaching practice. Hopefully I've got things set up so writing the summary isn't going to interfere with that, and vice versa. This week in perl6-compiler State of Rules Discussion of the state of the Perl 6 compiler (with particular reference to the rules engine) continued. People were concerned with making sure that the rules engine that Luke and Patrick are working on would be flexible enough to cope with different languages in 'closures'. Synopsis 5 updated Ed Peschko asked that there be some way of 'turning the rules engine inside out' to make something which, given a rule, would generate strings that could match against it. Actually, this is the second time Ed asked for this, as Luke reminded him. Luke went on to implement a generator in hypothetical perl 6, which seemed to please everyone but Ed. Rod Adams wins the 'making the summarizer smile wryly' occasional prize. http://xrl.us/c8ax Meanwhile, in perl6-internals Problems Reimplementing Parrot Forth Matt Diephouse fell foul of problems with the compile and compreg opcodes in his efforts to reimplement Parrot Forth in PIR. Steve Fink made some suggestions for workarounds based on his work on writing a regular expression compiler. From further discussion, it seems that, if you're implementing a stack based language, you'd do well to manage the language's stack yourself rather than using Parrot's User stack which is interestingly scoped. http://xrl.us/c8ay __init not being magically called Will Coleda had some problems with a class's __init function not being called magically. Nobody else could reproduce the problem. After a certain amount of confusion, Will did make realclean; perl Configure.pl; make; make test and all was well again. If you're experiencing a weird problem, it's probably best to do the rebuild before posting to the list. Or you could fix the build system to have more accurate dependencies... http://xrl.us/c8az Incremental collector and finalization Jeff Clites had some questions about how finalizers interact with the work that Leo's been doing on implementing an incremental garbage collector for Parrot. Leo had some thoughts, but noted that there's still a problem with ordered finalization and destruction. [Your summarizer is really starting to get a feel for why old school GC types really don't like finalizers...] http://xrl.us/c8a2 Python bytecode volunteers Dan asked for volunteers to finish the task of getting python bytecode working on Parrot; he reckoned that the work was mostly done, but that neither he nor Leo have the time to go the last couple of yards. Come on people, this would definitely be a cool thing to have. http://xrl.us/c8a3 mod_parrot 0.0 Jeff Horwitz announced the release of version 0.0 of his mod_parrot Apache module. It's remarkably powerful for version 0.0 http://xrl.us/c8a4 The compile op and building compilers Dan had some thoughts on tidying up the spec for the compreg and compile operators and asked for comments before he nailed the spec down. Steve Fink and Leo had comments. http://xrl.us/c8a5 Misc. remarks about YAPC::EU Leo popped up to thank everyone who'd donated to The Perl Foundation and thus supported the purchase of shiny new Apple Powerbook G4 that he'd used to run his presentation at YAPC Europe in Belfast. He went on to outline some of the things he'd done and heard in Belfast, including the fact that one French teacher is using Parrot for teaching assembly language. http://xrl.us/c8a6 Parrot m4 0.0.8 Bernhard Schmalhofer announced version 0.0.8 of Parrot m4. There's no new functionality 'just' some structural improvement and tidying. http://xrl.us/c8a7 Parrot TCL Will Coleda posted a progress report on his Parrot TCL implementation which is progressing gradually towards being a full blown TCL implementation; he's working towards using special Tcl* PMCs with real TCL semantics instead of the current scheme which uses Perl PMCs. http://xrl.us/c8a8 Namespaces, Part 1 Dan posted the first part of his Namespaces spec. There was, of course, much discussion. Inevitably, there was another revision, and further discussion. http://xrl.us/c8a9 http://xrl.us/c8ba -- The revised version Towards a new call scheme Leo posted an overview of the work he was doing on Parrot's internals to get a faster calling scheme in place (as discussed endlessly). The usual perl6-internals discussion and revision process swung into action. http://xrl.us/c8bb Hello everybody Remember the French teacher that Leo mentioned? Well, the man himself, Christian Aperghis-Tramoni
Re: This week's summary
On Wed, 22 Sep 2004, The Perl 6 Summarizer wrote: Writing pack, or something like it Michele Dondi wondered how to write pack-like functions in Perl 6, where the first argument is a string which specifies the signature of the rest of the function call. The proposal stumped me, but maybe you all can make something of it. It was not a *proposal* and it was not really about writing pack-like functions. It was really about... D'Oh! I can hardly summarize myself: well, let's say that it was wether about it will be possible in Perl6 to use what I judge to be elegant and natural functional-language-like constructs (possibly avoiding explicit intermediate variables with the exception of, say, $_) like *e.g.* (in this case) map()ping a list of values to a suitable list of curried (on the given values) closures, then reduce()ing it by a suitable (functional) composition and applying the result to the desired input. Not very concise indeed... well, just more verbose than conceptually complex, IMHO! BTW: I'm a male, Michele is Italian for Michael, Mikhail, etc. etc. ad libitum... Mike -- It was part of the dissatisfaction thing. I never claimed I was a nice person. - David Kastrup in comp.text.tex, Re: verbatiminput double spacing
Re: This week's summary
On Wed, 22 Sep 2004 21:11:02 +0100, The Perl 6 Summarizer [EMAIL PROTECTED] wrote: The Perl 6 Summary for the week ending 2004-09-17 Another week, another summary, and I'm running late. So: This week in perl6-compiler Bootstrapping the grammar Uri Guttman had some thoughts on bootstrapping Perl 6's grammar. He hoped that his suggested approach would enable lots of people to work on the thing at once without necessarily getting in each other's way. Adam Turoff pointed everyone at a detailed description of how Squeak (a free Smalltalk) got bootstrapped. http://xrl.us/c6kp This link doesn't seem to be working, and www.perl6.org doesn't have the archives of perl6-compiler online yet. Does anyone have a link to the archives that works?
Re: This week's summary
On Thu, Sep 23, 2004 at 09:12:32AM -0400, Buddha Buck wrote: On Wed, 22 Sep 2004 21:11:02 +0100, The Perl 6 Summarizer [EMAIL PROTECTED] wrote: The Perl 6 Summary for the week ending 2004-09-17 Another week, another summary, and I'm running late. So: This week in perl6-compiler Bootstrapping the grammar Uri Guttman had some thoughts on bootstrapping Perl 6's grammar. He hoped that his suggested approach would enable lots of people to work on the thing at once without necessarily getting in each other's way. Adam Turoff pointed everyone at a detailed description of how Squeak (a free Smalltalk) got bootstrapped. http://xrl.us/c6kp This link doesn't seem to be working, and www.perl6.org doesn't have the archives of perl6-compiler online yet. Does anyone have a link to the archives that works? http://www.mail-archive.com/[EMAIL PROTECTED]/ http://www.mail-archive.com/[EMAIL PROTECTED]/msg00076.html -- We strive to quickly network economically sound data in order to assertively leverage other's high-payoff intellectual capital to exceed customer expectations
This week's summary
The Perl 6 Summary for the week ending 2004-09-17 Another week, another summary, and I'm running late. So: This week in perl6-compiler The current state of the compiler Discussion of the current state of the nascent perl 6 compiler and how best to contribute to its development even before code has been released continued. The best way to contribute right now is Write tests. Don't worry about what the test harness should look like, simple tables of rules, test strings and expected matches will be very welcome. The status discussion also touched on how to handle different languages in the closures embedded in rules. Bootstrapping the grammar Uri Guttman had some thoughts on bootstrapping Perl 6's grammar. He hoped that his suggested approach would enable lots of people to work on the thing at once without necessarily getting in each other's way. Adam Turoff pointed everyone at a detailed description of how Squeak (a free Smalltalk) got bootstrapped. http://xrl.us/c6kp Synopsis 5 updated Larry announced that he has updated Synopsis 5, which covers Grammars, rules and all that good stuff. It's now only a week out of date instead of two years and counting. http://xrl.us/c6kq http://dev.perl.org/perl6/synopsis/S05.html -- Synopsis 5 This week on perl6-internals Namespaces Discussion of Dan's namespace proposal really got going this week. http://xrl.us/c6kr Buffered IO and Parrot Forth Matt Diephouse fell foul of a problem with IO buffering when he was taking a look at Parrot Forth, so he asked the list for help. Leo supplied the help, so Matt supplied a patch to Parrot Forth which made it print its prompts correctly when run under modern (CVS) Parrot. http://xrl.us/c6ks Pragma @LOAD is not always honoured Stéphane Payrard was bemused to discovered that parrot routines declared with the @LOAD pragma don't get automatically executed if they're in the main segment. He suggested that the issue be either fixed or documented. Leo documented it. http://xrl.us/c6kt NCI basics Charles Somebody tried to crash the monomonikered big leagues by failing to vouchsafe his surname when he posted a question about getting NCI to work with wxWindows. For reasons that escape me, the answers (and, indeed, Charles's surname -- Lowell) appeared in a different thread. Sadly the answers were more along the lines of Oops, that's a bug that is, we'll add it to the RT queue. Still better to have it identified than festering away undiscovered. http://xrl.us/c6ku http://xrl.us/c6kv Language::Zcode Who says Perl 6 is the only language that's taking a long time to appear on Parrot? Amir Karger posted his first annual update on his attempt to get Parrot to emulate the Z-machine. Hopefully subsequent updates will be more frequent. http://xrl.us/c6kw Meanwhile, in perl6-language Ordinals, Hashes and Arrays, oh my! David Green had some thoughts on Perl 6's compound data structures. Larry didn't sound convinced. http://xrl.us/c6kx Writing pack, or something like it Michele Dondi wondered how to write pack-like functions in Perl 6, where the first argument is a string which specifies the signature of the rest of the function call. The proposal stumped me, but maybe you all can make something of it. http://xrl.us/c6ky But is it intuitive? No it isn't. http://xrl.us/c6kz S5 Grammar compositions While peacefully reading Synopsis 5 (Rules Grammars), Dave Whipp noticed that grammatical inheritance wasn't as flexible as the Role based compositions that can be used when working with classes. Larry wondered allowed about having grammar roles, but I don't think they've been officially mandated yet... http://xrl.us/c6k2 Still about subroutines... Michele Dondi continues to make my head hurt with zir proposals. In part it's because I've still not worked out whether zie is male or female, and in part because, well, zir proposals are challenging. In this particular proposal zie wondered if there would be a way to magically write recursive anonymous functions without having to introduce a new symbol of some sort. Luke and Larry think there will be such a way, but the precise syntax hasn't been settled just yet. http://xrl.us/c6k3 Range quantifier woes Jonathan Scott Duff wasn't happy with the new range quantifier syntax in Synopsis 5. He posted a bunch of questions that were nagging at him. Larry had some good answers (if you're interested in contributing to the design of Perl 6 you should *really* read Larry's replies). http://xrl.us/c6k4 Announcements, Apologies, Acknowledgements And so ends another summary. I hope you liked it. Sorry for the delay if you're reading this on the mailing list; this
This week's Summary
The Perl 6 Summary for the week ending 2004-09-03 Another week, a free weekend, and still I haven't started writing the summary until Monday. Still, I don't actually start at college 'til next week, so that's all right then. We start with perl6-internals. Compile op with return values The discussion of how to return something from dynamically compiled code continued with Leo, Dan and Steve Fink all working to clarify and address the issues. http://xrl.us/cybq Library loading Dan started the process of nailing down Parrot's dynamic loading API so that it can be added to the embedding interface. Steve Fink and Aaron Sherman had suggestions. http://xrl.us/cybr Pathological register allocation scenarios Gregor N Purdy had asked Dan if his work compiler could be made to spit out structurally equivalent C code to the Parrot code that was breaking IMCC. His idea being that we could then see how C compilers dealt with such nastiness. Dan thought that, whilst this was a good idea, it would be too much work to implement. Gregor wasn't so sure. http://xrl.us/cybs Dan and Leo demonstrate comic timing. Again. 14:17:09 GMT Dan: PerlHash test 20 is failing? Anyone know what's up so we can fix it? 15:30:41 GMT Leo: It stopped failing at 15:55 CEST (13:55 GMT) 16:32:29 GMT Dan: D'oh! We love it when a patch comes together. http://xrl.us/cybt PMC Instantiation Leo had raised issues with the current scheme for PMC instantiation. This week Dan came through with some design which got discussed and (I think) implemented. http://xrl.us/cybu Last bits of the basic math semantics If you believe Barbie, Math is hard. She's right, up to a point. The list's spent a couple of weeks now sorting out the design of Parrots underlying mathematical and numeric systems to make sure that maths works right (for sufficiently useful values of 'right'). This particular line of discussion covers rotations and stuff, where you're actually treating a number as a bit field. http://xrl.us/cybv Cross-compiling parrot And you thought compiling Parrot on a Win32 box was hard. Robert Schwebel wants to cross compile Parrot and isn't having a good time. Dan wasn't surprised because the Parrot build process still gets most of its information from the local perl installation which will generally be wrong when you're cross compiling. Dan noted that part of the problem is that we don't have people on the team with a need or the experience of doing cross compilation and added that he'd be thrilled if this were to change. Any patches to make things better for cross compilers will, of course, be gratefully received. http://xrl.us/cybw Proposal for a new PMC layout and more Leo's concerned that the current PMC layout isn't the Right Thing, and laid out a proposal describing some changes he thinks would be worthwhile. In essence, he argues for removing the requirement for fixed sized PMC headers and separate variable sized buffers in favour of unifying buffers and PMCs so that PMCs become variable sized, thus eliminating some time consuming indirection, and space consuming overheads. Nicholas Clark thought the proposal was interesting, but said that, since the proposed changes would be invisible to the user, he'd be far happier with a functionally complete implementation of parrot with stable, useful APIs. Dan rejected the proposal (both for technical reasons and because he agreed with Nicholas). I don't think Leo was convinced by the technical reasons, but the Let's get the interfaces finished! argument clinched it. http://xrl.us/cybx http://xrl.us/cyby -- Dan explains why not. Semantics for regexes Dan appears to have opened an entertaining can of worms when he outlined his view of the minimum string semantics required to support a regular expression engine and asked for comments. Boy did he get them. And boy did they run off in all sorts of strange directions. Interesting directions mind. Anyway, further down the thread, Dan, Chip Salzenburg and Patrick Michaud seemed to reach something approximating agreement about the low level semantics required. http://xrl.us/cybz TODOs and calls for volunteers Leo came up with a list of things that need fixing/implementing and asked for volunteers. These include sorting out what happens with the experimental ops, implementing new_extended for every PMC class and finishing up BigInt's MMD and vtable functions. He also had some proposals for how we should get the Integer classes properly implemented now we know what the semantics will be. http://xrl.us/cyb2 http://xrl.us/cyb3 http://xrl.us/cyb4 http://xrl.us/cyb5 Meanwhile, in perl6-language Roles trying to
This Week's Summary
NB: The links are probably broken at present. Normal service will hopefully be resumed once Google gets caught up with the perl6 lists. The Perl 6 Summary for the week ending 2004-08-27 Where does the time go? I blame folk festivals. Once I'm getting busy with the teacher training I'm going to have weekends free to write the summaries. And if you'll believe that... We start with perl6-internals. Incremental garbage collection Discussion of implementing incremental garbage collection continued. Calling conventions for unprototyped subroutines Mattia Barbon asked for some clarification of how the calling conventions work for unprototyped subroutines in IMCC. Specifically, whether IMCC was behaving as documented in the Parrot Design Document (PDD3). Leo reassured him that the TODO entry that had caused his disquiet was obsolete and that IMCC does the right thing. http://xrl.us/cw77 Compile op with return values Steve Fink asked how to go about returning something from dynamically compiled code. He, Leo and Dan went over the issues. An unnamed (and as yet unvolunteered) volunteer will probably write it all up and add it to the parrot compiler FAQ. http://xrl.us/cw78 NCI and callback functions Stephane Peiry and Leo continued to work on getting NCI callbacks working with the GTK library. They finally tracked the problem down, but it looks awfully like Stephane's going to have to reimplement the gtk_main loop to get everything working. Best of luck Stephane. ParrotGTK would definitely be a cool thing. http://xrl.us/cw79 Planet Parrot Robert Spier announced the creation of Planet Parrot, an aggregator of Parrot related blogs. If you have such a blog, Robert would probably be interested in hearing from you. http://xrl.us/cw8a http://planet.parrotcode.org/ GC/DOD API Leo and Dan continued to discuss and work on documenting Parrot's memory management API. http://xrl.us/cw8b NCI GC issues Dan noticed a problem with garbage collection and NCI PMCs. Leo tracked the problem down and fixed it. I love it when a plan comes together. http://xrl.us/cw8c Opinions on base behaviour Base behaviour is disgusting and should be stamped out I tell you. We have a moral duty to... Ah... Actually, the subject refers to Dan and Leo's desire to nail down the behaviour of Parrot's basic types. He outlined the issues and asked for discussion. And that's what he got. It looks like Parrot's going to have a reasonably complete set of numeric types which will allow accuracy nerds to avoid reals for as long as possible. Which will be nice. http://xrl.us/cw8d http://xrl.us/cw8e http://xrl.us/cw8f http://xrl.us/cw8g http://xrl.us/cw8h Concat, Cows Basil Comfortably winning the weirdest subject line of the week award, Sam Phillips laid out some of the problems he's having implementing a Basil compiler which targets Parrot. Leo supplied answers. http://xrl.us/cw8i Low level math[s] op behaviour As well as discussing basic types, Dan opened a discussion of the proper semantics of Parrot's low level maths (yeah, he spelt it 'math', but I'm English and I'll spell it correctly) operators. In particular he proposed variants that throw exceptions if strange things happen. http://xrl.us/cw8j Benchmark stuff Joshua Gatcomb posted some patches he'd made to Fparrotbench.pl to make it a little less fragile and more useful. A few days later he announced a slightly more finished set of patches (Leo had checked his original patches in rather sooner than expected). http://xrl.us/cw8k http://xrl.us/cw8m Resuscitating a mod_parrot Dan Sugalski looked upon mod_parrot and saw that it was cool, to the point of being laid out on a mortuary slab. He thought that the time had come to try and put some life back into the project, now that Parrot's so much more capable. He asked for volunteers and Jeff Horwitz seems to be (the only?) one of 'em. http://xrl.us/cw8n PMC instantiation Leo posted another of his discussion documents, this time on instantiating PMCs. No response so far. http://xrl.us/cw8o Meanwhile, in perl6-language Return with no expression. In the usual freewheeling perl6-language way, a thread entitled 'return with no expression' ended up discussion how to disambiguate a :: which is part of ... ?? ... :: ... expression and :: in its role as module sigil. (According to Luke it's easy; white space is required). http://xrl.us/cw8p Synopses discussed Discussion of the draft synopses continued http://xrl.us/cw8q - Synopsis 2 POD tables? Aaron Sherman wondered if Perl 6's incarnation of POD would have support for tables. Luke wasn't overly keen on Aaron's proposed
This week's summary
The Perl 6 Summary for the six days ending 2004-08-06 Another short week and the rollover point is now set to Friday nights in preparation for September when I'll almost certainly not have weeknights free. (Of course, I don't expect the summary will be coming out any earlier in the week through August, what with Saltburn Folk Festival this coming weekend, EuroFoo the weekend after and Towersey Folk Festival the weekend after that. Just for a change, we'll start with the discussions in perl6-language. Meanwhile, in perl6-internals ICU Outdated Unicode is evil I tell you. Necessary, but evil. If ever there was an essential piece of technology that was absolutely guaranteed to annoy everyone then Unicode is probably it. The Unicode issue this week was the ongoing discussion of what to do about ICU. It's huge, it's in C++ and Dan maintains we can't do without it (unless some kind soul were to implement a Unicode library with all of ICU's features and fewer of its annoyances -- now there's a postgraduate task for the interested). Dan's plan is: 1 Make Configure detect and use a system ICU, if available 2 Dan will spec out encoding and charset APIs for loadable encoding and charset modules 3 Parrot gets fixed to use those APIs 4 Add support for non-Unicode encodings and charsets 5 Make ICU a loadable module tied into the encodings and charset API 6 Profit! This puts Dan smack on the Critical Path, but what's new? http://xrl.us/cob9 Span! Matt Kennedy announced the initial release of a new Parrot based language called Span. And very lovely it looks too (Think Smalltalk meats Block structured languages and wins), if only I could get it to compile on my Panther installation. http://xrl.us/coca http://xrl.us/cocb Executable AST In an intriguing post, Leo announced that Parrot's now running code directly from a (Python) Abstract Syntax Tree description. The post is light on details, but big on potential. http://xrl.us/cocc Roadmaps Dan announced that he'd committed a DESIGN_TODO file to the repository with brief details of what he thinks needs working on. He also posted a short term roadmap of things to deal with in the near future and very interesting it looks too (he reckons we should be able to get serializable continuations working, which would be rather cool). http://xrl.us/cocd PMC Basics Leo posted a list of issues with how PMCs work. Warnock applies. http://xrl.us/coce Starting to make things final Dan pointed at the efforts of Piethon and the 'PHP on Parrot' people and at Span and declared that we're at the point where things that are in and implemented should be documented and fixed and that things that are in flux should 'un-flux and get fixed'. He sketched the road to 0.2.0, 0.2.1 and thence to 0.3.0. The idea is that 0.2.0 (or 0.2.1) will be a 'complete' stable, good enough platform for language developers. Which will be nice. Oh, there's going to be a compiler writer's list (probably parrot-compilers) spun off from perl6-internals (which will probably become parrot-internals). Names are slightly undecided at present (but I will aim to cover both lists in my summaries). http://xrl.us/cocf Declaring MMD subs from PASM/PIR He who must not be capitalized, chromatic, wondered about declaring parrot subroutines that participate in multiple dispatch. He outlined a scheme that Dan had suggested (presumably at OSCON) and asked for comments. Leo and Dan discussed it further, but I don't think anything's final yet. http://xrl.us/cocg Everything Parrot Documents maestro Michael Scott posted the beginnings of a subject overview for Parrot. He asked people to point out any bits and pieces he'd missed. http://xrl.us/coch A testimonial and a question Andrew Rodland delurked to say nice things about Parrot (pretty smooth stuff) and to ask if there was a handy list 'It Would Be Nice If...' tasks that newcomers could get started on without having to dive straight into hacking the core. Simon Glover pointed at the TODO list. He suggested that you can't have too many tests and that writing tests can be a good way of getting a handle on what the core does (or is supposed to do). Reading tests can be a good way of getting a handle on what the core does too, of course. http://xrl.us/coci The new Perl 6 Compiler pumpking Dan announced that Patrick Michaud stepped up to the plate and taken charge of getting the Perl 6 compiler module written. Welcome Patrick, and the very best of luck. Leon Brocard asked Patrick what his plan of attack was. No reply so far. http://xrl.us/cocj Spilling problems The thing about writing naive compilers for
Re: This week's summary
At 1:26 PM +0100 8/9/04, The Perl 6 Summarizer wrote: Spilling problems The thing about writing naive compilers for naive languages is you end up with rather large Parrot subroutines. Dan's work project is generating ~6000 line subs. That was only for a program triggering degenerate behaviour in the register allocator. The biggest sub I can find off-hand is 69496 lines, from an original source language that stuffs about 400K of source text into a single routine... -- Dan --it's like this--- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk
This week's summary
The Perl 6 Summary for the six days ending 2004-07-31 As I threatened last week, I'm moving the rollover point for these summaries from midnight on Sunday/Monday to midnight on Friday/Saturday, but rather than do it in one swell foop I'm doing a couple of six day weeks. The theory is that, once I become a student teacher I'll be rather busy during the week, but I should still be able to make time to write the summaries at the weekend. That's the theory at least. You'll note that this didn't get posted to the mailing lists on a Sunday. Blame my cousin for getting married. It won't happen again. Pie-thon Good news! Guido is a gentleman and declined to throw a pie at Dan. Bad news! The Perl Community is a bunch of savages, and they paid $520 to be able to throw pie at Dan. Good news! There are photos. http://xrl.us/ck3f http://xrl.us/ck3g Notes to self 1 Americans pronounce 'maths' as 'math'. 2 Don't make silly cracks about American rectitude 3 Oops. Leo's proposed calling conventions It's been apparent for a while now that Leo Tötsch isn't happy with Parrot's current calling conventions. This week he posted a proof of concept patch implementing a proposed new scheme. Luke Palmer agreed that it was probably worth consideration. We'll see what Dan has to say when he gets back from OSCON. Stack based language RaghavendraK asked about the difference between stack and register based virtual machines. Brent Royal-Gordon gave good advice. http://xrl.us/ck3h ICU outdated Joshua Gatcomb noted that the ICU that comes with Parrot is, not to put too fine a point on it, old and buggy. The ICU developers have suggested that Parrot move to version 3.0. Josh proposed various ways of doing this. Leo wants ICU out of the Parrot CVS, but Dan's argued in the past that it should be in there because he doesn't want to force people to chase round fetching a raft of required libraries before they can build parrot. http://xrl.us/ck3i Jarkko proposed for a CVS checkin rights Following a raft of high quality patches from Jarkko Hietaniemi, Leo proposed him for membership of the cvs ci club. http://xrl.us/ck3j Meanwhile, in perl6-language What's core? Larry and Dan Hursh discussed what would be going in the standard Perl 6 distribution. Dan argued that we should be concentrating on producing a distribution akin to the current Perl 5 distribution, but with a few fewer kitchen sinks. Larry argued that we should concentrate on two distributions: 1 Bare bones, just able to build itself and with enough capability to bootstrap everything else. 2 Extended. The bare bones system + a set of libraries fetchable from CP6AN that constitute the Perl 6 'supported' library; modules that are maintained by the Perl 6 equivalent of perl5-porters and which will be supported over a long time frame. I don't think Dan's been convinced yet. Elsewhere in the thread Luke Palmer coined the delightful acronym 'EYEWTIBWATA' -- Everything You Ever Wanted To Install But Were Afraid To Ask -- or eye-witty-bwattle. I'm unsure about whether it's going to rank up there with Tim-toe-tidy though. http://xrl.us/ck3k Announcements, Apologies, Acknowledgements I'm getting bored of typing 'Palmer' and 'Tötsch' once a week, so I'm considering treating Luke and Leo like Larry, Dan, Damian and, if you insist, chromatic. So, 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
Re: This week's summary
ICU outdated Joshua Gatcomb noted that the ICU that comes with Parrot is, not to put too fine a point on it, old and buggy. The ICU developers have suggested that Parrot move to version 3.0. Josh proposed various ways of doing this. Leo wants ICU out of the Parrot CVS, but Dan's argued in the past that it should be in there because he doesn't want to force people to chase round fetching a raft of required libraries before they can build parrot. Some ideas to solve this: 1. Configure checks out ICU if needed. 2. Configure fetchs a night/week/month snapshot (from parrot homepage/ftp/whatever) of ICU if needed. I just thing that ICU in the Parrot CVS do not make sense. Kind regards, -- Alberto Simões Much as I hate to say it, the Computer Science view of language design has gotten too inbred in recent years. The Computer Scientists should pay more attention to the Linguists, who have a much better handle on how people prefer to communicate. --Larry Wall
Re: This week's summary
Brent 'Dax' Royal-Gordon [EMAIL PROTECTED] writes: Piers Cawley wrote: Brent 'Dax' Royal-Gordon [EMAIL PROTECTED] writes: Care to explain what those are, O great math teacher? What's a math teacher? It's the right^H^H^H^H^HAmerican way to say maths teacher. You mean American and 'right' are not equivalent? Wow.
RE: This week's summary
sarcasm Of course American and Right are synonymous! Just ask OUR WONDERFUL GOD (I mean President) GEORGE W. BUSH. He'll tell ya' /sarcasm -Original Message- From: Piers Cawley [mailto:[EMAIL PROTECTED] Sent: Thursday, July 29, 2004 6:49 AM To: Brent 'Dax' Royal-Gordon Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: Re: This week's summary Brent 'Dax' Royal-Gordon [EMAIL PROTECTED] writes: Piers Cawley wrote: Brent 'Dax' Royal-Gordon [EMAIL PROTECTED] writes: Care to explain what those are, O great math teacher? What's a math teacher? It's the right^H^H^H^H^HAmerican way to say maths teacher. You mean American and 'right' are not equivalent? Wow. The information contained in this e-mail message is privileged and/or confidential and is intended only for the use of the individual or entity named above. If the reader of this message is not the intended recipient, or the employee or agent responsible to deliver it to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify us by telephone (330-668-5000), and destroy the original message. Thank you.
RE: This week's summary
On Thu, 29 Jul 2004, Butler, Gerald wrote: sarcasm Of course American and Right are synonymous! Just ask OUR WONDERFUL GOD (I mean President) GEORGE W. BUSH. He'll tell ya' /sarcasm OK, gentlemen, this is both way off topic and starting to head into flame war territory, so I suggest that we either quietly drop it, or move it elsewhere. Simon PS Gerald, this isn't aimed at you specifically -- yours just happens to be the most recent message in the thread.
Re: This week's summary
Brent 'Dax' Royal-Gordon [EMAIL PROTECTED] writes: The Perl 6 Summarizer wrote: The infinite thread Pushing onto lazy lists continued to exercise the p6l crowd (or at least, a subset of it). Larry said that if someone wanted to hack surreal numbers into Perl 6.1 then that would be cool. Care to explain what those are, O great math teacher? What's a math teacher?
Re: This week's summary
On 2004-07-28 at 20:55:28, Piers Cawley wrote: What's a math teacher? Oh, come now. You may refuse to *use* the Leftpondian short form, but pretending not to *recognize* it is a bit much. :) -- Mark REED| CNN Internet Technology 1 CNN Center Rm SW0831G | [EMAIL PROTECTED] Atlanta, GA 30348 USA | +1 404 827 4754
Re: This week's summary
Piers Cawley wrote: Brent 'Dax' Royal-Gordon [EMAIL PROTECTED] writes: Care to explain what those are, O great math teacher? What's a math teacher? It's the right^H^H^H^H^HAmerican way to say maths teacher. -- Brent Dax Royal-Gordon [EMAIL PROTECTED] Perl and Parrot hacker Oceania has always been at war with Eastasia.
Re: This week's summary
On Mon, 26 Jul 2004, Brent 'Dax' Royal-Gordon wrote: The Perl 6 Summarizer wrote: The infinite thread Pushing onto lazy lists continued to exercise the p6l crowd (or at least, a subset of it). Larry said that if someone wanted to hack surreal numbers into Perl 6.1 then that would be cool. Care to explain what those are, O great math teacher? OT IIRC there's a nice little book by Prof. Knuth about them... /OT Michele -- The trouble with engineers is that given the problem of knocking down a stack of 100 bricks, they will start at the top, and work all day removing them one at a time, while the mathematician will, after a momemt's thought, remove the bottom brick and be done with it. The trouble part, is having to brook the noise of the engineer boasting about how much harder he worked while one is trying to think about the next problem. - Bart Goddard in sci.math
Re: This week's summary
The Perl 6 Summarizer wrote: The infinite thread Pushing onto lazy lists continued to exercise the p6l crowd (or at least, a subset of it). Larry said that if someone wanted to hack surreal numbers into Perl 6.1 then that would be cool. Care to explain what those are, O great math teacher? *ducks* -- Brent Dax Royal-Gordon [EMAIL PROTECTED] Perl and Parrot hacker Oceania has always been at war with Eastasia.
Re: This week's summary
On Mon, Jul 26, 2004 at 10:29:15AM -0700, Brent 'Dax' Royal-Gordon wrote: The Perl 6 Summarizer wrote: The infinite thread Pushing onto lazy lists continued to exercise the p6l crowd (or at least, a subset of it). Larry said that if someone wanted to hack surreal numbers into Perl 6.1 then that would be cool. Care to explain what those are, O great math teacher? Disclaimer, I am no math theacher. :) This is a very interesting class of number that can be used to modelize games. It has designed by the _other_ Conway, the one of game of life fame. The expression surreal number was coined by Knuth. For more info, the wikipedia is your friend: http://en.wikipedia.org/wiki/Surreal_number For the full story, read the book Numbers and Games. I have ordered it a few days ago so I can't comment on it. Brent Dax Royal-Gordon [EMAIL PROTECTED] -- stef
Re: This week's summary
On Mon, 26 Jul 2004 10:29:15 -0700, Brent 'Dax' Royal-Gordon [EMAIL PROTECTED] wrote: The Perl 6 Summarizer wrote: The infinite thread Pushing onto lazy lists continued to exercise the p6l crowd (or at least, a subset of it). Larry said that if someone wanted to hack surreal numbers into Perl 6.1 then that would be cool. Care to explain what those are, O great math teacher? *ducks* Just for those following along from home: http://www.amazon.com/exec/obidos/tg/detail/-/0201038129/qid=1090866301/sr=1-1/ref=sr_1_1/103-7396197-3600620?v=glances=books - Kurt
Re: This week's summary
Brent 'Dax' Royal-Gordon [EMAIL PROTECTED] writes: [surreal numbers] Care to explain what those are, O great math teacher? Surreal Number theory was an attempt in the latter half of the twentieth century to unify several existing sets of numbers (including the complex numbers, generalized epsilon numbers, and cardinalities) into a single notation and define addition and multiplication operations on them that would be isomorphic to the standard addition and multiplication on the complex numbers. Knuth's book on them is very interesting and a good read. I don't know whether surreal numbers ever really caught on in the mainstream mathematics community or lead to any real advances in number theory. Most undergraduate math curricula don't seem to teach them as near as I can tell, except perhaps in the collateral reading. One problem with them is that the notation is rather unwieldy. They are interesting conceptually, however, despite their apparent lack of practical usefulness, and serve as a proof of concept for the notion of a unified number theory, although in practice the group theory of modern algebra seems to unify things better, IMO. Hey, you asked. Surreal numbers in Perl would be way more cool than practical. -- $;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b-()}} split//,[EMAIL PROTECTED]/ --;$\=$ ;- ();print$/
Re: This week's summary
Austin Hastings [EMAIL PROTECTED] writes: --- The Perl 6 Summarizer [EMAIL PROTECTED] wrote: Okay, so the interview was on Tuesday 13th of July. It went well; I'm going to be a maths teacher. [...] As we all know, time flies like an arrow, but fruit flies like a banana. If you found this mathematical summary helpful, please consider paying your tuition you ungrateful little bastards. ** Gurfle **
This week's summary
The Perl 6 Summary for the week ending 2004-07-18 Following last week's bizarrely dated summary (I misplaced a day) we're back with the correct week ending date, but I'm ashamed to admit that I've slipped to writing on a Tuesday again. My head hangs in shame and I am filled with the direst remorse. It will probably happen again though; life's like that. Pie-thon! Anyone would think that the possibility of not even being able to run the Piethon benchmark (let alone getting a pie in the face for running it too slowly) weighs heavily on Dan. The bulk of the week's traffic related to getting to the point where we can at least run all the tests. Python::Bytecode, the module that parses, well, python bytecode, shot up in version numbers; I think it reached 2.7 by the end of the week. Dan released a Piethon translator, a tool that uses Python::Bytecode translate python to parrot. So has Leo. Dan's is on his website (see the link below, you'll find Leo's in languages/python/pie-thon.pl). http://xrl.us/chh9 -- Parrot runs a python lambda http://xrl.us/chia -- Notes on pie-thon.pl http://xrl.us/chib -- Namespaces for builtins http://xrl.us/chic -- Dan's translator Semi-stack code In a quest for speed when emulating python's stack manipulation ops, Dan outlined a plan for manipulating a pseudo stack using some of Parrot's PMC register (18-29, with P31 used for overflow). Leo wasn't convinced it was needed. http://xrl.us/chid string_to_num precision Leo's got some problems with the precision of the string_to_num function found in string.c. He doctored things to use atof, but Dan's not so keen on that idea because atof doesn't have standard behaviour across platforms. He recommended grabbing Perl 5's string to num code (which he thought we'd already done). Nicholas Clark wasn't convinced that this was a good idea; he reckoned that Perl 5's code wasn't good enough. I think Nicholas convinced Dan that atof is actually the right thing to use (with a little preprocessing to deal with C99's atof being incompatible with C89's -- Parrot expects C89 behaviour). http://xrl.us/chie GMP Licensing Armin Obersteiner reported his investigations into the licensing requirements of the GMP maths library. It appears that the FSF's 'GPL Compliance Engineer' reckons we won't need to include the GMP's source code with binary distributions. We just have to make it available from the same source as the distribution. Which is handy. http://xrl.us/chif Parrot configuration -- a small perl task Leo asked for volunteers to fix up Configure.pl in order to make it less dependent on the host Perl's configuration. Brent Royal-Gordon provided a teeny-tiny patch that's actually shorter than Leo's description of the problem. http://xrl.us/chig Meanwhile, in perl6-language Scalar subscripting Remember Guatam Gopalakrishnan's question about subscripting scalars? Discussion continued. One Piers Cawley (who he?) suggested that it should be possible to specify a postcircumfix:[] is rw method in the String class to make string subscripting behave in a helpful fashion. He also suggested pulling this (and other similar behaviours) out into a Sequence trait. Juerd thought the proposed method name was a little verbose compared to Ruby's syntax for doing the same thing and showed off some rather pretty Ruby metaphors. Another subthread discussed interpolation in strings. Larry's changed his mind so that $file.ext is now interpreted as $object.method. You need to do ${file}.ext or $( $file ).ext. Or maybe $«file».ext by analogy with %foo«bar». James Mastros pointed out that . is rather ambiguous in a literal string; sometimes a full stop is just a full stop. http://xrl.us/chih Pushing lazy lists This thread continues to resemble the lists it is nominally discussing: Infinitely long and possibly endless. http://xrl.us/chii Perl 6 and Parrot Essentials, 2nd Edition Leo pointed us at an O'Reilly press release announcing that the second edition of *Perl 6 and Parrot Essentials* is available. Huzzah! Let joy be unconfined. http://xrl.us/chij Rules to match abbreviations Hans Ginzel wondered wondered about adding something to the rules system to easily match specified abbreviations of a string. Luke Palmer came up with a (pretty ugly) solution which he then wrapped very neatly in a rule. http://xrl.us/chik Enhancing open There's a good deal of mileage to be had talking about how to improve the open function it seems. Larry continues to come up with new and interesting ways of designing the language in such a way that almost every decision about how to do something can be deferred. Speaking as someone who wishes he could
Re: This week's summary
--- The Perl 6 Summarizer [EMAIL PROTECTED] wrote: Okay, so the interview was on Tuesday 13th of July. It went well; I'm going to be a maths teacher. As usual, we begin with maths-geometry: In Mathematics last week, one Pythagoras suggested there might be a relationship between the sides of a triangle and its hypotenuse. Zeno continued to close on his destination, but once again only got halfway there. http://xrl.us/chjj (Squares) http://xrl.us/chjk (Zeno in mid-flight) As we all know, time flies like an arrow, but fruit flies like a banana. If you found this mathematical summary helpful, please consider paying your tuition you ungrateful little bastards. Congratulations, Piers! The fate of a generation rests on your shoulders. =Austin
Re: This week's summary
The Perl 6 Summarizer skribis 2004-07-20 14:46 (+0100): Another subthread discussed interpolation in strings. Larry's changed his mind so that $file.ext is now interpreted as $object.method. You need to do ${file}.ext or $( $file ).ext. Or maybe $«file».ext by analogy with %foo«bar». James Mastros pointed out that . is rather ambiguous in a literal string; sometimes a full stop is just a full stop. My preference is $file\.ext. Clear, light and ascii. Juerd
Re: This week's summary
On Tue, 20 Jul 2004 19:15:49 +0200, Juerd [EMAIL PROTECTED] wrote: The Perl 6 Summarizer skribis 2004-07-20 14:46 (+0100): Another subthread discussed interpolation in strings. Larry'schanged his mind so that $file.ext is now interpreted as $object.method. You need to do ${file}.ext or $( $file ).ext. Or maybe $file.ext by analogy with %foobar. James Mastros pointed out that . is rather ambiguous in a literal string; sometimes a full stop is just a full stop. My preference is $file\.ext. Clear, light and ascii. Juerd That's my preference too. But what if we have (perl5) ${n}th occurence ? $n\th won't work because of \t special meaning... I think, better if . would be interpreted as method call only after \$ident, \@ident, \%ident or \ident, so ...leading dots?.. hm.. would not require \ before dots, but text ~#~$obj.method.method2~#~ text would be interpreted as it should. I think, real period will be used more often than .topicsMethod interpolating , and $(.topicsMethod) or $_.topicsMethod look nice enough, so there's no need to add special behavior to . not preceded by sigilled expression.. ah, one more problem. perl5-style ${var}.NotAMethod could save us in some case, but what if you need to interpolate $var.method.NotAMethod ? should it be ${var.method}.NotAMethod ?.. or $($var.method).NotAMethod is only solution?
Re: This week's summary
Jonadab the Unsightly One [EMAIL PROTECTED] writes: The Perl 6 Summarizer [EMAIL PROTECTED] writes: Different OO models Jonadab the Unsightly One had wondered about having objects inheriting behaviour from objects rather than classes in Perl 6. Urgle. I've completely failed to explain myself so as to be understood. That wasn't at *all* what I had in mind. It could well be that I didn't read things carefully enough.
Re: This week's summary
On Thu, 8 Jul 2004, Piers Cawley wrote: Jonadab the Unsightly One [EMAIL PROTECTED] writes: The Perl 6 Summarizer [EMAIL PROTECTED] writes: Different OO models Jonadab the Unsightly One had wondered about having objects inheriting behaviour from objects rather than classes in Perl 6. Urgle. I've completely failed to explain myself so as to be understood. That wasn't at *all* what I had in mind. It could well be that I didn't read things carefully enough. Maybe, but that's what I got out of it as well. Dan --it's like this--- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk
Re: This week's summary
The Perl 6 Summarizer [EMAIL PROTECTED] writes: Different OO models Jonadab the Unsightly One had wondered about having objects inheriting behaviour from objects rather than classes in Perl 6. Urgle. I've completely failed to explain myself so as to be understood. That wasn't at *all* what I had in mind. -- $;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b-()}} split//,[EMAIL PROTECTED]/ --;$\=$ ;- ();print$/
This week's summary
The Perl 6 Summary for the week ending 2004-07-04 Another week, another Perl 6 Summary. This is becoming a habit. Let's do perl6-internals first shall we? Japhy's Perl 6 rules parser Last week Jeff 'japhy' Pinyan announced that he'd be working on a Perl 6 rules parser once he'd finished his Perl 5 regex parser. This week saw a deal of discussion on how his parser worked. The answer seemed to be It works the Right Way. Which is good. With any luck Steve Fink will be able to get this parser and the current (sketchy) Perl 6 compiler playing well together. http://xrl.us/ccie Complexities Last week Leo had pointed out that we'd need support for complex numbers in order to get the Piethon stuff running properly. This week there was some discussion of what was actually needed. Later in the week Ion Alexandru Morega posted a patch implementing them. I think Leo spoke for us all when he said Whee, great, thanks - applied. http://xrl.us/ccif New mailing lists There was some discussion of how perl6-internals should be broken up. It looks like we'll see new lists called parrot-internals, parrot-compilers and parrot-library (for internals hackers, compiler implementers and library builders respectively). The original perl6-internals will carry on, but will be focused on the actual internals of Perl 6. Some, or all, of these lists will be covered in these summaries for as long as I can keep up. Stack language for Parrot In as impressive a delurk as I've seen in a while, Michael Pelletier announced that he'd been lurking for a while, playing with Parrot and had implemented a little stack language not entirely unrelated to Forth which he'd christened Parakeet. He posted his implementation and got promptly Warnocked. http://xrl.us/ccig GMP and licensing issues Scott Bronson announced that he'd taken a look at GMP's license and he didn't think it was incompatible with Parrot's licenses. Dan wasn't convinced. Scott's still trying to convince him though. Robert Spier attempted to resolve the problem by pointing everyone at another possibly suitable library called IMath. http://xrl.us/ccih Meanwhile, in perl6-language Argh! Strings! Discussion of the various ways of slicing and dicing strings in Perl 6 continued. The issue is that, especially in a Unicode world, there are many ways of looking at a string, all of which are useful in different contexts. However, because you can look at a string as a sequence of bytes, codepoints, graphemes or whatever, then functions like substr get a little weird. If you were to say $substring = $a_string, 5 then what does the '5' mean? And that's just one example of where conceptual problems can arise. I confess that, whenever Unicode comes up, my gut reaction is to keep my head down and trust that Larry's going to get it right. Certainly the current formulation seems decently sane; things only get problematic if you're trying to do something well out of the ordinary. http://xrl.us/ccii if, loop, and lexical scope Discussion of Perl 6's new scoping rules (things are generally more consistent than they are in Perl 5; if a variable is declared inside a block, or in that block's signature in the case of - $a, $b {...} type blocks, then that block is its scope) continued. Some people like the new rules, others don't. http://xrl.us/ccij Different OO models Jonadab the Unsightly One had wondered about having objects inheriting behaviour from objects rather than classes in Perl 6. The gist of the answers he received was that it wouldn't be in the core of the language, but neither should it be too hard to implement something that worked how he wants. Undo? Michele Dondi wondered if Perl 6 would have a built in undo function for rolling back the history of a scalar (say). Rafael Garcia-Suarez pointed out that the concept wasn't a simple as it first appeared, especially in the context of threads, closures, side effects. He suggested that a better approach would be to implement a suitable transaction/rollback library that handled such things in an application appropriate fashion rather than using a 'half-baked kludge built into the base language'. Mark Biggar pointed out that the language already had hypothetical values, which did pretty much the right thing. Elsewhere in the thread, Luke Palmer attempted to explain continuations again. A sandwich was involved. http://xrl.us/ccik http://xrl.us/ccim -- Luke makes a continuation sandwich If not , then what Alexey Trofimenko triggered your Summarizer's sense of deja vu when he asked what was happening to the C-style comma (we're keeping it, more or less) and proposing a then keyword for use in the
Re: This week's Summary
The Perl 6 Summarizer [EMAIL PROTECTED] wrote: Congratulations Ion, don't forget to send in a patch to the CREDITS file. $ grep -1 Ion CREDITS N: Ion Alexandru Morega D: string.pmc Thanks again for your summary, leo
This week's Summary
The Perl 6 Summary for the week ending 2004-06-27 What's this? No! It can't be! It's a *weekly* Perl 6 Summary. What is the world coming to? Sorry, I can't answer that one, so I'll tell you what's been happening this week in perl6-internals. Bignums, licenses, pie As you are no doubt aware, Python has bignums. And that means that, unless we want Dan to get a face full of Pie at OSCON this year, Parrot needs bignums too. Work on several fronts continued towards getting a bignum implementation for Parrot. Ideally, we'd like to just include GMP, but the license seems to require that the full source of GMP sip with any Parrot binary. Which isn't good when you're writing a VM that you'd like to be able to install on, say, a Palm. Scott Bronson suggested getting in touch with the GMP developers to see if there was anything that could be done about it. He volunteered to be the liaison, assuming Dan was cool with it. Meanwhile, Uri Guttman offered his 'stillborn' bignum implementation as a basis for our own bignum library. Leo commented that it might be a good idea in the medium to long term, but the Pie-thon is looming... http://xrl.us/cbf7 http://xrl.us/cbf8 Ion's Strings Remember Ion Alexandru Morega's string pmc that got Warnocked? Well, it got un-Warnocked this week. Dan liked it, so he checked it in. Congratulations Ion, don't forget to send in a patch to the CREDITS file. http://xrl.us/cbf9 Mmm... Pie-thon Dan reminded everyone of the URL of the benchmark that's going to be run for the Pie-thon. If Parrot doesn't run it faster than the C implementation of Python, then Dan's going to get a pie in the face and he'll have to spring for a round of drinks for the Python Cabal (is there one? Could be a cheap round...). Of course, the plan is to have Parrot be faster than Python so Dan'll get to chuck a Pie at Guido. Either way, if you're at OSCON this year it should be fun. Right now, Parrot is some way from, well, running it. Leo announced that he will start a series of postings discussing the main features (and requirements) of the various benchmarks. He started with some notes on b6.py. http://xrl.us/cbga http://xrl.us/cbgb -- Python needs exception objects http://xrl.us/cbgc -- Pie-thon and the recursion limit Class name hashes Leo wondered about the current implementation of class name hashes. We have two such hashes, one for PMC base classes and one for dynamic PMCs. Leo thought this was suboptimal (and liable to make one of the Pie-thon benchmarks problematic.) Dan agreed that unifying the hashes (and renaming PMC classes to have Parrot prefixes (ParrotFixedSizeArray anyone?)) was the way to go. http://xrl.us/cbgd Confusing parameter order Nicholas Clark was somewhat bemused by the choice of parameter order for the Parrot_PMC_set_intval_intkey function, which reverses the order of some parameters from the vtable version. He suggested unifying the two. Leo agreed that changing things round was the best bet and suggested that Nicholas go ahead and make the change to the extend.h interface. Dan didn't pipe up to say it was a bad idea. In fact, Dan didn't pipe up at all. http://xrl.us/cbge Perl 6 regex parser Jeff 'japhy' Pinyan announced that he was currently completing work on an extensible, regex-specific, parsing module. Once it's finished, he's going to start work on writing a subclass that parses Perl 6 rules. He thought it might come in handy for people implementing Perl 6. Luke Palmer thought it would be too; the grammar of Perl 6 is being specified in Perl 6 patterns. Initially it was hoped that Damian's Perl6::Rules module would be what was needed to bootstrap us, but 'serious bugs in the Perl 5 regex engine having to do with executing code within regexes' meant that Perl6::Rules can't do the job for us. So, good luck Japhy, we're depending on you. But, you know, no pressure mate. http://xrl.us/cbgf Leo's tasks for the interested Leo asked for volunteers to implement a class to handle complex numbers (needed for Python) and to implement sort method(s) for the various *Array PMCs. http://xrl.us/cbgg Meanwhile, in perl6-language Command line like switches for functions and operators Michele Dondi proposed syntax for adding 'command line' type switches to functions and methods which look almost, but not quite, entirely unlike Perl 6's named parameters. Brent Royal-Gordon pointed out that Michele's proposed rename -v = 1, $orig, $new; could be written, rather more Perl6ishly as: rename $orig, $new :verbose; Luke Palmer pointed out that wrappers could be used to add such extra named arguments to built ins, so the proposed behaviour for rename
Re: This week's Summary
The Perl 6 Summarizer wrote: Mmm... Pie-thon Dan reminded everyone of the URL of the benchmark that's going to be run for the Pie-thon. If Parrot doesn't run it faster than the C implementation of Python, then Dan's going to get a pie in the face and he'll have to spring for a round of drinks for the Python Cabal (is there one? Could be a cheap round...). Of course, the plan is to have Parrot be faster than Python so Dan'll get to chuck a Pie at Guido. Either way, if you're at OSCON this year it should be fun. Right now, Parrot is some way from, well, running it. Unfortunately I will be missing this historic event, I'm sure there'll be videos after the fact but is there any chance of getting a live video feed of it? The suspense is killing me... -- Robin Berjon
This week's summary
The Perl 6 Summary for the fortnight ending 2004-05-23 Yes. I know. This week's summary is a week late. So it's a summary of the last two weeks. So let's get straight to perl6-internals shall we? Working on the Perl 6 Compiler Abhijit A. Mahabal posted his first ever patch, which updated the calling conventions used in the Perl 6 Compiler. Dan applied it promptly, and Allison Randal chimed in with some comments on the workings of the perl 6 compiler. There's a new document, which you'll find at languages/perl6/doc/developer_notes.pod in a CVS parrot, which is a scratchpad for developers to make notes of any issues that arise while they're working on the compiler. http://tinyurl.com/2o4lg Pants performing ponies The issues that cropped up in the last summary to do with poor ponie performance continued to exercise Leo Tötsch, Nicholas Clark and Jeff Clites as they homed in on the Ponie bug that had led to ludicrous numbers of PMCs being generated to no good end. It turns out that Parrot's garbage collection doesn't go that fast when there's 9 million live PMCs. Leo worked to improve things... http://tinyurl.com/29z6w MMD side effects Leo pointed out some strangeness related to the new multiply dispatched opcodes and proposed a solution. Warnock applies. http://tinyurl.com/35o3x The Parrot Question Repository Dan announced that he was trying (slowly) to get things documented and questions asked. Because questions to the list tend to get Warnocked or asked repeatedly, he's set up a new central question repository on the Parrot Wiki. He appealed for a volunteer to watch the list and add new questions to the Wiki page and (a possibly different volunteer) to watch the Wiki and post any answers back to the list. If such a volunteer should step up to the plate, I would be inordinately grateful if they could make a habit of commenting to any questions they transplant to the Wiki to let people know that this has been done. http://tinyurl.com/228g7 http://tinyurl.com/2vec8 -- Central Questions Point IO Opinions Dan asked for opinions on how the IO system was going to work when it came to dealing with record based files. Tim Bunce and Jeff Clites had suggestions and questions. http://tinyurl.com/2gruo The Right Way Repository Dan announced that he'd started an FAQ aimed at compiler writers targetting parrot in docs/compiler_faq.pod in your local CVS parrot. It's a bit sparse, but the proverb about mighty oaks and acorns applies. We hope. Brent Royal-Gordon was first in with a question and answer. http://tinyurl.com/3dxqp Towards a multiply dispatched parrot Leo continued his work on switching over to a multi dispatched vtable architecture and asked for comments on the work so far, and the sanity of the whole concept. Dan was very positive, and the work continues. http://tinyurl.com/yvk4b Cygwin Cygwin continues to be a fully paid up member of the awkward squad of environments. Joshua Gatcomb pointed out that JIT had broken again. He and Leo engaged in debugging by email as Leo worked to fix things. http://tinyurl.com/2rqxc Perl 6 Parser weirdness Abhijit A. Mahabal had some problems with the Perl 6 compiler's parser and asked for help. It looks like it's an issue with the load path using relative paths, which makes it fragile when you're running in an unexpected directory. The discussion evolved into one on the nature of the (eventual) Perl 6 parser. Dan worried that a recursive descent parser will be awfully slow compared to the current perl 5 parser. It looks like Perl 6 *won't* have a recursive descent parser, but the conversation got rather beyond my level of computer science (at least where parsers are concerned). Larry said that he was in favour of a hybrid parser which used both top down and bottom up parsing techniques. Dan suggested that since Larry has been itching to get into the internals anyway, [the parser]'d be a good place to start. http://tinyurl.com/2d6zs Event design sketch Discussion of Dan's event design sketch continued. Gordon Henriksen was worried that the events system as sketched wouldn't work well with GUI type events. Rocco Caputo pointed out issues with Daylight Saving for timed events. Leo asked for a glossary. And those are just the items that caught my eye as I went into speed skim mode. http://tinyurl.com/322o4 PARROT_API, compiler and linker flags Ron Blaschke has been working on getting Parrot's linker magic right; and he presented his findings and warned us that he intended to go ahead and implement something based on them unless there were substantive objections. There weren't any objections as such, but there were an awful lot of issues raised
This week's summary
The Perl 6 Summary for the week ending 2004-05-02 So, May Day didn't quite knock me for six this year (but being up at 4am on Newcastle Town Moor on Saturday morning to welcome in the summer with a bunch of rapper dancers (and no, rapper does not involve large shouty men wearing positively kitsch amounts of jewellery posturing in front of scantily clad women and shouting about how they're keeping it real, or whatever the current argot is. It's a rather older tradition of men making fools of themselves than that) is guaranteed to leave a chap feeling rather tired) so here's the summary. We'll kick off with perl6-internals. Again. GCC for Parrot Vishal Vatsa announced that he was working on getting GCC to compile to Parrot as his masters research project. I'm sure we're all wishing him the best of luck. http://tinyurl.com/2a6gj Parrot strings Various discussions of the Right Way to do string handling continued. Dan clarified his Strings design docs and Jeff Clites posted a 'Strings Manifesto'. It seems, to this observer at least, that a big problem with dealing with strings is that there's rather more than one Right Way to do things, depending on how you're looking at the problem and what you're trying to do. Dan's problem is that he has to find some way of accommodating all the various contradictory things that people want to do to strings without making any of them unduly painful. (Not assisted by the fact that, in one last week's documents he managed to graphemes, characters and glyphs slightly mixed up.) Me? I'm punting on summarizing this properly. My theory is that if you know enough about this stuff to be of assistance then anything I say will almost certainly be an annoying simplification too far. And if you both know enough about strings and care enough about Parrot, you're already involved in the thread. Hopefully there'll come a point in the future when everything's settled and this section of the summary will say Strings got sorted at last, look at this URL for details. http://tinyurl.com/36cck http://tinyurl.com/3dm3c http://tinyurl.com/yw8dv -- Strings Manifesto http://tinyurl.com/2se9w http://tinyurl.com/2drsf Win32 and cygwin issues There's been a good deal of work this week on getting things building properly in the Win32 and cygwin environments. Ron Blaschke, 'Limbic Region', George R and Leo Tötsch all worked on things. http://tinyurl.com/3axog http://tinyurl.com/26z4n NCI and 'Out' parameters Mr ParrotSDL (aka chromatic) showed an SDL function signature that he wanted to use via NCI (Parrot's Native Call Interface), but which didn't work because it had two pointer arguments that were used by the function as out parameters. He proposed changing the NCI PDD (PDD16) to support this sort of thing cleanly. Leo, Dan, Tim Bunce and chromatic discussed the changes needed. A little later in the week, chromatic posted a patch implementing something to solve the problem. http://tinyurl.com/32oxo http://tinyurl.com/2l4j7 Joys of assignment There's been some discussion recently about what happens with assignment and/or binding, and the difference between value and reference types. Dan decided that the time was right to post a clarification of the issues as they related to Parrot. http://tinyurl.com/ypl8u Fun with md5sum Nick Glencross's idea of fun is, apparently, implementing md5sum in IMCC. He posted his first cut at an implementation. I think Leo's response holds for all of us: Wow. Maybe I'm looking in all the wrong places, but so far it doesn't appear to be in the repository, but it can only be a matter of time. http://tinyurl.com/2lr4v Return continuation register Dan's working through outstanding issues and tidying up loose ends. One result of this is that he's been thinking about how the return continuation is handled. The new design (and calling conventions?) makes use of a return register in the interpreter structure, which gets saved as part of the environment that a continuation captures. http://tinyurl.com/277ne Library loading Clearing up another loose end, Dan did some design of how we're going to cope with loading libraries. http://tinyurl.com/33djf Keyed vtables and MMD If you've been following the mailing list for any length of time (especially if you've been following it directly rather than summarized), you'll be aware that there's been a long running... discussion between Leo and Dan about the keyed variants of all the binary vtable entries: Leo worries that there's a heck of a lot of 'em; Dan worries that it means creating temporary PMCs in what should be simple circumstances. It turns out that having *all* the keyed
This week's Summary
The Perl 6 Summary for the week ending 2004-04-25 And we're back on a weekly schedule again (unless the Mayday bank holiday knocks me for six next week). As I expected, the Apocalypse has brought out a rash of prophets and prognosticators in perl6-language, but perl6-internals is still ahead on number of messages per week. Constant Strings I confess I'm not sure I quite understand the constant strings patches that Leo Tötsch and Jeff Clites were discussing. I understand the bottom line though -- they make parrot a lot quicker when comparing constant strings. Huzzah! Then it turned into a discussion of Unicode (or at least, Parrot string handling which is almost, but not quite, the same thing). http://tinyurl.com/2mowl Parrot m4 0.0.4 Bernhard Schmalhofer posted a patch to bring his parrot implementation of m4 up to what he's calling version 0.0.4 http://tinyurl.com/34be5 SDL Parrot status Portland Parrot stalwart, chromatic, posted a link to a SDL Parrot site he's set up with current status, downloadable snapshots and other good SDL Parrot related things. http://tinyurl.com/2gcbs Passing arrays of structs to NCI subs That man chromatic again, this time he asked if there was a secret syntax for passing and retrieving arrays of things to and from NCI. Leo noted that, according to the docs, there is no secret syntax, it's all documented but unimplemented. http://tinyurl.com/2xsrc PMC Constants Last week, Leo asked for comments on his proposal for PMC constants. This week, Dan replied. Essentially he's all for the idea, but wasn't sure which implementation strategy was the best choice. http://tinyurl.com/2ff8t Assign and set Leo announced some changes he'd made to the behaviour of the set and assign opcodes. Jens Rieks pointed out a case that he'd missed. http://tinyurl.com/3bl4u hyper op - proof of concept Leo also implemented what he described as a rather hackish and incomplete new opcode called hyper. Dan liked it enough to suggest that we should go the whole hog and add a hyper vtable to PMCs, with hyper versions of all the standard vtable entries. He and Dan had a long discussion of this, with contributions from various luminaries including Larry. There was some debate as to whether we really needed overridable hyper ops, but Dan's adamant that whatever happens they'll be implemented in a vtable to allow for potential optimizations in some cases. http://tinyurl.com/37wqy Separating allocation and initialization of objects Last week, Leo posted the latest object benchmarks, and things were fast. But there was one test where Python was faster. Analysis of the results and the code seemed to point the finger at Parrot's combined allocation and initialization. This week Dan confessed that he was leaning towards separating the two because that would allow for a standard PCC call into the initialization code. He pointed out that there were still a few issues, but that appears to be the way he's thinking. http://tinyurl.com/24h68 Another config task Dan pointed out that the current config scheme relies rather heavily on flags set in the current perl install, which isn't ideal. He suggested that people might like to look into making Parrot's config step rather less Perl dependent and pointed at things like 'metaconfig'. http://tinyurl.com/3xn29 Problems with the Perl 6 Compiler Allison Randal noted that languages/perl6/ was failing all its tests. The issue arose because the Perl 6 test module inherits from Parrot::Test, and Parrot::Test's behaviour got changed recently. She wondered why the changes had been made. After some discussion, Allison provided a patch to make things work with the new Test module. http://tinyurl.com/2j3kp IMCC temp optimizations... Dan is possibly the only person using Parrot in a commercial (mission critical?) environment, using a compiler from a legacy language to Parrot. He's currently experiencing problems with IMCC taking a long time to compile the PIR generated by his compiler. Apparently it's because he's using a lot of .locals and temps. He and Leo discussed it back and forth to try and find optimizations (both of IMCC and of Dan's compiler) for the issue. (Dramatic) progress was made. http://tinyurl.com/3f9gq Korean character set information Last week, Dan had wished he had access to anyone who knew anything about Korean. This week kj provided some information. The ensuing discussion of Unicode (again, maybe I'm going to have to extend my I don't cover the Unicode arguments policy from perl6-language to the internals list too) led Jarkko Hietaniemi to propose that Parrot's standard character set be cuneiform, with Phaistos disc symbols for
This week's Summary
The Perl 6 Summary for the week ending 2004-04-04 Wednesday? Why did I leave it 'til Wednesday to write the summary? I must have *some* reason. Or maybe not. I'll give fair warning that I won't be doing a summary for next week though, what with Easter and everything, but you'll get a fortnight's summary the week after, because I'm good to you like that. We'll start this week's summary with perl6-internals. MMD vtable functions in bytecode Dan had announced that he was working on adding parrot bytecode support for multimethod dispatch, and outlined how they'd be used and got semi-Warnocked. The discussion got going this week, Leo Tötsch was unsure about some of Dan's implementation choices. In particular, he wondered if MMD subs should use PMCs rather than the simple function pointer that Dan had used. Dan thought not. http://tinyurl.com/3do7z Behaviour of PMCs on assignment The discussion of what to do when assigning to PMCs continued. The issue is complicated because we are trying to be friendly to multiple languages (though, as far as I can tell, the really problematic issue is Perl Scalars; most of the other languages that spring to mind have variables that are 'simple' pointers to objects; Perl Scalars can hold (seemingly) a million and one different things, potentially all at once). TOGoS argued that, as things stand there's a disjunction between the way (say) integer registers work and the way PMC registers work. With Integer registers, if you do $I1 = $I2 + $I3 then $I1 gets a 'new' integer; there doesn't need to be a preexisting integer. However, if you were to do: $P1 = $P2 + $P3 what actually happens (assuming we're using straightforward PMCs here...) is more like: $P1.value = $P2 + $P3 In other words, you need a preexisting $P1. Leo agreed with TOGoS's argument, but worried that implementing it would blow core size up to an insane value. Dan didn't agree with TOGoS though, but I'm afraid I didn't quite follow his reasoning (probably because I'm being dumb this morning). http://tinyurl.com/24yaw In which your Summarizer asks dumb questions In an extended moment of stupidity, Piers Cawley asked why we had distinct register and user stacks. Leo explained it to him, very politely I thought. http://tinyurl.com/3x77x Stalking the wily Garbage Collector bug Jens Rieks's *projet du jour* -- an EBNF parser in Parrot -- tweaked a garbage collection bug so he posted appropriate debug traces and Leo set to work on it. He didn't get it working fully, but it takes longer to crash now (but it crashes in the same bit of C code). Jens thinks it's a problem with Parrot's handling of strings. http://tinyurl.com/3eqlh New SDL Parrot bindings underway That stalwart of Portland.pm, chromatic, announced that he's in the process of porting the existing SDL Parrot bindings to use our shiny new Object system. Jens Rieks wondered why he was prefixing his method names with underscores (you only need underscores for globally visible functions, methods can have straightforward names). Tim Bunce wondered why chromatic wasn't using nested namespaces. Leo pointed out that nested namespaces haven't been implemented just yet. http://tinyurl.com/yrue9 Some new classes Dan checked in some stub code for PMCArray and StringArray. Eventually they'll be auto-resizable, PMC or String only arrays, but right now they're simple wrappers for PerlArray. He suggested that rewriting them so they were real, efficient arrays would be a Good Thing (and, I suggest, a relatively gentle introduction to Parrot hacking if anyone reading this is interested.) Jens Rieks offered up a patch for his data dumper so it could take them into account, which Dan applied. http://tinyurl.com/29gsq Points of focus Dan went all Managerial on our collective donkey and posted a nice bulletted list of things that need sorting out for a 0.1.1 release. The general thrust of the message is bug fixing and documenting, which is good. http://tinyurl.com/35mor Fun with non deterministic searches One of the canonical illustrations of things to do with continuations is non deterministic searches. Imagine that you could write $x = choose(1,3,5,9) $y = choose(1,5,9,13) assert $x * $y == 15 print $x * $y == , $x * $y, \n and have 3 * 5 == 15 printed out. (Okay, so in Perl 6 you're going to be able to do that with junctions, but this is about an underlying implementation). Piers Cawley translated a simple non deterministic search algorithm from scheme to Parrot and posted the (initially failing) code to the list and pointed out that, even if he tweaked IMCC to generate full continuations
This week's summary
The Perl 6 Summary for the week ending 2004-03-28 ... and we're back! Another interesting week in Perl 6. Your Summarizer even wrote some [parrot] code and it's been simply ages since he did that. In accordance with ancient custom, we'll start the summary with perl6-internals. Building with miniparrot Back in the early days Dan proposed, and it was generally agreed that the Parrot build process wouldn't be Perl dependent, but instead there would be a few OS specific 'bootstrap' scripts, enough to get miniparrot up and running. Miniparrot would have just enough smarts to be able to complete the configuration and build the final full parrot. After last week's discussion about reinventing metaconfig, I wondered if the miniparrot plan was still in place. It seems I'd missed the discussion of stat that ended up talking about how miniparrot would be able to do its job. I find myself wondering what else is needed to get miniparrot to the point where it can start doing configuration work. http://tinyurl.com/2djx8 Continuations continued (and fun with stacks) Warning: The following discussion of the Continuation discussions is irrevocably biased; I find it very hard to be objective about discussions I participate in, and I was rather loud mouthed in this one. The previous discussions of the uses and semantics of continuations carried over into this week. Piers Cawley argued that the current stack architecture seemed to be optimized for the wrong thing, with the special case RetContinuations being symptoms. He argued that current architecture (where a single stack frame can accommodate multiple pushes, with copy on write semantics being used to handle full continuations) should be replaced with a 'naïve' architecture using linked lists of immutable, simple stack frames, one frame per push. Switching to this approach, he argued, would do away with a great deal of code complexity, and issues of high object creation overhead could be offset by using free lists and preallocation to reuse stack frames. Oh yes, and there'd be no difference between a RetContinuation and a full Continuation with this scheme. Leo Tötsch wasn't convinced. Dan was though, and made the decision to switch to single item per frame, immutable, non COW stacks. Leo implemented it. His first cut was rather slow; later refinements added freelists and other handy stuff to start pulling the performance back up. I'm sure there's more refinement to come though. http://tinyurl.com/2k9ke http://tinyurl.com/yqsxa http://tinyurl.com/34kas http://tinyurl.com/2fo5j http://tinyurl.com/3buyk Variadic functions Ilya Martynov had some questions about how to handle variadic functions. Leo clarified some things and pointed Ilya at the foldup op. Jens Rieks suggested aliasing the registers I[1-4] to argc[ISPN], which Leo liked. I'm not sure he's implemented it yet though. http://tinyurl.com/yugc6 GCC compiling to Parrot In previous weeks Gerard Butler had posted wondering about getting GCC to target Parrot. The initial response was rather negative, pointing out that GCC and Parrot saw memory *very* differently, to the extent that there would probably be a need have special PMCs for GCC managed memory, which would make communication between GCC implemented languages and Parrot implemented ones rather tricky. Undeterred, Gerald mapped out a way forward and asked for opinions. Dan thought the scheme looked reasonable, but fenced that with the caveat that he knows nothing about GCC's internals. http://tinyurl.com/2qm87 Safe execution core and ops classification Leo checked in some patches from Jens Rieks to allow classification of ops. He thought that this meant we were a good way along the road to providing a 'Safe' run-core option, though there was still a lot to do. He outlined a road map and asked for comments (and implementations). Comments were forthcoming, and Dan eventually bundled his comments up into a single post with some design in it. For some reason this induced some industrial hand waving about Proof Carrying Code from Steve Fink (he accused himself of hand waving, not me). Jarkko Hietaniemi (Emacs' dynamic completion suggested 'Jarkko Himself' for that one. Well, it made *me* smile) offered the pathological eval 'while([EMAIL PROTECTED],0){}' as an example of the kind of bad things that can happen if you allow eval EXPR in your 'safe' code, even with strict rules on what it's allowed to compile (Dan pointed out that quotas would help in this particular case...) If there's one lesson to take from the discussion it's this: Code Safety is Hard. Whether it's AI Hard or not is left as an exercise for the interested reader.
This week's summary
The Perl 6 Summary for the week ending 2004-03-14 Another week, another summary. It's been a pretty active week so, with a cunningly mixed metaphor, we'll dive straight into the hive of activity that is perl6-internals. Benchmarking Discussion and development of Sebastien Riedel's nifty Parrot comparative benchmarking script continued. Leo suggested a handy config file approach which would allow for adding benchmarks in other languages without having to change the script itself. The initial results don't look good if you're name's Dan and you want to avoid getting a pie in the face at OSCON though, as Dan pointed out, there's a few tricks still to be played in this area. Anyway, benchmark.pl is now in the CVS tree if you want to play with it. http://tinyurl.com/2h7c4 Speeling mistacks The ever helpful chromatic applied Bernhard Schmalhofer's patch to fix up an endemic speling mostake in some tests. Apparently DESCRIPTION isn't spelt DECSRIPTION. http://tinyurl.com/3dd85 Dates and Times Discussion of parrot's handling of dates and times continued this week too. Joshua Hoblitt who works on DateTime.pm (a very handy base for doing date/time handling in Perl 5, you should check it out) said that the DateTime people really, really want is an epoch that's *absolutely* fixed across all platforms. There was also some discussion of where the opcode/library boundary should be placed, with some arguing that the likes of strftime should be implemented as opcodes. Melvin Smith responded to this with what seems to me to be a very telling point: If we cannot provide a decently performing VM that makes people want to write stuff in bytecode (or compiled to bytecode) we have failed anyway. Toward the end of the week, Dan announced some decisions and questions. Larry had a few quibbles, but otherwise there have been no other comments. Personally, if I never hear the phrase leap second again, I'll not be unhappy. http://tinyurl.com/2s5ep http://tinyurl.com/2djx8 -- Dan's decisions Alternate function calling scheme Dan has come to the view that we need an alternative, light weight, calling convention for calling vtable opcode functions; the idea being that this should speed up objects a tad. He asked for suggestions. Leo Tötsch wasn't convinced that we really need special calling conventions, arguing (with numbers) that it would be best to concentrate on speeding up object instantiation by optimizing object layout. Simon Glover agreed with him, noting that simply changing the Array that used to store class, classname and attributes gave him a speedup of around 15% on the object benchmarks. http://tinyurl.com/2699g Summary Correction Last week I said that we can't yet do delegated method calls for vtable functions with objects. Leo pointed out that, actually, we can now. Leo also disclaimed any responsibility for helping Brent Royal-Gordon (né Dax?) fix up the support functions for Parrot::Config, though Brent later claimed that he was merely the person doing the typing... Jerome Quelin noted that parrotbug has already reached version 0.2.1 (I wonder what its version will be when Parrot 1.0.0 gets released). http://tinyurl.com/2ksox http://tinyurl.com/3hyky Dead Object Detection improved Not content with his work on everything else this week, Leo has revisited the Garbage Collector and tracked down a couple of bugs including a really nasty sounding one that caused disappearing continuations. He even isolated the problem with a test. http://tinyurl.com/2m7sf Rejigging trace output Leo's rearranged the output of parrot -t slightly in an effort to make it more readable. Jens Rieks was impressed and pointed out a couple of issues, which Leo quickly fixed. http://tinyurl.com/33r9w Namespaces in IMCC Dan's day job continues to be a handy driver of Parrot development. This time he needs to make use of namespaces and, whilst namespaces themselves aren't completely nailed down yet, there's enough there that the time has come to work out the syntax for working with them in IMCC. He proposed .namespace [foo; bar; baz] as a way of setting the current namespace to foo::bar::baz (in Perl style, your language may vary). Leo was okay with that as far as it went, but pointed out that things were slightly more complicated than Dan's proposal implied. He suggested that the time was right to sort out the duties of the PIR assembler towards variable names, name mangling, lexical scopes, namespaces, globals and all that good stuff. Dan punted slightly on this latter part, saying that, in general it shouldn't be the assembler's job to track them. The current namespace would simply be used as the namespace
Re: This week's summary
The Perl 6 Summarizer wrote: Parrotbug reaches 0.0.1 Jerome Quelin responded to Dan's otherwise ignored request for a parrot equivalent of perlbug when he offered an implementation of parrotbug for everyone's perusal, but didn't go so far to add it to the distribution. I don't think it's been checked into the repository yet, but it'll probably go in tools/dev/ when it does. Later in the week, he actually got it working, sending mail to the appropriate mailing lists. With any luck the mailing lists themselves will be up and running by the time you read this. Some notes: - I've bumped up the version and we're now at 0.2.1 (I like to increase version numbers, it make me feel like work is going on fast :-) ) - following an irc discussion with melvin and dan, I've checked in parrotbug in parrot's root (and forgot to update MANIFEST - sorry again, Jens!) Thx for the summaries, Jerome -- [EMAIL PROTECTED]
This week's summary
The Perl 6 Summary for the week ending 2004-03-07 Time marches on, and another summary gets written, sure as eggs are eggs and chromatic is a chap with whom I will never start a sentence. We start, as always, with perl6-internals. Platform games Work continued this week on expanding the number of known (and preferably known good) platforms in the PLATFORMS file. Languages tests Dan reckons it's time to be a little more aggressive with tests for ancillary stuff, in particular the contents of the languages subdirectory. He called for language maintainers (and any other interested parties) to at least get minimal tests written for all the languages in the languages directory, and to get those welded to the languages-test makefile target. http://tinyurl.com/24sd3 IMCC and objects/methods Tim Bunce congratulated everyone on Parrot 0.1.0 before asking about where we stood with IMCC and objects/methods. Leo confirmed Tim's supposition that there is no syntactic support for objects and methods in IMCC, at least in part because there's been no discussion of how such syntax should look. http://tinyurl.com/2jerk Parrotbug reaches 0.0.1 Jerome Quelin responded to Dan's otherwise ignored request for a parrot equivalent of perlbug when he offered an implementation of parrotbug for everyone's perusal, but didn't go so far to add it to the distribution. I don't think it's been checked into the repository yet, but it'll probably go in tools/dev/ when it does. Later in the week, he actually got it working, sending mail to the appropriate mailing lists. With any luck the mailing lists themselves will be up and running by the time you read this. http://tinyurl.com/3fknl Subclassing bug Jens Rieks found what looked like a problem with subclassing, which turned out to be a problem with clone not going deep enough. Simon Glover tracked it to its den and Dan Sugalski fixed it. http://tinyurl.com/ysogd Good news! Bad news! Good news! Dan says the infrastructure is in place to do delegated method calls for vtable functions with objects. Bad news! It doesn't actually work because it's impossible to inherit from delegate.pmc properly. Dan pleaded for someone to take a look at pmc2c2.pl and or lib/Parrot/Pmc2c.pm and fix things so that the generated code is heritable. http://tinyurl.com/2ouce Parrot m4 updated Bernhard Schmalhofer posted a patch to improve the Parrot implementation of the m4 macro language. http://tinyurl.com/2aauu Use vim? I don't use vim, but it seems that Leo Tötsch does. He's added some handy dandy vim syntax files for IMC code. If you're a vim user you might like to check it out. Leo points out that the syntax tables might well be handy if you don't know all 1384 opcode variants by heart. http://tinyurl.com/36gqv Parrotris Sadly, Jens Rieks' Parrot and SDL implementation of tetris didn't quite make it under the wire for the 0.1.0 release. However, Leo has got round to trying it and is impressed, though he did spot a few bugs (it doesn't spot that the game is over for instance). Jens is working on fixing those (and on adding new features), which he reckons will go a deal faster when IMCC has better syntactic support for OO techniques. http://tinyurl.com/2hklm Dates and Times To paraphrase Barbie: Dates and Times are Hard. Not that hardness has ever stopped Dashing Dan Sugalski before. This time he waded into the swamp that is Parrot's handling of dates, times, intervals and all that other jazz. He started by soliciting opinions. He got quite a few. The discussion can probably be divided into two camps: KISS (Keep it Simple) people, and DTRT (Do The Right Thing) people. But KISS still has it's complexities (which Epoch do we want? Should time be a floating point value?) and what, exactly, is the Right Thing? The catch is, time is a messily human thing, and computers are really bad at messy humanity. Larry said that Dan could do what he wants with Parrot, but he wants Perl 6's standard interface to be a floating point seconds since 2000. He argues that floating point will almost always have enough precision for the task at hand, and by the time it doesn't, it will. :-). He also argued that normal users should *never* have to remember the units of the fractional seconds. Zellyn Hunter pointed everyone at Dave Rolsky's excellent article on the complexities of handling dates and times with a computer. Discussion is ongoing, but it seems that Larry and Dan are leaning towards the KISS approach. http://tinyurl.com/3dqhn http://tinyurl.com/ywcs9 Initializers, finalizers and fallbacks Anyone who has been reading the internals list for any length of time, or who has chatted
This week's summary
The Perl 6 Summary for the week ending 20040229 Welcome to the leapday summary. We'll crack straight on with perl6-internals Running up to release time As Leapday had been chosen as the release date for Parrot 0.1.0, the week was mostly spent getting things ready for release. A case in point was the PLATFORMS file which lists those platforms on which Parrot is known to compile and run, which (at the beginning of the week) was short several platforms and generally out of date. So everyone manned the pumps and sent in reports of success and failure. BTW, if you manage to get Parrot up and running (or even partially up and limping) on a platform that's not listed in PLATFORMS then [EMAIL PROTECTED] would be very pleased to hear from you. http://tinyurl.com/287f2 Objects and time Dan announced that he'd trodden on one of the nasty bits of objects; the proper ordering of classes for initialization and destruction in the face of multiple inheritance. He announced that he was in the process of actively ignoring it for the time being and canvassed opinions about whether to delay the Leapday release in favour of fully specced/implemented objects or whether to make the 29th without objects, or some other choice. In the end we decided to still aim for the 29th, with objects in a 90% there state, but with big 'HERE BE DRAGONS' warnings plastered on the tricky edge cases. A little later Dan announced what would be there for the release (Multiple inheritance, attributes, object instantiation and method calls) and what wouldn't (monkeying with some things after subclassing/instantiation, method redispatch and fancy namespace lookups). As the week progressed, objects inched closer and closer to readiness, though at least one summarizer's heart was in his mouth as the week ebbed away. Would Dan get everything he'd promised working before the deadline? Tune in later on to find out. http://tinyurl.com/34db3 http://tinyurl.com/2xuoa Feature Freeze On Wednesday, Leo Tötsch announced a feature slush (patches to add OO features were still being accepted) in anticipation of a release. The patch rate increased as people got on with fixing up failing tests on various platforms, improving documentation, and improving OO functionality. Not all the object patches were from Dan; chromatic got in on the act with a couple of tweaks to parrotobject.pmc... http://tinyurl.com/2u3kb Native PBC issues It turns out that, just at the moment, Parrot bytecode isn't actually platform independent. This will, of course, get fixed, but it's not Leo's top priority at present. He asked people who are running Parrot on 64 bit and Big endian architectures to submit native_pbc test files (if you're on such an architecture, take a look at t/native_pbc/*.t for instructions, and the Parrot community will thank you for it). http://tinyurl.com/2fh5r Object Questions Simon Glover did some sterling work exercising the Object documentation and implementation, posting several bug reports and questions. http://tinyurl.com/3bnys http://tinyurl.com/yu9ce Ladies and Gentleman: Objects! On Wednesday, several full days before the release date, Dan announced that objects were done (well, everything that he promised would work did) and asked for people to start 'abusing it heavily'. Which they promptly did. There was applause too. http://tinyurl.com/2bsqv Next on the hit list Having got objects up, Dan immediately posted a list of desiderata for the next release but one. Is there no stopping him? http://tinyurl.com/38ymw Today we have naming of parts Will the madness never stop? Mitchell Charity spoke for everyone when he posted an extract from PDD15: What .NET calls an attribute parrot calls a property What .NET calls a property parrot calls an attribute Everyone shared the pain, though Paolo Molaro pointed out that it's not exactly accurate and the .NET name for a parrot attribute is 'field' (which is yet another term with wide variety of meanings when you think about it). Not being the biggest OO fan in the world, Dan swears he's just going to rename them Fred and Barney but not tell anyone which is which. http://tinyurl.com/24j36 LANGUAGES.STATUS updates Mitchell also pointed out that LANGUAGES.STATUS was out of date and several languages which were supposed to be okay failed to work on his system. He asked for feedback to get it updated correctly. http://tinyurl.com/3xow7 Inconsistent Parrot/IMCC behaviour Gregor Purdy found that Parrot was doing different things with the .pasm file generated from an .imc file by IMCC than it was when it ran the .imc file directly. Melvin Smith and Leo both agreed that it was a bug,
This week's summary
The Perl 6 Summary for the week ending 20040222 Welcome to the latest belated Perl 6 Summary. I'm running late, so we'll just dive straight into perl6-internals Loading bytecode at runtime Last week Dan had specced out the rules for runtime loading of bytecode. This week, Leo Tötsch started implementing it. There was a certain amount of quibbling about syntax, but that was quickly sorted out. http://tinyurl.com/27kp6 Objects Dan continued his work on objects and on sorting out method resolution niggles. Getting ahead of myself slightly, he finished it this week. http://tinyurl.com/33ql7 Obfuscated Parrot I reproduce this product of Leo Tötsch's warped brane without comment: bounds 1 trace 0 split P0, '', \nrekcaH torraP rehtona tsuJ add I1, 3 add I2, 4 branch I2 pack S23, 793, I1, I0 branch I2 add I2, 382, I1 branch I2 new S23, 911, I0, I0 branch I1 transcode S23, S0, -19 end And, to compound things: bounds 1 trace 0 newclass P0, Just another Parrot Hacker\n shift S0, P5 does I0, P0, S0 add I0, 4 bsr I0 pack S0, 381, I0, I0 invoke ret Look, OO badness http://tinyurl.com/2xbye http://tinyurl.com/2eufv IO fixes for Win32 I must confess I didn't understand the details of the discussion, but Goplat, Vladimir Lipsky and Melvin Smith spent some time working on IO issues under Win32. http://tinyurl.com/3b3bw Parrot Dumper updated Jens Rieks continued his sterling work on a Parrot Data::Dumper equivalent, posting a new version that does bounds checking and PMC property dumping. A later refinement added support for self referential data structures and other edge cases. http://tinyurl.com/ytmmz ConfigScript3 TOGoS announced a new language targetting Parrot. http://tinyurl.com/2pszj http://tinyurl.com/2b942 Symbol naming and IMCC2 Dan ruled on the symbol naming issue discussion. Essentially, if your symbol includes a sigil, you're not going to be able to use it directly. Learn to love symbol tables and .alias. http://tinyurl.com/37fx3 TODO: parrotbug Dan asked for someone to implement a parrotbug script to handle building and possibly sending the bug reports into RT. The script should work in a similar way to perlbug, appending configuration information etc to any bug report. http://tinyurl.com/3x59b TODO: Forth as a compiler Dan asked for a volunteer to fix forth.pasm so that it can be loaded in as a compiler module, allowing one to do: compile P5, ForthCompiler, 1 2 + . and have it print out 3. http://tinyurl.com/2zzrr Documentation tasks Taking time out to heap praise on the deserving Michael Scott, Dan outlined a few documentation jobs that need to be done (hopefully) before the next Parrot release. http://tinyurl.com/3eons SDL goodness The work on SDL support continued apace, with chromatic checking in several SDL related fixes and enhancements. http://tinyurl.com/yrsgk http://tinyurl.com/2oycl Parrot Day at the Austrian Perl Workshop Thomas Klausner announced that this year's Austrian Perl Workshop would have a Parrot Day, with a tutorial from Leo Tötsch and hopefully some other good stuff from Parrot luminaries. Thomas also asked for people to submit talk ideas. http://tinyurl.com/29ev4 http://tinyurl.com/2257c SDL + Parrot = Tetris Jens Rieks announced the alpha of an implementation of tetris in Parrot using SDL for the display. Yay Jens! Mmm... a time sink... just what the Parrot developers need. http://tinyurl.com/2vb3d The First International Workshop on Interpreted Languages Dan pointed us all at the First International Workshop on Interpreted Languages' Call for Papers. http://tinyurl.com/2golt http://tinyurl.com/3cuhu Meanwhile, in perl6-languages Traits/Roles I know I've had this feeling of déjà vu before, but I've spelt it right this time. Discussion of Roles continued this week. If I never read another discussion of the difference between Dog::bark and Tree::bark again, it'll be too soon. The Sort Problem The other topic of discussion this week covered sorting. It looks as though Perl 6's sort function is going to be rather more powerful than the Perl 5 equivalent; hopefully this means Perl 6 will finally see the back of code like: map { $_-[0] } sort { $a-[1] = $a-[1] } map { [$_, extract_key_from($_) } @array Damian's post on the subject, referenced below, looks like the front runner. It's worth reading if you're interested in sort itself or if you're interested in how Perl 6's multi dispatch will work.
This week's summary delayed
I'm afraid that this week's summary won't be posted until at least Wednesday. Sorry.
This week's summary
The Perl 6 Summary for the week ending 20040215 In his talk on Parrot at OSCON last year, Dan said that Parrot would have objects 'by the end of the week'. It's been a very long week, and it's not finished yet. Right, venting over, time for the summary. I'll start with perl6-internals, as always. Actually, we're starting slightly before the usual start of the week because about half an hour after I sent last week's summary off I realised I'd completely missed a couple of threads. Some minor decisions and timetables Dan made a few design decisions and outlined a release timetable for the next release of Parrot (which was initially set to be Valentine's Day, but the appeal of February 29th for a Leap Parrot release proved to be greater). http://tinyurl.com/2y8fz Why didn't I mention this last week? Jens Rieks earns a Wow, cool! from me with his parrot version of Data::Dumper. Way to go Jens. People were impressed. http://tinyurl.com/2uebj Supporting simple PMCs as keys Stéphane Payrard posted a patch to support using simple PMCs instead of full on key PMCs for simple lookups. He and Leo discussed it, but the patch hasn't been accepted yet. http://tinyurl.com/2fru2 Keyed access to UnManagedStruct Everyone's favourite differently capitalized O'Reilly employee, chromatic (Maybe the new running joke should be my struggles to avoid using his name at the start of a sentence so we don't have a falling out cases), continued his discussion with Leo about keyed access to Unmanaged (and presumably managed) C structs. http://tinyurl.com/yuk3m http://tinyurl.com/2c6z6 -- An example of chromatic's problem Backward branch, fixed Remember the problem with a backward branch that I said was Warnocked last week. It turned out that it was fixed before I posted the summary. They don't call Leo Tötsch the Patchmonster for nothing. http://tinyurl.com/24tre Parrot system Dan apologized for his recent silence on list, but thought he'd be more active from now on. He also announced that he was in the process of adding in perl 5 style system support http://tinyurl.com/2jg8v Parrot sort Jens Rieks garnered more kudos with his implementation of a simple _sort function in IMC. Leo checked it in, and you'll find it in library/sort.imc in an up to date CVS distribution. Then, seemingly in his spare time, he fixed up some SDL related stuff for chromatic. http://tinyurl.com/3fm4w RFD: Symbol naming and IMCC2 Melvin Smith posted a Request For Discussion about how IMCC2 will handle symbols and sigils. The issue seems to be that, for humans writing code, quoting symbols is a pain. Various options were suggested, but nothing appears to have been decided yet. (I quite like Leo's suggestion involving declaring lexicals with a mangled name for use in parrot, but marking it as being associated with an $unmangled_original_name.) http://tinyurl.com/2ovqp JIT and branches under the Sun Stephane Peiry found with the JIT on Suns; it seems that a loop that should terminate carries on forever instead. He and Leo worked on tracking it down, but the bug was still there by the end of the week. http://tinyurl.com/2acc8 Rules for method resolution? Okay, so I may have kvetched about the continuing lack of Parrot objects earlier, but Dan's definitely working on it. This time he's thinking about method resolution. In particular he wondered when findmethod P4, Pobject, methodname should do the name resolution. In other words, should P4 contain the method that was current at the time of the findmethod call, or a proxy PMC that waits until the method is invoked to find the appropriate method. The discussion seemed to come down in favour of doing both. http://tinyurl.com/232lg Object spec Dan noted that he'd checked in some major revisions to PDD15 (objects!) and suggested that people take a look. Simon Glover, Leo Tötsch and LF had questions. http://tinyurl.com/2hm3x Meanwhile in perl6-language The thread that ate the mailing list Luke Palmer doesn't like the repetition inherent in @sorted = sort { $^a.foo('bar').compute = $^b.foo('bar').compute } @unsorted; He wondered if there might be some way of rejigging sort to eliminate the duplication and proposed a couple of spectacularly ugly possibilities. And then the world exploded. It seems that nobody (on perl6-language) actually likes the current signature of sort, but nobody can quite agree on what it *should* look like. You know things are getting hand when Dan proposes just using SQL's ORDER BY syntax (even though he was joking). Simon Rubyometer Cozens proposed: @sorted = @unsorted.sort(op = infix:=, key
This week's summary
Henriksen wondered what had happened to a patch that he'd submitted to bugs-parrot. Robert Spier wasn't sure, but noted that the MyDoom virus was busy causing the perl.org servers a hard time (more than a gigabyte in 19 hours; Robert sounded a little fraught). As it happened, the patch had actually bounced from the list because it was huge. Everything got sorted out in the end though. http://tinyurl.com/2hnse Documentation tools Michael Scott continued his sterling work on Parrot's documentation by adding the Perl tools he used to generated the HTML docs to the tree at tools/docs/write_docs.pl, he also announced that he'd finished the examples and the various *.c file directories and will be looking at classes next. I wonder how long it'll be before someone reimplements them in in PIR... http://tinyurl.com/3dtof Approaching PDD16 callbacks Leo announced that he's implemented a first hacky way to run PASM callbacks from C NCI functions; it's not a full implementation, but it's a start. As usual, he solicited comments. And so far he's not had any. http://tinyurl.com/ywg2y Meanwhile, in perl6-language The Unicode argument again Andy Wardley strongly advocated not making Unicode operators «, » etc part of the core language. Larry disagreed, but proposed that any Unicode declarations should also have an is ASCII('[EMAIL PROTECTED]') trait to specify the ASCII equivalent. http://tinyurl.com/2slv2 Compiler writing tools Luke Palmer has been writing 'a lot of compiler' recently and posted some of his positive and negative experiences with YACC as possible pointers to the sort of things Perl 6's grammars might need. In his response, Larry once again demonstrated the truth of the proposition that Everyone writes a templating module at least once in their life when he confessed that the first production language I ever wrote was an inside-out language where control commands were embedded in text that was to be output by default. http://tinyurl.com/2e2gz Acknowledgements, Apologies, Announcements Oops, reading back over last week's summary I realise that, when I meant to talk of going to see Eliza Carthy performing live, I actually wrote that we'd gone to see her perform life. Sorry about that. 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 me feedback at [EMAIL PROTECTED], or drop by my website. http://donate.perl-foundation.org/ -- The Perl Foundation http://dev.perl.org/perl6/ -- Perl 6 Development site http://www.bofh.org.uk/ -- My website, Just a Summary
Re: This week's summary
On 10 Feb 2004, at 14:09, The Perl 6 Summarizer wrote: I wonder how long it'll be before someone reimplements them in in PIR... or Perl6 perchance.
Re: This week's summary
[EMAIL PROTECTED] (Michael Scott) writes: On 10 Feb 2004, at 14:09, The Perl 6 Summarizer wrote: I wonder how long it'll be before someone reimplements them in in PIR... or Perl6 perchance. Well, Perl6::Rules should be coming out soon, so that should help. -- The problem with big-fish-little-pond situations is that you have to put up with all these fscking minnows everywhere. -- Rich Lafferty
This week's summary
The Perl 6 Summary for the week ending 20040201 Welcome once again to Gateshead, where the skies are grey, the view is uninspiring, and the workmen across the road seem determined to fall off the ladder before they get the double glazing fitted. But enough of the gay Gateshead life, let's hurry on to the doings of the denizens of the perl6-internals mailing list. Who knows, we might even visit the inmates of perl6-language later. Threading To nobody's great surprise, we talked about threading. In particular, Gordon Henriksen's concerns about the all around scariness of morph (and not just in a threading context). I'm not sure I quite understand what's being done, but progress is definitely being made. Late in the week Dan announced that there were obviously still issues to be worked out before we started in on implementation (modulo some 'obvious' stuff). He also asked for 'real worldish' tests for threading in order to get some real numbers for different possible approaches and to see if the problem is as bad as it was first thought. http://tinyurl.com/3h9tq http://tinyurl.com/2774w Embedding vs. extending interface types Remember last week's kerfuffle about Parrot_Interp vs Parrot_INTERP? Dan's resolved it be deciding that we'll just call it Parrot_Interp everywhere. Gordon Henriksen sent in the patch. http://tinyurl.com/ywue7 Leo explains Will Coleda (and others) have been having problems with data that should be inviolate getting clobbered in strange ways. After some effort, Will got his offending code down to 22 lines. This let Leo Tötsch work out what was going on, and in the referenced post he explained all. Essentially, the Copy on Write logic for handling register (and other) stacks is broken. The workaround is not to use Continuations and Exception Handlers. Fixes are welcome. Please. http://tinyurl.com/2t3a8 Testing Signal Handlers Leo asked for help with sorting out the testing code for some signal handling tests that seemed to be confusing the harness quite badly. Uri Guttman came up with some suggested workarounds, as did Mike Schwern. Leo found a third way. (If you've ever tried to write test with fork in it, it's worth taking a look at both Uri and Schwern's answers. http://tinyurl.com/2egso The costs of sharing revisited Last week, Leo posted some scary numbers implying that using a shared PMC led to terrible slowdowns. This week he posted the latest numbers, and things are looking up. $ time perl-58-th shared_ref.pl real 0m8.694s $ time parrot shared_ref.pasm real 0m0.375 (and that's an unoptimized Parrot). Elizabeth Mattijsen was moved to ask for a ponie. http://tinyurl.com/3amop Cunning stunts with with UnManagedStruct Donning his devious head, Leo demonstrated the use of UnManagedStruct to allow for unlimited self-inspection and self-modification of Parrot state. Which isn't really something we want to be possible. In the opinion of Luke Palmer and Jeff Clites, the costs of removing this capability aren't worth paying. As Jeff Clites pointed out, you only use UnManagedStructs when you're calling out to a native library, and once you introduce a native library all bets are already off. http://tinyurl.com/yt92b Michael Scott: hero of the week Over the past few weeks Michael Scott has gradually been making the parrot distribution a kinder, gentler place with his sterling efforts to tidy up and generally improve the existing documentation. This week he rationalized/added documentation for everything in src/ (with the exception of malloc.c and malloc-trace.c). He's working on documenting examples/ now. The response to his announcement was overwhelmingly and understandably positive (The consensus is that Mike rocks). Now if we can just *keep* everything in such good condition... http://tinyurl.com/2pevc Parrot DBDI announced Tim Perl DBI Bunce announced the Parrot DBDI Project: A Database Driver Interface for Parrot. The goal is to have a common Parrot level interface to database drivers which can then be reused by different language specific database interfaces. For further details read the post; it's jolly good. And bravo Tim. http://tinyurl.com/23zq3 Internal exception handlers Leo posted a set of macros for doing exception handling in the parrot core using TRY/CATCH/THROW etc. and asked for comments. So far he's been Warnocked. http://tinyurl.com/2z57k SDL bindings After Leo fixed the struct PMCs for him, chromatic has proceeded apace to implement SDL wrappers in Parrot. He's reached the point where he has code that can create an SDL window and blit a blue rectangle onto it. Leo applied his patches. Check out
This week's summary
The Perl 6 Summary for the week ending 20040125 Welcome to the first summary from my new home in Gateshead. The same old wibble, with a different view from its window and fewer trips to London. Right, time to see what's been going on in perl6-internals this week. Global labels in IMCC The cryptically named TOGoS wondered how to get the address of a label in a different IMCC compilation unit. According to Dan there's no way to do that, and you didn't want to do that anyway. http://tinyurl.com/3evz2 Dan's threads proposal After a few weeks of everyone else's proposals, Dan started to outline the design of Parrot's threading capabilities. He started by defining his terms (a useful thing to do in a field where there seem to me multiple competing definitions of various terms) and guaranteeing that user code wouldn't crash the interpreter (subject to the assumption that system level memory allocation was thread safe) before getting into the meat of his proposal. Which you're probably best reading for yourself; it's a long document but there's very little flab and any attempt of mine to summarize it would probably end up being at least as long as and a good deal less lucid than the original. Of course, this sparked a ton of discussion, generally positive, as people asked for various clarifications and made suggestions. Gordon Henriksen pointed out a nasty race condition that means that the garbage collector can't be made as thread safe as Dan had hoped. Summarizer Barbie says Threads are hard! On Thursday, Dan posted a last call for comments and objections before he went on to the detailed design. This time there were some objections, but I don't think any of 'em are going to stop Dan. http://tinyurl.com/ys2ar http://tinyurl.com/29lpb Vtables organization Last week Dan had outlined an approach to organizing PMC vtables using a chaining approach; this week saw the discussion of that proposal with Benjamin K. Stuhl asking the hard questions. http://tinyurl.com/35rlc Benchmark suite Matt Fowles suggested that it might make sense to create a canonical suite of benchmarks to exercise Parrot well. His idea being that, if we have a standard suite of Parrot benchmarks, then potential performance affecting changes could be tested against that, rather than having custom benchmarks rolled each time. Luke Palmer pointed to examples/benchmarks and noted that it's hard to create benchmarks that test everything. However, he hoped that any good benchmark that gets posted to the list would get added to this suite, along with some documentation describing what is being tested. http://tinyurl.com/22cyj Number formatting Dan did some more designing, this time mandating that Parrot will, eventually adopt ICU's formatting template for numeric templates but, to start with, we'll be rolling our own. The new op will be format Sx, [INP]y, [SP]z. http://tinyurl.com/2vhuk Base string transforms Dan announced that he would be adding upcase, downcase, titlecase and to_chartype to the various chartype vtables. He also noted that he'd like to get some alternative chartypes and encodings into Parrot as soon as possible to make sure we can actually handle things without having to use Unicode all the time. http://tinyurl.com/2gvg3 Calling conventions in IMCC Will Coleda had some problems with IMCC's handling of the parrot calling conventions when he found that code that worked a couple of months ago had stopped working in the current Parrot (A month is a *very* long time in Parrot development though.) The problem took a fair bit of tracking down and I'm not entirely sure it's entirely fixed yet; Will had reached the point where the code would compile, but it still wouldn't actually run. http://tinyurl.com/3d4c4 Steve Fink's obnoxious test case Steve Fink posted an obnoxious test case that generated memory corruption. The test case is obnoxious because it's 56KB of IMCC source code, and Steve had been unable to reduce it. This didn't discourage Leo Tötsch though, who set about tracking the bug to its lair. It's not fixed yet, but with the Patchmonster on the case it can only be a matter of time. There were several other GC related issues that cropped up over the week; I wonder if they're all aspects of a single lurking bug. http://tinyurl.com/yvnmn IMCC returning ints Steve Fink also found a problem with IMCC failing to properly return integers from unprototyped routines and posted an appropriate patch to the test suite. It turns out that the problem is that IMCC doesn't quite implement the full Parrot Calling Conventions, especially the return convention, but it's getting there. http://tinyurl.com/2rtzo The
This week's summary
that he really didn't want to have to initialize the entire Unicode system just to get number formatting, Michael suggested we copy the ICU API, even if we use our own implementation. http://tinyurl.com/2head Unicode, internationalization, C++ and ICU It's obviously an ICU week this week. Dan announced that it's time we actually started building ICU into Parrot. The catch is, it doesn't work right now. He asked for volunteers to track ICU and keep things reasonably up to date. Apart from the obvious pony, Dan wants ICU building, working and not needing any C++. Personally, I think he's more likely to get a pony than to get rid of the C++ dependency. Jonathan Worthington was the bearer of the bad new that, because ICU's configuration script is a shell script, it's going to be exceedingly tricky to get ICU to build on any platform that doesn't have bash or similar. Which makes things tricky for Win32 types (though, following posts from others, not as tricky as Jon first thought.) Nobody has yet volunteered to be the ICU pumpking though. http://tinyurl.com/yw6hx Variable clusters Melvin Smith made a suggestion for optimizing variable handling by using 'variable clusters'. I'm afraid I went into 'bear of little brain' mode when reading the thread, but there was a fair amount of discussion. http://tinyurl.com/2scdy POD Errors A big thank you to Michael Scott who's been cleaning up the documentation tree's POD errors, and has made an HTML version of Parrot's docs available. For his next trick, he's going to normalize the existing POD and add some content to those files that need it. http://tinyurl.com/2dpvh Allocation food for thought Luke Palmer has been monkeying with the small object allocator in an effort to get things working fast enough that he can excise RetContinuations from Parrot's object model (They're not continuations and they are next to impossible to promote to continuations if you need to) and replacing the current chunked control stack with a conceptually simpler linked continuation chain. His results were interesting. I'm not sure his patch will be going in, but he achieved some pretty impressive optimization of full continuations. http://tinyurl.com/39vrz Vtables organization Leo had some questions about using 'magic' vtables with PMCs. Dan outlined his proposed approach based on chained vtables. http://tinyurl.com/26g7p Events and JIT Leo did some thinking aloud about getting Event handling working with the JIT core (it works everywhere else). Cue vast amounts of discussion. http://tinyurl.com/2l2m9 Ops file hints Leo had a list of suggestions for extra data that he thinks needs to go into the ops files. Dan agreed with everything on the list and added a todo item to the Parrot RT queue. http://tinyurl.com/3h8za Meanwhile in perl6-language run-once code David Storrs wanted a way of ensuring that a an expensive function in a conditional would never need to be evaluated again after the condition became true. Various answers were suggested, some more complicated than others. http://tinyurl.com/ypjbw Announcements and Apologies This week's summary is dedicated to the memory of my grandmother, Kathleen Hudson, who died on Monday morning in her sleep. She was 82 years old, and apart from the last couple of years of Alzheimer's she was always the life and soul of any party. We're all going to miss her.
Re: This week's summary
At 12:36 PM -0500 1/13/04, Uri Guttman wrote: TP6S == The Perl 6 Summarizer [EMAIL PROTECTED] writes: TP6S Congratulations Dan TP6S Melvin Smith offered his congratulations to Dan for the TP6S first commercial use of Parrot. I think I can safely say we TP6S all echo those congratulations. shouldn't that be production use? It's not in production yet--we've just had the first big working proof-of-concept release. While it was important (showed that it was a viable option, and most of the runtime library is implemented) I'm definitely not ready to even beta this, let alone roll it out on the floor. Don't worry, when that happens I'll make a lot of noise. :) -- Dan --it's like this--- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk
This week's summary
Continuations patch. http://tinyurl.com/2e3d8 Congratulations Dan Melvin Smith offered his congratulations to Dan for the first commercial use of Parrot. I think I can safely say we all echo those congratulations. http://tinyurl.com/3a999 Meanwhile in perl6-language Roles and Mix-ins Discussion of roles as mix-ins kicked off again after the Christmas break. The canonical Dog::bark vs. Tree::bark problem was discussed. http://tinyurl.com/32wzh The European Union Constitution For reasons that still escape me various Americans paraded their ignorance about the putative constitution of a loose union of sovereign states. Perl 6 Story Cards In last week's summary I mentioned the Perl 6 Stories Kwiki that Allison and chromatic set up some months ago and suggested that people wanting to write tests and stories for the new language take a look at it. It seems they did, and the Wiki's seen a good deal of activity. Check it out if you're interested in helping with the project. p6stories.kwiki.org A modest question Austin Hastings asked the design team why they were fascinated with Traits (which will be called Roles in Perl 6). He'd read the original paper and was unimpressed with the gains that were made by using them. The awkwardly cased chromatic opened the case for Roles by pointing out that Roles allow for finer grained naming of chunks of functionality and code reuse. I must say I agree; I'm always keen on opportunities to name something. http://tinyurl.com/2ld4x Announcement Iain Spoon Truskett was not a prolific contributor to the Perl 6 mailing lists. He was, however, an important contributor to these summaries every week; he was the maintainer of WWW::Shorten, the module that I use to shorten the URLs on the version of the summary that goes out to perl6-announce. He died from a sudden cardiac arrest on the 29th of December. He was 24. He will be missed. This summary is dedicated to his memory. http://iain.truskett.id.au/ -- Iain's website
Re: This week's summary
TP6S == The Perl 6 Summarizer [EMAIL PROTECTED] writes: TP6S Congratulations Dan TP6S Melvin Smith offered his congratulations to Dan for the TP6S first commercial use of Parrot. I think I can safely say we TP6S all echo those congratulations. shouldn't that be production use? i don't recall ever hearing about a non-commercial but production use of parrot. anyhow, that is something that needs to be publicized somehow. parrot squawks in real life, code at 11! uri -- Uri Guttman -- [EMAIL PROTECTED] http://www.stemsystems.com --Perl Consulting, Stem Development, Systems Architecture, Design and Coding- Search or Offer Perl Jobs http://jobs.perl.org
Re: This week's summary
[EMAIL PROTECTED] (Peter Scott) writes: In article [EMAIL PROTECTED], [EMAIL PROTECTED] (Austin Hastings) writes: PS: While I'm somewhat sympathetic to the fact that eu guys are trying to spin up 200 years worth of amendments and supreme court decisions at the same time, it's still a ratf*ck. Eu need to get eurselves a Larry. Just put Damian on it, and there'll be a Lingua::EU::ConstitutionGenerator by Christmas. Probably with a back door making him king with droit du seigneur option in perpetuity. Has everyone *quite* finished? -- Beware the Perl 6 early morning joggers -- Allison Randal
Re: This week's summary
Sayeth the Summarizer: Asked for pithy comments, chromatic gave good pith, noting that if he 'had a test case from everyone who asked When'll it be done and code to pass a test case from everyone who said I'd like to help, but I don't know where to start...' then he'd happily check them into the repository. He also said that anyone who 'wants to revive the Perl 6 Documentation project, start turning Apocalypses and Exegeses into story cards, and story cards into tests' would be his hero. And mine too. He didn't mention http://p6stories.kwiki.org/ so I'll do that instead. Umm. Okay. I have started playing with the story cards on http://p6stories.kwiki.org and have most of the ones for the operators that were already there filled out. I would appreciate if some people smarter than me would make sure I had the gist of both XP and perl 6. I think I can also start working up some test cases, but I want to make sure my perl6-fu is strong. Are there any existing samples for me to use as templates for actually writing/formatting the test cases? I can handle the logic and such -- I just want to make sure the format is pleasing. Mik -- Mik Firestone [EMAIL PROTECTED] Marriage is what happens when blackmail is no longer an option. My wife.
Re: This week's summary
Uri Guttman wrote: i say we just sell them a license to use the US constitution. Bill Gates wrote: What is it with these Linux guys? i say we just sell them a license to use Windoze. :-) A
RE: This week's summary
In article [EMAIL PROTECTED], [EMAIL PROTECTED] (Austin Hastings) writes: PS: While I'm somewhat sympathetic to the fact that eu guys are trying to spin up 200 years worth of amendments and supreme court decisions at the same time, it's still a ratf*ck. Eu need to get eurselves a Larry. Just put Damian on it, and there'll be a Lingua::EU::ConstitutionGenerator by Christmas. Probably with a back door making him king with droit du seigneur option in perpetuity. -- Peter Scott http://www.perldebugged.com/ *** NEW *** http//www.perlmedic.com/
Re: This week's summary
On 1/5/04 1:55 PM, Lars Balker Rasmussen wrote: The Perl 6 Summarizer [EMAIL PROTECTED] writes: I confess I wouldn't be surprised if, by the end of the year, we haven't seen the full implementation of at least one of the big non-Perl scripting languages on top of Parrot. I'm confused, are you optimistic or pessimistic in that last sentence? I'm not not licking toads... (Hey, the list needs traffic ;) -John
RE: This week's summary
The Perl 6 Summarizer [EMAIL PROTECTED] writes: I confess I wouldn't be surprised if, by the end of the year, we haven't seen the full implementation of at least one of the big non-Perl scripting languages on top of Parrot. Obviously you've been reading the proposed EU constitution. But DAMN, did you help write it, too? =Austin PS: While I'm somewhat sympathetic to the fact that eu guys are trying to spin up 200 years worth of amendments and supreme court decisions at the same time, it's still a ratf*ck. Eu need to get eurselves a Larry. I wonder if there's a precedent for that?
Re: This week's summary
AH == Austin Hastings [EMAIL PROTECTED] writes: AH PS: While I'm somewhat sympathetic to the fact that eu guys are AH trying to spin up 200 years worth of amendments and supreme court AH decisions at the same time, it's still a ratf*ck. Eu need to get AH eurselves a Larry. I wonder if there's a precedent for that? but he if worked on that at the rate he is churning out apocalypses, it would be another 200 years. this is not a knock on larry but a comment on how large and complex that eu constitution probably is. i say we just sell them a license to use the US constitution. say a royalty on EU coinage? uri -- Uri Guttman -- [EMAIL PROTECTED] http://www.stemsystems.com --Perl Consulting, Stem Development, Systems Architecture, Design and Coding- Search or Offer Perl Jobs http://jobs.perl.org
Re: This week's summary
AH == Austin Hastings [EMAIL PROTECTED] writes: -Original Message- From: Uri Guttman [mailto:[EMAIL PROTECTED] but he if worked on that at the rate he is churning out apocalypses, it would be another 200 years. this is not a knock on larry but a comment on how large and complex that eu constitution probably is. AH Au contraire. His job would not be to write, per se, but to eliminate. AH Consider all the RFC's and then consider the synthesis he did to produce, AH e.g., Grammars. Or the new block constructs (loop, etc.). Occam is dead. AH Larry's still got a very sharp razor. but consider we made about 300 rfcs from a few dozen people. they must have way more than that in possible amendments, decisions, etc to consider. a sharp razor is great but it will dull soon enough whacking away at that madness. i say we just sell them a license to use the US constitution. say a royalty on EU coinage? AH When you consider some of the issues, it's sort of obvious that AH they're trying *real* hard not to say, Look the Americans solved AH this problem already. Honestly, voting weights? What a pack of AH maroons. they wouldn't dare admit the US did something right in the political arena. hell, they have been around for hundreds of years before us and must know more about politics (especially the french! :). what we did was throw out all their stuff and work from a fresh slate with some very smart people at the top. sounds like the p6 pattern too. :) reminds me of the great line: in EU they consider a 100 miles a long distance, in the US we consider 100 years a long time. :) AH You're right about the IP licensing. Bill Gates is probably AH frothing at the mouth for not having a Constitution Template in AH the Euroversion of MS Word. he would want to own the IP for all the EU languages, period. uri -- Uri Guttman -- [EMAIL PROTECTED] http://www.stemsystems.com --Perl Consulting, Stem Development, Systems Architecture, Design and Coding- Search or Offer Perl Jobs http://jobs.perl.org
RE: This week's summary
From: Uri Guttman [mailto:[EMAIL PROTECTED] AH == Austin Hastings [EMAIL PROTECTED] writes: -Original Message- From: Uri Guttman [mailto:[EMAIL PROTECTED] but he if worked on that at the rate he is churning out apocalypses, it would be another 200 years. this is not a knock on larry but a comment on how large and complex that eu constitution probably is. AH Au contraire. His job would not be to write, per se, but to eliminate. AH Consider all the RFC's and then consider the synthesis he did to produce, AH e.g., Grammars. Or the new block constructs (loop, etc.). Occam is dead. AH Larry's still got a very sharp razor. but consider we made about 300 rfcs from a few dozen people. they must have way more than that in possible amendments, decisions, etc to consider. a sharp razor is great but it will dull soon enough whacking away at that madness. Consider that the constitEUtion is about 250 pages long, and that the Constitution is almost 10 pages if you add in the amendments and print REAL big. Obviously, someone skipped over Vision, Scope, Requirements, Architecture, and possibly even HLD, and went directly to detailed design. I wonder if the eurobranch of the Perl Foundation would fund larry for a six week write us a constitution project? Do they even have IR(*) over there? i say we just sell them a license to use the US constitution. say a royalty on EU coinage? AH When you consider some of the issues, it's sort of obvious that AH they're trying *real* hard not to say, Look the Americans solved AH this problem already. Honestly, voting weights? What a pack of AH maroons. they wouldn't dare admit the US did something right in the political arena. hell, they have been around for hundreds of years before us and must know more about politics (especially the french! :). Actually, recall please that the French Revolution and the surrounding confusion was the only thing which enabled the American revolution to succeed. (Contrast the first fifty years of the United States with the first fifty years of Mexico.) what we did was throw out all their stuff and work from a fresh slate with some very smart people at the top. sounds like the p6 pattern too. :) Indeed, a fair amount of Renaissance thought wound up influencing the USC. In the interval, there's been 200 years of thought on economic policy, human rights, and ethical behavior. What's disappointing to me is that so little of that has been reflected in the EUC. reminds me of the great line: in EU they consider a 100 miles a long distance, in the US we consider 100 years a long time. :) That's very good. I'm going to recycle it. Do you know the author? [In keeping with balance of trade: India is like a snake, with its head in the 20th century and its tail in the 17th century. Don't recall the author.] =Austin (*) IR = Initiative Referendum: A political mechanism where a small group of citizens may (via Initiative) collect signatures or somehow cause a question to be posed on a ballot. A Referendum is used to explicitly override the capacity of the elective houses by passing a question directly to the voters. California is probably the most egregious user of the IR mechanism: the recent ouster of the governor is one in a long line of controversial actions.
Re: This week's summary
According to Austin Hastings: When you consider some of the issues, it's sort of obvious that they're trying *real* hard not to say, Look the Americans solved this problem already. Three words: Second System Effect. -- Chip Salzenberg - a.k.a. - [EMAIL PROTECTED] I wanted to play hopscotch with the impenetrable mystery of existence, but he stepped in a wormhole and had to go in early. // MST3K
Re: This week's summary
AH == Austin Hastings [EMAIL PROTECTED] writes: reminds me of the great line: in EU they consider a 100 miles a long distance, in the US we consider 100 years a long time. :) AH That's very good. I'm going to recycle it. Do you know the author? dunno. i have heard it from several sources and i toss it out at the proper moments. most people get it too. :) uri -- Uri Guttman -- [EMAIL PROTECTED] http://www.stemsystems.com --Perl Consulting, Stem Development, Systems Architecture, Design and Coding- Search or Offer Perl Jobs http://jobs.perl.org
This week's summary
-language Nobody said anything. But that's boring, so on Friday I sent an email out to various denizens of the Perl 6 mailing lists asking them for their thoughts on where Perl 6 stands today and where they think it's going in the next 12 months. I'm pleased to say that, despite the ludicrously short notice, a decent number of people responded. Everyone was remarkably consistent about where they think Perl 6 will be in the next year, they all expect to see a 'useful' alpha released and running on Parrot by the end of next year. Nat Torkington said that he didn't expect any more unexpected delays -- I believe the doctors have run out of things to remove from Larry. and I think I am sure we all hope he's right, especially about the second part. Leo Tötsch said that back when he answered the Who's Who in Perl 6 questionnaire back in 2002, he'd said he thought Perl 6 would be out on 16 September 2004. He asked to increment the year of that prediction by at least one. Austin Hastings reckoned that we'd have a usable early version of Perl 6 sometime in Q2 or Q3, and expects the object apocalypse some time in Q1. However, he expected that there'd be fairly substantial exegesis drift from the original apocalypse to the 'real' design. Austin thinks that Perl 6's main 'cultural' impact will be grammars, arguing that in 10 years time 'getting coders to stop parsing characters, getting them instead to think, code, and word in terms of sentences or paragraphs will be considered a turning point.' Don't tell Austin this, but I remember Ward Cunningham saying something similar (but less emphatic) to me after Damian's Perl6::Rules presentation at OSCON 2003. Allison Randal's in the slightly less bullish camp, arguing that it should be possible to produce a reasonably solid Perl 6 alpha in about 3 apocalypses time. She reckoned that we may see Apocalypses 12, 17 and 9 finished this year, and maybe a working prototype Perl 6 compiler. Allison's house mate, chromatic, reckoned that we were about 80% done now (I'm not sure if he was deliberately invoking the old saw that the first 80% takes 80% of the time, and the last 20% takes the other 80% of the time...). He predicted that: 1 Dan will win his bet with Guido, and that the Python.Net people will be so embarrassed by the piemark that they won't publish numbers. 2 Perl 6 won't quite be self-hosting, but it'll be usable for small apps. 3 NCI will continue to be much nicer than XS. 4 Apocalypse 12 will convince everyone that Roles are what object orientation should have had from the beginning. Asked for pithy comments, chromatic gave good pith, noting that if he 'had a test case from everyone who asked When'll it be done and code to pass a test case from everyone who said I'd like to help, but I don't know where to start...' then he'd happily check them into the repository. He also said that anyone who 'wants to revive the Perl 6 Documentation project, start turning Apocalypses and Exegeses into story cards, and story cards into tests' would be his hero. And mine too. He didn't mention http://p6stories.kwiki.org/ so I'll do that instead. Adam Turoff sounded a note of caution; he worries that Perl 6 'is Larry's Modula 2' but he doesn't think that matters because the real boon is Parrot (and Ponie) which has the potential to open the existing work on CPAN up to any language that targets Parrot (potentially making good work in other languages available to us Perlers too). He didn't think that Perl 6 will offer enough of an incentive for people to move to the new language from Perl 5. Indeed, he argued that the changes in syntax will put people off making the shift. We discussed this on AIM, personally I think Adam's wrong, and that Perl 6 will have enough good new stuff in it that people will bite the bullet of the new syntax (and the changes are reasonably simple after all) in order to get access to Perl 6's goodies. Adam certainly sees the change from Perl 5 to 6 as qualitatively different from the change from 4 to 5. He thinks people aren't going to switch quickly (especially if Ponie fulfils their needs) and he points out that it's going to be a few years before we've worked out the best practices for using all this new stuff. Sadly, I didn't get any feedback from Larry before my deadline (if I do get something, rest assured it'll get space in next week's summary). I did get a lot from everyone's favourite evil genius though. Damian is alive, well and living in Australia. It seems that his recent silence on p6l may have something to do with his hopes 'to see Exegesis 7 published (along with a full Perl 5 implementation of the new formatting module) by late January.' In other
Re: This week's summary
The Perl 6 Summarizer [EMAIL PROTECTED] writes: Me? I think Perl 6's design 'in the large' will be pretty much done once Apocalypse 12 and its corresponding Exegesis are finished. Of course, the devil is in the details, but I don't doubt that the hoped for existence of a working Perl6::Rules by the end of April is going to provide us with a great deal of the leverage we need to get a working Perl 6 alpha ready for OSCON with something rather more solid ready by the end of the year. Parrot continues to amaze and delight with its progress; Dan tells me that he's about ready to roll out a large parrot based application for his employers, so it's approaching the point where people's salaries will depend on Parrot. I confess I wouldn't be surprised if, by the end of the year, we haven't seen the full implementation of at least one of the big non-Perl scripting languages on top of Parrot. I'm confused, are you optimistic or pessimistic in that last sentence? -- Lars Balker Rasmussen Consult::Perl
Re: This week's summary
At 07:55 PM 1/5/2004 +0100, Lars Balker Rasmussen wrote: The Perl 6 Summarizer [EMAIL PROTECTED] writes: people's salaries will depend on Parrot. I confess I wouldn't be surprised if, by the end of the year, we haven't seen the full implementation of at least one of the big non-Perl scripting languages on top of Parrot. I'm confused, are you optimistic or pessimistic in that last sentence? Knowing Piers, I would guess: optimistic. :) -Melvin
Re: This week's summary
Lars Balker Rasmussen [EMAIL PROTECTED] writes: The Perl 6 Summarizer [EMAIL PROTECTED] writes: Me? I think Perl 6's design 'in the large' will be pretty much done once Apocalypse 12 and its corresponding Exegesis are finished. Of course, the devil is in the details, but I don't doubt that the hoped for existence of a working Perl6::Rules by the end of April is going to provide us with a great deal of the leverage we need to get a working Perl 6 alpha ready for OSCON with something rather more solid ready by the end of the year. Parrot continues to amaze and delight with its progress; Dan tells me that he's about ready to roll out a large parrot based application for his employers, so it's approaching the point where people's salaries will depend on Parrot. I confess I wouldn't be surprised if, by the end of the year, we haven't seen the full implementation of at least one of the big non-Perl scripting languages on top of Parrot. I'm confused, are you optimistic or pessimistic in that last sentence? Optimistic. Parrot being used for other languages too is a good thing. We're not going to see a full Perl 6 inside a year 'cos the design won't be finished (well, not at the detailed level it needs to be for a full implementation) and Ponie probably won't be finished because of the complexities of getting the backwards compatilibility with XS that's Ponie's raison d'etre. But there are other languages out there that don't have such stringent requirements. -- Beware the Perl 6 early morning joggers -- Allison Randal
Re: This week's summary
At 09:30 PM 1/5/2004 +, Piers Cawley wrote: Melvin Smith [EMAIL PROTECTED] writes: At 07:55 PM 1/5/2004 +0100, Lars Balker Rasmussen wrote: The Perl 6 Summarizer [EMAIL PROTECTED] writes: people's salaries will depend on Parrot. I confess I wouldn't be surprised if, by the end of the year, we haven't seen the full implementation of at least one of the big non-Perl scripting languages on top of Parrot. I'm confused, are you optimistic or pessimistic in that last sentence? Knowing Piers, I would guess: optimistic. :) Have we met? You're right though. Unless you count our chats on IRC, no. I can deduce that much from IRC and summaries. We do read them, you know. :) -Melvin
Re: This week's summary
Melvin Smith [EMAIL PROTECTED] writes: At 09:30 PM 1/5/2004 +, Piers Cawley wrote: Melvin Smith [EMAIL PROTECTED] writes: At 07:55 PM 1/5/2004 +0100, Lars Balker Rasmussen wrote: The Perl 6 Summarizer [EMAIL PROTECTED] writes: people's salaries will depend on Parrot. I confess I wouldn't be surprised if, by the end of the year, we haven't seen the full implementation of at least one of the big non-Perl scripting languages on top of Parrot. I'm confused, are you optimistic or pessimistic in that last sentence? Knowing Piers, I would guess: optimistic. :) Have we met? You're right though. Unless you count our chats on IRC, no. I can deduce that much from IRC and summaries. We do read them, you know. :) Thank heavens for that. I thought people printed them out and used them to roll cigarettes with. -- Piers
Re: This week's summary
Thank you for a lovely Christmas Present. Michael On Dec 24, 2003, at 2:37 AM, The Perl 6 Summarizer wrote: The Perl 6 Summary for the week ending 20031221 Welcome one and all to the penultimate Perl 6 Summary for 2003. The nights are long, the air is cold, freezing fog made the journey home from watching *The Return of the King* a deeply fraught experience (though probably not as fraught for us as for the chap who obviously didn't see the roundabout in time and went straight over it). If you're in the southern hemisphere, feel free to ignore the foregoing flavour text. It should come as no surprise to you by now that we start with the internals list. Namespaces II Dan returned from a bout of paying work to finish up the current understanding of how namespaces are managed in Parrot. A namespace selector becomes a multidimensional key (using a multidimensional key instead of a single long namespace name makes for easier sharing of namespaces between languages; there's no need to go guessing what separator the other language uses in its namespace naming because that's essentially irrelevant at the Parrot level). Looking up a particular variable in a namespace is still a two step process, first get the namespace, then do the lookup within the namespace. Dan explained that this is a win because it should allow for holding onto namespaces in a register when dealing with multiple variables. Leo Tötsch wasn't entirely convinced by the new syntax introduced, and proposed a mechanism which used the standard syntax for accessing multikeyed structures with a proposed Namespace PMC. http://tinyurl.com/2wtkd Another keyed ops proposal Leo continues to make proposals for rethinking keyed ops. Somewhat surprisingly, Dan didn't entirely reject the latest one involving a possible new set of key registers. http://tinyurl.com/2za5t Leo adds threads Leo Tötsch checked in a patch to allow Parrot to spawn threads. As he admitted, there's a lot missing, but it's a start. He solicited comments and further pointers. Later in the week he asked for some design decisions related to making various of the interpreter's internal data structures thread safe. Elizabeth Mattijsen had several comments to make, based on experience with Perl 5's ithread system. In essence her suggestion was that as many things as possible should be made copy on write between threads. (I have a faint recollection of Nicholas Clark delivering a wonderful lightning talk/dance explaining his proposal for making Perl 5 use copy on write structures for ithreads. It's worth seeing if you get the chance...) http://tinyurl.com/3egyu http://tinyurl.com/yrjrm PDD03 and method calls Leo queried the design of Parrot's calling conventions for calling a method and proposed a slightly different convention with the object put in P5 rather than P2. Dan thought that the calling conventions documented was the right way to go, but didn't seem to convince everyone. http://tinyurl.com/2npnn Rolling back clone Leo pointed out that clone's semantics had got altered to take an uninitialized destination PMC as an argument back when the GC system was flaky. He suggested switching back to a version that creates the new PMC itself now that GC was working properly. Dan told Leo to go for it. http://tinyurl.com/35c57 Meanwhile, in perl6-language Um... sorry about this, but I'm punting on writing the promised Roles/Traits/Classes summary. I was planning on doing it today, but things have been hellish; I've spent about 8 hours fighting fires today rather than writing the summary. Sorry. Work on Perl 6's object system continues apace though; things are looking very good and powerful. By the way from now on I'll try and stick to Larry's usage of capitalizing 'Traits' when referring back to the Traits paper, and keeping it lower case when referring to Perl 6's compile-time traits. Runtime CHECK? Piers Cawley asked if Perl 6 modules that get loaded at runtime will have their CHECK blocks (or their equivalent) executed. Larry initially thought not, but Rafael Garcia-Suarez noted that Perl 5 shouldn't be held up as exemplary and that there was definitely a need for some kind of special block that would get run at the end of the compilation phase of any arbitrary compilation unit. http://tinyurl.com/2ytze but true Adam D. Lopresto wondered how the recent work on Roles, Properties and Traits fit in with already declared stuff like but true. Larry confessed that he was still thinking hard about this, but that he thought but wasn't powerful enough yet. http://tinyurl.com/2v2ef Acknowledgements, Announcements, Apologies Cross your fingers and toes,