Re: Parrot and Perl 6 Summary
Please find: http://lith-ology.blogspot.com/2010/02/seven-days-between-parrot-and-camel.html Lithos
Re: Parrot and Perl 6 Summary
Please find: http://lith-ology.blogspot.com/2010/01/seven-days-between-parrot-and-camel_26.html Lithos
Re: Parrot and Perl 6 Summary
Please find: http://lith-ology.blogspot.com/2010/01/seven-days-between-parrot-and-camel_15.html Lithos
Re: Parrot and Perl 6 Summary
Please find: http://lith-ology.blogspot.com/2010/01/seven-days-between-parrot-and-camel.html Lithos
Re: Parrot and Perl 6 Summary
Please find: http://lith-ology.blogspot.com/2009/12/seven-days-between-parrot-and-camel_28.html Lithos
Re: Parrot and Perl 6 Summary
Please find: http://lith-ology.blogspot.com/2009/12/seven-days-between-parrot-and-camel_22.html Lithos
Re: Parrot and Perl 6 Summary
Please find: http://lith-ology.blogspot.com/2009/12/seven-days-between-parrot-and-camel_13.html Lithos
Re: Parrot and Perl 6 Summary
Please find: http://lith-ology.blogspot.com/2009/12/seven-days-between-parrot-and-camel.html Lithos
Re: Parrot and Perl 6 Summary
[now CC-ing the list, d'oh!] On Mon, Nov 23, 2009 at 4:33 PM, Geoffrey Broadwell ge...@broadwell.org wrote: On Mon, 2009-11-23 at 01:15 +0100, Lithos wrote: Today I posted my first attempt at summarizing Perl 6 and Parrot things at http://lith-ology.blogspot.com/ Any comments and corrections welcome! This is *very* valuable to us. Please keep it up! I'm trying: :) http://lith-ology.blogspot.com/2009/11/seven-days-between-parrot-and-camel_29.html Lithos
Parrot and Perl 6 Summary
Hello! I posted my first attempt at summarizing Perl 6 and Parrot things at http://lith-ology.blogspot.com/ Any comments and corrections welcome! Lithos
Re: Parrot and Perl 6 Summary
Lithos wrote: I posted my first attempt at summarizing Perl 6 and Parrot things at http://lith-ology.blogspot.com/ Any comments and corrections welcome! Looks good so far. If you intend to do that weekly, it should be a valuable service, like the summaries done years ago. I also learned something new from it, like the existence of a new parrot-users discussion list, a good targeted environment for people using Parrot to implement languages, without the details of Parrot internals development. -- Darren Duncan
Parrot and Perl 6 Summary
Hello! Today I posted my first attempt at summarizing Perl 6 and Parrot things at http://lith-ology.blogspot.com/ Any comments and corrections welcome! Lithos
Re: Parrot and Perl 6 Summary
On Mon, 2009-11-23 at 01:15 +0100, Lithos wrote: Today I posted my first attempt at summarizing Perl 6 and Parrot things at http://lith-ology.blogspot.com/ Any comments and corrections welcome! This is *very* valuable to us. Please keep it up! -'f
Re: This weeks summary, part 2
On 2/18/06, The Perl 6 Summarizer [EMAIL PROTECTED] wrote: Smart match table Robin Houston had some questions/observations about the smart match table in synopsis 4. This is the table that describes how the smart match (~~) operator does its comparisons. It turns out that the table in the synopsis implies non-commutative behaviour, which came as something of a surprise. I'm surprised this thread petered out so quickly without any real resolution; it seems rather important to me. http://xrl.us/j366 That particular url isn't working.
This weeks summary, part 2
The Perl 6 summary for the week ending 2006-02-12 Did I say Thursday night? What was I thinking? Blame Nikon for finally delivering my D200; or just blame me for being a lazy git who spent Thursday night recovering from the drive home from Liverpool and Friday playing with a new toy and chatting to interesting people in the atrium at SageGateshead. So, here's part two of the summary, in which I summarize ancient history in perl6-language. This week in perl6-language Overloading the variable declaration process Darren Duncan asked that Perl 6 provide a way for a class/role/metaclass to declare that all variables declared to be of that type are automatically/implicitly set to a particular value at declaration time. Larry's response was fascinating as he talked about what I find myself thinking of a continuum of definedness, where, instead of worrying if a variable is defined, the language/programmer/whatever only cares whether it is defined enough. The syntax for asking such questions isn't really defined enough yet. Then it all got slightly philosophical with talk of the ideal of a dog (when I think the questioner really wanted to talk about the ideal dog), Platonism and Aristotelianism. And the metamodel. And there was hypnotism. http://xrl.us/j36z Macros? Last week, Brad Bowman asked a bunch of questions about the workings of Perl 6 macros. This week, Larry offered answers. http://xrl.us/j362 A proposition for streamlining Perl 6 development Yuval Kogman had some ideas about how to make Perl 6 development go faster. Igor! More tuits! Some people disagreed with him. Some agreed. I am staying well out of this one (at least in the summaries; I have opinions and I don't trust them, or myself, enough to be able to write a properly impartial summary of the discussions). http://xrl.us/j363 Tokenizer hints, supporting delimited identifiers or symbols Darren Duncan had another wish for Perl 6: a simple and terse way for Perl 6 identifiers or symbols to be able to be composed of any characters whatsoever... whoa! Deja vu! Ah yes, I already did this one in part one. Move right along the summary, nothing to see here. http://xrl.us/j364 The definition of say Simple question: how do you implement say? The answer isn't quite as simple as you might think. Actually, that's not true, the answer is simple, but the question has hidden depths. Go read Robin Houston's question and its responses if you don't believe me. http://xrl.us/j365 Smart match table Robin Houston had some questions/observations about the smart match table in synopsis 4. This is the table that describes how the smart match (~~) operator does its comparisons. It turns out that the table in the synopsis implies non-commutative behaviour, which came as something of a surprise. I'm surprised this thread petered out so quickly without any real resolution; it seems rather important to me. http://xrl.us/j366 Acknowledgements, apologies and everything else So, does the serial format work? Apart from the problem of not actually getting on with part two when I should have done, it works remarkably well for me. Writing the summary in one big chunk can be somewhat daunting, especially if my brain gets fried by the first two lists. Feedback is good. Help Chip http://geeksunite.org/ -- Chip still needs help. The usual coda If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl. http://donate.perlfoundation.org/ -- The Perl Foundation The Perl Foundation Blog is an excellent source of news about the Perl Foundation's activities. http://blog.perlfoundation.org/ Planet Perl Six is a handy news aggregator of several Perl 6 related sources. http://planet6.perl.org/ http://dev.perl.org/perl6/ -- Perl 6 Development site Check out my website, it's lovely. http://www.bofh.org.uk/ -- Piers Cawley [EMAIL PROTECTED] http://www.bofh.org.uk/
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
Perl 6 Summary for 2006-01-24 though 2006-02-07
Perl 6 Summary for 2006-01-24 though 2006-02-07 All~ Welcome to another fortnight's summary. I would say more, but my throat really hurts. Perl 6 Language Pugs's Minimum GHC Darren Duncan proposed moving the minimum GHS requirement from 6.4.0 to 6.4.1. Based on the conversation, this appears to be a somewhat likely outcome. http://xrl.us/jws4 Pugs Makefile.PL Update Beau E. Cox posted a patch to improve Makefile.PL. Audrey added it and handed him a commit bit. http://xrl.us/jws5 Pugs 3.2.11 Pugs, now officially 1 year old, just hit its 6.2.11 release. http://xrl.us/jws6 Pugs Link Error Beau E. Cox had trouble linking Pugs 6.2.11 and Parrot 0.4.1. Audrey pointed out that he needed a parrot source tree nearby. http://xrl.us/jws7 Macros Larry Wall posted an update of S06. It looks very tasty. I hope the standard library has some convenience routines for dealing with Perl 6's AST. http://xrl.us/jws8 Pugs Version Numbers Beau E. Cox was a little confused by Pugs's jump in development version. Kevin Puetz explained the approach to $2 \pi$. http://xrl.us/jws9 Parrot Source Tree for Pugs? Beau E. Cox, after discovering that a Parrot source tree is necessary to build Pugs, wondered if it was still necessary after Pugs was built. Larry provided the answer: no. http://xrl.us/jwta PGE Binding Audrey noticed a problem convincing PGE to alias a scalar. Patrick explained that it was not yet implemented. http://xrl.us/jwtb Parrot Hmmm... If the short one required two cough drops, I fear for the long one. Of course, that was uncharacteristically large for p6l, so perhaps p6i will be short. (Gambler's Fallacy, I know) Namespace Relativism Leo noticed a few namespace opcodes which could function either relatively or absolutely. Peoples seemed to want absolute. http://xrl.us/jwtc Interpreters and Stashes? Leo posted a few questions about parts of Parrot's guts that he wasn't sure about. Chip posted his thoughts. http://xrl.us/jwtd File, OS, and Path Alberto Simões posted his proposal for File/OS functions. Chip provided his opinions as well. http://xrl.us/jwte Object Initialization Issues Bob Rogers noticed a change in the semantics of object initialization. He and Leo added tests and nailed down them down more firmly. http://xrl.us/jwtf I/O Filters Steve Gunnell posted his ideas for how to finalize and improve the I/O filter system on which Parrot's IO is built. Leo, Nicholas Clark, and Joshua Hoblitt fined tuned his ideas slightly. http://xrl.us/jwtg Parrot on z/OS Ravi Sastry wondered if Parrot could run on z/OS. Jonathan Worthington guessed that it probably would not run right now, but could be made to run by an interested developer. http://xrl.us/jwth Dirty I Registers Jerry Gay noticed that IREGs weren't being zeroed properly. http://xrl.us/jwti Parrot::Configure::Data::Bug Norman Nunley found and fixed a bug in Parrot::Configure::Data. Leo applied the patch. http://xrl.us/jwtj PARROT_IN_EXTENSION Nicholas Clark noticed some macro strangeness involving PARROT_IN_EXTENSION. Jonathan Worthington determined that it was vestigial and remove it. Nicholas was happy. http://xrl.us/jwtk Invalid Cleaning Order Bernhard Schmalhofer noticed that make clean was cleaning itself into a corner. He filed a bug for it. http://xrl.us/jwtm FreeBSD JIT Bug Joshua Isom found a problem with the FreeBSD JIT. Leo pointed him to some docs to help him debug his problem. http://xrl.us/jwtn Makefile Cleanup Joshua Isom posted a patch cleaning up some makefile stuff. Joshua Hoblitt thought that further review was necessary. Warnock applies. http://xrl.us/jwto Supporting Static Variables Leo posted a few thoughts on how to support static variables in Parrot. Larry, Nicholas Clark, and Joshua Isom provided a few suggestions. http://xrl.us/jwtp Truncating Generated PIR Code Allison Randal was having problems with generated PIR code getting truncated. Leo managed to track down and solve the problem. http://xrl.us/jwtq Want a Job? [EMAIL PROTECTED] posted a job offering to the list. Unfortunately he posted it to google groups (most likely) as it didn't make it to the list proper. http://xrl.us/jwtr Exception in a Constructor Oddness Jonathan Worthington provided a test case display an unexpected interaction between constructors and exceptions. Warnock applies. http://xrl.us/jwts Continuation Return Values Bob Rogers provided a patch allowing Continuations to return values. Leo applied the patch. http://xrl.us/jwtt Dynamic PMC Link Dependency Leo noticed that compiling a static
Re: Perl 6 Summary for 2006-01-10 though 2006-01-24
Matt Fowles wrote: LuaNil Morphing Klaas-Jan Stol proffered a patch which changed LuaNil from a singleton and made it morph to other Lua types when asked. Warnock applies. Actually, François Perrad applied this patch, but I think he only sent a reply to me. http://xrl.us/jpww LuaTable Loving Klaas-Jan Stol also provided a patch making LuaTable more correct. Warnock applies. Same here. kjs
Perl 6 Summary for 2006-01-10 though 2006-01-24
Perl 6 Summary for 2006-01-10 though 2006-01-24 All~ Welcome to another fortnight's summary. This summary marks a return to a Tuesday schedule for summaries. Hopefully this will help me get summaries to you on time. Oddly appropriate that I just started reading Don Quixote... Perl 6 Compiler Either this list followed its typical pattern of doing most of its work off list, or google's indexing of it broke. I am guess the former and continuing on blindly. Perl 6 Internals Unescapable Single Quotes in Strings Matt Diephouse discovered that he could not escape single quotes within strings. This saddened him so much he open an RT ticket. http://xrl.us/jpwo genfile() Interpolation Syntax Joshua Hoblitt changed the interpolation syntax for Parrot::Configure::Step::genfile() from ${foo} to @foo@ . http://xrl.us/jpwp getopt_obt.t Failures Joshua Hoblitt posted some failures in t/library/getopt_obj.t on amd64/linux. http://xrl.us/jpwq Improved Smoke Layout Joshua Hoblitt opened a TODO for the smoke server's layout. Currently it is a bit busy and confusing. http://xrl.us/jpwr Deprecated PMCs Leo deprecated FloatvalArray and StringArray PMC in favor of the (Fixed|Resizable)*Array PMCs, which are 20% more awesome.* http://xrl.us/jpws *awesomeness directly related to their original author pdb.exe build broken Jerry Gay noted that pdb.exe was failing to link on Windows. http://xrl.us/jpwt Interpolation Synatx Updates Greg Bacon noticed a few ${foo} interpolations left over from the aforementioned update. Nick Glencross improved upon Greg's core idea. Joshua Hoblitt verified the fixes. http://xrl.us/jpwu Attack of the Clones Klaas-Jan Stol was having trouble making his LuaNil PMC clone method. Leo explained that it was his fault, and he solved it. http://xrl.us/jpwv LuaNil Morphing Klaas-Jan Stol proffered a patch which changed LuaNil from a singleton and made it morph to other Lua types when asked. Warnock applies. http://xrl.us/jpww LuaTable Loving Klaas-Jan Stol also provided a patch making LuaTable more correct. Warnock applies. http://xrl.us/jpwx Lua Fixes Jonathan Worthington updated Lua PMCs to no longer use the deprecated Parrot_PMC_typenum. http://xrl.us/jpwy Tcl on Darwin Joshua Isom noticed that Tcl was no longer building on Darwin. Jonathan Worthington updated Tcl PMCs to no longer use the deprecated Parrot_PMC_typenum. Joshua noted that this fixed one problem but left another one. http://xrl.us/jpwz No More .def Files Jonathan Worthington completed the work that allows Parrot to build on Win32 without a .def file. Thanks, Jonathan. http://xrl.us/jpw2 Moving argv to ResizableStringArray Joshua Isom (after Leo's earlier help) offered a patch moving argv from an SArray to a ResizableStringArray. Warnock applies. http://xrl.us/jpw3 -- inital version http://xrl.us/jpw4 -- final version Pod File Extensions Joshua Isom noted that many documents were pod documents, but did not have .pod extensions. Joshua Hoblitt fixed it. http://xrl.us/jpw5 Switch Tcl to Getopt/Obj.pir Bernhard Schmalhofer suggested that Tcl could be moved to Getopt/Obj.pir from Getopt/Long.pir, which clears the path for remove of Getopt/Long.pir. Will Coleda gave the go ahead for switching it. http://xrl.us/jpw6 clear_eh restrictions Bob Rogers posted an update to his patch which restricts clear_eh to the current context only. Warnock applies. http://xrl.us/jpw7 Clean Up After Yourself Bob Rogers provided a patch which makes examples/pir/io.pir clean up its temp file. Warnock applies. http://xrl.us/jpw8 Build Failure on FreeBSD 5.4 Joshua Isom noted that the build was failing on FreeBSD 5.4. Apparently the cgp core was a little hard on their gcc. Leo disabled the portion it was breaking on. http://xrl.us/jpw9 http://xrl.us/jpxa get_param Questions Klaas-Jan Stol had a few questions about get_param usage in PIR. Bob Rogers and Leo provided answers. http://xrl.us/jpxb find_global Opcode Change Leo updated find_global and get_global to return a Null PMC on failure when exceptions are disabled. http://xrl.us/jpxc Build Step Parameter Passing Joshua Hoblitt added support for passing parameters to build steps in the build system. http://xrl.us/jpxd Automatic Closure Creation Audrey found it cumbersome to need to explicitly create new closures for package-scoped subroutines. Leo made it automatic. http://xrl.us/jpxe YAML::Emitter::Syck wanted Will Coleda opened a todo for a YAML::Emitter::Syck that functions similarly to Data::Dumper. http://xrl.us/jpxf PMC
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/
Perl 6 Summary for 2006-01-02 though 2006-01-09
Perl 6 Summary for 2006-01-02 though 2006-01-09 All~ Welcome to another Perl 6 Summary. On a complete tangent, if you are playing World of Warcraft and see a troll hunter named Krynna, she rocks. She royally saved me. Be nice to her. Perl 6 Compiler PIL Containers and Roles Audrey explained that she and Stevan have been putting in effort to allow Pugs and PIL to bootstrap Roles and eventually the entire object model. http://xrl.us/jiza Reference and Assignment Semantics Audrey posted a brain dump focusing on the issues and implications of how containers, assignment, and auto dereferencing interact. http://xrl.us/jizb Table of Perl 6 Types Stevan Little posted a summary of his understanding of Perl 6's core type hierarchy. Larry replied with a few comments and corrections. http://xrl.us/jizc Parrot Configure and Symlinks Alberto Simoes wondered how the configuration system should handle symlinks. Warnock applies. http://xrl.us/jizd Removed NCI Types Dan Sugalski wondered why the T and L parameters have been removed from NCI and how he should work around their absence. Leo suggested you ManagedStruct PMCs for it and pointed him to the SDL libraries. http://xrl.us/jize mkdir test can fail Bob rogers posted a patch fixing an unanchored regular expression in the mkdir test. Warnock applies. http://xrl.us/jizf Build html should use Pod::Find Joshua Isom suggested that Pod::Find would make building html less error prone and more robust to changes the Pod structure. Warnock applies. http://xrl.us/jizg CWD on HP-UX Nick Glencross posted a fix to os.pmc for HP-UX. Alberto Simões applied the patch. http://xrl.us/jizh Alignment Issues on HP-UX Nick Glencross posted a back trace from a test failing on HP_UX. His initial analysis indicates that it is an alignment issue. Warnock applies. http://xrl.us/jizi Tcl Todo Will Coleda posted more todos for Tcl. Like last week, I won't summarize them all. But I am very happy to see Tcl coming along again. I must say that I always like watching the test percentages climb. Parrot 0.4.1 Leo announced the release of Parrot 0.4.1. Sun's Compiler No Like CRLF Andy Dougherty noticed that Sun's compiler was choking on coroutine.pmc because it had bad line endings. He fixed it, and Jerry Gay applied the patch. http://xrl.us/jizj atan2 issues Joshua Hoblitt committed a possible fix for some atan2 issues occuring on openbsd, solaris, and cygwin. The fix didn't help cygwin or solaris. No word on openbsd. http://xrl.us/jizk OS.pmc needs a few methods Will Coleda created a few todo: OS.pmc needs an lstat method, and methods to set atime and mtime. http://xrl.us/jizm http://xrl.us/jizn Vanishing Warnings Will Coleda noticed that a few warnings disappeared. Leo admitted that he accidentally applied a fix some time ago. http://xrl.us/jizo Configure.pl and Optimize Andy Dougherty noticed that Configure.pl --optimize no longer worked correctly. Joshua Hoblitt took the opportunity to clean up that portion of Configure.pl. http://xrl.us/jizp Event System Question Klaas-Jan Stol wondered why events (unlike exceptions) are handled after a little time instead of immediately. Leo explained that this was due to the asynchronous nature of an events arrival and the inability to resume execution after a long jump. http://xrl.us/jizq CFLAGS missed two files Andy Dougherty noticed that the core_ops source files missed come of the directory rearrangements. Jerry Gay applied the patch. http://xrl.us/jizr File::Temp Issue Leo noticed an issue in t/run/options. Jerry tracked it down to an old version of Perl and the File::Temp module and fixed the problem. http://xrl.us/jizs Simple Namespace Question Joshua Isom wondered how to separate namespaces for find_global calls. Leo explain that he should use a list like ['Foo'; 'Bar']. http://xrl.us/jizt Credits The ever modest Nick Glencross updated his name in the credits file to be a little more understated. Oddly, no one applied the patch. http://xrl.us/jizu parrot config revisited Nick Glencross posted a few questions, thoughts, and patches involving parrot_get_config. Leo agreed with most of it, but had a few comments. http://xrl.us/jizv pkgsrc build Anders Nor Berle provided a few patches making thing work a little more smoothly with FreeBSD and pkgsrc. Jerry Gay reviewed the patches and Florian Ragwitz applied the relevant portions. In fact, 0.4.1 got added to pkgsrc for the curious. http://xrl.us/jizw http://xrl.us/jizx -- 0.4.1 added static and shared libparrot Florian Ragwitz provided a patch that fixed
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
Perl 6 Summary for 2005-12-05 through 2005-12-12
Perl 6 Summary for 2005-12-05 through 2005-12-12 All~ Welcome to another Perl 6 summary. This week, like last, Parrot has produced the highest volume of emails. Fine by me, Parrot tends to be easiest to summarize. This summary is brought to you by Snow (the latest soft toy in the house). I would say you should get one, but apparently Borders stores everywhere are sold out of them. He is quite soft and a little mischievous. Maybe he belonged to a samurai once... Perl 6 Compiler Context Confusion Mike Li wondered how to make his sample code work in Perl 6. Jonathan Scott Duff pointed out that the part he was curious about, was correct already. Score one for Perl 6. http://xrl.us/i7ch Unbracketed Text from Text::bracketed Allison Randal wanted to be able to access the text within PGE::Text::bracketed's match object. Patrick made it work, and Allison happily used it. http://xrl.us/i7ci Security Model Bryan Burgers wondered how Parrot would support security. Luke Palmer pointed him to the p6i list and explained that Dan did have a plan for this that he couldn't recall. I recall something about VMS and having active and allowable capabilities. It sounded really cool when I read it. http://xrl.us/i7cj Parrot Build Failure David Dyck managed to make the build fail on his bizarre setup. Leo fixed it. http://xrl.us/i7ck src/revision.c Dependencies Leo discovered that src/revision.c is missing some dependencies. He would love it if someone fixed that. http://xrl.us/i7cm Documenting .lex Syntax Klaas-Jan Stol documented the new syntax for lexicals. Jerry Gay applied the patch. http://xrl.us/i7cn Multidimensional Arrays Roger Browne found that he could not make multidimensional array access work with PMCs. Leo said that should be filed as a TODO. http://xrl.us/i7co Directory Reorganization Jerry Gay has made good progress spearheading the directory reorganization of Parrot. Rather than give you a bunch of links to emails that are essentially the same, I will skip them, but thank you Jerry. make test Error on OS X Tiger Jason Gessner reported a test failure on OS X Tiger. Warnock applies. http://xrl.us/i7cp C3 MRO Test C3 MRO (C3 P0's younger brother) recently underwent his factory acceptance test and will be released into the world. Like his older brother, he also speaks fluent Tibetan. On an unrelated note, Stevan Little added some test for the C3 method resolution order used in Parrot. http://xrl.us/i7cq Global Store Hash Klaas-Jan Stol wanted to access the global store hash directly. Leo showed him how. http://xrl.us/i7cr Release Goals Leo kicked off a brain storming session for what to focus on for the next release. Brains promptly began storming. http://xrl.us/i7cs Sun4 JIT Fix Andy Dougherty submitted a big fix to make Sun4's JIT link again. Leo applied the patch. http://xrl.us/i7ct :flat and :slurpy issues Bob Rogers was having trouble making Parrot eat linguine because it would not mix :flat and :slurpy arguments. He also found that the problem was do to premature optimization (actually a PREMATURE_OPTIMIZATION define) and submitted a fix and test. Leo thanked him and applied them. http://xrl.us/i7cu Parrot 0.4.0 Luthor Leo announced the latest release of Parrot 0.4.0 aka Luthor. There was much rejoicing, but I was left wondering where Leo comes up with these release names. http://xrl.us/i7cv loadlib Cleanup Leo has been hunting some uninitialized memory bugs in Parrot's library loading code. He has been having a difficult time finding the problem, and thus is looking into a general code clean up to make the problem easier to find (or possibly just fix it). Jerry Gay said he would make it work on windows, but no one volunteered for the main portion of the work. http://xrl.us/i7cw languages/regex/Makefile is not Generated Jerry Gay noticed that languages/regex/Makefile really ought to be a generated file. He opened a TODO for it. http://xrl.us/i7cx Fix Parrot IO Test 23 chromatic the ever uncapitalized proferred a patch for a failing Parrot_IO test. He seemed to feel that someone else ought to review it as he was not 100% on it. Warnock applies. http://xrl.us/i7cy load_bytecode Fails Outside of Parrot Bob Rogers noticed that load bytecode didn't work when not in the Parrot directory. Leo mistakenly fixed a different problem before he fixed this one. Sounds like a win/win to me. http://xrl.us/i7cz Tcl Win32 Trouble Jerry Gay noticed a problem building Tcl on Win32. François Perrad pointed out an old patch from Nick Glencross which apparently solves the problem. Warnock
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
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
Re: Perl 6 Summary for 2005-11-14 through 2005-11-21
On Nov 23, 2005, at 3:06, chromatic wrote: On Wed, 2005-11-23 at 01:39 +0100, Leopold Toetsch wrote: But my argument was: whenever you start introspecting a call frame, by almost whatever means, this will keep the call frame alive[1] (see Continuation or Closure). That is: timely destruction doesn't work for example... Destruction or finalization? We don't have these two separated yet, but it wouldn't matter. Both can only happen after the GC has decided that the object is unreferenced. That is, if I have a filehandle I really want to close at the end of a scope but I don't care when GC drags it into the void, will the close happen even if there's introspection somewhere? *If* introspection sets the life bit (increments refcount) of the refered item(s) then destruction/finalization can only happen, after that introspection object is also dead. It's the same as: when you store a filehandle into an array, the filehandle will be bound to the life period of that array. The problem now is that there isn't any guarantee that such an introspection PMC stays in that call frame, the function could just return it to the caller (or store it into globals) as any other PMC. Which implies that the whole call chain (with its contents) would have to be kept alive. -- c leo
Re: Perl 6 Summary for 2005-11-14 through 2005-11-21
On Nov 22, 2005, at 1:40, Matt Fowles wrote: Call Frame Access Chip began to pontificate about how one should access call frames. Chip suggested using a PMC, but Leo thought that would be too slow. No, not really. It'll be slower, yes. But my argument was: whenever you start introspecting a call frame, by almost whatever means, this will keep the call frame alive[1] (see Continuation or Closure). That is: timely destruction doesn't work for example and the introspection feature is adding another level of complexity that isn't needed per se, because 2 other solutions are already there (or at least implemented mostly). leo [1] a call frame PMC could be stored elsewhere and reused later, refering to then dead contents. Autrijus mentioned that this will need weak references to work properly.
Re: Perl 6 Summary for 2005-11-14 through 2005-11-21
On Wed, 2005-11-23 at 01:39 +0100, Leopold Toetsch wrote: But my argument was: whenever you start introspecting a call frame, by almost whatever means, this will keep the call frame alive[1] (see Continuation or Closure). That is: timely destruction doesn't work for example... Destruction or finalization? That is, if I have a filehandle I really want to close at the end of a scope but I don't care when GC drags it into the void, will the close happen even if there's introspection somewhere? -- c
Perl 6 Summary for 2005-11-14 through 2005-11-21
Perl 6 Summary for 2005-11-14 through 2005-11-21 All~ Welcome to another Perl 6 Summary. The attentive among you may notice that this one is on time. I am not sure how that happened, but we will try and keep it up. On a complete side note, I think there should be a Perl guild of some sort on World of Warcraft. It should probably be horde if there is, both because I hate the alliance and because it fits better. Perl 6 Language As usual for Pugs, most development continued off list. http://xrl.us/iipt Too Lazy? Luke Palmer posted a problem he was having with pugs. Warnock applies (which likely means it was made into a test and fixed). http://xrl.us/iipu Assigning to Named Subrules Jerry Gay had a question about the semantics of assigning to named subrules in PGE. Patrick explained that it created an array of capture objects. http://xrl.us/iipv Keyed Access to Match Objects Jerry Gay was having trouble with keyed access to match objects. After some discussion he implemented the keyed routine he needed and threatened to implement a few more. http://xrl.us/iipw PGE Now compreg s Patrick announced that PGE was now a better citizen in the parrot world, using compreg to locate the compiler instead of find_global. http://xrl.us/iipx Parrot I am going to get an English muffin. More in a moment... much better. Peanut butter is a wonderful thing. Where was I? Character Classes Done Jerry Gay wondered if the TODO about strings and character classes was still open. Patrick said it was resolved and should be closed. http://xrl.us/iipy rx_grammar.pl Progress? Jerry Gay wondered if rx_grammar.pl had seen any work lately. Warnock applies. http://xrl.us/iipz N Registers No Longer Get Whacked Leo, thanks to his new calling scheme, closed an RT ticket from Dec 2004. http://xrl.us/iip2 Report SVN Revision in parrotbug? Jerry Gay resurrected an old ticket wondering whether to add a revision field to RT tickets. http://xrl.us/iip3 Making Parrot Potable Florian Ragwitz was having trouble drinking Parrot so he wants to expend some effort to make it more potable. Apparently it does not get drunk so well by many machines in debian's build farms and he would like to fix it. When he asked how best to do his work (so as not to upset to many), Chip suggested a local SVK mirror. Hopefully after he is done even more people will be able to enjoy drinking the Parrot kool-aid. http://xrl.us/iip4 pbc_merge Requires LINK_DYNAMIC Nick Glencross provided a patch fixing pbc_merge on HP-UX. François Perrad noted that it was also problem on Win32. Jonathan Worthington explained that he was aware of the problem and that the dependency on the dynamic libraries would soon be removed. http://xrl.us/iip5 Compilable Option Will Coleda wants a -c option which will only tell you if the code is compilable for Parrot. http://xrl.us/iip6 Clerihewsiwhatsit? Inspired by Piers's inspiration from his name, Roger Browne wrote a Clerihew. Piers and Roger scare me. http://xrl.us/iip7 Debug Segments There was much discussion about what sort of interface to expose to HLL for debug segments. It looks like something good will come out of it all. http://xrl.us/iip8 Amber for Parrot version 0.3.1 Announced, Roger Browne displaying Amber 0.3.1 aroun': this latest version, magic cookie, is more than just a rookie. http://xrl.us/iip9 t/library/streams.t Failing Patrick is still having trouble with t/library/streams.t. It sounds like he would appreciate help, but Warnock applies. http://xrl.us/iiqa PGE::glob Issues Will Coleda spotted a problem with PGE::Glob. Patrick fixed it. http://xrl.us/iiqb find_word_boundary Unneeded Patrick posted his explanation of why find_word_boundary was an unneeded opcode. Too that end he posted a patch updating t/op/string_cs.t. Warnock applies to both thoughts. http://xrl.us/iiqc http://xrl.us/iiqd Coroutines Trample Scratchpads Nick Glencross noted that coroutine_3.pasm was trampling some memory. Leo said that scratchpads were on their way out. Nick wondered if the ticket should be closed now, or when this is fixed. I vote that we not close tickets until the problem is gone, but Warnock applies. http://xrl.us/iiqe MD5 Broken Chip noticed that MD5 was horribly broken recently. He decided that parrot should avoid it in favor of the SHA-2 family and maybe Whirlpool. If you are a crypto dork, you have your job cut out for you. http://xrl.us/iiqf Joshua Hoblitt joyously closed an RT ticket about removing $(MAKE_C). http://xrl.us/iiqg inconsistent dll linkage Jerry Gay announce that the last MSVC 7.1
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
Perl 6 Summary for 2005-10-10 through 2005-10-24
=head1 Perl 6 Summary for 2005-10-10 through 2005-10-18 All~ Welcome to another Perl 6 Summary. Sadly, this week's summary is not brought to you by cookies as I already finished them. Sadder still, it is also brought to you a week late. On the plus side, Mike Doughty's Haughty Melodic is quite good. =head2 Perl 6 Compilers This was a shockingly high volume fortnight for p6c with 5 different threads on it! =head3 Feather: A Retrospective Juerd thought that now would be a good time to evaluate the usefulness of feather to the community. Warnock applies, but he probably found answers off list... http://groups.google.com/group/perl.perl6.compiler/browse_frm/thread/f14d8337b681d4a9/c95fc3fdf6d46f5b#c95fc3fdf6d46f5b Google Groups : perl.perl6.compiler =head3 PGE Better, Stronger, Faster Patrick announced significant internal updates to PGE. It looks like things are coming along very nicely. Yay, Patrick! http://groups.google.com/group/perl.perl6.compiler/browse_frm/thread/10bff9a3100902a5/7135f5627205f9ca#7135f5627205f9ca Google Groups : perl.perl6.compiler =head3 PGE Now With Better Balance Patrick also announced the subrule CPGE::Text::bracketed which is similar to CText::Balanced from Perl 5. Now where, did I put my darn push-down automata. http://groups.google.com/group/perl.perl6.compiler/browse_frm/thread/b52eb566b1b74920/19e4709aa8d2ecd6#19e4709aa8d2ecd6 Google Groups : perl.perl6.compiler =head3 Object Space Thoughts Stevan Little posted some of his thoughts about how the meta-model can be built up from run time primitives. It is pretty neat. http://groups.google.com/group/perl.perl6.compiler/browse_frm/thread/e97984486b61828b/f34b165f8a919dcf#f34b165f8a919dcf Google Groups : perl.perl6.compiler =head3 Parrot PMCs within Pugs Christian Renz wondered how to get at Parrot's PMCs from Pugs. Autrijus admitted that that feature was not currently available, but offered a commit bit and suggested that adding tests would be a good start. http://groups.google.com/group/perl.perl6.compiler/browse_frm/thread/2f09e7c0503ea02f/d200cbd33f975d1d#d200cbd33f975d1d Google Groups : perl.perl6.compiler =head2 Parrot =head3 README.win32 Michael Cartmel fixed a few spelling errors in README.win32. Joshua Hoblitt applied the patch. http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/38ef8ca32b5fab74/f5fdce20a19d50a9#f5fdce20a19d50a9 Google Groups : perl.perl6.internals =head3 parrot-config.imc Documentation Roger Browne offered a patch fixing documentation in parrot-config.imc. Warnock applies. http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/2d86e5015608cb9e/43969cc2f25a0f7b#43969cc2f25a0f7b Google Groups : perl.perl6.internals =head3 Train Parrot to Flex In the RT clean up, an old ticket has resurfaced. Parrot needs to be updated to use flex 2.5.31, which is incompatible with 2.5.4. Patches welcome. http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/8dc8adf441fa6805/f24be3c94a3dfba7#f24be3c94a3dfba7 Google Groups : perl.perl6.internals =head3 Dynamism Defeats Static Analysis Patrick and I had a brief back and forth about detecting PGE recursion. The short answer is that it is possible in the static case, but not in the face of changing rules. Stupid halting problem, where did I put my PDA. http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/b08ed4ac97e3090c/d934e5866bdc9a43#d934e5866bdc9a43 Google Groups : perl.perl6.internals =head3 void function return Will Coleda is tired of special casing void functions and wants C() = function() to be legal in PIR. http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/c7e54dc1d2b887a9/74dcbe2b279de204#74dcbe2b279de204 Google Groups : perl.perl6.internals =head3 Bison = 1.75c Joshua Hoblitt noticed that the newer Bisons have slightly different error messages than older ones. He felt that we should either standardize on the newer bison or explicitly declare error messages. No official ruling on which... http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/79e9151802ec9185/c9d1a7dd3236d16b#c9d1a7dd3236d16b Google Groups : perl.perl6.internals =head3 __set_pmc_keyed_* Patrick needed a way to distinguish C__set_pmc_keyed_int from C__set_pmc_keyed. Leo gave it to him. http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/e8f0cf140b05669a/9a125b4a7524b9f2#9a125b4a7524b9f2 Google Groups : perl.perl6.internals =head3 HLL type mappings Roger Browne wondered how he could set HLL type mappings from PIR. Leo said it was not yet implemented or speced. Roger suggested adding a few opcodes. http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/5f6e488e14b5b859/39be8e39b16b9d71#39be8e39b16b9d71 Google Groups : perl.perl6.internals =head3 s/\@(directive)/:$1/g Jonathan Scott Duff submitted a patch which swapped @directives to :directives everywhere. Leo applied most of it in several smaller patches
Re: Perl 6 Summary for 2005-10-10 through 2005-10-24
Matt Fowles [EMAIL PROTECTED] wrote: =head3 Obsolete Win32 Exports Michael Walter found and removed some obsolete Win32 Exports. Jonathan Worthington applied the patch. Weren't we planning on auto generating these? The Plan is to mark functions that are to be exported with something that we'll #define to be the export directive on Win32, thus rendering the .def file as un-needed. However, before that's done we should really decide on what functions Parrot extension writers should be allowed access to, e.g. as part of the extension API. That's a design decision. I popped it in the ROADMAP, so it will be decided at some point. =head3 Leaky Parrot Alberto Simões is having trouble with Parrot leaking memory and a bad free. Warnock applies. The bad free was fixed by the patch I provided Alberto to try out (see below), though there are still lots of memory leaks that would be good to fix up. =head3 Fighting with a Tiger Alberto Simões was having troubles with Tiger. Jonathan Worthington provided a little C wizardry, and Alberto was happy. He asked to have the patch applied, but Warnock did instead. I did apply it. I thought I'd posted to the list that I'd applied it. I may be incapable of using an email client too. ;-) =head3 Debug Segments Jonathan Worthington announced that he was making progress on his debug segment work, but would soon half to dive into IMCC. As a slight corollary all existing PBCs were invalidated. I dived into IMCC. I'm survived the experience and did what was needed in there, though I think maybe my post about that was missed in the summary. I've got just a couple of small things to clear up now, but otherwise the PASM/PIR debug seg stuff is about done. Next up: HLL debug segs. Thanks for the summary, Jonathan
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: Perl 6 Summary for 2005-09-26 through 2005-10-02
On Oct 5, 2005, at 1:17, Matt Fowles wrote: Here Doc in PIR Will Coleda revived a thread from February about PIR here doc syntax. Looks like the syntax is ok. Jonathan Worthington has already implemented here doc syntax. Data::Escape::String Dislikes Unicode Will noticed that Data::Escape::String doesn't work on Unicode strings. This is fixed. Calling Vtable Functions from PIR Roger Browne found he can no longer call vtable functions from PIR directly. Leo felt that it was no longer necessary, The 'Vtable' function actually was a MMD infix function (__add) - I should have mentioned this in the first place. 'is no longer necessary' isn't quite correct. Usually there is no need to call any of these builtins directly, as Parrot's MMD system handles operator overloading. And finally: the bug is fixed. Thanks for the summary, leo
Perl 6 Summary for 2005-09-26 through 2005-10-02
Perl 6 Summary for 2005-09-26 through 2005-10-02 All~ Welcome to another summary, this time a day late because I was in Philly for Serenity. If you haven't seen Serenity yet you should stop reading this summary and go see it. The summary will be here when you get back. I promise. Perl 6 Compiler No postings this week. I blame Piers for scaring them off last week. Parrot Summary Links Last weeks load lib thread morphed into a conversation about the life span of the shortened links that appear in summaries. Piers pointed out that, although the short links expire, the long links are archived at perl.org. http://xrl.us/hvbn RT Cleanup Joshua Hoblitt has been continuing his massive clean up of RT. It makes me glad of two things: that someone is doing it and that I am not doing it. I won't post all of the links for these messages, but much work is getting done. debug segments Jonathan Worthington posted an RFC of his design for debug and source segments in Parrot's packfiles. People seem to like it generally. Hopefully the design will be implemented soon. http://xrl.us/hvbo Leo's Context Branch Hits the Mainline After a few more reviews from Chip, Leo's context branch has been dubbed ready and has been moved to the mainline. This marks the culmination of quite a bit of hard work from many people (especially Leo). Nice work all. http://xrl.us/hvbp -- bit of review http://xrl.us/hvbq -- merge Amber PMCs Roger Browne wondered how he should include Amber PMCs. Leo and Will suggested he put the pmcs into the languages directory similar to the way Tcl does it. http://xrl.us/hvbr Data::Escape Needs Tests Jerry Gay added a TODO for tests for Data::Escape. This would be a great thing for an eager lurker to cut his or her teeth on. http://xrl.us/hvbs Magic Numbers Bad, Magic Strings Good Last weeks magic thread ended down with the conclusion that Parrot would use a magic string instead of a magic number. http://xrl.us/hvbt Tests fail on win32 Jerry Gay opened a new RT ticket for some failing tests on Windows. http://xrl.us/hvbu Here Doc in PIR Will Coleda revived a thread from February about PIR here doc syntax. Looks like the syntax is ok. http://xrl.us/hvbv Win32 PCRE François Perrad enabled PCRE on Win32. Jerry Gay applied the patch. http://xrl.us/hvbw PLATFORMS and MinGW François Perrad updated the PLATFORMS file for MinGW. http://xrl.us/hvbx parrot_config dependency Nick Glencross provided a patch (for comment only) that eases the dependency on parrot_config. I am not sure that he got many comments. http://xrl.us/hvby Data::Escape::String Dislikes Unicode Will noticed that Data::Escape::String doesn't work on Unicode strings. http://xrl.us/hvbz Make Cleanup Joshua Hoblitt started RT tickets for several things that are part of a general make system clean up. http://xrl.us/hvb2 http://xrl.us/hvb3 http://xrl.us/hvb4 Parrot Leaves Crumbs Nick Glencross rediscovered the core files that parrot leaves around. This is a known problem. http://xrl.us/hvb5 Parrot Threads Dave Frost wondered what the plan for Parrot Threading was going to be. The answer (provided by Leo with more details from Jonathan Worthington) was OS threads. http://xrl.us/hvb6 Once deprecation's lost its fun... Leo went on a bit of fall cleaning adding things to the deprecated list. He even threatened to resolve some of them soon. http://xrl.us/hvb7 http://xrl.us/hvb8 http://xrl.us/hvb9 http://xrl.us/hvca Lexical and Variable Sized Register Frames With the calling conventions having been redone, Leo has plans to move to system of dynamically sized registers frames with static lexicals stored directly in them. Chip should produce details soon. http://xrl.us/hvcb Exception Handling Bug Roger Browne found a bug with exception handlers in the new scheme. Leo fixed it. I wonder if anyone made a test out of it... http://xrl.us/hvcc Config missing output Will Coleda noticed that Configure.pl was not outputting a response to a step on his platform. http://xrl.us/hvcd Parrot 0.3.0 TODO Robert J Eaglestone wondered what would be a good way of chipping in. Will Coleda, predictably, tried to turn him towards working for the good of Tcl. http://xrl.us/hvce Tru64 Issues Jarkko Hietaniemi appears to have recently come into some time with a Tru64 machine. He found lots of problems, which he added to RT, so I won't link them here. src/extends.c chromatic made good on a promise to auto generate src/extends.c automatically. Leo quibbled over pod, but thought it was good. http://xrl.us/hvcf Calling Vtable
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/
Summary rollover date
I thought we'd switched to a Monday deadline for the summary and a Sunday night roll over. I just noticed your last summary ended on a Monday night. -- 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. http
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
Perl 6 Summary for 2005-09-12 through 2005-09-19
Perl 6 Summary for 2005-09-12 through 2005-09-19 All~ Welcome to another Perl 6 Summary, this time brought to you with a shorter pause (::grumble:: $WORK ::grumble::) and assisted by cookies. Perl 6 Compilers Circular Preludes for Fun and Confusion Yuval Kogman posted a really interesting idea of using a circular prelude to facilitate creation of a new run time. If the prelude defines everything it can in terms of itself (even circularly if need be), then a new run time implementer can break the circle wherever is most convenient for the run time. It looks really cool to me. http://xrl.us/hn6h PxPerl Site Change Grégoire Péan announced that he was having problems with his old domain and that PxPerl is now hosted at http://pxperl.com http://xrl.us/hn6i Parrot 13! == BIG! James Ghofulpo noticed that the example factorial program included with Parrot gives incorrect results on 32 bit machines. Will Coleda offered to clean the old PASM examples into shiny new PIR. http://xrl.us/hn6j Properly Formatted POD Unlike these summaries, Parrot's docs should be in properly formatted POD. Joshua Hoblitt provided patches to fix them up and test them. Bernhard Schmalhofer applied the patches. http://xrl.us/hn6k Bad IMCC Error Message Joshua Hoblitt opened an RT ticket for the error message imcc outputs upon seeing a non-existent PMC. No takers yet. http://xrl.us/hn6m Globbing Like Tcl Amos Robinson opened am RT ticket requesting Tcl Syntax Globbing in PGE. http://xrl.us/hn6n AMD64 Build Error Joshua Hoblitt posted a build error involving posix_memalign on AMD64. Warnock applies. http://xrl.us/hn6o TODO: Call for B0rked chromatic the capless put out a call for specific TODO items that Parrot needed. Many people provided suggestions. http://xrl.us/hn6p Documentation Keyword Tagging Joshua Hoblitt opened a ticket requesting keyword tagging (via ) . http://xrl.us/hn6q leo-ctx5 on Win32 François Perrad solved a few link problems on Win32 for the leo-ctx5 branch. Jonathan Worthington applied it. http://xrl.us/hn6r Support Different Compilers Andy Dougherty provided a patch making it easier to compile parrot with a different options then Perl 5. Bernhard Schmalhofer tentatively applied it, but despite his fears nobody hollered. http://xrl.us/hn6s Tcl Leo's Context My that sounds dirty Regardless Leo and Will Coleda, with much help from assorted others) managed to get all of the Tcl tests passing in the leo-ctx5 branch. http://xrl.us/hn6t 4 Down 7204 to Go Andy Dougherty posted a patch which eliminates 4 of Parrot 7208 compiler warnings on SPARC. Warnock applies. http://xrl.us/hn6u Circular Finalization Returns From the Dead Nicholas Clark wondered how Parrot would handle PMC loops with finalizers. Leo and I provided some ideas. Nothing is officially specced yet. http://xrl.us/hn6v make cleaner Joshua Hoblitt provided a patch which makes make clean cleaner. Warnock applies. http://xrl.us/hn6w Pack Packfiles, Fix Fixups Jonathan Worthington split the fixup and unpack functionality of Packfiles so that he could later create a pbc_merge. Later he did that. http://xrl.us/hn6x -- earlier http://xrl.us/hn6y -- later Taking Exception to Leo's Tcl Some days my head is just in the gutter. Will Coleda update Tcl to use exceptions for TCL_RETURN, which apparently simplifies things. http://xrl.us/hn6z Tcl on Windows Jerry Gay noticed that Tcl was not building on Windows. Will Coleda suspected that it got fixed; he was right. http://xrl.us/hn62 Implementing Splice Nicholas Dronen decided to try and implement splice in *PMCArrays, after suggestions from Leo and Jonathan Worthington. I have found these Arrays to be good starting points in the past. Good luck, Nick. http://xrl.us/hn63 Optimize MinGW François Perrad provided a patch making Configure.pl --optimize and Configure.pl --optimize=flags work on MinGW. Jonathan Worthington applied it. http://xrl.us/hn64 Perl 6 Language Object Model Pictures Stevan Little posted the latest pictures of his MetaModel. Nathan Gray thanked him and put out a quiet request for a diagram about roles. http://xrl.us/hn65 Coersive Context Juerd posted his thoughts about using types as context specifiers and coercers. Reaction seemed interested but limited. http://xrl.us/hn66 Perl 6 and Undefined Behavior Nicholas Clark asked if Perl 6 was going to have any undefined behavior or guarantee any sequence points. Larry does not want to have any undefined behavior, but thinks that the reference implementations quirks might be the definer for certain things. He did point
Summary for the last 3 weeks
The Perl 6 Summary from 2005-08-24 to 2005-09-11 It's been a while hasn't it? We'll start as usual with perl6-compiler This week in perl6-compiler Changed ??:: to ??!! in Pugs Following discussion of the ternary operator in perl6-language, Benjamin Smith altered pugs to use the new ??!! syntax. http://xrl.us/hjb5 Meanwhile in perl6-internals Which 'English'? Joshua Hoblitt posted a patch to intro.pod fixing a few typos and wondered whether the docs should be in British or American English. Apparently the Perl 5 style rule is that British authors shouldn't be required to write American English, and vice versa, but that a consistent style within a document is preferred. The consensus so far seems to be Any documentation is good so write what's comfortable for you. http://xrl.us/hjb6 Meanwhile, at the test Warne just got Trescothick out. 109 for 4 Python PMCs Sam Ruby, Leo and Chip had a discussion of how to implement python semantics for parrot. I'm not sure I followed what was going on, but it looked like good 'crunchy' stuff. http://xrl.us/hjb7 Zcode interpreter release Amir Karger announced that he'd adopted the Zcode interpreter that Leo posted in February (having, according to Amir, done the hard parts). Apparently there's 41 opcodes to do just to get version 3 of the Z-machine working, and then there's the problem of making Zops into loadable Parrot ops. He had a few problems with the test suite which got fixed in discussion. http://xrl.us/hjb8 Pirate refactoring report Michal Wallace posted an update on Pirate (the python to parrot compiler). He and Curtis Hall have been taking advantage of a Google Summer of Code grant to refactor the (Curse! Now Flintoff's out. Caught bowled Warne for 8) current mess. Their first step was a generic transformation module which has apparently made life easier for the compiler module. They've also produced a plan in code for how they hope they'll have things working once the refactoring's finished and asked for comments. So far comments have not been forthcoming. http://xrl.us/hjb9 http://xrl.us/hjca Tcl in the leo-ctx5 branch Will Coleda's been having a crack at getting ParTcl working with the leo-ctx5 branch and had a few problems. It turns out that he'd tickled a bug that Leo described as 'a bit non-trivial'. It took him a while, but it got fixed eventually (Over 10 days, but he did have the excuse of being at YAPC::Europe for a chunk of that time). http://xrl.us/hjcb Meanwhile at the Oval They've gone in for lunch at 127 for 5. Hopefully I'll be able to get down to some summary writing without being on the edge of my seat for a while. Branch Review Chip posted a review of the leo-ctx5 branch prior, describing it as A significant improvement. The body of the review covers user visible changes and a few niggles with the current state of the branch. Leo replied with a few questions and explanations. http://xrl.us/hjcc GMC release Nattfodd announced the 'release' of GMC, the generation garbage collector he's been working on as part of Google's Summer of Code. It's not quite bug free yet, but the SoC deadline was the 1st of September, so that's when it got released. Discussion ensued, hopefully helping to triangulate bugs. http://xrl.us/hjcd Call for B0rked Following a discussion with Chip and Leo, chromatic posted a call for entries in a 'very specific TODO list'. A list of things that should work, but don't. He contributed a couple himself. Various other suggestions were offered. http://xrl.us/hjce Optimizer Documentation Curtis Rawls spent part of his Summer of Code project wishing there was better documentation of the Parrot optimizer. So he wrote some. Brent Royal-Gordon converted it to POD format, and Leo asked for someone to add it to the repository. http://xrl.us/hjcf HLL Namespace Design Matt Diephouse posted a list of namespace features that he thinks are necessary to support all the target languages and asked for some comments. He got several, including one from Larry. http://xrl.us/hjcg Global Destruction Nicholas Clark had some questions about finalization and destruction in Parrot. In particular, he asked: Does parrot make any guarantee that all objects will be rendered down to bare memory before program exit. Leo answered and the answer was good enough for Ponie. Huzzah. http://xrl.us/hjch Meanwhile, at the Oval Ah... they're back on the pitch... I may be slowing down again... Meanwhile, in perl6-language Demagicalizing Pairs Discussion of Luke's proposal to demagicalize Pairs continued. It turns out that it's actually a discussion of how to do named argument calling... http
Re: Perl 6 Summary for 2005-08-15 through 2005-08-22
On Aug 23, 2005, at 3:43, Matt Fowles wrote: Perl 6 Summary for 2005-08-15 through 2005-08-22 Java on Parrot I vote for Jot. That's already occupied by another language http://en.wikipedia.org/wiki/Iota_and_Jot. Perl 6 Language Type Inferencing in Perl 5 Autrijus (while discussing type inference in Perl 6) recalled that there was a google summer of code project on Type Inferencing in Perl 5. Gary Jackson, the summer coder, provide a more detailed description of his work. http://search.cpan.org/~bargle/Devel-TypeCheck-0.01/lib/Devel/ TypeCheck.pm Thanks for the summary, leo
Re: Perl 6 Summary for 2005-08-15 through 2005-08-22
On Mon, Aug 22, 2005 at 09:43:41PM -0400, Matt Fowles wrote: Java on Parrot Tim Bunce asked some preliminary questions about Java on Parrot. I provide preliminary answers, and Nattfodd and Autrijus posted links to related work. The important question of what it should be called remained unraised. I vote for Jot. http://xrl.us/g8b9 For the record, my interest isn't so much Java ON Parrot as Java WITH Parrot. Bidirectional interface between the Parrot VM and a linked-in Java VM. Tim.
Perl 6 Summary for 2005-08-15 through 2005-08-22
Perl 6 Summary for 2005-08-15 through 2005-08-22 All~ Welcome to another monday summary, which hopefully provides some evidence that mondays can get better. It always feels like writing summaries is an uphill battle, perhaps I should switch to writing about Perl 6 Language first and Perl 6 Compilers last. Then it will be downhill... Maybe next time. Perl 6 Compilers More Random Pictures Autrijus posted links to two more images he had created. This time the images were not about pugs, but were just kind of cute. He also provided an explanation of one when prompted. http://xrl.us/g8bw Methods as Functions Yiyi Hu noticed that a method of one argument could not be used as function. Autrijus offered Yiyi a commit bit, but also kindly posted the resolution to Perl 6 Language. Thanks Autrijus! http://xrl.us/g8bx Methods on Code Blocks Yiyi Hu discovered that { a b c }.paris would cause pugs to spin out of control. Luke Palmer fixed it. Hopefully one of the two of them added a test... http://xrl.us/g8by Autrijus's Secret Sauce Kris Bosland asked a few question I have been wondering about Autrijus new graphics. Autrijus kindly provided the answers. http://xrl.us/g8bz Documentation Attack Kevin Tew has decided the best way for him to delurk is to update documentation for Pugs. chromatic and Dudley Flanders both provided support, information, and suggestions for him. http://xrl.us/g8b2 Neko VM Nicolas Cannasse announed his release of a high level multi language VM and wondered what others thought of creating a Perl 6 to to Neko compiler. Autrijus and Leo provided a few corrections and comments. http://xrl.us/g8b3 Parrot The FAQ, She is GONE! Amias Channer noticed that the faq on parrotcode.org was gone. While he was warnocked, the faq appears to be back. http://xrl.us/g8b4 Platform Specific C Files Stephen Hill wanted to know where to put a platform specific C file to provide missing functionality. Leo provided a few friendly pointers. http://xrl.us/g8b5 TclArray.get Amos Robinson provided an implementation of get for TclArray. Will greatfully applied the patch. http://xrl.us/g8b6 ICU Being Passed Up Adrian Lambeck wondered if icu was being passed up by Configure.pl. Warnock applied. So Adrian took matter into his own hands by providing a possible solution. Jerry Gay offered to take ownership of the problem if no ICU enabled soul picked it up. No progress reports since then though... http://xrl.us/g8b7 http://xrl.us/g8b8 Java on Parrot Tim Bunce asked some preliminary questions about Java on Parrot. I provide preliminary answers, and Nattfodd and Autrijus posted links to related work. The important question of what it should be called remained unraised. I vote for Jot. http://xrl.us/g8b9 gdbmhash.t Failures Tim Bunce noticed that gdbmhash.t was failing with an unhelpful error message. Andy Dougherty provided a patch that made the error message slightly more helpful. Jerry Gay applied it. http://xrl.us/g8ca BEGIN Blocks Leo posted some thoughts and information about BEGIN blocks in Perl 6 and the @IMMEDIATE pragma in PIR, it involved creating constant PMCs and freezing them into the bytecode. Then he made it work. http://xrl.us/g8cb -- thoughts http://xrl.us/g8cc -- actions Amber for Parrot Citing chatter overheard on its intelligence networks Parrot raised the terror alert to Amber, or maybe Roger Browne released version 0.2.3 of his Eiffel-like scripting language, Amber. I can never keep track of these things. http://xrl.us/g8cd Tcl parray Amos Robinson offered to provide an implementation of Tcl's parray inluding tests. Will wanted to apply it, but the attachment did not come through. http://xrl.us/g8ce Parrot vs Neko Nicolas Cannasse wondered why Parrot performed so poorly on the fib benchmark. Leo explained that this benchmark stressed a currently unoptimized portion of parrot (function calls). He also provided a few pointers on which benchmarks parrot did well on. http://xrl.us/g8cf Using PMCs from C Klaas-Jan Stol's Lua compiler uses only PMCs. Thus he wanted to know how to access these PMCs from NCI functions. Leo provided an answer, but also suggest he looked at the new calling conventions which would do auto-conversion in both directions. http://xrl.us/g8cg PMC for Reference Counting Nicholas Clark posted a relatively full analysis of how the DODs registration system could be generalized for further reuse. He also asked for ideas about names. I think the whole thing looks good and that AddrRegistry is a good name. Perhaps that has too many vowels... AddrRgstry and sometimes AddrRgstr
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
Perl 6 Summary for 2005-08-02 through 2005-08-10
Perl 6 Summary for 2005-08-02 through 2005-08-10 All~ Welcome to another summary, brought to you by chinese food. The attentive among you will notice that this summary is a day late, because I did not feel like doing it yesterday. If only I could do that at work... Perl 6 Compilers Pugs Argument Processing Vadim Konovalov submitted a patch to pugs affecting @*ARGS processing. Maybe it got applied, maybe not, Warnock applies. http://xrl.us/g3op Type Inferencing Autrijus wants to type push perl 6's type inferencing as far as it can go (and maybe a little beyond). To this end he has been soliciting input from all comers. It looks like he has put a lot of thought and research into it. One day I expect to be thanking Autrijus for important (if likely difficult to understand) compiler errors and warnings.. http://xrl.us/g3oq WWW::Kontent Release Brent 'Dax' Royal-Gordon announced the release of WWW::Kontent 0.01: a flexible web content management system written in Perl 6 and executable with Pugs. It looks nifty to me... Maybe we need to fight Ruby on Rails with Perl 6 on Pylons or something. That doesn't quite have the right ring to it... there has to be something catch there somewhere. http://xrl.us/g3or Array Interpolation Phil Crow wondered why his arrays were not being interpolated in pugs. Ingo Blechschmidt and Patrick explained that @foo does not interpolate, but @foo[] does. I sense a frequently asked question here... http://xrl.us/g3os Pugs 6.2.9 Released Autrijus announced the release of Pugs 6.2.9. It is full of nifty new feaures including the ability to lay on hands! http://xrl.us/g3ot Whitespace Before Parens Andrew Shitov wondered why whitespace between function name and parens was no longer allowed. Autrijus explained that it allows print (1+2)*3 to print 9 instead of 3. As someone who just last week explained the pecularity of ruby printing 3 in the above situation to a complete novice, I welcome the change. http://xrl.us/g3ou Contain Model Pictures Autrijus posted a few pretty pictures explaining the compiler and container models. While the compiler model was readily understandable to me, the container one wasn't. Fortunately, when prompted Autrijus provided a great explanation to accompany the diagram. http://xrl.us/g3ov -- thread http://xrl.us/g3ow -- containers http://xrl.us/g3ox -- compilation PxPerl 5.8.7-4 Upon discovering that Pugs released a new version, Grégoire Péan released a new version of PxPerl that includes the new Pugs. I (and many others) thank Grégoire for lowering the entry bar for Perl 6 hacking on windows. http://xrl.us/g3oy Hosting Lexical Declarations Declaring lexicals mid block confuses things, expecially declaring them mid statement as in $x = $x + my $x if $x; . Autrijus proposed hoisting declarations of lexicals to the top of the block. Unfortunately, this can make CALLER:: do funny things. Thus, he suggests outlawing it. Larry agreed. http://xrl.us/g3oz Parrot export LD_LIBRARY_PATH Bdonlan noticed that parrot's test suite was not setting LD_LIBRARY_PATH which makes tests fail. Leo pointed out that most users manually set their LD_LIBRARY_PATH as parrot often needs this, but he agreed that the tests should do it just in case. http://xrl.us/g3o2 Improved Argument Processing for ops2c.pl Tom submitted a patch which improves the command line argument processing powers of ops2c.pl. Warnock applies. http://xrl.us/g3o3 ANSI Escape Codes in Parrot Klaas-Jan Stol was having trouble putting special characters like ANSI clear screen and ¥ into strings. Nick pointed out that he need to be careful with encodings and escapes. In parrot \O is an octal escape, in Lua it is apparently not. http://xrl.us/g3o4 Parrot 0.2.3 Leo announced the release of Parrot 0.2.3 Serenity, which reminds me, Firefly is coming back soon!! I can't wait! Oddly google seems to have swallowed his release notice but not his warnings... http://xrl.us/g3o5 Strange Filename Based Bug Michal Wallace found a bug that would disappear if the file was renamed. Leo, with the help of valgrind, provided Michal with a pointer. Michal used that to find a likely culprit and provide a patch, which Leo then refined. http://xrl.us/g3o6 GDBM Hash on MinGW François Perrad provided a patch fixing gdbmhash on MinGW. Bernhard Schmalhofer applied it. http://xrl.us/g3o7 PyString Link Problem François Perrad also fixed a link problem with pystring.o. Jonathan Worthington applied that patch. http://xrl.us/g3o8 Filling a Large Data Structure Amir Karger wanted to know how to fill a large data structure in PIR other than
Perl 6 Summary for 2005-07-19 through 2005-07-26
Perl 6 Summary for 2005-07-19 through 2005-07-26 All~ Welcome to another Perl 6 Summary brought to you by microwaved chinese food and air conditioning. I love the modern era. Without further ado, I bring you Perl 6 Compilers Grégoire Péan announed the release of PxPerl 5.8.7-3, allowing people who want to play with Pugs and Parrot on windows easy access. http://xrl.us/gv6k Test Report for Windows Ronald Hill reported some failing tests for Pugs on windows. Fortunately, given Pugs's developement, there is a reasonable chance of these problems being fixed. Unfortunately, given Pugs developement, no such information made it to the list. http://xrl.us/gv6m Parsing Perl6 Rules Nathan Gray wondered how Jeff Pinyan's parsing perl6 rules project was going. Jeff said that it did not get very far, but he posted what he did have to http://feather.perl6.nl/~japhy/. http://xrl.us/gv6n Pugs Problems Vadim Konovalov was playing with slurp and found two problems. Adriano Ferreira showed him how to work around slurp not accepting a :raw option. Nobody commented on the peculariar $*ARGS[0] value when the argument is -foobarfluffy. http://xrl.us/gv6o Official Perl6 Rules Grammar Patrick announced an official Perl 6 grammar whichi he would be mainting closely with PGE in Parrot. It is incomplete at this point, but patches are most welcome. http://xrl.us/gv6p PIL Nodes's Descriptions Allison Randal posted a request for a clue batting, listing various types of nodes in PIL and explaining her guess at their descriptions. Stuart Cook and Patrick both provided a little help, although not everything on her list was addressed. http://xrl.us/gv6q Perl 6 FAQ Patch Autrijus provided a patch for the Perl 6 FAQ removing an outdated question. Robert Spier applied the patch (modulo some confusion about staged vs live copies). http://xrl.us/gv6r Parrot Opcode Optimizability Curtis Rawls noted that it is often simpler from an optimizer writers standpoint to do constant folding and optimization on a smaller set of opcodes (just one variant add instead of five (seven if you count inc and dec)). Leo explained that removing these opcodes isn't an option, but that a suggestion for compiler writers to only emit the more verbose codes could be added to the faq. http://xrl.us/gv6s Refcounting Hash Nicholas Clark wants to use a hash to hold reference counts for Ponie (something like dod_register_pmc in pmc.c), but he doesn't want to duplicate code. Leo suggested that he move some of the code into a pmc and then switch the real registry to use that PMC. http://xrl.us/gv6t New PGE Test Mitchell N Charity submited a test for a large pugs grammar, which currently fails. Patrick noted that the test like came from rx_grammar.pl in the Pugs distribution. This probably led to his above addition of an Official Perl6 Rules Grammar. http://xrl.us/gv6u Jit Emit Help Adam Preble decided that he would play with an x86_64 code generator. Unfortunately, he was hitting some stumbling blocks. Leo offered to help him and provided pointers from #parrot. http://xrl.us/gv6v Call Opcode Cleanup Leo wants to cleanup some of the various invoke opcodes. He posted a request for comment, but Warnock applies. It seems that Leo's request for comments like this get Warnocked a lot... http://xrl.us/gv6w http://xrl.us/gv6x spawnw Return Value Jerry Gay opened a TODO ticket for switching spawnw to return something object like to wrap platform-specific oddities. Prompted by Jonathan Worthington submitting a patch to make the spawnw tests pass on windows (which was applied). http://xrl.us/gv6y -- Ticket http://xrl.us/gv6z -- TODO Bugs in ops2vim.pl Amir Karger noticed a bug in ops2vim.pl and suggested a fix. Jerry Gay fixed it. http://xrl.us/gv62 Leo's Ctx Branch Tests Jerry Gay and Leo worked together to get his branch passing a few more tests on windows. Nick Glencross wondered if the python dynclasses tests were being run too. Jonathan Worthington explained that they were being skipped for the moment. http://xrl.us/gv63 Raised by the Aliens Matt Diephouse was surprised to discover that you cannot use addparent with a PMC for either argument. He suggested that this be made to work or officially documented. http://xrl.us/gv64 Patches Accumulating Leo requested that people with commit bits pick up some of the patches that were building up as he was running a little low on tuits. http://xrl.us/gv65 Dump CFG Curtis Rawls moved the dump_cfg call from reg_alloc.c to cfg.c. Leo applied the patch. http://xrl.us/gv66 string_to_cstring leaks Jonathan Worthington
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
Re: more .method (was: Perl 6 Summary for 2005-07-05 through 2005-07-12)
On Thu, Jul 14, 2005 at 12:14:57PM -0600, John Williams wrote: : Actually I took his question to be: : : If I explicitly name my invocant in the method signature, does that give : the compiler enough assurance that I'm not going to use .method to mean : $?SELF.method, and it will allow me to safely use .method as $_.method in : for and given? That question also came up in the cabal's last telecon, and I basically decided that it doesn't. If you want those assurances, a single use self; would be sufficient, even if you don't use the default of self, or whatever self defaults to. Or we might just go ahead and provide an explicit pragma dealing with the .foo construct, but I'll be switched if I can come up with a decent name for it. use topic; though arguably use topic it; would tend to mean that you want to always use it for the topic and leave .foo for $?SELF.foo. So maybe if you say use dot; it defaults to use dot '$_'; and in general says, I know the heck what I'm doing about dot. [From there our discussion digressed/descended into whether there should be an I am an expert pragma. I was dubious about any sort of non-feature-based razor.] Anyway, the people who always want to use .foo for self calls could then say use dot '$?SELF'; and then such programs could be plagued by self-dot. Larry
Re: Perl 6 Summary for 2005-07-05 through 2005-07-12
Damian Conway wrote: Important qualification: Within a method or submethod, C.method only works when C$_ =:= $?SELF. C.method is perfectly legal on *any* topic anywhere that $?SELF doesn't exist. Just to be clear, this includes any method/submethod with an explicitly named invocant, I hope.
Re: Perl 6 Summary for 2005-07-05 through 2005-07-12
Dave Whipp skribis 2005-07-13 8:44 (-0700): Within a method or submethod, C.method only works when C$_ =:= $?SELF. C.method is perfectly legal on *any* topic anywhere that $?SELF doesn't exist. Just to be clear, this includes any method/submethod with an explicitly named invocant, I hope. No, $?SELF exists in every method. It's not the *default* invocant variable, it's the *always there* invocant variable. There is no default variable anywhere in the language that isn't $_. Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html
Perl 6 Summary for 2005-07-05 through 2005-07-12
Perl 6 Summary for 2005-07-05 through 2005-07-12 All~ Welcome to another summary from the frog house. A house so green it can be seen from outerspace (according to google earth). Perl 6 Compiler Building Pugs Workaround Sam Vilain posted a useful work around to the error error: field `_crypt_struct' has incomplete type which occurs on some systems. Fortunately, Salvador Ortiz Garcia found a fix. http://xrl.us/gqjy http://xrl.us/gqjz Pugs, Pirate. Pirate, Pugs. Autrijus began plotting with the Pirate folks. Thoughts include unifying PIL and PAST or possibly retargeting PIL to PAST. Perhaps the result should be a more nautical dog... maybe schipperke. http://xrl.us/gqj2 Implicit Invocants and Pain Larry (as will be summarized later) ruled that ./method was gone. he further ruled that .method would pitch fits at either compile or run time if $_ =:= $?SELF was false. Autrijus found this quite difficult to implement. Talk continues, my instincts tell me that this too will pass, although Larry assures us that it is absolutely permanent for at least a week. http://xrl.us/gqj3 Parrot Key Question Klass-Jan Stol found that using a assigning a floating point value to a key and then using it make parrot segfault. Warnock applies. http://xrl.us/gqj4 Parrot Copyrights Allison Randal hinted that The Perl Foundation has almost finished hammering out some legal stuff and there will soon be sweeping changes throughout the repository addressing copyright issues. http://xrl.us/gqj5 Character Classes in Globs Will Coleda noted that Tcl would pass more tests if PGE supported characters classes in globs. Patrick, unable to resist the siren call of passing tests, implemented it. http://xrl.us/gqj6 Amber for Parrot Roger Browne announced that he had succeed in extracting viable DNA from a Parrot encased in amber since the Jurasic age. Either that or he release Amber version 0.2.2... not sure which. http://xrl.us/gqj7 Leo's Branch Leo has created a branch in SVN (branches/leo-ctx5) of his work implementing the new calling conventions. This led to some discussion of how to deal with optional arguments. http://xrl.us/gqj8 http://xrl.us/gqj9 Leo's Branch Meets mod_parrot Jeff Horwitz posted some observations and troubles he was having with Leo's branch of new calling conventions. Leo warned that the branch was still young, but would gladly take test cases. http://xrl.us/gqka Leo's Branch Meets PGE After the initial discussion of optional parameter, Patrick updated the leo_ctx5 branch of PGE to the new calling conventions. All tests pass. http://xrl.us/gqkb Get onto the Bus Matt Diephouse found a Bus Error when running languages/tcl/examples/bench.tcl. Warnock applies. http://xrl.us/gqkc MinGW Patch Resurrection François Perrad resurected a patch from mid June with a set of action items. Warnock applies. http://xrl.us/gqkd Scared Parrots Like Scheme Joh Lenz posted an announcement that he had an alpha version of Chicken (a Scheme to C compiler) backending to Parrot. Leo provided answers to some of his questions. http://xrl.us/gqke Bytecode vs PMCs Matt Diephouse posted a list of questions about the place of PMCs. Some of the core tradeoffs include: maintability, portability, optimization, duplicate implementations, and security. http://xrl.us/gqkf make svnclean Leo pointed out that make svnclean got removed, but that he found it useful. Chip suggested that it be renamed make svnclobber, as it does more than just clean. http://xrl.us/gqkg pmc2c.pl Bug Nicholas Clark found a bug in the shortcut to avoid writing a pmc dump file. Warnock applies. http://xrl.us/gqkh Define cache Nicholas Clark suggested that it was probably not wise to #define cache. So they removed it. http://xrl.us/gqki Parrots Getting Smarter Leo pointed out that at least one parrot understood the concept of zero, putting it some distance ahead of romans when it comes to math. Once the Parrots start to grow opposable thumbs, I will welcome our new Parrot overlords. http://xrl.us/gqkj Leo's Branch Meets Exceptions Leo posted two suggestions for how the new calling conventions could interact with Exceptions. Autrijus liked the one that unifies exception handlers with the rest of calls and returns. http://xrl.us/gqkk Control Flow Graph Bugs Curtis Rawls noted what he thought might be a bug in the compute_dominators function. Leo confirmed that it was likely a bug. Later he posted a note saying he was working on a new implementation for some of the CFG algorithms. He asked for a hand, but Warnock applied. Actually, I think I have
Re: Perl 6 Summary for 2005-07-05 through 2005-07-12
Matt Fowles summarized: Method Call on Invocant Now ./method is gone, and .method only works when $_ =:= $?SELF . Important qualification: Within a method or submethod, C.method only works when C$_ =:= $?SELF. C.method is perfectly legal on *any* topic anywhere that $?SELF doesn't exist. Damian
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
Re: Perl 6 Summary for 2005-06-21 through 2005-06-28
On Tue, Jun 28, 2005 at 08:11:24PM -0400, Matt Fowles wrote: Parrot Loses with Fedora Core 4 Patrick reported that Fedora Core 4 and Parrot don't get along well. Leo suggested a possible solution. No response from Patrick. An update: Patrick submitted a patch based on Leo's suggestion, Leo applied the patch, and now Fedora Core 4 (gcc 4.0) and Parrot seem to get along just fine. I guess I should've cc'ed my patch to the list...? Pm
Perl 6 Summary for 2005-06-21 through 2005-06-28
Perl 6 Summary for 2005-06-21 through 2005-06-28 All~ Long time no see... err, write... uh, read... um... this. Yeah, long time no this. As Piers hinted, two weeks ago I moved. Moving sucks. For those of you who care, I am still in Cambridge, for those of you who care more, I think you misunderstand the summarizer/summary reader relationship. Essentially it revolves around summaries, and the summary of my move is Cambridge to Cambridge. As Piers noted last week, this is a low volume high action week. In no small part do to the hack-a-thons. Last week's was in Austria, this week's is near Toronto. Perhaps some nice soul who was actually at these hack-a-thons will summarize it when it is over. Perl 6 Compiler Patrick announced that PGE now supports grammars and more built-in rules. He even offered to field requests for built-in rules (although he would prefer patches). http://xrl.us/gkev Caller's Context Gerd Pokorra wanted to know how to determine if his sub is called in void context. He conjectured that want might fill his wants. No response yet. http://xrl.us/gkew Self Hosting Goals Millsa Erlas explained that one good reason for Perl6 to be self hosting is that it would allow the people who love it most (Perl hackers) to hack on it. The theory being that low level languages like C unnecessarily narrow the field of contributors (especially those that only know perl). Some concerns were expressed over confusion about the language Ponie should be written in. No one disputes this... C. http://xrl.us/gkex Parrot Indexing Hashtables Klaas-Jan Stol asked for a clue bat with respect to indexing hash tables in PIR. Joshua Juran and Leo each took a swing. http://xrl.us/gkey Parrot Loses with Fedora Core 4 Patrick reported that Fedora Core 4 and Parrot don't get along well. Leo suggested a possible solution. No response from Patrick. http://xrl.us/gkez Default Method Resolution Order Roger Browne wondered what the default MRO order was. Leo provided the answer: left-to-right, depth-first, discard all but the last occurrence of duplicates, divine intervention. http://xrl.us/gke2 Win32 Tests Failing Craig the Last-Nameless-One posted a list of failing tests and problems on Windows. Leo provided a few answers. http://xrl.us/gke3 Method Inheritance Needs Perl Loving Leo announced a perl job for the interested: method inheritance in the PMC compiler. This naturally led to discussion of numerical hierarchies. I was a little disappointed the quaternions got mentioned, but Hamiltonian and Surreal Numbers were left out. Honestly, where are our priorities. http://xrl.us/gke4 Tracing and Debugging Pain Matt Diephouse posted a general description of the problems he was having with tracing, debugging, and GC. Warnock might apply in a day or two. http://xrl.us/gke5 Segmented Context and Register Memory Chip posted a partial reply to Leo's context and register overhaul patch. Andy Dougherty responded to some of Chip's finer points. If you are interested in the nuances of C's pointer pain, this thread makes an interesting read. http://xrl.us/gke6 Improving Parrot's Test Framework chromatic wants to improve parrots test framework by stealing ideas from Test::Class. He wants to know if anyone else is interested in this. http://xrl.us/gke7 setattribute Fails with Multi-level Inheritance Roger Browne opened a ticket describing an error with setattribute when several layers of inheritance are used. http://xrl.us/gke8 Register Allocation Bug Leo opened a ticket for a problem with improper control flow tracking. Bill Coffman wondered whether the new register design had been implemented yet. http://xrl.us/gke9 Pass by Value PMCs Klaas-Jan Stol mused that the new calling conventions could be leveraged to allow passing PMCs by value. http://xrl.us/gkfa Parrot Fall Down Go Boom Matt Fowles reported a segfaulting parrot that passes its tests. Sadly, no one solved his problem in the 4 hours between his posting it and writing the summary. http://xrl.us/gkfb Perl 6 Language You Know That, But You Go On As Piers noted, arguments about ./method vs .method continue. Like Piers, I don't like ./. I guess I was the only person who did like $^ as the invocant. Ah well, I guess I will just go on summarizing... http://xrl.us/gkfc Binding Functions Piers wanted to use a Ruby idiom involving rebinding functions. Damian told him that he could, but also pointed him to wrap . http://xrl.us/gkfd OO Questions BÁRTHÁZI András posted a question about method calls in Perl 6. Juerd and Piers provided answers. http://xrl.us/gkfe Autoload
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 http
Perl 6 Summary for 2005-05-24 through 2005-05-31
Perl 6 Summary for 2005-05-24 through 2005-05-31 All~ Welcome to another Perl 6 summary, brought to you by Aliya's new friends, Masha Nannifer and Philippe, and my own secret running joke. Without further ado, I bring you Perl 6 Compiler. Perl 6 Compiler method chaining Alex Gutteridge discovered that he couldn't chain attribute access like $bowl.fish.eyes.say; in Pugs. Later he provided his example in test form (in case anyone wanted to add it). Maybe they were added to the test suite, maybe not: Warnock applies. http://xrl.us/f95k Pugs link issues on Debian Sid BÁRTHÁZI András was having trouble making Pugs work on Debian Sid with perl 5 support. Autrijus provided helpful pointers. I assume from his final silence that the final pointer worked. http://xrl.us/f95m Pugs.AST.* compilation Samuel Bronson wanted to speed up the compilation of Pugs.AST.* modules by turning off optimizations. Autrijus told him that this was a core module that needed it speed, and optimizations would stay. http://xrl.us/f95n Pugs.Types export list Samuel Bronson added an export list to Pugs.Types. Autrijus happily applied it and send him a commit bit. http://xrl.us/f95o export withArgs from Main Samuel Bronson added an export to Main. Samuel Bronson happily applied it himself this time. http://xrl.us/f95p out-of-date hs-plugins Vadim was having trouble compiling Pugs with Parrot support. Autrijus helped him fix his problem, and there was much rejoicing. http://xrl.us/f95q chomp problem Jens Rieks found a problem with chomp and submitted a test. Warnock applies. http://xrl.us/f95s Pugs makefile issue Grégoire Péan noticed that pugs was creating a useless Pugs.exe.bat. Autrijus asked if he would be willing to investigate a patch. He responded that he would put it in his queue. http://xrl.us/f95t loop or do Gerd Pokorra wondered why do { ... } was in Pugs reasoning that loop { ... } while was the correct thing. Luke Palmer explained that do { ... } was part of the with or without a postfix while . http://xrl.us/f95u PxPerl 5.8.6.2 with Pugs 6.2.5 and Parrot 0.2.0 Grégoire Péan announced that the release of PxPerl 5.8.6.2 which includes Pugs 6.2.5 and Parrot 0.2.0. This means that windows folk can test Pugs and Parrot without having to fight with compilers. http://xrl.us/f95v BUILD errors Carl Franks was confused by that handling of a named argument to a constructor. He asked for confirmation but none was provided. Perhaps this poor summary save him. http://xrl.us/f95w whitespace and function calls David D Zuhn didn't know that whitespace between and function call and its parentheses was forbidden. Carl told him that and about the .() variant which allows whitespace. http://xrl.us/f95x Pug's make cean issues LONG commands Carl Franks noticed that make clean issued a command so long that it broke his nmake. Fortunately he had a really old nmake and updating fixed the problem. http://xrl.us/f95y Parrot thr_windows.h with MinGW François Perrad provided a patch fixing two compilation problems in thr_windows.h. Warnock applies. http://xrl.us/f95z Parrot Slides? Adam Preble posted a request for slides and notes on Parrot and Perl 6 for a presentation he was working on. Many people provided links in various languages. I usually steal from Dan's presentations when I need something like this... http://xrl.us/f952 Problems with Perl 5.6.1 François Perrad had a problem building Parrot with MinGW and Perl 5.6.1. The problem was related to windows and its binary vs text distinction. This problem will also crop up if you ever try to seek on files in windows. Not that I have ever lost several days debugging that problem. http://xrl.us/f953 ordered hash thoughts Leo posted his thoughts on a modification to ordered hash as adding a new element by index breaks the string hashing part of it. Dan suggested that the ordered hash just pitch exceptions in the bad cases as it was designed to be lightweight and fast. http://xrl.us/f954 subrules tests Dino Morelli provided a patch adding tests for subrules to PGE. Warnock applies. http://xrl.us/f955 python on parrot Bloves inquired as to the state of python on parrot. The phrasing of the question itself provided some confusion. Michal Wallace provided a link to pirate, hoping it would help. http://xrl.us/f956 Resizable*Array defeats list.c Slowly but steadily my {Fixed,Resizable}typeArray PMCs are defeating the less consistent array implementations. Leo offered the job of slaying list.c to any interested partied. Jerry Gay expressed interest. http://xrl.us/f957
Re: Perl 6 Summary... p6rules
Thank you for the summary, Matt I have a correction, though: subrules tests Dino Morelli provided a patch adding tests for subrules to PGE. Warnock applies. http://xrl.us/f955 This and my other two patches to p6rules tests (RT #35950, 35971, 35994) have not yet been applied. -Dino -- .~.Dino Morelli /V\email: [EMAIL PROTECTED] /( )\ weblog: http://categorically.net/d/blog/ ^^-^^ preferred distro: Debian GNU/Linux http://www.debian.org
Re: Perl 6 Summary... p6rules
On Tue, May 31, 2005 at 11:58:12PM -0400, Dino Morelli wrote: Thank you for the summary, Matt I have a correction, though: subrules tests Dino Morelli provided a patch adding tests for subrules to PGE. Warnock applies. http://xrl.us/f955 This and my other two patches to p6rules tests (RT #35950, 35971, 35994) have not yet been applied. My apologies for taking so long to apply these patches; I've been out of town for much of the past week and barely keeping up with email. Also, since 35971 is a bit of a big change I wanted to review it a bit -- it'll happen within the next twelve hours. I *really* appreciate the tests -- they've been very helpful and useful. Pm
This week's Perl 6 Summary
The Perl 6 Summary for the week ending 2005-05-24 Note to self: It's generally not a good idea to go installing Tiger on the day you return from holiday. It's especially not a good idea to fail to check that it didn't completely and utterly radish your Postfix configuration. And your emacs. And the backing store for your website. And a bunch of other stuff. It's an especially bad idea not to have backups of things like your aliases file... Nor is it a good idea to get preoccupied with all these joys and completely forget that you're supposed to be writ ting the Perl 6 summary. Ahem. I'm very, very sorry. So, on with the show. This week in perl6-compiler Inline::Pugs Autrijus announced the availability of Inline::Pugs. If you've ever been moved to mix up Perls 5 and 6 in one program, your prayers have been answered. Just grab Pugs and Inline and you're set. Brian Ingerson made things even more delightfully evil: #!perl use pugs; sub postfix:! { [*] 1..$_ } sub sum_factorial { [+] 0..$_! } no pugs; print sum_factorial(3); # 21 http://xrl.us/f73s Experimental Coroutine support Autrijus announced that Pugs now has an experimental implementation of coroutines. It's almost certainly not final, but it's good enough for exploration and feedback purposes. http://xrl.us/f73t Graphing tool for PerlGuts Illustrated Yuval Kogman asked what tool was used to generate the 'pretty diagrams' in PerlGuts Illustrated because he wanted to use it for diagrams in a forthcoming PugsGuts Illustrated. Ingy said that Gisle had hand hacked postscript based on initial diagrams drawn on graph paper. After some discussion, the plan seems to be that Yuval will just draw diagrams, scan them and bung them into the pugs repository. He'll rely on the LazyWeb to turn them into beautiful scalable graphics. http://www.lazyweb.org/ http://xrl.us/f73u Perl Development Server Okay everyone, repeat after me: Juerd is a star! You may ask me why, and I shall tell you. Juerd and his cosponsors, Twistspace will making a Perl 6 development server available over the internet to any Perl 6 developers who are working on 'everything that improves Perl 6 development'. So, if you've been put off working on Pugs by the hassles of getting Haskell working on your machine, or if you have the kind of bandwidth that makes svn updates a painful prospect, worry no longer. Just sign up for a development account. There was much rejoicing and suggesting of hostnames. Rather bizarrely, there was also discussion of the etymology of 'sipuli' (Finnish for 'onion' in case you were wondering). http://xrl.us/f73v Two releases in one day Autrijus announced the release of Pugs 6.2.4. About half an hour later he announced the release of Pugs 6.2.5. http://xrl.us/f73w Undef issues Adrian Taylor thought he'd found some issues with Perl 6's understanding of undef. It turned out that he'd found some issues with his own understanding of same. http://xrl.us/f73x Method/attribute chaining Alex Gutteridge found some weirdness with the chaining of autogenerated attribute methods (I wonder if the same weirdness occurs with hand rolled attribute methods). So far it remains unfixed, but given the speed of Pugs development I doubt it'll stay that way for long. http://xrl.us/f73y Meanwhile, in perl6-internals Parrot as an extension language Colin Adams continued to have problems using Parrot as an extension language for Eiffel. It turns out that interfacing between statically strongly typed languages and Parrot isn't easy. http://xrl.us/f73z Fixing t/src/manifest.t Dino Morelli reported problems with t/src/manifest.t and wondered how some of the failures came about. Jürgen Bömmels thought that the problem was an overzealous test -- the original version of which simply ensured that version control and the MANIFEST were in sync. He provided his suggested version of a less eager, but still svn compatible test. Further discussion thrashed out the various difference use cases for manifest checking. http://xrl.us/f733 More t/p6rules tests Dino Morelli posted a bunch of tests for the Perl 6 rules. Well, he did once he'd done battling his mailer's somewhat bizarre choice of MIME type for his test files. Remember, if you're about to attach a .t file to a message you send to the list, make sure your mailer doesn't declare it to be an application/x-troff file -- text/plain is your fiend. Patches were applied. http://xrl.us/f734 Stressing the hash Leo asked for some stress and bench mark tests for hashes because he was in the process of redoing src/hash.c. Bob Rogers provided one. http://xrl.us
Perl 6 Summary for 2005-05-03 through 2005-05-17
Perl 6 Summary for 2005-05-03 through 2005-05-17 All~ Welcome ot another fortnight's summary. Wouldn't it just figure that I can't think of anything sufficiently non-sequiterish to amuse myself. Perhaps I need a running gag like Leon Brocard or chromatic's cummingseque capitalization Maybe I should start one and not tell you. That could be fun. Sorry for spelling errors, gmails spell checker is busted for the moment. Perl 6 Compiler pugs commit emails If you have ever been foolish enough to want to get an email for every commit in Pugs, Sam Vilain created a way to help you sip from the firehose. Have fun. http://xrl.us/f5q7 given when nested Luke Palmer had a question about how nested when statements in a given block should act. His intuition disagreed with Pugs, but most others supported Pugs. http://xrl.us/f5q8 I don't need to walk around in circles Autrijus has made Pugs into a registered compiler for Parrot. Since Pugs already allowed you to embed parrot code (well pir anyway) directly into perl 6, this allows you to embed the perl 6 in your pir in your perl 6. Now the possibilities are endless, at least until you blow your mental stack. Those of you with tail call optimization in your mental stack may simply go into an infinite loop if you prefer. http://xrl.us/f5q9 xor on lists Trewth Seeker expressed his opinion about the proper definition of xor quite strongly. Unfortunately, his opinion is at odds with established mathematics, as Mark Biggar pointed out to him. http://xrl.us/f5ra PGE features update Patrick provided an update on the state of the Perl Grammar Engine. It has many nifty new features. http://xrl.us/f5rb Pugs on Cygwin Rob Kinyon and Gaal Yahas worked to improve Pugs support for Cygwin. Unfortunately the thread winds down with an unanswered question, fortunately Stevan clued me in on IRC that things are working just yet. http://xrl.us/f5rc Pugs gets some objects and some rules Autrijus announced that Pugs now has basic support for Objects and Rules. Sometimes he scares me. Usually he just makes me really want to learn haskell though. http://xrl.us/f5rd regression test Miroslav Silovic provided a regression test for hyper ops. Some people just don't appreciate the fun of regressing. http://xrl.us/f5re basic test for classes Stevan Little provided a patch for a simple object test. Autrijus applied it. Odd, cause I am pretty sure that Stevan has the commit bit... http://xrl.us/f5rf torturing PGE Juerd provided a link to a big rule that could segfault PGE. Kind reminds me of a homework assignment I had to create a regular expression which matched all strings of numbers that did not contain any repeated digits. Easy in perl, but hard in math. I think the resultant regex was somewhere around 17 MB. http://xrl.us/f5rg Pugs 6.2.3 with Live CD Autrijus released Pugs 6.2.3 which contains 10% more awesome then Pugs 6.2.2. You should check it out on the live CD that Ingo Blechschmidt released. http://xrl.us/f5rh -- release anouncement http://xrl.us/f5ri -- live CD PXPerl meets Pugs Grégoire Péan announced that he has added Pugs binaries to his windows distribution of Perl. Pretty cool. Autrijus innocently asked him to take on the slightly larger task of producing binaries of Parrot too, so that Pugs could be at its more powerful. http://xrl.us/f5rj Parrot Wow did you see how I mentioned Parrot before going into. That was like an awesome transition. My high school english teachers would be so proud... character classes Patrick wants character class opcodes of the form find first and find first not. Leo pointed him to some hysterical raisins who might help. http://xrl.us/f5rk PGE on MinGW François Perrad fixed a problem with building PGE on MinGW. Patrick applied the patch. http://xrl.us/f5rm PIO_fdopen return value Luke Palmer both intoduced me to the wonderfully cute phrase untodid and provided a patch making PIO_fdopen return NULL when give bad flags. Leo applied the patch, but Melvin Smith warned that this might be a bad idea. Silence after that. http://xrl.us/f5rn embedding initialization Jeff Horwitz was having trouble embedding PIR into C. Leo provided some pointers. Jeff was happy. http://xrl.us/f5ro Test::Builder updates Previously, Michael G Schwern announced an update to Test::Builder. chromatic asked if it was worth the upgrade. Michael replied probably, but I don't think anyone has acted on it. http://xrl.us/f5rp miniparrot Robert Spier created a miniparrot at Bernhard Schmalhofer request. This miniparrot does not replace our make system, but it does make our
Re: Perl 6 Summary for 2004-04-26 through 2005-05-03
On Tue, 3 May 2005, Matt Fowles wrote: Perl 6 Summary for 2004-04-26 through 2005-05-03 ^^ ^^ Wow! Michele -- Why should I read the fucking manual? I know how to fuck! In fact the problem is that the fucking manual only gives you theoretical knowledge which is useless in practice ;) - Giuseppe Oblomov Bilotta in a bunch of usenet groups.
Perl 6 Summary for 2004-04-26 through 2005-05-03
Perl 6 Summary for 2004-04-26 through 2005-05-03 All~ Welcome to another weeks summary. This week I shall endeavor not to accidentally delete my summary or destroy the world. So here we go with p6c. Perl 6 Compilers implicit $_ on for loops Kiran Kumar found a bug in pugs involving for loops which use $_ but don't iterate over it. Aaron Sherman and Luke Palmer confirmed the bug. No word as to its final status, but given the rate of development of pugs... http://xrl.us/fyof Pugs Darcs trouble Glenn Ehrlich noticed that pugs's darcs repository wasn't getting updated. Sam Vilain explained that occasionally a daemon needed to be kicked. http://xrl.us/fyog Memory Game v0.2 BÁRTHÁZI András announced the release of the latest version of Memory. He also put out a call for 85x75 pixel photos for the next version. http://xrl.us/fyoh Haddock for Pugs Stuart Cook decided that the easiest way for him to understand Pugs internals was to provide better documentation. To that end he started working with haddock to automatically generate cross linked documentation for pugs. He even met with some success. http://xrl.us/fyoi /haskell.org/haddock/ in http: is export trait Garrett Rooney wondered why the is export trait appeared to do nothing in Pugs. Stevan Little explained that it was just a place holder which, while it parses, does nothing semantically yet. http://xrl.us/fyoj Pugs 6.2.2 Autrijus proudly announced the release of Pugs 6.2.2. It features a great many changes. High on that list is a great number of speed ups and thread safe, dead lock free internal storage. http://xrl.us/fyok Pugs on Cygwin Rob Kinyon noticed that Pugs was having trouble on Cygwin. He has made some headway rectifying the situation, although work remains. http://xrl.us/fyom Pugs TODO model Stevan has put some more thought into the TODO model for Pugs. His latest suggestion, annotating todo tests with a flag indicating why they are not passing, seems a little less hackish then the last one and received general support. http://xrl.us/fyon Parrot hiding inside Pugs Autrijus wanted to embed the newly released PGE. PGE is written in PIR which runs on Parrot. So, Autrijus decided to embed Parrot into Pugs. He also posted an interesting link to JHC as a possible bootstrap solution. http://xrl.us/fyoo /repetae.net/john/computer/jhc/jhc.html in http: new PGE released Maybe I should have mentioned this first... Patrick R. Michaud released a new version of the Parrot Grammar Engine. It is written entirely in PIR and generates PIR code. It has many features but not enough tests... cough hint /cough http://xrl.us/fyop Parrot Monthly Release? Jared Rhine wondered the monthly releases included April. Chip announced that April's release would be slushier then most, but would start on the fourth. http://xrl.us/fyoq http://xrl.us/fyor t/op/debuginfo.t failure François Perrad noticed a failure in with debuginfo. Leo pointed out that it was an issue of flushing output handles. Francois provided a patch (well actually two). Warnock applies to the second. http://xrl.us/fyos ParTcl Happy? Will Coleda thought that ParTcl's GC bugs were finally fixed. Leo burst his bubble. Apparently these GC bugs can disappear and reappear according to sun spot activity. http://xrl.us/fyot segfault in load_bytecode Nick Glencross submitted a patch fixing a segfault in load_bytecode. Jens pointed out that it should use real_exception instead of internal_exception. chromatic offered to write the test. No official committed message though... http://xrl.us/fyou large PackFile tinker Leo implemented a change in the interpreter PackFile structure which has been under discussion for a long time. Unfortunately, it has the potential to break a lot of JIT stuff. Tests and fixes would be greatly appreciated. http://xrl.us/fyov PMC inheritance issue Nicholas Clark was having some trouble with his Perl5 PMCs. Later he posted a mea culpa email, but Leo provided some useful pointers anyway. http://xrl.us/fyow RT cleanup Bernhard Schmalhofer cleaned out an old ticket from RT. http://xrl.us/fyox RFC assign Px, Py Some time ago, Leo requested comments on the semantics of assign. Brent 'Dax' Royal-Gordon tried to de-Warnock the thread with his support. He also suggested a clone operator. http://xrl.us/fyoy NULL in real_exception Nicholas Clark was getting bitten by a NULL pointer deref in real_exception. Leo pointed him toward the correct approach. http://xrl.us/fyoz unary operator overhaul Having finished overhauling the infix operators, Leo set to work
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
Re: Perl 6 Summary for 2005-04-12 through 2005-04-19
On Tue, 19 Apr 2005, Matt Fowles wrote: Python on Parrot ^^ Kevin Tew wondered what the state of pyrate was. Sam Ruby provided a general explanation. (I'm not on all of the lists, so this may have come out before and I just ignore it, but...) this is a pun, isn't it?!? Michele -- sub printpages { return; } This sub is the best code you have written so far. - A. Sinan Unur in clpmisc, Re: Free source guestbook - unfinished
Perl 6 Summary for 2005-04-12 through 2005-04-19
Perl 6 Summary for 2005-04-12 through 2005-04-19 All~ Sadly, a slip of the mouse cause me to delete a partially completed summary, so I am going to push ahead on the rewrite without a witty intro. Feel free to make one up for yourself involving stuffed animals, musicians, and dinner. Perl 6 Compilers Pugs 6.2.0 Autrijus release Pugs 6.2.0 marking the first major milestone for Pugs. This includes most of the control flow primitives of Perl 6 and is a testament to the solid work that all of the lambdacamels have been putting in. http://xrl.us/ftoo CGI.pm and multi byte characters BÁRTHÁZI András was having trouble encoding and decoding multi byte characters in CGI.pm. This led to a general discussion of how to escape such characters in URLs as well as when to call chr . http://xrl.us/ftop -- discussion http://xrl.us/ftoq -- more discussion auto currying? Matthew D Swank wondered if he really needed an extra set of parens to simultaneously call a function generator and its generated function. Autrijus told him that yes he did as Perl 6 is not quite Haskell yet. http://xrl.us/ftor case insensitive P5 regex BÁRTHÁZI András wanted to use the :i switch on P5 regexes. Autrijus implemented it, but Larry noticed that this introduced a flag ordering dependency. As a result the new way to supply flags to a perl 5 regex is rx:P5imsxg/.../ . http://xrl.us/ftos Cookbook Ettiquette Marcus Adair wondered if there were rules of etiquette he should obey when writing examples for the Perl 6 Cookbook. In particular, should examples run and be only one file. Ovid suggested that one file was a good idea, but was open to contrary arguments. http://xrl.us/ftot Austrian Parrot/Pugs Hackathon Thomas Klausner announced that on June 9-10 in Vienna Austria there would be a Hackathon featuring the collective might of Autrijus, Chip, Leo, and more. When that much brain power gets together only two things can happen: much hacking and much drinking. http://xrl.us/ftou encoding illegal byte sequences in strings BÁRTHÁZI András wanted to know if he could encode an illegal byte sequence in a string. Much discussion ensued, but Larry promised that it would be possible. http://xrl.us/ftov Test::TAP Yuval Kogman announced the release of two new modules to CPAN which provid Pugs smoke html. http://xrl.us/ftow -- announcement http://xrl.us/ftox -- smoke em if you got em quoting constructs Roie Marianer noticed that pugs was missing some quoting constructs and implemented them. This led to discussion of interoplation and corners cases. As usual Larry provided both answers and questions. Roie produced a patch which Autrijus applied. http://xrl.us/ftoy -- discussion http://xrl.us/ftoz -- useful pugs hacking pointer http://xrl.us/fto2 -- the patch Code Block as Argument Stevan Little found some bugs with passing a code block to a function in pugs. Warnock applies. http://xrl.us/fto3 Push, Pop, Shift, and Unshift on Infinite Lists Stevan Little has been playing with push, pop, shift, and unshift on infinite lists. He thinks he has found a bug, although maybe he just hasn't let it run long enough... Larry provided answers as to the correct semantics. http://xrl.us/fto4 -- shift unshift http://xrl.us/fto5 -- push pop 'cd' issue in Makefile Jonathan Worthington noticed a Win32 issue in the Makefile. He can point to the offending line in the autogenerated makefile, but that is not where it should be fixed. Warnock applies. http://xrl.us/fto6 hyperoperator tests David Christensen provided a patch for hyperoperators. Unfortunately, character set transcodings ate his patch. http://xrl.us/fto7 shift oddity Stevan Little noticed that shift did not act like pop. Larry noted that the example were not semantically valid, but even so Pugs should not freeze. http://xrl.us/fto8 Pugs SEGV Aaron Sherman managed to make Pugs segfault. Autrijus thinks it might already be fixed. http://xrl.us/fto9 Parrot Dynamic Perl 2 William Coleda provide the second of his patched to move Perl*PMC out of the core. Leo applied it. http://xrl.us/ftpa SVN revision in bug reports jreiks (Jens?) reported a difficult to reproduce bug. This caused Leo to pine for having the SVN revision in the bug report. Brent 'Dax' Royal-Gordon commented that this was a good idea. Jens Rieks offered to implement it. http://xrl.us/ftpb Win32 SDL Jerry Gay tried to get SDL working on Windows. There was some give and take, but in the end he got his wish. http://xrl.us/ftpc -l/path/to/icu Andy Dougherty provided a patch making Configure.pl provide a link flag to ICU
Summary for the week ending 2005-04-12
The Perl 6 Summary for the week ending 2005-04-12 Whoa! Deja vu! Where'd Matt go? Don't worry, Matt's still writing summaries. As you may have noticed, Matt's been writing summaries every two weeks. And now so am I. Because we love you, we've decided to arrange things so I write summaries in the weeks when Matt doesn't. We could do it the other way, but that could be seen by some as self-defeating. Heck, when I say 'some' I probably mean 'all'. So, bear with me while I remember how to type all those accented characters and get back into the swing of writing these things (and of reading everything in the mailing lists once more -- someone should write a summary for us summarizers...) I'll be sticking to my old 'lists in alphabetical order' scheme of writing summaries. So, let's get going This week in perl6-compiler Array of arrays, hash of hashes, elems, last Lev Selector asked for confirmation that Pugs didn't support compound data structures, @ar.elems or @ar.last. Autrijus and others confirmed that they didn't then, but they do now. http://xrl.us/fq99 MakeMaker6 stalls on takeoff Darren Duncan pointed out that, whilst last week's summary had claimed he was working on implementing MakeMaker in Perl 6 which is, sadly not the case. He reckoned he'd possibly look into it again when he had tuits and Pugs was more complete (supporting objects, for instance). http://xrl.us/fraa Declaration oddness Roie Marianer pointed out what looks like some weirdness in Pugs' parsing of lexically scoped subroutines. Warnock applies. http://xrl.us/frab Toronto pugs hackathon John Macdonald asked for people who wanted to come to the YAPC::NA pugs hackathon to get in touch with him beforehand as spaces there are limited. If you're interested, drop him a line. http://xrl.us/frac Pugs slice oddities Andrew Savige noticed some weirdness in pugs's slicing behaviour. He posted some example code showing the problem. Autrijus agreed that there was a problem and explained that he was in the process of rewriting all the variable types, symbol tables and casting rules to agree with the Perl 5 model as described in perltie.pod. The rewrite is currently failing tests, so he posted a patch for people who want to play. On Sunday, he bit the bullet and committed the entire 2500 line patch which 'touches pretty much all evaluator code'. http://xrl.us/frad -- Autrijus's patch http://xrl.us/frae -- Autrijus on the patch http://xrl.us/fraf Meanwhile, in perl6-internals Tcl, Unicode William Coleda has been trying to add Unicode support to his TCL implementation and he fell across issues with missing methods in charset/unicode.h. Leo waved a magic wand and checked in an implementation which he fenced about with disclaimers. http://xrl.us/frag The status of Ponie Nicholas Clark confessed that Ponie had been pretty much stalled for some time, but sweetened the pill by announcing that it's about to restart and that he would be able to allocate at least one day a week to the project. He pointed people at the Ponie roadmap which breaks down the required tasks between here and a first release, complete with time estimates. If you're interested in getting Ponie to a ridable state, this would be a good place to start. People were pleased. http://xrl.us/frah -- Ponie intro/roadmap http://xrl.us/frai Monthly release schedule Chip donned his Fearless Leader hat and announced that, effective, Parrot would be moving to a monthly release schedule (with an initial three week 'month' to get things into sync). There was some debate about whether Solaris/SPARC should be one of the officially required monthly release platforms (darwin, linux-x86-gcc3.* and win32-ms-cl were Chip's initial blessed three). This morphed into a discussion of Tinderbox; apparently there are cool things happening behind the scenes. http://xrl.us/fraj Calling convention abstraction What do you know? You go away for n months and when you come back people are *still* talking about calling conventions. http://xrl.us/fram Dynamic Perl, Part 1 William Coleda announced that he was starting work on removing the core's dependence on Perl* PMCs in favour of using language agnostic PMCs internally and loading the Perl ones dynamically as required. Everything but PerlArray was dealt with quickly and names and ways forward with that tricky case were discussed. It looks like we're going to have a 'ResizablePMCArray' added to the core once people have the tuits. http://xrl.us/fran Subversion Another discussion that wouldn't go away back when I was last writing summaries has come to a head. Parrot's finally migrating from CVS to Subversion. By the time
Perl 6 Summary for 2005-03-22 through 2005-04-05
NB for PUGS on low memory machines Adam Preble posted a helpful warning about installing PUGS on machines with less than 200 MB of memory. Unfortunately he also posted it to google groups. People should stop doing that. Is there some way to tell google to not let them do that? http://xrl.us/fofq PLEAC Tim Bunce suggested that people could add programming examples to PLEAC for Perl 6, of course they should run in PUGS if they are being released to the world at large... http://xrl.us/fofr annotating code with documentation Chip wants to be able to document his code by attaching documentation directly to it. This would allow for nifty introspective features. Larry pointed out that the surrounding POD would actually be made available to the code. http://xrl.us/fofs typo in S03 Aaron Sherman pointed out a typo in S03. Luke Palmer explained that dev.perl.org did not mirror the svn tree just yet. Juerd found one too, but got the same answer. But this time Robert Spier put in the necessary magic so that dev.perl.org would update from svn.perl.org. http://xrl.us/foft -- Aaron's http://xrl.us/fofu -- Juerd optimization hints Yuval Kogman noted that Perl 6 has some ability to provide lexically scoped hints and suggested a few more thinkgs that might be hintable. Larry opened the door for him to try and design such features. http://xrl.us/fofv S29 update Rod Adams efforts to update S29 continue to push a very large thread about things including numification of strings and various core operators. http://xrl.us/fofw string positions Aaron Sherman wanted a more OO way to look at the OS. Larry did not really agree but felt that one could create a proxy object which would reference all of those globals. Also, a conversation about having units attached to numbers sprang up. Sounds like a good module to me. http://xrl.us/fofx modify and assign operators Andrew Savige wondered if there was a complete list of operators anywhere, because he could not find ~^= (string xor) documented anywhere. Larry explained that the assign should probably be a meta operator to allow for better extensibility http://xrl.us/fofy p5 - p6 guide Adam Preble wondered if there was a basic p5 - p6 guide. Unfortunately he posted to google groups. http://xrl.us/fofz $_.method vs $self.method The debate about whether .method should mean $self.method or $_.method continued. $self is still winning. http://xrl.us/fof2 typo problems It seems that Juerd has typing problems. He wanted to know if he could form a support group. Apparently only if he uses vim. http://xrl.us/fof3 renaming flattening and slurp Terrence Brannon wants to change the name of flatten and slurp to something else. Larry told him that this usage was unlikely to change. http://xrl.us/fof4 -- flatten http://xrl.us/fof5 -- slurp how read-only is read-only Chip wondered how deep read-only-ness or is copy-itude went on arguments. The answer appears to be shallow. This led to a very long discussion of how much type checking would actually occur. http://xrl.us/fof6 pick on non-junctions Ingo Blechschmidt wondered what pick would do on an array or a hash. Many folk explained that it would remove and return an item or pair from the container respectively. Larry comented that pick on a hash could be harder then it looks... http://xrl.us/fof7 built in multi methods Wolverian wondered if some of the common functions called on strings would actually be methods. Larry answered that they would more likely be multi's to allow for easier extension. http://xrl.us/fof8 comparing to references Darren Duncan wanted to know if =:= was the correct operator for comparing if two variables refer to the same object. Larry explained that it was. This led to a debate about how easily one could deal with chains of references in Perl 6. http://xrl.us/fof9 Perl 6 Compiler Pugs test failures Will Coleda worriedly reported 115 failing subtests in Pugs. Stevan Little explained that this was normal for between releases and was really more of a todo list than a problem. http://xrl.us/foga Pugs darcs repo Greg Buchholz noticed that the darcs repo for pugs has trouble staying up to date. Tupshin Harper suggested using `darcs whatsnew --look-for-adds --summary` to find the offending files. http://xrl.us/fogb BEGIN {} time Autrijus wondered when BEGIN was supposed to run. Markus Laire posted a useful summary of when the various CAPITAL things were run. Larry confirmed Autrijus suspicion. http://xrl.us/fogc YAML test output Nathan Gray wondered if he should change his tests log to YAML output. Stevan
Re: Perl 6 Summary for 2005-03-07 through 2005-03-22
[EMAIL PROTECTED] wrote: pugs too lazy Miroslav Silovic noticed that closing a file handle in pugs did not force all the thunks associated with the file. While this was a bug in pugs, it led to conversation about whether = should be lazy or eager. Larry thinks that it will be safer to start eager and become lazy then vice versa. http://xrl.us/fijd Accused of the original burst of insight, pleading not guilty! ;) The original post was to perl6-compiler by Andrew Savige. http://groups-beta.google.com/group/perl.perl6.compiler/browse_frm/thread/2aca524a1203cd41/912bea4d0d05554a?q=surprised#912bea4d0d05554a Miro
Perl 6 Summary for 2005-03-07 through 2005-03-22
Perl 6 Summary for 2005-03-07 through 2005-03-22 All~ Welcome to yet another fortnights summary. I believe this is the highest volume I have ever seen the three lists at simultaneously. Hopefully they will keep it up, because good work is being done. To aid in the epic endeavour of summarizing all this, I have had to add some new Jazz to my playlist. We will see how it works out. If it doesn't work well, blame Seton. Perl 6 Language the actual name of ?SUB David Storrs wanted to know how he could get the name of ?SUB. Larry told him that $?SUBNAME would be the most reliable way to get the short name. http://xrl.us/fiip Unlimited Argument Patterns Luke Palmer has tasted the forbidden fruit of Haskell and now he wants more of it in Perl 6. In particular he wants even more powerful pattern matching of arguments for MMD. Rod Adams speculated that Larry had decided Perl 6 would not be ML... In the end no real consensus, but don't hold your breath seems to be the feeling. http://xrl.us/fiiq Limited Argument Patterns Wolverian was a little unsure of what exactly sub foo(0) {...} meant. Larry explained that it was just sugar for sub foo ( $bar of Int where { $_ == 0 } $bar ) { ... } . http://xrl.us/fiir List Constructors Wolverian made a list of list constructors, asking what each did. Larry explained: For the most part, the same thing as perl 5, a few would produce a warning. http://xrl.us/fiis Decorating Primitives The question arose of how decorating objects with roles interacted with low level types. Larry came to the conclusion that it was OK, unless you wanted to decorate a single element in a primitive array. http://xrl.us/fiit splat operator in assignment Juerd was unsure how splats and list assignment interacted. The answer is that list assignment is exactly the same as Perl 5 to allow for extending return list. http://xrl.us/fiiu Logic Programming Rod Adams pointed out that much of logic programming could be implemented using the rules engine. Unfortunately, the syntax gets a little hairy and cumbersome. Larry said that this particular goal might be something that is not addressed immediately in 6.0, but possibly differed instead. Ovid rumbled about porting a Warren Abstract Machine to Parrot... I would like it. http://xrl.us/fiiv Locale-KeyedText Darren Duncan finished up the first non-core Perl 6 module. Being properly hubristic, he asked for a critique. His questions touched on subjects including subtypes, module loading, and strictness... http://xrl.us/fiiw -- critique request http://xrl.us/fiiy -- misc questions bar $f =?= $f.bar Rod Adams wondered what would happen if he had both a sub and a method name bar. What would $f.bar and bar $f do? Jonathan Scott Duff explained that $f.bar would call the method while bar $f would call the sub. http://xrl.us/fiiz MMD object Rod Adams wants a single object to represent all of the possible multi methods associated with a particular short name. It seems that Rod dranks some of the lisp cool-aid (although in this case, I agree). He explained how this allowed the dispatch scheme to be changed on a multi by multi basis and also allowed for nice introspection. This led to a discussion of how this would work with lexically installed multi methods, and if this would trip people up. No real consensus seemed to appear... http://xrl.us/fii2 :fooo != :foo('o'); :fooo == :foo{'o'} Juerd wondered what the implications of a mapping to ('a') were. Larry replied that it did not map in that manner. http://xrl.us/fii3 lazy loading of object Yuval Kogman wondered how he could get his objects to load lazily. Larry told him that delegation would probably be the best bet. http://xrl.us/fii4 throwing from higher up the call stack Thomas Yandell wants a way to throw from further down the call stack. Sadly he was warnocked. http://xrl.us/fii5 sprintf Juerd wants an sprintf like function f/FORMAT/EXPR/ . Larry seems to think that EXPR.as(FORMAT) will suffice, especially if as is a list op. http://xrl.us/fii6 S29, builtin function Rod Adams has been hard at work creating a list of build in functions. He has a version up at /www.rodadams.net/Perl/S29.html in http:. This led to good discussions about what things had alternate forms and what did not. http://xrl.us/fii7 -- discussion http://xrl.us/fii8 -- more discussion python to eliminate reduce() Aristotle Pagaltzis posted a link explaining why reduce will be eliminated in Python 3000. This led to a brief discussion of various design philosophies. http://xrl.us/fii9 SEND + MORE = JUNCTIONS Sam Vilain fixed up
Perl 6 Summary for 2005-02-22 though 2005-03-07
Perl 6 Summary for 2005-02-22 though 2005-03-07 All~ Welcome to yet another fortnight summary. Once again brought to you by chocolate chips. This does have the distinction of being the first summary written on a mac. So if I break into random swear words, just bear with me. Off list development In more related news, It has been pointed out to me that development goes on off list on places like IRC. I briefly contemplated, quitting my job and tracking such things full time, but then I decided that it would be better if I just accepted brief submissions for the summary. Thus I will be adding a fourth section to the summaries based on contributions. If you would like to make a contribution, email me with a brief summary. Please include the name by which you would like to be attributed (sadly the process I use is likely to mangle any unicode characters). Please make all links full, I will shorten them. Thanks Perl 6 Language not() It turns out that not() (with no arguments) made perl 5 core dump for a while, and it took us five years to figure that out. In perl 6 it will be a list op and calling it with no arguments will return a null list or an undef depending on context. http://xrl.us/fdb9 junctions and threading I had hoped that last week the concerns about threading would have been addressed. I was mistaken. A new crop of concerns surfaced and died down fairly quickly (as the chief proponent, Damien, was away). http://xrl.us/fdca serializing to various languages Somehow the discussion of junctions morphed into a discussion of sets, which morphed back into junctions, which morphed into a discussion of serialization to different languages. Interesting stuff, but I wouldn't hold me breath for it... http://xrl.us/fdcb Performance Analysis and Benchmarks Adam Preble posted an offer to develop some benchmarks for perl 6. Unfortunately, I think he posted it to google groups. Also, he probably should have posted it to p6c or p6i as the language folk tend to wave their hands and say magic occurs but correctness is preserved when it comes to optimization. http://xrl.us/fdcc send + more = junctions Autrijus posted an example using junctions, instead of parents, to solve the classic SEND MORE + = MONEY problem. Markus Laire asked for a clarification, and Rod Adams pointed out that he felt that it would not work as the interdependence of the es was not captured. This does lead to the question of how one should right prolog like code (including unification and backtracking) in Perl 6. No answers were offered. http://xrl.us/fdcd Pairs as lvalues Ingo Blechschmidt wondered what the behavior of pairs as lvalues would be. The answer is that you would get an error for attempting to modify a constant. http://xrl.us/fdce Perl 6 Roberto Bisotto wanted to know where he could download perl 6 to start playing with it. We embarrassedly told him that a full implementation was not yet available, but pugs was gaining ground quickly. http://xrl.us/fdcf hash keys Autrijus wanted to know if hash keys were still just strings or if they could be more. The answer is that by default they would be strings, but they could be declared as having a different shape . This led to a discussion of hashing techniques such as the .bits, .canonicalize, or .hash methods. http://xrl.us/fdcg Dynamically scoped dynamic scopes Dave Whipp wanted to make dynamically scoped dynamic scopes. My head hurt, but apparently Larry's didn't as he replied piece of cake, the syntax [and implementation] are left as an exercise to for the would be module author. http://xrl.us/fdch Parameters to rules Rod Adams asked how he could specify arguments to rules so they could be more function like. Larry explained that there were several syntaxes each of which would coerce its arguments in slightly different ways. He then mused that perhaps there were too many, I agree there are too many. http://xrl.us/fdci compile time signature checking Ahbijit Mahabal wondered how type checking would work for cases where it was not easy to determine the types at compile time. The answer: checking will be defered to runtime. In the end it seems that Perl 6 will blur the line between runtime and compile time heavily. Perhaps it will provide nifty support for staged programming, meta-perl6 here we come... http://xrl.us/fdcj %*CONFIG and %?CONFIG Brian Ingerson asked about the CONFIG hash and what sort of secondary sigil it would have. Larry explained that $?CONFIG held to config for the machine compiling the program and $*CONFIG held the config for the machine running the program. Then he made some noice about parsing
Perl 6 Summary for 2005-02-08 through 2005-02-22
Perl 6 Summary for 2005-02-08 through 2005-02-22 All~ Welcome to yet another fortnight summary. Lately p6l has been out stripping p6i in volume. While this used to be the norm, lately it has become a rare occurrence. Strange... Anyway, this summary would be brought to you buy cookies, but I ate them all. So instead this summary is brought to you by the remaining chocolate chips. In other news, Autrijus Tang has just officially been promoted to first name only status in the summaries based on both his stellar work with Pugs and his highly identifiable name. He now joins the ranks of Larry, Dan, Madonna, and Leo. Perl 6 Language do { } while? David Storrs wanted to know what the best way to say do { } while($foo); was. Larry told him that s/do/loop/ would suffice. http://xrl.us/e77k nest as a primitive looping operation Timothy Nelson gets credit for resurrecting the oldest thread I have seen brought back recently. Over two years ago, he mentioned a powerful looping structure that allowed for recursion. Now he has found a use for it. http://xrl.us/e77m Loop Entry Joe Gottman wanted to execute a closure every time a loop was entered, not upon every iteration. He thought ENTER happened only once ever, but it turns out that it will do what he wants. http://xrl.us/e77n pop %hash Rod Adams wants to be able to pop a key value pair our of a hash. Others wondered what it would be used for. Someone mentioned an OrderedHash... http://xrl.us/e77o higher order operators Timothy Nelson wanted to have meta-operators. Larry gave him the full unicode character set with which to define them. Tim was happy. http://xrl.us/e77p none and nor delimiter Thomas Sandlaß suggests using \ as a none junction delimiter. He then extended this idea to provide a logical nor, \\ . Autrijus suggested ! for none. There was some argument about whether nor deserved such huffmanization. Also, I think that the difference between // and \\ would continually escape me. I have enough troubles writing code to deal with windows filesystems. http://xrl.us/e77q Kudos to Autrijus Damian proudly welcomed Autrijus to the ranks of the last-nameless-ones. He also lauded his amazing work at forcing a lazy language to pull a lazier one. I think we all agree. http://xrl.us/e77r containers vs object references Rod Adams wondered whether there was a litmus test that could determine if something deserved its own sigil. The answer appears to be mostly history. Larry suggested a simplistic way to create new sigils, although it would not provide interoplation. I think a blessed method for defining new sigils which do interpolate and provide some sort of type constraint and context would be really nifty. Also I want a million dollars in small, non-consecutive, unmarked bills. If you have either of these please mail it to me. http://xrl.us/e77s printing true Autrijus wondered about true and fasle. Are they just 1 and 0? #t and #f? Larry answered bool::true and bool::false, but true and false would suffice when there was no ambiguity. http://xrl.us/e77t quoted = LHS Juerd wondered if = auto-quoted its left hand side. Yes. http://xrl.us/e77u @ x 75 ~ $zap =?= (@ x 75) ~ $zap Juerd mistakenly thought that ~ bound tighter than x. Only unary ~ binds that tightly, so he is safe. http://xrl.us/e77v getting the key|value of a pair Steve Peters wondered how he could get the key or value from a pair. It turns out that the .key and .value method will do what he wants until some twisted soul overrides them... http://xrl.us/e77w Junctiuons and Autothreading By far the longest topic this week was junctions. Some people worry that their autothreaded behavior will cause plagues to ravage the earth and novices programmers to go blind. Others feel that without it Perl6 will be a language suitable only to pond scum and cobol programmers. While one side believes that autothreading repition of sid effects will crash any database that interacts with Perl6, the other side believes that requiring extra pragmas to unlock their full power will prevent junctions from curing cancer. Either way someone is going to be unhappy. It looked like the pendulum was swinging towards autothreading, but its chief proponenet will be away next week, so who knows if it can survive undefended. My favorite suggestion in all of this was to make Perl6 a pure functional language and introduce monads. http://xrl.us/e77x http://xrl.us/e77y http://xrl.us/e77z http://xrl.us/e772 nullary vs nonslurpy Autrijus found it distressing that to get his quicksort to sort quickly he had to make an empty signature slurpy. Larry
Re: Perl 6 Summary for 2005-01-31 through 2004-02-8
On Wed, 9 Feb 2005, Larry Wall wrote: roadblocks thrown in their way. That's true not only for LP, but also for FP, MP, XP, AOP, DBC, and hopefully several other varieties ^^ ^^^ ^^ ^^^ 1. 2. Ehmmm... sorry for the ignorance, but... 1. Functional Programming (right?) 2. Aspect Oriented Programming (right?) What about the others? Well, I know about Google (and I'll try ASAP in any case), but I fear those acronyms could be just a little bit too generic, although probably including also 'programming paradigm' as search keys would help. Michele -- Whoa! That is too weird! I asked around among the math faculty here and it turns out that _every one's_ wife is married to a mathematician! - Dave Rusin in sci.math, Re: Genetics and Math-Ability
Re: Perl 6 Summary for 2005-01-31 through 2004-02-8
MD == Michele Dondi [EMAIL PROTECTED] writes: MD On Wed, 9 Feb 2005, Larry Wall wrote: roadblocks thrown in their way. That's true not only for LP, but also for FP, MP, XP, AOP, DBC, and hopefully several other varieties MD ^^ ^^^ MD ^^ ^^^ MD 1. 2. MD Ehmmm... sorry for the ignorance, but... MD 1. Functional Programming (right?) MD 2. Aspect Oriented Programming (right?) i think so but i can't read larry's mind (nor would i want to! :) XP = extreme programming DBC = design by contract (or even designed by conway :) MP = ?? 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: Perl 6 Summary for 2005-01-31 through 2004-02-8
John Macdonald wrote: The basic problem is that a junction does not work well with boolean operations, because the answer is usually sometimes yes and sometimes no and until you resolve which of those is the one you want, you have to proceed with both conditions. Well, just patch the boolean operators to return one of (yes, no, sometimes) instead of plain (true, false) :) Anyway, what are the usual semantics with junctions boolean operators in some other languages? (This is so new concept to me, that I don't know of any language to compare against.) -- Markus Laire Jam. 1:5-6
Re: Perl 6 Summary for 2005-01-31 through 2004-02-8
Uri Guttman wrote: [...] i think so but i can't read larry's mind (nor would i want to! :) XP = extreme programming DBC = design by contract (or even designed by conway :) MP = ?? Modular Programming David
Re: = vs == [was: Perl 6 Summary for 2005-01-31 through 2004-02-8]
Aaron Sherman wrote: So hold on to your socks... what about: @x @y; This reminds me of AWK's string concatenation behaviour: print this $1 that $2 This was nice feature at the time, but caused problems down the track when they wanted to add functions to the language in a subsequent revision. See section 8.1 of The AWK Programming Language for more details. For that reason alone (future-proofing the grammar), I would be leery of going down this route. David
Re: Perl 6 Summary for 2005-01-31 through 2004-02-8
[EMAIL PROTECTED] wrote: i think so but i can't read larry's mind (nor would i want to! :) XP = extreme programming DBC = design by contract (or even designed by conway :) MP = ?? Modular Programming David I think it's Metaprogramming. :) Miro
Re: Perl 6 Summary for 2005-01-31 through 2004-02-8
On Thu, Feb 10, 2005 at 12:32:21PM +0100, Miroslav Silovic wrote: : [EMAIL PROTECTED] wrote: : : i think so but i can't read larry's mind (nor would i want to! :) : : XP = extreme programming : DBC = design by contract (or even designed by conway :) : MP = ?? : : : Modular Programming : : David : : I think it's Metaprogramming. :) You win. Though it did occur to me at the time I wrote it that it could also stand for multiprocessing. Larry
Re: Perl 6 Summary for 2005-01-31 through 2004-02-8
On Tue, 8 Feb 2005, Matt Fowles wrote: pipe dreams Juerd wondered if he could mix = and == in a sane way. The answer appears to be no. Once you bring in == you should stick with it. Huh?!? It doesn't seem to me that the answer is 'no'. In fact C == is supposed to be yet another operator, albeit somewhat a special one. If I got it right the answer is actually 'yes': what Larry suggested is that it would be _stylistically_ better to stick with it once it is used in the first place. Michele -- Ah, but the REAL myster is -- did Pythagoras really discourage eating beans because they resembled human testicles? Or is that another myth? I always thought it was because of their musical qualities. - Robert Israel in sci.math (slightly edited)
Re: Perl 6 Summary for 2005-01-31 through 2004-02-8
Michele Dondi wrote: On Tue, 8 Feb 2005, Matt Fowles wrote: pipe dreams Juerd wondered if he could mix = and == in a sane way. The answer appears to be no. Once you bring in == you should stick with it. Huh?!? It doesn't seem to me that the answer is 'no'. In fact C == is supposed to be yet another operator, albeit somewhat a special one. If I got it right the answer is actually 'yes': what Larry suggested is that it would be _stylistically_ better to stick with it once it is used in the first place. It was also a matter of precedence, as = binds more tightly than == so extra brackets would be required, leading to == being neater if you only use it in conjunction with other ==. Which I rather liked.
= vs == [was: Perl 6 Summary for 2005-01-31 through 2004-02-8]
On Wed, Feb 09, 2005 at 10:04:48AM +0100, Michele Dondi wrote: : On Tue, 8 Feb 2005, Matt Fowles wrote: : : pipe dreams :Juerd wondered if he could mix = and == in a sane way. The answer :appears to be no. Once you bring in == you should stick with it. : : Huh?!? It doesn't seem to me that the answer is 'no'. In fact C == : is supposed to be yet another operator, albeit somewhat a special one. If : I got it right the answer is actually 'yes': what Larry suggested is that : it would be _stylistically_ better to stick with it once it is used in the : first place. Yes, you can certainly intermix them as long as you keep your precedence straight with parentheses. Though I suppose we could go as far as to say that = is only scalar assignment, and you have to use == or == for list assignment. That would be...interesting...to say the least. For instance, it would eliminate the guessing games about whether the syntactic form of the left side indicates a list. Doubtless there would be some downsides too... Larry
Re: = vs == [was: Perl 6 Summary for 2005-01-31 through 2004-02-8]
On Wed, 9 Feb 2005, Larry Wall wrote: Yes, you can certainly intermix them as long as you keep your precedence straight with parentheses. Though I suppose we could go as far as to say that = is only scalar assignment, and you have to use == or == for list assignment. That would be...interesting...to Yes, it would indeed be interesing, but... it would also be really kinda too much! Michele -- I agree with Tore; it's sort of a Zen question. If you have to ask, it means you won't understand the answer. If you know enough to understand the answer, you won't need the question. - Joe Smith in clpmisc, Re: Perl neq Python
Re: = vs == [was: Perl 6 Summary for 2005-01-31 through 2004-02-8]
Larry Wall wrote: On Wed, Feb 09, 2005 at 10:04:48AM +0100, Michele Dondi wrote: : On Tue, 8 Feb 2005, Matt Fowles wrote: : : pipe dreams :Juerd wondered if he could mix = and == in a sane way. The answer :appears to be no. Once you bring in == you should stick with it. : : Huh?!? It doesn't seem to me that the answer is 'no'. In fact C == : is supposed to be yet another operator, albeit somewhat a special one. If : I got it right the answer is actually 'yes': what Larry suggested is that : it would be _stylistically_ better to stick with it once it is used in the : first place. Yes, you can certainly intermix them as long as you keep your precedence straight with parentheses. Though I suppose we could go as far as to say that = is only scalar assignment, and you have to use == or == for list assignment. That would be...interesting...to say the least. For instance, it would eliminate the guessing games about whether the syntactic form of the left side indicates a list. Doubtless there would be some downsides too... Larry I have to say that my initial reaction to this was one of disgust, but the more I think about it, the more I am warming to the idea of having a more robust method of declaring list context vs scalar context. Issues that arise (my mind has yet to settle enough to label them downsides): - List assignment is way too common to inflict a three char operator on, especially one that really likes having \S around it. (But don't ask me what else to use, not much is left available.) At least, it's way too common for me. - orthogonality says that we would then need a left scalar assignment operator to mimic ==. Linguistically, this is Calculate all this, then stuff the result into $x. This would be very nifty when building long self-referring assignments, because the assignment appears after the expression which used the previous value, which just flows better. Insert arguments about why conditional predicates are a good idea. - Would C @x = @y; then mean C @x := @y; ? - Somehow, C %x == %y; feels very, very wrong. Pluses: - I've often considered list assignment to be one of the most useful and subtle things that makes Perl Perl, especially when combined with hash/array slices. However, attempting to bring less monkish fellows up to enlightenment often encounters mental blocks. This might help, having a different syntax makes it significantly less 'magical'. (even though Magic is Good, imho) I should probably stop rambling now and get some sleep. -- Rod Adams
Re: = vs == [was: Perl 6 Summary for 2005-01-31 through 2004-02-8]
On Wed, 2005-02-09 at 06:04, Rod Adams wrote: Larry Wall wrote: Yes, you can certainly intermix them as long as you keep your precedence straight with parentheses. Though I suppose we could go as far as to say that = is only scalar assignment, and you have to use == or == for list assignment. That would be...interesting...to say the least. For instance, it would eliminate the guessing games about whether the syntactic form of the left side indicates a list. Doubtless there would be some downsides too... Issues that arise (my mind has yet to settle enough to label them downsides): - List assignment is way too common to inflict a three char operator on, especially one that really likes having \S around it. (But don't ask me what else to use, not much is left available.) At least, it's way too common for me. Yeah, well I always thought []= made more sense anyway :) DISCLAIMER: I've been off perl6-* for a bit, and might not have my syntax right here. Sorry. There are a few ways to short-cut that. First off, you could (either in-core, or in a module) set this up: @x.(@y); This is legit syntax today AFAIK, but has no plausible meaning that I can figure out. It's still 3 characters, but eliminates any whitespace ambiguity. Ok, so the next method would be: [EMAIL PROTECTED] = [EMAIL PROTECTED]; What does that do today? Is it legit? Again, 3 chars, but no ambiguity So hold on to your socks... what about: @x @y; Hey, if you're going to Huffman the syntax... But stay with me. This is simply a matter of verbing the @x, which would have the same effect as: @x.(@y); and we discussed what that would mean, above. This has some nice ramifications: my @x 1, 2, 3; # Initialize @x with list of numbers my @x foo(); # enforce scalar context on foo() and store @x @y @z; # Chaining -- 781-324-3772 [EMAIL PROTECTED] http://www.ajs.com/~ajs
Re: Perl 6 Summary for 2005-01-31 through 2004-02-8
--- Matt Fowles [EMAIL PROTECTED] wrote: Logic Programming in Perl 6 Ovid asked what logic programming in perl 6 would look like. No answer yet, but I suppose I can pick the low hanging fruit: as a limiting case you could always back out the entire perl 6 grammar and insert that of prolog. I dunno about that. The predicate calculus doesn't exactly translate well to the sort of programming that Perl 6 is geared for. I don't think it's a matter of redefining a grammar. Maybe unification can be handled with junctions, but backtracking? I am thinking that some serious work down at the Parrot level would be necessary, but I would be quite happy to be corrected :) Cheers, Ovid = If this message is a response to a question on a mailing list, please send follow up questions to the list. Web Programming with Perl -- http://users.easystreet.com/ovid/cgi_course/
Re: Perl 6 Summary for 2005-01-31 through 2004-02-8
On Wed, Feb 09, 2005 at 11:57:17AM -0800, Ovid wrote: : --- Matt Fowles [EMAIL PROTECTED] wrote: : : Logic Programming in Perl 6 : Ovid asked what logic programming in perl 6 would look like. No : answer : yet, but I suppose I can pick the low hanging fruit: as a : limiting case : you could always back out the entire perl 6 grammar and insert : that of : prolog. : : I dunno about that. The predicate calculus doesn't exactly translate : well to the sort of programming that Perl 6 is geared for. I don't : think it's a matter of redefining a grammar. Maybe unification can be : handled with junctions, but backtracking? I am thinking that some : serious work down at the Parrot level would be necessary, but I would : be quite happy to be corrected :) Depending on what level you write your engine, the backtracking can be handled either with exceptions or, more generally, with continuations. I personally think that unification is the hard part, but then it's possible I'm just not in the right brainstate yet with regard to junctions. I tend to see junctions as sets of scalar values rather than sets of list values, but maybe that's just the Pooh coming out in me. I was, in fact, thinking about Prolog unification just a bit when I cargo-culted in the [$head, [EMAIL PROTECTED] form of parameter parsing, but I don't profess to understand all of the implications. Basically, logic programming is one of those things I'm not trying to solve directly in Perl 6--I'm just trying to get Perl 6 close enough that the real experts can have a go at it without having too many roadblocks thrown in their way. That's true not only for LP, but also for FP, MP, XP, AOP, DBC, and hopefully several other varieties of alphabet soup yet to be invented. Larry