Re: Re: class interface of roles
Jonathan~ On 10/7/06, Jonathan Lang [EMAIL PROTECTED] wrote: TSa wrote: Dispatch depends on a partial ordering of roles. Could someone please give me an example to illustrate what is meant by partial ordering here? Sets demonstrate partial ordering. Let denote the subset relation ship. If A B and B C, then A C for any A, B, and C. However, it is not necessarily the case that A B, or B A, or B == A for any particular A and B. Thus transitivity is preserved, but there is not a guarantee of comparability between elements. http://en.wikipedia.org/wiki/Partial_ordering Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
$a.foo() moved?
All~ I just noticed something claiming that C$a. foo() is actually C$a.foo() (a method call on C$a) and that C$a .foo() is actually C$a $_.foo() (likely a syntax error). When did this change? Why did this change? Also, I liked it better when C$a .foo() was a method call on C$a. Thanks, Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
Re: $a.foo() moved?
Larry~ On 4/6/06, Larry Wall [EMAIL PROTECTED] wrote: On Thu, Apr 06, 2006 at 01:58:55PM -0400, Matt Fowles wrote: : All~ : : I just noticed something claiming that C$a. foo() is actually : C$a.foo() (a method call on C$a) and that C$a .foo() is actually : C$a $_.foo() (likely a syntax error). : : When did this change? Why did this change? It changed at the last hackathon, but is still being debated, mostly on #perl6. The current S02 early dot rule is likely being abandoned, but we don't know for what yet. The reason is that term/operator lexer state is interacting badly with inconsistent retroactive whitespace cancellation. : Also, I liked it better when C$a .foo() was a method call on C$a. Sure, that one might be obvious, but quick, tell me what these mean: say .bar say .() say .1 when .bar when .() when .1 foo .bar foo .() foo .1 .foo .bar .foo .() .foo .1 I'd rather have a rule you don't have to think about so hard. To me that implies something simple that let's you put whitespace *into* a postfix without violating the postfixes don't take preceding whitespace rule. That makes a good deal of sense. I don't know what I would like more, so I guess that I will wait till a more firm consensus is reached. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
Re: overloading the variable declaration process
Stevan~ On 2/7/06, Stevan Little [EMAIL PROTECTED] wrote: After all Foo is just a specific instance of the class Class. Shhh... class objects don't exist ... I was never here,... I will I count to three and when I snap my fingers you will awaken and will have forgotten all about class Class. 1 ... 2 ... 3 ... *snap* ... What!?!? Where was I? Oh, yeah. As I was saying, I think we just take C++'s object system exactly. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
Re: overloading the variable declaration process
Larry~ On 2/7/06, Larry Wall [EMAIL PROTECTED] wrote: Indeed, and the modeling point of view is that $pipe is *also* just a representation of the Pipe. Neither Pipe nor $pipe is the thing itself. Most computer programs are about Something Else, so computer languages should be optimized for talking about other things rather than talking about themselves. The answer to Pipe.can(Smoke) $pipe.can(Smoke) should be the same, not different. On the other hand, ^Pipe.can(Smoke) is a different matter, insofar as you're asking a question about a Class object rather than a Pipe object. And now you get your Platonism back. You just have to be explicit about it. I see the value of ^Pipe and $pipe as seperate objects which can be manipulated programmatically. What I don't really understand is what exactly Pipe is and where it would be useful. They way you have described Pipe feels a little muddy to me and I am unsure about its purpose and semantics. Is it just an object I ask `.can()` or does it have some deeper usefulness? Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
Re: overloading the variable declaration process
Stevan~ I am going to assume that you intended to reply to perl 6 language, and thus will include your post in its entirety in my response. On 2/7/06, Stevan Little [EMAIL PROTECTED] wrote: On 2/7/06, Matt Fowles [EMAIL PROTECTED] wrote: Larry~ On 2/7/06, Larry Wall [EMAIL PROTECTED] wrote: Indeed, and the modeling point of view is that $pipe is *also* just a representation of the Pipe. Neither Pipe nor $pipe is the thing itself. Most computer programs are about Something Else, so computer languages should be optimized for talking about other things rather than talking about themselves. The answer to Pipe.can(Smoke) $pipe.can(Smoke) should be the same, not different. On the other hand, ^Pipe.can(Smoke) is a different matter, insofar as you're asking a question about a Class object rather than a Pipe object. And now you get your Platonism back. You just have to be explicit about it. I see the value of ^Pipe and $pipe as seperate objects which can be manipulated programmatically. What I don't really understand is what exactly Pipe is and where it would be useful. They way you have described Pipe feels a little muddy to me and I am unsure about its purpose and semantics. Is it just an object I ask `.can()` or does it have some deeper usefulness? Well since ^Pipe will really just be the same value as Pipe.meta, then you can do many things with it (if I get my metamodel wishes that is). Now, in keeping with the examples of useful things for people other than programmers and computers spirit of this discussion, here is one possible approach to using metaclasses in a constructive way. Okay, so lets assume you own a tobacco shop, and you have modeled a Pipe hierarchy to represent all the pipes you sell. Your base classes might look something like this: class Pipe { has $stem; has $bowl; } class Pipe::Bowl { has $composed_of; has $color; has $size; } class Pipe::Stem { has $composed_of; has $color; has $length; has $filter = bool::false; } You would then model the different pipes you sell; class MagrittePipe { has $stem = Pipe::Stem.new( :composed_ofebony, :colorblack, :lengthshort ); has $bowl = Pipe::Bowl.new( :composed_ofmahogany, :colorbrown, :sizemedium ); } Now, you might say, why not make the MagrittePipe an instance of Pipe, and give the Pipe class a few more attributes, like a name. Well, if you did that then you couldn't subclass it of course. class MagrittePipe::SpecialEngravedAnniversayEdition { is MagrittePipe; does Engraved[$engraving_text = Ceci n'est pas une pipe]; does SpecialEdition[$typeAnniversay]; } Now, what does all this have to do with metamodel? Well, using introspection, it becomes very simple to discover various qualities about your inventory, enough to probably even autogenerate the HTML pages for your online-web store (powered by Perl 6 of course). And lets not forget the uber-cool Perl 6 Object Database which you are using to store your real-time inventory in (all metamodel powered of course). And of course if you want, you can use the DistributedObjectProxy metaclass which will automatically make your objects distributed so that your door-to-door Pipe saleforce can update your inventory in real time from their cellphones. And your RD department can use the built-in (but as yet unspeced) logic programming features of Perl 6 to mine your customer information from your (previously mentioend) object database and genetically grow new, more desireable Pipe products (which is easy to do since your metaclasses are programatically composable (and no I don't mean eval $code)). Of course, I am just dreaming here, but maybe I am not! Most of this is already possible using CLOS (see the Franz's AllegroCL 8.0 it's bad*ss IMO), so why can't we have it? Anyway, I hope that doesn't make your head hurt too much Matt ;) Now that everyone is on the same page, I will go about responding class Pipe { has $stem; has $bowl; } class Pipe::Bowl { has $composed_of; has $color; has $size; } class Pipe::Stem { has $composed_of; has $color; has $length; has $filter = bool::false; } so far I am mostly with you, except one question. Does has $filter = bool::false; just provide a default? You would then model the different pipes you sell; class MagrittePipe { has $stem = Pipe::Stem.new( :composed_ofebony, :colorblack, :lengthshort ); has $bowl = Pipe::Bowl.new
Perl 6 Summary for 2006-01-24 though 2006-02-07
parrot leads to problems with dynamic extensions. Nick Glencross tracked it down to a dependency issue with dynamic pmcs. http://xrl.us/jwtu Restricted clear_eh Recently Bob Rogers suggested restricting the scope of which exception handlers can be cleared by a clear_eh opcode. Leo implemented the request and applied Bob's tests. http://xrl.us/jwtv *_config.o Issues Florian Ragwitz posted a few options on how to clean up the *_config.o issues that seem to come up. Warnock applies (lightly as he posted on Monday). http://xrl.us/jwtw bc Needs Python Jerry Gay noticed that languages/bc would fail most of its tests without python. It should probably probe for that. http://xrl.us/jwtx GraphViz of Parrot Allison Randal posted a pdf of the parrot repository generated by GraphViz. It is pathological enough that acrobat does not really like the file. I am told that xpdf deals OK. http://xrl.us/jwty Tcl Globals Failure Will Coleda noticed that r11431 is suddenly failing a few Tcl tests. http://xrl.us/jwtz Param Count Checks Leo tried enabling param count checks to see what would fail. The answer appears to be much. This led to discussion of how to enable and disable checks on both arguments and returns. http://xrl.us/jwt2 Method Look up in Dynamic PMCs François Perrad wondered why his Lua PMCs were failing to find their new methods. Leo explained that the necessary methodhash in them was not yet implemented and gave him a workaround. http://xrl.us/jwt3 Perl 6 Language as if Jonathan Lang, Stevan Little, and Rob Kinyon has a discussion about some sort of type casting or coercion in Perl 6. The conversation sorted of petered out undecidedly. http://xrl.us/jwt4 ff operator Larry renamed the flip flop operator to ff . People rejoiced loudly. http://xrl.us/jwt5 New T-Shirt Juerd posted his one line perl 5 to perl 6 conversion T-Shirt to cafe press. I know at least one summarizer who would not object to having one show up at his door... http://xrl.us/jwt6 Protype Based MMD Stevan Little posted a link to a nifty paper on Prototype Based MMD. There is also a short version for the attention impaired. (I read that one; it is neat.) http://xrl.us/jwt7 S06 Questions Dakkar had a few questions about S06. Larry had a few answers. http://xrl.us/jwt8 Named Unicode Characters larry announced that one could put named Unicode code points into strings like this \c[LATIN CAPITAL LETTER A, COMBINING RING ABOVE]. http://xrl.us/jwt9 Perl 6 can goto hell; Larry announced the addition of a goto statement. http://xrl.us/jwua Something Between State and My Dave Whipp wondered if he could have a variable that was unique to each non-recursive invocation of a function. Luke Palmer suggested that env variables already did this, but Larry pointed out a few nuances there. http://xrl.us/jwub Universal Roles Yuval Kogman wants a really powerful sort of automatic application of roles, I think. Warnock applies. http://xrl.us/jwuc Macros Herbert Snorrason wants more specifics on macros in Perl 6. Larry gave him some. http://xrl.us/jwud Synopsis Typos Yiyi Hu and Andrew Savige found a few typos in a few synopses. Larry graciously fixed them. http://xrl.us/jwue Automatic Instantiation Darren Duncan wondered if Perl 6 had a way to provide a default value for uninstantiated variables of a particular type. The led to Larry going into a little more detail on protype objects, and Matt Fowles pushing for even more detail. http://xrl.us/jwuf Perl 6 Development Process Yuval Kogman posted a loose plan for for improving Perl 6's development momentum. This is a contentious issue, and I will not try to summarize it directly. Read the link, it is the last one of the summary. http://xrl.us/jwug The usual footer To post to any of these mailing lists please subscribe by sending email to [EMAIL PROTECTED], [EMAIL PROTECTED], or [EMAIL PROTECTED]. If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl. You might also like to send feedback to [EMAIL PROTECTED] http://donate.perl-foundation.org/ -- The Perl Foundation http://dev.perl.org/perl6/ -- Perl 6 Development site http://planet.parrotcode.org/ -- Parrot Blog aggregator
Re: overloading the variable declaration process
Stevan~ On 2/7/06, Stevan Little [EMAIL PROTECTED] wrote: Well, to be totally honest, I think only Larry truely understands their usage, but to the best of my understanding they are intented to serve a number of roles; I agree with you about that, which is part of what bothers me. (Larry, please correct me if I am wrong here) - to allow for introspection of the class. After all ^Foo.can() is really just a series of method calls to the Foo metaobject. And besides ^Foo.meta.can() is 5 more characters to type!! - provide an invocant for class methods. Larry does not like the class-method/instance-method distinction (in fact it seems he doesn't even like the class/instance distinction either), and has declared that a class method is really just a method of the class which does not access any instance attributes. Well, this complicates the type signature of the invocant, and we need an invocant that the type-checker can check. In Perl 5, classes were just package names which were just strings. This will not work in Perl 6 in the presence of a reasonably decent type checker, the class needs to be *something*. Now Larry has also declared that he does not like the idea of a class object, I think this is because that means that a properly typed method signature for a class method would look like this: class Foo { method foo (Class $class:) { say I am a class method, and proud of it; } } According to the signature, this method takes any Class instance as an invocant. Well thats just not right because it should only accept the Class instance which represents the Foo class. But we can't (at least I dont think we can) be that specific, at least not easily enough to also allow this method to be called by an instance of Foo as well. So, the solution, use prototype instances for class objects. So now we can properly type our class method for both Foo and $foo like this: class Foo { method foo (Foo $class:) { say I am a class method, and proud of it; } } And whalla, we have a class/instance method ala Perl 5 and it is properly type checkable too. Of course I might be totally wrong here, but this is my best grasp on the subject. Perl 6 allows dispatch on value (if I am not mistaken). Thus, just as we have a sub fact( Int 0 ) { return 0; } sub fact( Int $n ) { return $n * fact($n-1); } Why not have class methods take the form class Foo { method foo (Class Foo) { say I am a class method, and proud of it; } } They are still well types (I think), and properly restricts the types allowed for foo. After all Foo is just a specific instance of the class Class. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
Re: overloading the variable declaration process
Larry~ On 2/6/06, Larry Wall [EMAIL PROTECTED] wrote: This is mostly motivated by linguistics rather than computer science, insofar as types/classes/roles in natural language are normally represented by generic objects rather than meta objects. When I ask in English: Can a dog bark? that's equivalent to asking in Perl 6: Dog.can('bark') Or you might think of it more as a question like Can the ideal of a dog bark? the answer to which is of course No, it doesn't exist.. Perhaps, I am just too firmly rooted in old paradigms but I think it is very important not to conflate the representation of a thing with the thing. http://en.wikipedia.org/wiki/Image:MagrittePipe.jpg Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
Perl 6 Summary for 2006-01-10 though 2006-01-24
Introspection Will Coleda wants an API for introspecting PMCs from PASM. http://xrl.us/jpxg FrOSCon Call For Papers Marcus Thiesen announced that the first Free and Open Source Conference is looking for papers in both English and German. http://xrl.us/jpxh YAML::Parser::Syck Bernhard Schmalhofer posted a brief look at what has already been done with adding support of libsyck and left the door open to anyone who wished to pick up the torch. Warnock applies. http://xrl.us/jpxi Parrot Link Issues Klaas-Jan Stol had problems linking parrot. Larry managed to track the problem down to an old libparrot in /usr/local/lib being picked up prematurely. http://xrl.us/jpxj Parrot_Context Unused Field Bob Rogers posted a patch which improved the name of an unused field in Parrot_Context. Leo applied the patch. Matt Fowles wondered why leave the unused pointer in at all. Leo explained that it was need for mark_register_stack to work out correctly, although another pointer could be moved over it to save those 4 bytes (or even 8 on 64 bit platforms!). http://xrl.us/jpxk gunie.g Question Chris Dolan was curious why print was an expression and not a statement in the punie grammar. Andrew Rodland explained that print was an expression because it return a value (success or failure). http://xrl.us/jpxm genrpt.pl is Obsolete Bernhard Schmalhofer noticed that tools/dev/genrpt.pl does the same thing as parrotbug and could thus be removed. Joshua Hoblitt agreed. http://xrl.us/jpxn Parrot::Config Contains Invalid Info Jerry Gay noticed that his Parrot::Config was being created with invalid data. Joshua Hoblitt offered to clean up one problem and asked for takers on another. http://xrl.us/jpxo Rename src/classes to src/pmc Bernhard Schmalhofer proposed and performed, after favorable reception of his proposal, a migration from directories name src/classes to src/pmc. http://xrl.us/jpxp Out of Date Comments Brad Bowman noticed some comments refering to cache.* in pobj.h. He provided a patch to remove them. Warnock applies. http://xrl.us/jpxq compute_dominance_frontiers Bug Bob Rogers found a problem in compute_dominance_frontiers . Curtis Rawls suggested simply disabling the function as it was merely a precursor to SSA which was never finished. http://xrl.us/jpxr Closure::mark Segfault Bob Rogers found a fixed a segfault in Closure::mark. Leo applied the patch. http://xrl.us/jpxs Parrot CPAN Bundle? Jerry Gay suggested making a CPAN Bundle (or possibly several) for Parrot. Chip liked the idea of having one bundle, and thought that having several sub-bundles would be more effort than it might be worth. http://xrl.us/jpxt Calling Conventions Details Leo had a few questions about pdd03 (calling conventions). Chip provided clarifications. http://xrl.us/jpxu PDD11 Bit Rot Brad Bowman noticed a bit of rot in pdd11 and polished it up. Jerry Gay applied the patch. http://xrl.us/jpxv Named Argument Passing Leo proposed a way of passing named arguments in PIR. Response was favorable, and he implemented it. http://xrl.us/jpxw -- proposal http://xrl.us/jpxx -- implementation LuaTables of Floats Klaas-Jan Stol wondered how to use N values as keys. Leo suggested using Float PMCs and Matt Fowles warned of the danger of using floating point values where equality checks might be needed. http://xrl.us/jpxy Argument Passing Bug Bob Rogers found an issue with the :optional to :slurpy state transition in process_args, so he fixed it. Leo applied the patch. http://xrl.us/jpxz Object Initialization Changes Bob Rogers noticed some changes the semantics of object initialization. He sent a patch with more tests, but Warnock applies. http://xrl.us/jpx2 Assertion Failure in Life Tim Bunce found an assertion failure in ncurses_life.pir. Leo fixed the problem. http://xrl.us/jpx3 ncurses files Tim Bunce found several different ncurses files in runtime/parrot/library/ and asked which were generated from the others. Leo explained that ncurses.pasm was generated from ncurses.declarations, but that ncurses.pir was hand made. He suggested splitting them into to parts, one for libncurses and another for libform NCI functions. http://xrl.us/jpx4 Cygwin Build Failures Greg Bacon was having build troubles on Cygwin. After much work, still no resolution. http://xrl.us/jpx5 HP-UX Alignment Issues Nick Glencross found a failing assertion on HP-UX. Leo suggested disabling function pointer alignment on this system since it dist not appear to be working. http://xrl.us/jpx6 .const improvements François Perrad noticed that .const
Re: Class methods vs. Instance methods
Larry~ On 1/18/06, Larry Wall [EMAIL PROTECTED] wrote: But I have a strong gut-feeling that over the long term it's going to be important to be able to view a given object as either a partially instantiated class or a partially undefined object, and for that we have to break down the false class/instance dichotomy. And to the extent that the dichotomy *isn't* false, we're trying to sweep classness into the .meta object, which is the *real* class object in Perl 6. Perhaps I am just being short sighted, but I never saw this as a false dichotomy. In fact, every time I hear about these partially instatiated I cringe in horror about the strange halfway lands we might end up in... Oh no, this method can only be called on an object that is 3/4 initialized, and you supplied one that is 2/3 initialized that causes undefined behavior. Could you provide a concrete example of the advantage of this approach please? Failing that can you try and expand on your gut feeling a bit? Thanks, Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
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 the
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
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: type sigils redux, and new unary ^ operator
Luke~ On 11/23/05, Luke Palmer [EMAIL PROTECTED] wrote: On 11/23/05, Rob Kinyon [EMAIL PROTECTED] wrote: On 11/22/05, Larry Wall [EMAIL PROTECTED] wrote: for ^5 { say } # 0, 1, 2, 3, 4 I read this and I'm trying to figure out why P6 needs a unary operator for something that is an additional character written the more legible way. Huh? Are you saying that 0..^5 is one more character than ^5? In any case, I'm not sure that this unary helps readability, or that I like it all that much, but I can say that it's damned useful. I use ranges of the form 0..$n-1 more than any other range, by a very long shot. To me, ^ indicates XOR, so unary ^ should really be the bit-flip of the operand. Except in Perl 6, XOR is spelled +^ or ~^, and ^ is Junctive one(). So it seems that ^$x should be one($x). But that's an entirely useless, trivial junction, so it makes sense to steal the syntax for something else. I think using C ..5 to mean (0, 1, 2, 3, 4) would be a more sensible option. Makes sense to me at least. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
Re: type sigils redux, and new unary ^ operator
Larry~ On 11/23/05, Larry Wall [EMAIL PROTECTED] wrote: On Wed, Nov 23, 2005 at 11:55:35AM -0500, Matt Fowles wrote: : I think using C ..5 to mean (0, 1, 2, 3, 4) would be a more : sensible option. Makes sense to me at least. That doesn't derive well from any of: .. ^.. ..^ ^..^ If the rule is you can omit the 0, then it's ..^5 rather than ..5. I like C ..^5 better than C ^5 actually. I was going for the rule that an omitted LHS was 0 and an omitted RHS was infinity (your probably cannot omit both). Regardless, my gut tells me that C ^5 is just a little too short for what it does. Also, I find the argument that people will type [EMAIL PROTECTED] and get confused fairly convincing. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
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
Re: Is there a way to generate an object without new?
Juerd~ On 10/27/05, Juerd [EMAIL PROTECTED] wrote: Yiyi Hu skribis 2005-10-28 3:17 (+0800): class A { has $.b; method show { $.b.say }; }; A( b = 5 ).show;` This is how some other language construct objects, but not how Perl does it. In other words: you should not want this. How does that logically follow? Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
Re: +$arg changed to :$arg
Larry~ On 10/26/05, Larry Wall [EMAIL PROTECTED] wrote: So we'd get: :@array[42] 42 = @array[1] Do you mean C :@array[42] 42 = @array[42] ? The last three forms are more arguable than the first three, especially since they probably aren't valid formal parameters. We kind of need a subscript modifier instead: @array:[42] 42 = @array[1] Same question. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
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
Re: What the heck is a submethod (good for)
All~ On 10/13/05, Brent 'Dax' Royal-Gordon [EMAIL PROTECTED] wrote: Luke Palmer [EMAIL PROTECTED] wrote: Okay, I seriously have to see an example of a submethod in use. Likewise. As far as I've seen, submethods are a kludge wedged in for cases where you're actually calling all the way up the inheritence tree. Personally, I've always thought a cascade method syntax would be better for that: post method BUILD($foo, $bar) { ... } pre method DESTROY() { ... } Cascade methods would be called (before|after) the indicated method in a superclass was called. Their return values would probably be thrown away. I think they might actually be a sort of syntactic sugar for inserting `call` in the method body, but that's an implementation detail, really... I have always wondered about the absence of these. CLOS has them and they look quite useful. Was it an intentionaly decision to omit this type of multi method? Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
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: Look-ahead arguments in for loops
Austin~ On 9/29/05, Austin Hastings [EMAIL PROTECTED] wrote: Matt Fowles wrote: Austin~ On 9/29/05, Austin Hastings [EMAIL PROTECTED] wrote: Plus it's hard to talk about backwards. If you say for @l - ?$prev, $curr, ?$next {...} what happens when you have two items in the list? I think we're best off using signature rules: optional stuff comes last. I disagree, I think that is an easy call for (1, 2) - ?$prev, $cur, ?$next { say $prev - $cur if $prev; say $cur; say $cur - $next if $next; say next; } should print 1 1 - 2 next 1 - 2 2 next Did you mean: next 1 - 2 # two spaces there? No, my logic is that the loop is run through twice, once with (undef, 1, 2) and once with (1, 2, undef). Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
Re: Look-ahead arguments in for loops
Austin~ On 9/29/05, Austin Hastings [EMAIL PROTECTED] wrote: Plus it's hard to talk about backwards. If you say for @l - ?$prev, $curr, ?$next {...} what happens when you have two items in the list? I think we're best off using signature rules: optional stuff comes last. I disagree, I think that is an easy call for (1, 2) - ?$prev, $cur, ?$next { say $prev - $cur if $prev; say $cur; say $cur - $next if $next; say next; } should print 1 1 - 2 next 1 - 2 2 next Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
Re: Stringification, numification, and booleanification of pairs
Yuval~ On 9/22/05, Yuval Kogman [EMAIL PROTECTED] wrote: On Thu, Sep 22, 2005 at 08:20:42 +1000, Damian Conway wrote: Ingo Blechschmidt asked: my $pair = (a = 42); say ~$pair; # a\t42? a\t42\n? a 42? Not yet specified but I believe it should be 42 (i.e. stringifies to value). Note that S02 does specify that pairs *interpolate* to key-tab-val-newline, so you can still get a\t42\n by writing $pair instead. Can we override circumfix: ? Seriously though, this is too much dichotomy between correctness and ease of use. A pair is not it's value, it is a pair, and should be consistently handled as such when e.g. stringifying. The reasons for this claim are: * Coercion to a string creates something interpolatable. Introducing another type or context or metaphor for string handling is counter intuitive and surprising. * We have powerful facilities for interpolation and stringification that don't have to be hidden behind operator overloading: this is my special pair: $pair; otherwise: $pair.key - $pair.value; my multi prefix:~ (Pair $p) { key: $p.key, value: $key.value; } not like the first interpolation: $pair; $pair.as(...); These examples are flexible, explicit and stable in their behavior. They are good enough as they are and don't need to be improved by adding flexibility in something that is almost a special case. * This adds complexity without much benefit. It heaps up the core with a special case that people will have to look out for later, and it hinders the usability of higher order functions by making it harder for them to accept the stringiciation operator, for instance. This lessens Perl 6 stability and cleanliness into something resembling Perl 5 with more builtin data types and operations Well said! I completely agree that string interpolation should be handled exactly the same as stringification. I would like C (foo is $foo of course) eq (foo is ~ $foo ~ of course) at all times. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
Re: \(...)?
Ingo~ On 9/21/05, Ingo Blechschmidt [EMAIL PROTECTED] wrote: foo(1,2,3); # infix:, *not* called foo (1,2,3); # same as foo( (1,2,3) ); # infix:, called Do you mean this to read? foo(1,2,3); # infix:, *not* called foo .(1,2,3);# infix:, *not* called foo (1,2,3); # infix:, called foo( (1,2,3) ); # infix:, called Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
Re: conditional wrapper blocks
Yuval~ On 9/20/05, Yuval Kogman [EMAIL PROTECTED] wrote: Today on #perl6 I complained about the fact that this is always inelegant: if ($condition) { pre } unconditional midsection; if ($condition) { post } I asked for some ideas and together with Aankhen we converged on the following syntax: if ($condition) { pre; } uncond { middle; } cond { post; } s/uncond/pause regardless.pick/e; s/cond/resume again.pick/e; Some restrictions: The block structure must always be ternary - for other cases we already have enough control flow. The if is not the same if that can cuddle with else - it's either or. Does anybody have any comments, or synonyms for the control structure naming? BTW, I expect readability to be optimal with 1-2 lines of pre/post, and 1-5 lines of middle. Any observations? I don't really find this that inellegant. It also seems like something that is not painful enough to warrant adding new syntax, especially a syntax that conflicts with if .. else .. It seems like add complexity for very little win (granted it is not a lot of added complexity, but perl6 is already an very large language). Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
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
Who is @Larry?
All~ I have a simple question. Who comprises @Larry? I am fairly sure that I know a few people in it, but I am highly doubtful that I know all of them. Thanks, Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
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
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
Re: Elimination of Item|Pair and Any|Junction
Larry~ On 7/27/05, Larry Wall [EMAIL PROTECTED] wrote: On Wed, Jul 27, 2005 at 08:01:25PM +0800, Autrijus Tang wrote: : On Fri, Jul 22, 2005 at 03:40:34PM -0700, Larry Wall wrote: : I dunno. I'm inclined to say that it should default to Item|Pair, and : let people say Any explicitly if they really want to suppress autothreading. : Otherwise conditionals and switches are going to behave oddly in the : presence of accidental junctions. : : Okay. However, in that view, I suspect many builtins will be defined on : Item|Pair, for example perl, clone, id, as well as various coercion : builtins. Considering that builtins are Code objects but not Routines, : maybe they, too, should default to Item|Pair -- except the ones that : operates on junctions, of course. : : This leads me to think that maybe users don't really need to write down : the two junctive types, under the hierarchy below: : : - Object : - Any : - Item : - ...pretty much everything : - Pair : - Junction : - num, int, str... : : Since junctions are still boxed objects, having the Object type to : effectively mean Any|Junction seems natural (everything is an object). : : Also, since Any unifies Item and Pair, the rule for implicit types of : argument becomes: : : sub ($x) { }# Item $x : - $x { } # Any $x- i.e. Item|Pair but not Junction : { $^x } # Any $x- i.e. Item|Pair but not Junction : : Does this sound sane? Yes. The only thing I don't like about it is that any() isn't an Any. Maybe we should rename Any to Atom. Then maybe swap Item with Atom, since in colloquial English you can say that pair of people are an item. That would give us: - Object - Item - Atom - ...pretty much everything - Pair - Junction - num, int, str... which nicely distinguishes Item from Junction. On the other hand, I actually kinda dislike the word Atom for common use (too much exposure to Lisp, I guess), so maybe we just want - Object - Mumble - Item - ...pretty much everything - Pair - Junction - num, int, str... where Mumble is something like Atom/NonJunction/Unit/Scalar/[your ad here]. While we are talking about words... I dislike having Object encompass Juction. I get the feeling that some people will write functions that take Objects and not expect Junctions to slip in. I suppose that could be one of those hurdles that developers just have to jump, but it doesn't feel like it should be. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
Perl 6 Summary for 2005-07-19 through 2005-07-26
plugged a few leaks caused by string_to_cstring. Leo applied the patch. http://xrl.us/gv67 Deleting Globals/Lexicals Matt Diephouse noted that there was no way to delete globals or lexicals. Leo posted one (untested) way to do it. http://xrl.us/gv68 Generating Win32 Executables Jonathan Worthington laid some ground work for generating executables on windows. Leo applied the patch. http://xrl.us/gv69 Library Loading on Win32 Jonathan Worthington beefed up the library searching logic in Parrot to be a little more Windowsy. Leo applied the patch. http://xrl.us/gv7a PBC Merge Utility Leo posted a request for a utility that could merge several pbc files into one. http://xrl.us/gv7b Calling Super Methods Matt Diephouse noticed that there was no way to call the method from a super class. Leo pointed out a way to do it by accessing the slots of the parent directly. http://xrl.us/gv7c Cmd Buffer Reallocation Greg Bacon fixed a bug in the reallocation of the cmd buffer on Win32. Jonathan Worthington applied the patch. http://xrl.us/gv7d Data::Dump(PGE) Will Coleda added a TODO for making PGE's match objects compatible with Data::Dumper. http://xrl.us/gv7e does Hash Will Coleda wants Data::Dumper to check if an object does Hash or Array and dump it thusly if no default dump is implemented. http://xrl.us/gv7f rx.ops's future Will Coleda wondered what the future of the rx ops. Brent 'Dax' Royal-Gordon, who wrote them, recons they are not long for this work. He reckonned that the intstacks and the bitmap handling code might be worth saving. http://xrl.us/gv7g Debugger - List breakpoints Will Coleda noticed that the debugger was not quite compatible with perl's. Leo replied that the debuggers whole command loop was a mess that required a turn of the crank. http://xrl.us/gv7h \u escape issues Will Coleda opened a ticket for some unicode escape issues. Leo asked for a test case. http://xrl.us/gv7i string - int conversions Matt Diephouse noticed that there was no opcode Octal and Hex conversions. Leo suggested adding one of the form set Ix, Sy, Ibase # Ibase = 2..36 . http://xrl.us/gv7j Make make languages Failures Nonfatal Bernhard Schmalhofer suggested that make languages should not give up after the first failure, but should instead build the remaining languages. http://xrl.us/gv7k Dynclasses on Windows Nick Glencross and Jonathan Worthington discussed how to make dynclasses build on windows. http://xrl.us/gv7m Resizable*Array Allocation Matt Fowles submitted a patch making all the various Resizeable*Array pmcs share their allocation strategy. Bernhard Schmalhofer applied the patch. http://xrl.us/gv7n MMD Roundup - Take 2 Nicholas Clark attempted to dewarnock a suggested change by Leo. Unfortunately, his thoughts on the matter were this is really a call for the designer to make, isn't it?. Leo suggested starting a WARNOCKED file for these things. Will countered that adding it to the DESIGN section in docs/ROADMAP, so Chip needs only look in one place. http://xrl.us/gv7o Parrot Failures on OS X Nicholas Clark forwards some failures on OS X to the Parrot list (from the Ponie one). http://xrl.us/gv7p Parrot Needs stderr Nicholas Clark noticed that running parrot with a closed stderr, makes parrot unhappy. http://xrl.us/gv7q GMC Alexandre Buisse and many others have been talking about his Generation Mark and Compact Garbage Collector. Plans are rapidly taking shape. http://xrl.us/gv7r Perl 6 Language User Defined Context Behavior Ingo Blechschmidt wanted to know how to make is own custom class that would act specially in list context. Thomas Sandlaß suggested overloading infix:=. Sadly, his answer doesn't seem to have made it to google groups. http://xrl.us/gv7s Hash Creation with Duplicate Keys Ingo Blechschmidt noticed that in Perl 5 hash definitions the right most duplicate one, whereas the left most wins in Perl 6. He was wondering if this was a bug or not. Luke explained that it was that way for named variable bindings. Larry figured it should be that way ONLY for named variable binding. If Pugs has not done it yet, some brave soul could probably add tests and find it implemented before they had finished committing. http://xrl.us/gv7t Tail Calls, Methods, and Currying Brent 'Dax' Royal-Gordon wondered about Tail calls, noting that the current method $obj.can('meth').goto($obj, [EMAIL PROTECTED]); was kinda ugly. Larry mused that return g() should go ahead and tail call. If the code does not want a tailcall there then it should avoid it manually. http://xrl.us
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: method calls on $self
Larry~ On 7/11/05, Larry Wall [EMAIL PROTECTED] wrote: On Mon, Jul 11, 2005 at 11:14:18AM +0200, Michele Dondi wrote: : Hmmm... I am one of those who likes ./ more, instead. I mean, I _really_ : like it! Thus, how about making '/' less meaningless, i.e. more : meaningful, in more general situations?!? Um, do you have a specific proposal? Like maybe / can be applied as a metaoperator to any binary operator to make it into a unary operator with the left side implicitly $?SELF, or some such? Hmm... if ==/ 3# if $?SELF == 3 could even extend it to postfix ops: ++/;# $?SELF++ However, it has several problems. First, . isn't really a binary operator, but the prefix of a postfix operator. Second, the / is potentially ambiguous with a following pattern unless we require space before termish /. Third, the / is psychologically in the wrong place to stand in for something in front. Or to turn these on their head, we've just made three good arguments for something like: if o == 3 and o++; I'm afraid that, while ./ is cute and visually distinctive, I find I'm getting tired of its idiosyncracies. You shouldn't go out and marry someone just because they're cute and visually distinctive. Hooray for long engagements, and occasional disengagements. Yay! I guess I will take this moment to resuggest @^ as a list of invocants and $^ =:= @^[0]. I like how the ^ kinda points you the right way, also visually distinctive and doesn't get in the way of $_... Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -Stan Kelly-Bootle, The Devil's DP Dictionary
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
Re: return() in pointy blocks
Ingo~ On 6/7/05, Ingo Blechschmidt [EMAIL PROTECTED] wrote: Hi, sub foo (Code $code) { my $return_to_caller = - $ret { return $ret }; $code($return_to_caller); return 23; } sub bar (Code $return) { $return(42) } say foo bar; # 42 or 23? I think it should output 42, as the return() in the pointy block $return_to_caller affects foo, not the pointy block. To leave a pointy block, one would have to use leave(), right? I don't like this because the function bar is getting oddly prematurely halted. If bar had read sub bar(Code $moo) { $moo(13); save_the_world(); } it would not have gotten to save the world. One might argue that $moo could throw an exception, but bar has a way to catch that. It seems to me that what you are asking for has the potential to cause some vary large unexpected jumps down the stack. That said, I would want the pointy subs in for loops to ask this way, so maybe this is just one of those things that one has to be ware of. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
Re: return() in pointy blocks
All~ On 6/7/05, Luke Palmer [EMAIL PROTECTED] wrote: On 6/7/05, Matt Fowles [EMAIL PROTECTED] wrote: On 6/7/05, Ingo Blechschmidt [EMAIL PROTECTED] wrote: Hi, sub foo (Code $code) { my $return_to_caller = - $ret { return $ret }; $code($return_to_caller); return 23; } sub bar (Code $return) { $return(42) } say foo bar; # 42 or 23? I think it should output 42, as the return() in the pointy block $return_to_caller affects foo, not the pointy block. To leave a pointy block, one would have to use leave(), right? I don't like this because the function bar is getting oddly prematurely halted. Then let's put it this way: sub foo () { for 0..10 { when 6 { return 42 } } return 26; } And if that didn't do it, then let's write it equivalently as: sub foo () { map(- $_ { return 42 }, 0..10); return 26; } Do you see why the return binds to the sub rather than the pointy now? Also, we're going to be avoiding the return continuation problem with: sub foo() { return - { return 42 }; } my $code = foo(); say Boo!; $code(); Says not: Boo Boo Boo ... But: Boo Can't return from subroutine that already returned at eval line 2. You are right. I yield... It just made by brain hurt, now that it is somewhat fortified with caffeine I see. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
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
reduce metaoperator on an empty list
All~ What does the reduce metaoperator do with an empty list? my @a; [+] @a; # 0? exception? [*] @a; # 1? exception? [] @a; # false? [||] @a; # false? [] @a; # true? Also if it magically supplies some correct like the above, how does it know what that value is? Thanks, Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
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: ^method ?
All~ I feel like people have lost track of one of the initial arguments for having C .method == $?SELF.method . Currently, all of $.foo @.foo %.foo and their ilk operate on the current invocant, $?SELF. This leads naturally toward .foo also refering to $?SELF. But as we all know the is optional on function calls... This symmetry and regularity seems like a powerful thing to me and I would not want to lose it... Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
Re: (1,(2,3),4)[2]
All~ On 5/11/05, Luke Palmer [EMAIL PROTECTED] wrote: On 5/11/05, Autrijus Tang [EMAIL PROTECTED] wrote: In a somewhat related topic: pugs (1,(2,3),4)[2] 4 Because the invocant to .[] assumes a Singular context. Right, but the *inside* of the invocant is still a list, so it's in list context. I think that line should return 3. I am confused as to why exactly this is the case. Are you saying that nested lists like this flatten? That would certainly catch me off guard. Would you mind explaining that to me a little more? Thanks, Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
Re: Clarification of behavior for .isa() on built-in types
Stevan~ On 5/7/05, Stevan Little [EMAIL PROTECTED] wrote: But can it also be a Junction? : $fido.isa(Dog | Cat)# true if $fido.isa(Dog) or $fido.isa(Cat) $fido.isa(Dog Beagle) # true if $fide.isa(Dog) and $fido.isa(Beagle) If it can be a Junction, it makes me wonder if maybe what is happening behind the scenes is not some variant of the smart-match (~~). In that case, then would something like this DWIM (ignoring the questionable sanity of actually doing it for a momemnt) This can be accomplished by simply using the autothreading semantics of junctions. The isa() call will be made repeatedly with the different arguments and then the junction will know how to combine that into a single boolean result. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
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
Re: Open and pipe
All~ On 5/2/05, Uri Guttman [EMAIL PROTECTED] wrote: LW == Larry Wall [EMAIL PROTECTED] writes: LW multi sub opensocket ( LW Str +$mode = 'rw', LW Str +$encoding = 'auto', LW Str [EMAIL PROTECTED]) returns IO; and how will that support async (non-blocking) connects? or listen sockets? i assume this is sorta the replacement for IO::Socket which is a pure key/value api (except for the shortcut single arg host:port which is nice to also support). for async you need to provide a callback in the signature (beyond all the other socket args), an optional timeout (with its own callback). the callbacks could be defaulted to subs in the current module/namespace but the coder may also want an OO callback which needs an object and method. another little optional argument is a private data field. sure an object callback could handle on a per object basis. but what if one object wanted to manage multiple async socket connections? each one needs to be identified in the callbacks which is what the private data is for. it is passed as an arg to the callback sub/method. Currying obviates the need for everything but a sub callback. If you want a callback to a method, curry the object. If you want private data, curry the data. After you are done currying you will have a simple sub to pass in as the callback, the peasants rejoice, and libraries will have a simpler interface. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
Re: Open and pipe
All~ On 5/3/05, Uri Guttman [EMAIL PROTECTED] wrote: MF == Matt Fowles [EMAIL PROTECTED] writes: MF All~ MF On 5/2/05, Uri Guttman [EMAIL PROTECTED] wrote: LW == Larry Wall [EMAIL PROTECTED] writes: LW multi sub opensocket ( LW Str +$mode = 'rw', LW Str +$encoding = 'auto', LW Str [EMAIL PROTECTED]) returns IO; and how will that support async (non-blocking) connects? or listen sockets? i assume this is sorta the replacement for IO::Socket which is a pure key/value api (except for the shortcut single arg host:port which is nice to also support). for async you need to provide a callback in the signature (beyond all the other socket args), an optional timeout (with its own callback). the callbacks could be defaulted to subs in the current module/namespace but the coder may also want an OO callback which needs an object and method. another little optional argument is a private data field. sure an object callback could handle on a per object basis. but what if one object wanted to manage multiple async socket connections? each one needs to be identified in the callbacks which is what the private data is for. it is passed as an arg to the callback sub/method. MF Currying obviates the need for everything but a sub callback. If you MF want a callback to a method, curry the object. If you want private MF data, curry the data. After you are done currying you will have a MF simple sub to pass in as the callback, the peasants rejoice, and MF libraries will have a simpler interface. i like the concept but how would that work without actually creating closures? to convert a sub call to a method on an object is code, not just presetting args (which is what i gather currying is). now just using a closure would work but i am not in favor of allocating them just for this when other optional args can do the job. even with the full interface as i want it, you can use closures as your callbacks and keep it shorter. i just don't see the win of more code vs more args. Curried functions are most likely implemented as closures internally. But perl6 has C .assuming which does most of the ugly syntactic work of creating the closure for us. As for the cost of allocating the closure, I tend not to worry about that till I know it is a problem. Most callbacks are created once and called many times, so the allocation costs are not a great concern. On the other hand, I view a simpler interface to a library as a big win. Yes, optional arguments could be added which allow for such things, but then the library has to document and manage all of these arguments, and the library user has to learn them all. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
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
Perl 6 Summary for 2005-03-22 through 2005-04-05
Perl 6 Language ceil and floor Ingo Blechschmidt wondered if ceil and floor would be in the core. Warnock applies... Although Unicode operators would let me define circumfix \lfloor \rfloor (although I only know how to make those symbols in tex...). Hmmm... using tex to right Perl 6 code... interesting idea... at least then I could figure out how to make all the special symbols. Maybe someone should make a package for that. http://xrl.us/foe7 s/// object? Stevan Little wanted to know if s/// could return some sort of magic object that could be poked or prodded. Larry explain, no. http://xrl.us/foe8 markup like features Michele Dondi asked if perl 6 would have markup like features in it. Luke Palmer asked for a more full explanation of what was meant. Warnock applies. http://xrl.us/foe9 the many moods of does Thomas Sandlaß wondered if S14 would actually be written or if tie/bless were eaten by does, enumerating the many powers of does. Larry explained that does will probably have mutated bless and then explained the contexts under which does does each of its powers. http://xrl.us/fofa the many moods of does To follow up his question about does, Thomas Sandlaß wondered about is (specifically whether it stubbed or initialized its variable). Larry explained that is would probably initiliaze its variable and explained how one could use is Ref to stub but not initiliaze something. http://xrl.us/fofb perl5 - perl6 converter Adam Kennedy dropped a line to the list about PPI 0.903, which could form a good base for a Perl 5 to Perl 6 convert. Larry explained that he was actually using PPD (the actual Perl parser) to construct such a tool. He also explained his approach on how he was going to do it. Actually it is a really cool approach for those of you who like elegant design approaches, you should check it out. I'll give you a hint, it starts by writing a glorified version of cat. http://xrl.us/fofc p5 library compatibility? Andrew Savige wondered if p6 would maintain the interface for most p5 libraries. chromatic almost died of fright from the suggestion. Juerd suggested a deprecated namespace for such things. Larry gave him a ponie instead. Later Larry thought that perhaps a special namespace for those libraries that could be automatically converted might be appropriate. http://xrl.us/fofd http://xrl.us/foff -- later importing constants and header files Song10 wondered if there was an easy way to import constants from a module and not have to specify their full scope in the includers file. Larry explained that p6 would have policy modules which would allow this. He then began to let his mind explore the possibility of allowing these modules to return a string to evaluate in the user's scope. Then he realized how nasty textual inclusion was in C and C++, and figured that a hygenic policy would be better. http://xrl.us/fofg giving lists more operators Juerd constructed a table of string, integer, and list operators. He noticed that list had blank spots where string and integer both had things. He then suggested quite a few more operators to fill these blanks... This morphed into a discussion of code complexity and reading code. http://xrl.us/fofh -- operators http://xrl.us/fofi -- complexity string pain Chip wondered what exactly set str apart from Str and the impact this had on Unicode support. Larry and Rod Adams explained that str specified a raw bytes view of strings and required explicit casts between different Unicode levels. http://xrl.us/fofj xx on CodeRefs Luke Palmer wondered if the xx operator could be overloaded to repeatedly run a coderef and slap the results together. Other liked it, but no word from on high. http://xrl.us/fofk running pugs Adam Preble had some strange problems with Pugs's make install target. Warnock applies. http://xrl.us/fofm maniplulation many dimensional hashes Zhuang Li wanted to know how to manipulated hashes of unkown dimension. Luke Palmer provided the answer. http://xrl.us/fofn Semantics of Currying Yuval Kogman has been implementing currying in PUGS. As such, he has found some of the corner cases that have not been well specified. Thus he, Larry, Luke Palmer, and Thomas Sandlaß delve into these mysteries. http://xrl.us/fofo multi paradigmatic perl 6 Someone named Eddie posted a fairly long message to p6l on the google groups interface suggesting that Perl 6 support delegation and other programming paradigms. Sadly, no one told him that it already does both of those things, because nobody got his email. Google groups does not send messages back to the list. http://xrl.us/fofp
Re: use less in perl6?
Aaaron~ On Wed, 30 Mar 2005 08:48:55 -0500, Aaron Sherman [EMAIL PROTECTED] wrote: On Wed, 2005-03-30 at 10:20 +0200, Yuval Kogman wrote: Perl 6 has some more interesting capabilities for lexical scoped hinting of tradeoff preferences. For example: use less precision; # the default nums created in this scope are # lower precision floats use less cpu; # many places this can have a desired effect use less memory; # especially in the underlying impls of # structures use less stuff; # might have a meaning for a library Hmmm.. I wonder what this would do: use less syntax; ;-) Back out the entire p6 grammar and put in lisp's instead... Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
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: Junction Values
Damian~ On Mon, 21 Feb 2005 08:29:40 +1100, Damian Conway [EMAIL PROTECTED] wrote: Nicholas Clark wrote: On Sun, Feb 20, 2005 at 07:41:16PM +1100, Damian Conway wrote: Given this: my $x = set(1..3); my $y = set(1,3,5,7,9); my $n = 2; $x | $y # set(1,2,3,5,7,9) $x $y # set(1,3) $x - $y # set(2) !$x # set(none(2));-) I don't understand this last line, even given the context of the preceding three. Why is it none of 2, rather than none of something else? ESTUPIDDAMIAN. Should, of course be: !$x # set(none(1..3));-) Damian PS: This is also a demonstration of the awesome power of junctions: that we can specify the complement of a set without knowing its universal set! Or one more thing to drive the mathematicians into a rage... Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
Re: Junctive puzzles.
All~ On Wed, 09 Feb 2005 22:48:00 +, Matthew Walton [EMAIL PROTECTED] wrote: Matt Fowles wrote: All~ On Tue, 08 Feb 2005 17:51:24 +0100, Miroslav Silovic [EMAIL PROTECTED] wrote: [EMAIL PROTECTED] wrote: Well, we see the same kind of thing with standard interval arithmetic: (-1, 1) * (-1, 1) = (-1, 1) (-1, 1) ** 2 = [0, 1) The reason that junctions behave this way is because they don't collapse. You'll note the same semantics don't arise in Quantum::Entanglement (when you set the try to be true option). But you can force a collapse like this: my $x = 4 $j; if $j 2 { say never executed } By which I mean: my $x = 4 $j; if $x 2 { say never executed } Uh, I'm not sure this does what I think you wanted to say it does. ;) $x is a boolean, unless returns a magical object... in which case, the magical part of $x ought to be a reference to the original $j, no? I'm wonding if we should allow a method that returns a junction that is allowed to collapse the original: if 4 $j.collapse and $j.collapse 2 { say never executed; } But that's probably not a good idea, just by looking at the implementation complexity of Quantum::Entanglement. People will just have to learn that junctions don't obey ordering laws. Well, I suspect that junctions will have to be references and just collapse every time. Observe: my $x = any(1, 2, 3, 4, 5); print SHOULD NOT RUN if (is_prime($x) is_even($x) $x 2); This only works if $x collapses. Same for matching junctioned strings: my $a = any (a b c); print Boo! if $a ~ /a/ and $a ~ /b/ and $a ~ /c/; (perhaps I meant to use ~~, I don't quite remember :) ) Either way, autocollapsing juntions is a Good Thing IMHO, and the only remaining confusion (to go back to my initial post) is that the only case that doesn't work is when you instance a junction twice as a pair of same literals: print SUCCESS, unfortunately if (is_prime(any(1, 2, 3, 4, 5)) is_even(any(1, 2, 3, 4, 5)) any(1, 2, 3, 4, 5) 2); Hope I'm making sense. Been a hard day at work. ;) What if junctions collapsed into junctions of the valid options under some circumstances, so my $x = any(1,2,3,4,5,6,7); if(is_prime($x) # $x = any(2,3,5,7) and is_even($x) # $x = any(2) and $x 2) # $x = any() This is Just Wrong, IMO. How confusing is it going to be to find that calling is_prime($x) modifies the value of $x despite it being a very simple test operation which appears to have no side effects? As far as I can see it, in the example, it's perfectly logical for is_prime($x), is_even($x) and $x 2 to all be true, because an any() junction was used. If an all() junction was used it would be quite a different matter of course, but I would see is_prime() called on an any() junction as returning true the moment it finds a value inside that junction which is prime. It doesn't need to change $x at all. In a way, you're sort of asking 'has $x got something that has the characteristics of a prime number?' and of course, $x has - several of them, in fact (but the count is not important). Soemtimes, although frequently I will check for preconditions at the begining of a function. After I finished checking for them, I expect to be able to do stuff assuming them without anyworry of exceptions or anything else. In these cases I am using conditionals to filter input, which I imagine is a fairly common case... Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
Re: Junctive puzzles.
All~ On Tue, 08 Feb 2005 17:51:24 +0100, Miroslav Silovic [EMAIL PROTECTED] wrote: [EMAIL PROTECTED] wrote: Well, we see the same kind of thing with standard interval arithmetic: (-1, 1) * (-1, 1) = (-1, 1) (-1, 1) ** 2 = [0, 1) The reason that junctions behave this way is because they don't collapse. You'll note the same semantics don't arise in Quantum::Entanglement (when you set the try to be true option). But you can force a collapse like this: my $x = 4 $j; if $j 2 { say never executed } By which I mean: my $x = 4 $j; if $x 2 { say never executed } Uh, I'm not sure this does what I think you wanted to say it does. ;) $x is a boolean, unless returns a magical object... in which case, the magical part of $x ought to be a reference to the original $j, no? I'm wonding if we should allow a method that returns a junction that is allowed to collapse the original: if 4 $j.collapse and $j.collapse 2 { say never executed; } But that's probably not a good idea, just by looking at the implementation complexity of Quantum::Entanglement. People will just have to learn that junctions don't obey ordering laws. Well, I suspect that junctions will have to be references and just collapse every time. Observe: my $x = any(1, 2, 3, 4, 5); print SHOULD NOT RUN if (is_prime($x) is_even($x) $x 2); This only works if $x collapses. Same for matching junctioned strings: my $a = any (a b c); print Boo! if $a ~ /a/ and $a ~ /b/ and $a ~ /c/; (perhaps I meant to use ~~, I don't quite remember :) ) Either way, autocollapsing juntions is a Good Thing IMHO, and the only remaining confusion (to go back to my initial post) is that the only case that doesn't work is when you instance a junction twice as a pair of same literals: print SUCCESS, unfortunately if (is_prime(any(1, 2, 3, 4, 5)) is_even(any(1, 2, 3, 4, 5)) any(1, 2, 3, 4, 5) 2); Hope I'm making sense. Been a hard day at work. ;) What if junctions collapsed into junctions of the valid options under some circumstances, so my $x = any(1,2,3,4,5,6,7); if(is_prime($x) # $x = any(2,3,5,7) and is_even($x) # $x = any(2) and $x 2) # $x = any() Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
Re: [rbw3@cse.nau.edu: Re: Junctive puzzles.]
Brock~ On Tue, 8 Feb 2005 12:08:45 -0700, Brock [EMAIL PROTECTED] wrote: Hm. I take that back... it was a silly comment to make and not very mathematically sound. Sorry. --Brock - Forwarded message from Brock [EMAIL PROTECTED] - (a b c) == (a b) and (b c) and (a c) I disagree, I think that that is both mathematically sounds and perfectly logical. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
Perl 6 Summary for 2005-01-31 through 2004-02-8
Perl 6 Summary for 2005-01-31 through 2004-02-8 All~ Welcome to yet another summary in which I will undoubtedly confuse to homophones. Probably more than a few this week as I am a little tired. But perhaps the alien on my window or the vampire on my monitor will help straighten it all out. Perl 6 Language autothreading generalization Luke Palmer's thread about auto-threading seems to have wound down without much resolution, or at the very least without a syntax that I like. http://xrl.us/e26z Featherweight Perl6 Autrijus Tang introduced Featherweight Perl6, a side-effect-free subset of Perl6. FP6 is the first step on a journey for Pugs to conquer the world. http://xrl.us/e262 Value Types vs Implementation Types Autrijus Tang in his work on FP6 became confused by types. He asked some questions about Types on perl 6 language and was apparently told to go to perl 6 compilers. From perl 6 compilers, he was told he should really be on perl 6 language. Sorry for the run around, the proper place for questions about language semantics is perl 6 language as he originally posted. Eventually all of that was settled and he even got his question answered. http://xrl.us/e263 -- original post http://xrl.us/e264 -- retry with less compiler speak 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. http://xrl.us/e265 the leaning tower of numbers Autrijus Tang asked what sort of number tower Perl6 had. He was planning (and implemented) that of Scheme until he gets an answer. http://xrl.us/e266 some quick questions Autrijus Tang asked a few questions about operators in specific contexts. He got a few answers, although I don't think he got them all. http://xrl.us/e267 getopt::signature Juerd wants to be able to give his script a general signature which magically parses command line arguments. Many people thought it was a cool idea that should be provided as a module rather than in the core. This led to talk about creating a signature object which could be passed to this module so that it doesn't need macros. Sounds good to me. http://xrl.us/e268 S03 inconsistency Juerd found a knit to pick. No comment about whether to pick the first or second option though... http://xrl.us/e269 regex precedence Nicholas Clark wondered about adding a little operator precedence to regexes so that people could avoid a few common problems. Sounds like a good idea to me... http://xrl.us/e27a 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. http://xrl.us/e27b 4 $x 2 == true?!? Autrijus Tang wondered how junctions and chained comparators worked. He found that under certain semantics, one can receive very troubling answers. Larry agreed with Autrijus that the unintuitive semantics should be avoided. http://xrl.us/e27c Perl 6 Compilers Pugs 6.0.0 Autrijus Tang released Pugs 6.0.0. It has many cool features and was created in only 6 days. A testament to the power of Haskel or the caffeine intake of Autrijus. (Although to be fair he skipped more version numbers then Java did in its jump to 5.0...) http://xrl.us/e27d -- anouncement http://autrijus.org/pugs/ -- pugs website http://use.perl.org/~autrijus/journal/ -- implementation journal Parrot gdbmhash warning Bernhard Schmalhofer fix a problem where gdbmhash could make configure produce a warning. Leo applied it. http://xrl.us/e27e PyNCI Sam and Leo worked out the correct way to create NCI methods for Python. Leo ended by proposing a table to assist Parrot based on the current language, no answer to that idea... http://xrl.us/e27f makefile cleanup Bernhard Schmalhofer cleaned up some of the makefiles and configure system. Leo applied the patch. http://xrl.us/e27g ParrotIOLayer* const or not François Perrad provided a patch making the ParrotIOLayer* const in the API. Leo applied it, but Melvin warned that while this may be safe now, the API intended to allow mutability. I think for the moment it is still in though... http://xrl.us/e27h Win32 Parrot Ron Blaschke helped Parrot back onto its feet in the windows world. http://xrl.us/e27i http://xrl.us/e27j http://xrl.us/e27k http://xrl.us/e27m http://xrl.us/e27n http://xrl.us/e27o http://xrl.us/e27p -- latest results Parrot_load_bytecode failure? Ian Joyce wondered what would happen if Parrot_load_bytecode failed. The answer:
Re: FP6: Types
Autrijus~ Actually, I think that p6l is the correct place for this discussion. My logic is that you are asking about specific facets of the language, not helping the perl 6 compiler or parrot. Matt On Fri, 4 Feb 2005 01:28:42 +0800, Autrijus Tang [EMAIL PROTECTED] wrote: On Thu, Feb 03, 2005 at 06:18:33PM +0100, Sthane Payrard wrote: perl6-compiler@perl.org seems a good forum to me for your endeavor because you write a compiler for a subset of Perl6. Okay. If that is the desired forum, tomorrow I'll switch my questions to p6c and unsubscribe from p6l. Sorry for bothering the people involved. :-) You are speaking of types, do you intend to explore type inference? Yes, eventually. The problem is more complex than with statically typed language, but somewhat simplified by the choice of a purely functional subset of Perl6. Which is why I started with such a subset... Thanks, /Autrijus/ -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
This weeks summary
All~ I have been struggling with my internet for the past 4 days, so this weeks summary will be part of a double feature fortnight's summary next week. Figured that I would provide advanced notice though... Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
Re: Proposed vtable changes WRT method lookup
Leo~ On Thu, 20 Jan 2005 10:01:42 +0100, Leopold Toetsch [EMAIL PROTECTED] wrote: Matt Fowles [EMAIL PROTECTED] wrote: Leo~ On Wed, 19 Jan 2005 16:26:07 +0100, Leopold Toetsch [EMAIL PROTECTED] wrote: [ cc'ed p6l ] Matt Fowles wrote: Leo~ On Wed, 19 Jan 2005 10:02:26 +0100, Leopold Toetsch [EMAIL PROTECTED] wrote: But where does that PerlMMD PMC come from? Does the Perl6 compiler generate one somewhere? It is generated by the compiler. During compilation all of the different MMD functions will necessarily be parsed and compiled, when the first MMD function is compiled the compiler wil add a MMD PMC to the appropriate table. Each time a specialized version is compiled it will be added to the already created MMD PMC. Interesting. Where is this information coming from? Where can I read more about that? The general idea that I am explain here has its root in the CLOS MMD system. To define a set of MMD methods one calls (defgeneric foo (a b c) ...) to add a particular implementation one calls (defmethod foo ((Cat a) (Monkey b) c) ...). I smell some namespace pollution here. The namspace, where you ought to place the generic foo MMD PMC, could already contain a non-multi subroutine of that name. Second: S12 states that multi-dispatch can degenerate to single dispatch on plain methods, which seems to imply that the full MMD can't be handled by your proposed MMD PMC. That is a problem for the HLL. Just as there could also be an existing variable foo, the question of namespace conflicts is one that must be handled by the HLL. Single dispatch can be viewed as degenerates MMD still. When a HLL sees method declarations, it creates an generic for each method and specializes it for each class in the heirarchy that implements the method. ... But the crux of my idea is the following breakdown of responsibility Yep. That's the reason for splitting the functionality of find_method, which currently does it all. The problem I see with that is calling a MMD function with arguments from two different class systems. That'll be more fun, yes. But as long as the classes have a common ancestor, a matching MMD function could exist. ... It would make more sense to me to separate the dispatch system and the object system. Yes. But as Cdispatch is (will be) a vtable you can always plug in the desired dispatch system in your metaclass. My question is what happens in your scheme if you have to variables with different metaclasses. Do we just use the left most class's metaclass? Is there some odd interaction? The advantage to my proposal is that only the MMD's dispatcher deals is involved with the actual method selection, a metaclass is only responsible for creating the mro list used by the dispatcher. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
Re: Proposed vtable changes WRT method lookup
Leo~ On Wed, 19 Jan 2005 16:26:07 +0100, Leopold Toetsch [EMAIL PROTECTED] wrote: [ cc'ed p6l ] Matt Fowles wrote: Leo~ On Wed, 19 Jan 2005 10:02:26 +0100, Leopold Toetsch [EMAIL PROTECTED] wrote: But where does that PerlMMD PMC come from? Does the Perl6 compiler generate one somewhere? It is generated by the compiler. During compilation all of the different MMD functions will necessarily be parsed and compiled, when the first MMD function is compiled the compiler wil add a MMD PMC to the appropriate table. Each time a specialized version is compiled it will be added to the already created MMD PMC. Interesting. Where is this information coming from? Where can I read more about that? The general idea that I am explain here has its root in the CLOS MMD system. To define a set of MMD methods one calls (defgeneric foo (a b c) ...) to add a particular implementation one calls (defmethod foo ((Cat a) (Monkey b) c) ...). But the crux of my idea is the following breakdown of responsibility First meta-class provides class resolution list for a particular class heirarchy (mro). This will work because the metaclass is known at class construction time and will thus know the full object heirachy for the class, objects that dynamically change their parents will go through their meta-class to do this. Second meta-methods provide the dispatch to specific multimethods based on the class resolution list (and possibly value of) their arguments. This allows different languages to provide different class resolution lists, while still enforcing a single dispatch metric for each function, but possibly different dispatch metrics for different functions with the same arguments. Finding the correct MMD function is always the same algorithm. Having that functionality in one place (the metaclass) is cleaner IMHO. No. It is not always the same algorithm. Perl 6 uses manhattan distance. Yes. I meant inside one class (HLL) system. The problem I see with that is calling a MMD function with arguments from two different class systems. It would make more sense to me to separate the dispatch system and the object system. The essential motivations for this is you avoid interaction of different dispatch systems (which could be quite confusing). Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
Perl 6 Summary for 2005-01-11 through 2005-01-18
Perl 6 Summary for 2005-01-11 through 2005-01-18 Welcome to yet another Perl Summary brought to you by music and pizza (although the pizza is late in arriving). Like many summaries before it, we start with an attempt at non sequitur and Perl 6 Language. Perl 6 Language idiomatic Perl 6 Stéphane Payrard expressed a desire for more Perl 6 sample code. Luke Palmer issued the following, possibly foolish, response: post some \how do I\s to the list, and I'll reply with code. Austin Hastings posed a couple, not response yet... http://xrl.us/er2z generalized tainting Yuval Kogman posted an interesting musing about contagious properties (if you get your value from someone with a contagious property, you get the property too). No responses, but it sounds interesting... http://xrl.us/er22 stick/pick Richard H. suggested a new pair of functions stick/pick which would have modifiers such that push, pop, shift, unshift, and splice could all be calls to stick or pick with appropriate modifiers. Unfortunately, I think he posted it to the google groups interface, as it is there but not on the list :-( http://xrl.us/er23 Perl 6 IDE again. Matisse Enzer re-raised the question of the feasibility of an IDE for Perl 6. Unfortunately it was re-raised on google groups (I think). http://xrl.us/er24 1x6 vs 6 The dimension slice issues continue to grind with new suggestions from David Green and Craig DeForest. http://xrl.us/er25 life span of loop counters Joe Gottman wants an easy way to restrict the lifespan of his loop counter to his loop. Some folk (myself included) did not like the answer of wrap it in a scope. Some others (myself excluded) thought the answer don't use loop, use for was a bit of a cop-out. http://xrl.us/er26 forany forall Jonathan Lang wondered how to check if a condition is true for any element of an array or for all elements. The answer are the aptly named junction creaters any() and all(). http://xrl.us/er27 Perl 6 Compiler Already reached p6c and no pizza :-( Ah well, it was a light week. Parrot Internals Already p6i and no pizza :-(. Although it was close, after I wrote the head2 my door buzzed. It was just a neighbor who got locked out, but that would have been impressive timing. blib in 25 seconds Peter Christopher asked for a 25 second summary of the ./blib directory. Apparently this is harder than Hamlet in 30 seconds, as one of the two has been done. http://xrl.us/er28 searching archives Peter Christopher wanted to know if there was a way he could search the mailing list archives. Steve Fink pointed him to groups.google.com and the ever popular discussion topic aardvarks. http://xrl.us/er29 dynclasses with external dependencies Bernhard Schmalhofer wondered if there was a reasonable way to check for external dependencies for dynamic PMCs that does not involve the core Parrot configure step. Later he supplied a patch with his GDBMHash pmc, which motivated the question. Leo applied it and hinted at a mythical multi-stage configure http://xrl.us/er3a -- question http://xrl.us/er3b -- patch s/interpreter/INTERP/g Bernhard Schmalhofer provided a patch making the above clean up all over. Leo and Sam applied different parts of it. http://xrl.us/er3c black-ops parrot Robert Spier posted a link to the new listing for Parrot on CIA. Nicholas Clark dove for cover assuming he was going to be disappeared. http://cia.navi.cx/stats/project/parrot -- CIA http://xrl.us/er3d -- actual post PDD problems on the website Dave Brondsema noticed that PDDs 4-6 were not finding their way to the website properly. Will Coleda fired off a patch. http://xrl.us/er3e cleaning old tickets Will Coleda, in his never ending role as RT janitor, closed out a few obsolete tickets. Thanks Will. http://xrl.us/er3f -- stone-age exceptions http://xrl.us/er3g -- assemble.pl http://xrl.us/er3h -- languages/imcc Scope and Timely Destruction Leopold Toetsch raised the recurring issue of timely destruction. It turns out that timely destruction is hard. Various people made various suggestions. Let me state one thing clearly as if I don't, Dan doubtless will: Parrot will NOT use reference counting of any kind. There are a great many reasons for this some of which Luke Palmer explained. http://xrl.us/er3i ParrotIO* should have been PMC* Peter Christopher provided a patch fixing a pointer declaration bug. Leo applied it. http://xrl.us/er3j questions for the compiler FAQ Some time ago, a compiler faq was started. It was to contain answers to questions that people posted to the list. Will Coleda posted 2 such questions, but got Warnocked.
Perl 6 Summary for 2004-01-03 through 2004-01-11
Perl 6 Summary for 2004-01-03 through 2004-01-11 Welcome to another Perl 6 summary. In this summary, we will explore such thrilling issues as multi-dimensional slices of Chinese food. After all, the amount of sauce any piece of Chinese food can absorb is proportional to its surface area, which is a direct function of the number of dimensions in which it is sliced (provided that we ignore degenerate cases like fractal cuts of Peking duck). Perl 6 Language 1x6 vs 6 Craig DeForest wondered how to disambiguate a 1x6 2D array slice from a 6 element 1D array slice. He suggested a syntax inspired by PDL. Larry admitted to not having examined this particular issue and stated that he was open to suggestions. Some suggestions arrived. http://xrl.us/eout code as comment Stéphane Payrard wanted to know if there is an easy way to alias arguments to a function. Thus allowing a longer version for readability when calling the function and a short version inside the function. Larry suggested $s is namedsubject, which I like. The thread then devolved into punning in French. http://xrl.us/eouu -- main thread on p6l http://xrl.us/eouv -- initial post on p6c Perl 6 Compiler Pascal - Pcode - Parrot - Profit Sven Schubert asked about the feasibility of putting Pascal on Parrot. He noted that with the infrastructure mentioned in Perl 6 and Parrot Essentials the problem would not be too bad. Apparently Essentials makes a few promises that we have yet to live up to. But we are working towards it. In the mean time, Stéphane Payrard suggested a way for him to kill to bird with one stone: Pcode. http://xrl.us/eouw -- Pcode suggestion http://xrl.us/eoux -- initial post Grammar improvements Luke Blanshard submitted some rules for Perl6::Grammar. Luke Palmer committed a slight variantion of his work, and the hacking commences... http://xrl.us/eouy Parrot pop_pad Peter Christopher wondered why pop_pad had not been implemented last week. This week Leo implemented it and asked for tests. http://xrl.us/eouz Resizable arrays Simon Glover asked why ResizablePMCArray was so different from all of it Resizable*Array bretheren. The answer is the Leo improved it. This brings up an obvious task for someone looking for a reasonably friendly chunk of Parrot to work on. Rationalizing the implementation of the various Resizable*Arrays would probably be a good task for a novice looking to dig into something. Perhaps one who is on winter break... http://xrl.us/eou2 Parrot 0.1.1 nci troubles Ian Joyce noticed that parrot 0.1.1 was having some trouble with nci.t. Leo admitted that this was the case, but it is fixed in CVS. http://xrl.us/eou3 test or benchmark Nicholas Clark wondered if resizablestringarray.t was actually a benchmark, because it had a big number which was really hurting his poor machine. Simon Glover admitted to the copy paste error. http://xrl.us/eou4 x86 solaris 2.5.1 and 2.7 Andy Bach and Nicholas Clark worked towards getting parrot happier on the aforementioned architecture. This thread seemed to peter out when Nicholas asked how do we run a callback unconditionally after gccversion is known, independent of its value?. http://xrl.us/eou5 VTABLE_call_method Leo and Sam had a disagreement about whether a call_method vtable would make sense. I think that we are waiting for higher intervention... http://xrl.us/eou6 updated perlhist.txt Will Coleda applied Bernhard's patch updating perlhist.txt and streams.t. http://xrl.us/eou7 Warnock Warnocked Will Coleda applied the long Warnocked update to Warnock's contact information with only a trace of irony. http://xrl.us/eou8 gcov of perlarray.pmc reaches 100% Simon Glover got perlarray.pmc to have full test coverage. Nifty. Some brave soul (possibly fitting an earlier description) should try this with the Fixed*Arrays... http://xrl.us/eou9 Parrot under Solaris 9 Nicholas Clark, Andy Doughery, and Christian Aperghis-Tramoni all tried to convince Parrot to work on Solaris. They are brave souls. http://xrl.us/eova parrot-config updates Peter Christopher asked questions about the parrot-config.imc. He also provided an initial solution. http://xrl.us/eovb -- questions http://xrl.us/eovc -- solutions Key Question Simon Glover noticed some bad behavior with respect to Key PMCs. Leo and Sam both admitted that it was bad and that some work needed to be done. http://xrl.us/eovd Parrot PDL Bernhard Schmalhofer posted a pointer to PDL. Luke Palmer pondered Piddles as Parrot PMCs. Craig DeForest proposed a path passing through PDL's PP and pausing at Parrot. (Parenthetically, perhaps the preponderance of Ps in
Perl 6 Summary for 2004-12-20 through 2005-01-03
Perl 6 Summary for 2004-12-20 through 2005-01-03 All~ Welcome to a New Year of Perl 6 Summaries. I have been doing bi-weekly summaries over the holiday season, but I plan on returning to weekly ones now. Hopefully World of Warcraft won't prevent me, we shall see, but if anyone starts a perl guild drop me a line ;-) Perl 6 Language Perl IDE matisse wondered if an IDE for Perl would be possible given its dynamic nature. The conses arrived at last time was that an IDE that worked for nice code would be possible, but a fully general one would be extremely difficult and quite possibly impossible. http://xrl.us/ekks Premature Optimization jona... has a rant about low level data types and premature optimizations. So google tells me, but I can't find it in my gmail account... Perhaps he posted directly to google continuation enhanced arcs. I wish people would not do that http://xrl.us/ekkt strictness of fully qualified globals Alexey Trofimenko wanted to know if Perl 6 would have a way to catch mistakes like $OtherPackage::NmaeWithTypo when using strict. The thread seemed to wander off without answering his question... Although it did note that perhaps OtherPackage::$NmaeWithTypo would make more sense. http://xrl.us/ekku Perl 6 Compiler using ASCII 0 as a terminating character Nicholas Clark pointed out that Perl 5 allows '\0' to be used as a quoting character for q{} . He felt that this was useful and should be kept in Perl 6. Patrick agreed. http://xrl.us/ekkv Parrot P5 was the new P2 Last time, I reported that Sam and Leo wanted to pass P5 in P2 as well. Sam reported later that he was no longer confident in this idea. I guess I should de-nudge Dan http://xrl.us/ekkw warning in pybuiltin.pmc Simon Glover submitted a patch to fix it, but Warnock applies. http://xrl.us/ekkx POD cleanup chromatic applied his previously threatened patch with a polite thanks to himself. http://xrl.us/ekky reading past EOF in PIR Matt Diephouse noted that the error from reading past the EOF in PIR was not really informative. Patches welcome. http://xrl.us/ekkz Missing examples in PDD16 Simon Glover noticed a section in PDD16 that just stops midsentence. He suggested that it be either finished or the section removed. No answer... http://xrl.us/ekk2 MMD and VTABLE_find Leo and Sam continued their discussion of how to implement MMD. The conversations stopped, but I am not sure that it progressed. Perhaps some guidance would be helpful... http://xrl.us/ekk3 PyCon discussions A.M. Kuchling noted that PyCon is scheduled for March 23-25 in DC. Many folk will be there including the authors of IronPython and Jython. The deadline for submissions was the Dec 31, but that does not mean that people cannot attend, learn a whole bunch, and take over the world. http://xrl.us/ekk4 Dynclasses Broken build Will noted that dynclasses/*py* broke the build. Sam fixed it with alacrity. http://xrl.us/ekk5 mod_parrot Adrian Lambeck provided a patch to get mod_parrot working with parrot-0.1.1. Nicholas Clark applied it. http://xrl.us/ekk6 missing make test dependencies Will Coleda noted some problems with running make test with first running make. Sam fixed them, but could not close the RT tickets... http://xrl.us/ekk7 split on RegExp Will Colleda gave Patrick a friend nudge about split. Patrick noted the nudge. http://xrl.us/ekk8 --no-lines and --help for ops2*.pl Bernhard Schmalhofer added support for the above mentioned flags to ops2c.pl and ops2pm.pl. Leo applied it. http://xrl.us/ekk9 StringArray-- Prompted by a question from Simon Glover, Leo deprecated StringArray. http://xrl.us/ekma ponie on x86 solaris Andy Bach noticed some problems with ponie on x86 solaris. Leo and Nicholas Clark helped him get the failing ponie slightly farther before failing. http://xrl.us/ekmb Win32 dynclass issues Jonathan Worthington bravely set out to fix dynclass pains in Win32. With the help of Leo and Nicholas Clark, he is making progress. http://xrl.us/ekmc Undef != Undef Simon Glover noted that this oddity was causing unexpected results. This led to some scrutiny of the Fixed vs Resizable arrays. The conses is that the core PMCs need their exact semantics specified and then implemented. As oposed to the current approach of letting the implementation be the specification... http://xrl.us/ekmd -- Undef != Undef http://xrl.us/ekme -- Hash PMC needs it too http://xrl.us/ekmf -- more ResizablePMCArray problems. http://xrl.us/ekmg -- garbage values in Fixed*Arrays deleting keys from an OrderedHash Simon Glover noticed that it
Perl 6 Summary for 2004-11-29 through 2004-12-06
Perl 6 Summary for 2004-11-29 through 2004-12-06 All~ Last week I asked for help identifying the source of a quotation. One friendly soul suggested Alan J. Perlis, but could not find an actual attribution. It did lead me to find a very applicable (and in my mind funny) quote from Perlis, which I will now inflict upon you all, before your regularly scheduled summary: When someone says I want a programming language in which I need only say what I wish done, give him a lollipop. -Alan J. Perlis Perl 6 Language qq:i Jim Cromie wondered if there could be a qq:i which sometimes interpolates and sometimes doesn't depending on whether the variable had been previously defined. There was some discussion which led to the conclusion that this was just asking for strange bugs. http://xrl.us/d95h getters and setters John Siracusa wanted to know if Perl 6 would allow one to expose a member variable to the outside world, but then later intercept assignments to it without actually having to switch to using getters and setters in all of the code that uses the variable. The answer: yes, yes you can. http://xrl.us/d95i « foo Richard Proctor asked if he could do list of words». Juerd pointed out that this had already been asked. Which brings us to the fine point, ask not Larry for he will tell you both yes and no. Although in this case I think he said, probably... http://xrl.us/d95j flipflop operator Juerd wondered about the fate of the flipflop. Larry explained that while it had lost the election it was still going to work hard for you in the Senate. Err, that's not quite right, he said that It's leaving syntactically but not semantically., but the new syntax has not been specified... http://xrl.us/d95k temp $var Alexey Trofimenko wanted to know whether temp would preserve or destroy its old value. Larry is leaning towards the Perl 5 semantics of destroying, I think. http://xrl.us/d95m state vs my Alexey Trofimenko wondered how much advice about optimizing Ruby also applied to perl. Unfortunately, he also misunderstood the state specifier. The topic then quickly veered into what exactly state does. http://xrl.us/d95n specifying a hash's key type Abhijit Mahabal wanted to know if he could specify a hash's key type. The answer is yes, but the exact syntax seems to be worth a discussion. Luke Palmer, in his Mathematician's rage, attempted to shoot down any usage of Domain and Range, as they really should be Domain and Codomain. http://xrl.us/d95o http://en.wikipedia.org/wiki/Range_%28mathematics%29 -- wikipedia: range Range (mathematics) - Wikipedia, the free encyclopedia container methods Ashley Winters wants to have syntax for calling a method on the container object rather than the containee. Luke Palmer agreed that this was problematic. Larry appears to be in no hurry to add more operators for this one, yet. http://xrl.us/d95p slight discrepancy between synopses Stéphane Payrard pointed out a small issue in some synopses. Larry replied oops. http://xrl.us/d95q arrays, lists, iterators, functions, coroutines, syntax Many people suggested many things about the best thing to replace the now missingop. I think Larry is leaning towards adding a undare = op, which would do cool things. I don't thing anything is final yet. http://xrl.us/d95r -- iterators as functions http://xrl.us/d95s -- unary = talk Push/Pop/Pull/Monkey Many folk voiced their dislike of shift and unshift. I must agree with them, but they also suggested a great many alternatives, including pull/put, get/unget, and even getting rid of Push/Pop. I must say that I really dislike that last idea, fortunately I am no alone. Currently we are waiting for inspiration to strike. http://xrl.us/d95t Topicalization It was noticed that for might override one's topic at undesired times. Larry rumminated about ways to solve this. http://xrl.us/d95u Required Whitespace Rod Adams does not like inconsistent whitespace rules. Larry explained why the existing rules really were consistent. http://xrl.us/d95v Perl 6 Compilers The lack of traffic on p6c has given me another space to abuse. You should listen to Soul Coughing. If you would like to join in the fun of abusing p6c, you should submit tests. Nothing is more abusive then stress testing ;-) Parrot Tuning and Monitoring Matt S asked how much support for tuning and monitoring. This week I exercise the awesome powers of the summarizer and invoke the mighty Warnock's Dilemnia. http://xrl.us/d95w imcc.globals-- Leo removed some imcc globals. Nice work. http://xrl.us/d95x ensure directories exist first
Re: Angle quotes and pointy brackets
Austin~ On Tue, 30 Nov 2004 18:15:54 -0500, Austin Hastings [EMAIL PROTECTED] wrote: Austin Hastings wrote: Larry Wall wrote: And now, Piers is cackling madly at Matt: welcome to perl6-hightraffic! :-) Even if he wasn't cackling, I admit to feeling it. I don't even use the qx/qq/qw stuff in perl5. I always got by with . Although I must admit to liking python's C r... meaning absolutely raw string (useful for avoiding double escape problems with their regular expressions). Left me thinking it was short for regex and not raw for a little while... Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -???
Perl 6 Summary for 2004-11-22 through 2004-11-29
Perl 6 Summary for 2004-11-22 through 2004-11-29 All~ Rather than try to do something witty about the strange music I am listening to, or the stuffed animals who are assisting me. I will start this summary off with an entirely self-serving request. abuseA while ago I saw the quote Computer Science is merely the post-Turing Decline of Formal Systems Theory. without an attribution. I have tried to find an attribution for it, but have been unable to find one. If any of you know it, that information would be appreciated./abuse With that out of the way, I bring you Perl 6 Language Deep Operators Last week, Matthew Walton wondered about Deep Operators and if they would work as he expected. As I tentatively predicted, the answer came back and was yes. Then the thread got side tracked with context and Perl vs perl vs PERL concerns. http://xrl.us/d6wj gather to separate bins Dave Whipp wanted to know if he could use gather/take with multiple bins. Michele Dondi suggested using adverbs for it. Rod Adams pointed out that as gather is inherently lazy the two binned approach could cause strange results (like churning for a while filling one bin trying to get an element for the other). Of course, not being able to do it would mean possibly having to compute an expensive generate function more than necessary, unless it is memoized... http://xrl.us/d6wk « in here-docs Thomas Seiler has decided to test my copy-paste-fu by starting a discuss on characters that don't appear on my keyboard. His question was if «END could start a here-doc. The answer appears to be no. http://xrl.us/d6wm -- here-doc « != The above thread led to a discussion of the various quoting operators, and the differences between «» and . This led to much discussion on the finer points of qw, qx, and qq (among others). Juerd suggested scrapping qx and qw in favor of qq:x and qq:w, which Larry liked. Rod Adams suggested scrapping END in favor of qq:h/END/, which I like. http://xrl.us/d6wn unifying namespaces Alexey Trofimenko wondered about unifying the $, @, and % namespaces. Larry told him that this ship sailed long ago and that it was not changing. http://xrl.us/d6wo Lexing/Parsing Perl6 without executing code Adam Kennedy wants to be able to syntax color (and possible perform basic programatic manipulations of perl6 code). Anyone who has used a good IDE like Visual Studio, Eclipse, or IntelliJ probably understands where he is coming from. He does not, however, want to execute arbitrary code in the process of doing this. Much discussion ensued, but it does not look like he will be able to do this. Quite the tragedy, but perl is simply too dynamic to be docilly lexed like static languages. http://xrl.us/d6wp Perl6 Compiler Nice Work Nick Glencross has the honor of the only message on p6c this week. But his sentiment is shared by all. Nice work, Patrick. http://xrl.us/d6wq Parrot Internals Parrot_compreg.sig Bernhard Schmalhofer noticed that Parrot_compreg had a different signature then documented, so he submitted a patch to fix it. Leo applied it. http://xrl.us/d6wr opcode numbering Leo added a TODO ticker for opcode numbering. http://xrl.us/d6ws tests pass, but create core files I reported that on my machine all of the tests claim to pass, but core files appear in the parrot directory. Dan confirmed my suspicion that this was a real problem. I tried to supply helpful information like backtrace, but Warnock applies. http://xrl.us/d6wt -- initial message http://xrl.us/d6wu -- squeeky wheel gets the kick? pcc cleanup Leo removed the recently deprecated P0, P1, P2 usage. Relatively few tests break as a result. http://xrl.us/d6wv Namespace-sub invocation Luke Palmer wanted to know if there was syntax for calling subs from a particular namespace. Leo provided the answer, call it as a method on the namespace PMC. http://xrl.us/d6ww Reserved Words Annoy Luke Palmer wondered if he could define a .sub new to get around reserved word problems. Leo added the support, but warned him not to use spaces or such. http://xrl.us/d6wx Lexicals, Continuations, Register Allocation, and ascii art This thread (and the ones that preceded it) have made me wish that gmail and google groups had a fixed width font option. Sadly, this summary will probably not get me it, as it did not get me p6c either :-( Ah well. The problems associated with lexicals and continuations churned. There was a plea for guidance from Dan. Hopefully he will guide us shortly. http://xrl.us/d6wy -- one thread about it http://xrl.us/d6wz - and another (with plea) old Parrot question Bloves had a question about
Perl 6 Summary for 2004-11-08 through 2004-11-15
Perl 6 Summary for 2004-11-08 through 2004-11-15 All~ Welcome to yet another Monday summary. This would have been a Sunday summary, but Avernum (from Spiderweb Software) forcibly prevented it. As usual, we will start out with Perl 6 Language. Perl 6 Language modules and exports Aaron Sherman wanted to know some specifics about exporting things from modules. In particular, he did not want to have to retype a whole bunch of things. Larry gave an answer indicating that some of what Aaron wants should occur, but some things are difficult for good reason. http://xrl.us/dy47 AUTOCLASS(DEF)? hooks Rod Adams wanted to know if he could get AUTOCLASS and AUTOCLASSDEF hooks. Larry told him that he probably could. Rod also wanted module name aliasing. Larry told him that he could. Rod wanted to have module names with arbitrary strings. Larry told him that he could. Rod wanted to be able to load multiple version of the same module. Larry told him that he could. The summarizer wanted each question of different focus to be in a different message. Hopefully, Larry will tell him that they should... http://xrl.us/dy48 matching the nth occurrences Sudarshan Gaikaiwari wanted to know how to match the 2nd last last occurrence in Perl6 rules. I think the message might have been posted directly to google groups, as I did not get it in my email and nobody replied. The example given matches the 2nd occurrence. As I am not sure what is meant by 2nd last, I will answer the question I do know. m:2nd/foo/ will match the second occurrence of foo. The nth occurrence can be accessed similarly. http://xrl.us/dy49 Perl6 Compilers Once again it is a race to see whether someone posts a comment to or google picks up Perl6 Compilers first. Parrot Welcome to the week of the continuation. If continuations make your head hurt overly, I advise taking a few Advil's before continuing. If continuations are the way you naturally think, I would advise you to stop playing with LISP compilers. string pinning Bernhard Schmalhofer wanted to pass the same C-string into to different external functions so that the first could do things to it that the second required. However, the solution that he found kept eating his string after the first invocation. Dan and Leo came to the conclusion that the 'd' parameter for NCI was the correct thing to use in this situation. http://xrl.us/dy5a GC invocation Last week Leo posted a radical idea about GC invocation, and I decided not to invoke Warnock's Dilemma too soon. This week, I invoke it. http://xrl.us/dy5b perl vs /usr/bin/perl Gerd Pokorra requested that #! perl be changed to #! /usr/bin/perl. Although Warnock applied, I think that this will likely not happen as perl in not necessarily installed in user bin and people might want to change which perl is invoked by changing there path. http://xrl.us/dy5c Command line support for various compilers Will Coleda added a TODO item so that parrot can take various compiler arguments on the command line. What are you waiting for? http://xrl.us/dy5d Register Stomping Matt Diephouse was having troubles with his newly updated forth compiler. The verdict seems to be that he has uncovered a bug. To quote Matt, *sigh*. http://xrl.us/dy5e Calling Continuations, Basic Blocks, and Register Allocation Either Leo or Jeff Clites (I don't recall who) started what is probably the largest thread for this week, whose focus is register allocation and continuation troubles. Apparently the presence of continuations can unduly extend the life time of registers (as can try-catch things, but they seem less important. The suggested sollutions all have some shortcomings, although it appears that only using lexicals is winning. http://xrl.us/dy5f http://xrl.us/dy5g basic compilation example Jeff Clites wondered how something like (a + b) would compile. The answer is that intermediate PMC should be initialized to Undef which will morph as appropriate. http://xrl.us/dy5h eval changes Leo updated the implementation of eval to make it even cooler or possibly just clean it up and fix some bugs I forget. http://xrl.us/dy5i Basic operations for MMD Dan asked for volunteers to speck out the basic vtable and MMD functions for CLS (common language something-or-other). Sam Ruby said he would be willing to take a stabe at it in a few weeks. One week has gone by, and Sam grows ever closer to stabbing things. http://xrl.us/dy5j no limit on imcc identifier length Will Coleda noted that there was no limit on the length of imcc identifiers. Here come the eval buffer overflow attacks... http://xrl.us/dy5k Duplicate local labels
Perl 6 Summary for 2004-11-01 through 2004-11-08
Perl 6 Summary for 2004-11-01 through 2004-11-08 All~ Welcome to yet another summary, brought to you (once again) with the aid of the musical stylings of Dar Williams and Soul Coughing and a small stuffed elephant name Aliya. And, without further ado, I give you Perl 6 Language (whose traffic has picked up a little)... Perl 6 Language What was that anonymous thing? Juerd wondered what things could be named and what anonymous. Larry provided the answer: Subtypes, Enums, Lists (Lazy and Eager), Grammars, and Packages, but then threatened to attack Juerd with hot grits. http://xrl.us/dvi2 updated Apocalypses and Synopses Larry proved links to the current versions of the various Apocalypses and Synopses. Unfortunately he forgot to start a new thread with his message... http://xrl.us/dvi3 http://www.wall.org/~larry/apo -- apocalypses http://www.wall.org/~larry/syn -- synopses suggested warning for overriding operators Aaron Sherman wanted to receive a warning for defining things like multi sub *infix:+(...) {...}. But Larry reasoned the anyone who'd use the * there does not care for warnings. http://xrl.us/dvi4 Perl 6 Compiler Last week, I bemoaned my lack of google (and thus links). But a couple kind souls pointed out that I could get links straight from the horses mouth: nntp.perl.org. All I can say is, ::shrug:: Who knew that there was an internet outside of google?. Fortunately, I do not have to admit to its existence as there were no message this week. Parrot Internals she-bangs for none!! Last week James deBoer offered a patch to remove all of the shebang lines from config/*.pl (after his initial patch to add them to all of them was turned away). Warnock applies. http://xrl.us/dvi5 Solaris 9 troubles Christian Aperghis-Tramoni has some trouble whil trying to install on Solaris 9. Warnock applies. more vtables Leo wanted to add a finalize vtable entry (in addition to destroy, which is apparently use for free memory and not active resources). Jeff commented on the difficulties implicit in finalizing stuff, and the thread ran out of gas. http://xrl.us/dvi6 build dynclasses by default Last week, Leo was stalling to here about success and failures before adding them to the default build. Brent 'Dax' Royal-Gordon and Sam Ruby both chimed in with success. And so they did. http://xrl.us/dvi7 http://xrl.us/dvi8 register frame recycling Leo added in some basic continuation recycling. Dan didn't like that it required the user to clone return continuations into full ones. Leo agreed, but felt that a returncc function would be needed first. I wondered why we needed this recycling and couldn't just let the DOD/GC do it for us. The answer: speed. http://xrl.us/dvi9 upcase binary strings Dan wondered what should happen if you tried to play with the case of a binary encoded string. The concensus seems to be either throw an exception or nothing, depending on settings. http://xrl.us/dvja setref poorly named Sam Ruby was initially confused by the strange behavior of setref. Leo told him that it was intended to set a reference inside a reference type and noted that classes needs a clean up. With the advent of dynclasses, this sounds like a job for some adventurous lurker... http://xrl.us/dvjb tracebacks pmc vs ops Leo wondered if we should have a PMC that could access the entire call chain and do whatever evil it wanted. Dan conjectured that this sort of thing was evil enough that ops might be well advised. Leo initially put some methods into the continuation to do this, but later though about putting them into the interpreter instead. I like the interp idea. http://xrl.us/dvjc parrot -t memory leaks Last week our fearless leader notice some not insignificant memory leaks with parrot -t. This week our fearless pumpking fixed them. http://xrl.us/dvjd Performance graphs Matt Diephouse (assisted by Joshua Gatcomb) provided a pointer to a page of periodic parrot performances, provided as pretty pictures. Please provide possible improvement pointers. http://xrl.us/dvje http://xrl.us/dvjf http://xrl.us/dvjg uniline yield() and return() Stéphane Payrard (whose name google objects to strenuously) resent his patch for uniline yield and return in PIR. Leo applied the patch. http://xrl.us/dvjh mod_parrot 0.1 Jeff Horwitz released mod_parrot 0.1. Pretty nifty. http://xrl.us/dvji http://xrl.us/dvjj IO auto-flush troubles Christian Aperghis-Tramoni wondered how to make stdout not buffer away his prompt. The answer (provided by Mary Pauley and Luke Palmer) require using pioctl and strange magic numbers. http://xrl.us/dvjk
Perl 6 Summary for 2004-10-23 through 2004-11-01
Perl 6 Summary for 2004-10-23 through 2004-11-01 All~ Welcome to another summary, this one being slightly delayed by Halloween. Before I start off with perl6-language, let me remind all American readers to vote tomorrow. Non-American readers should also vote, but it seems unlikely that your day of voting is tomorrow. So without further ado, Perl 6 Language assorted questions Rich Morin wanted to know two things. One, can he hook into function calls and just about everything else for his evil purposes. Two, can he get floating point values which automagically track their rounding errors. Austin Hastings pointed out that two would probably best be implemented as an opaque object whose value is a junction. Luke Palmer demonstrated an evil way to embed whatever hooks he wanted by adding an extra layer to the grammar. Somehow, I worry that shooting myself in the foot with this would take most of my body off... http://xrl.us/drsq Perl6 backwards compatibility U. Ruirarchzatrea expressed a desire for perfect backwards compatibility to perl5 and a ponie too. Matthew Walton, Brent 'Dax' Royal-Gordon, and Luke Palmer all told him that he could have a ponie, but it would not be perfect. http://xrl.us/drsr Perl 6 Compiler Sadly google still does not mirror p6c. Does anyone know someone who can be poked/prodded/pleaded with about this? End result: no links for you! Status check? Ovid popped in to see if he could find more detailed status info about the progress of p6c. Patrick Michaud provided a slightly unsatisfying answer of not much longer, and Luke Palmer provided a slightly more detailed answer which can be summarized as not much longer. Parrot Internals siva, the multifacetted pmc Stephane Payrard asked about some problems he had encountered creating the magical all in one Siva PMC. Leo provided a helpful prod towards LVALUE_CAST. The other problems may or may not related to the mandrake cooker. Hopefully someone will tell us. http://xrl.us/drss JITted functions calling external functions Leo reported that, thanks to Jeff, one can now call into Parrot functions from JIT. Yay! http://xrl.us/drst make testexec Currently make testexec will create and run a trivial hello world program for the exec core. Leo would like it to run the full test suite instead. This is a big thing, but would probably win you many friends and influence people. http://xrl.us/drsu Calling Conventions and Indirect Register Access Leo provided several warning that he was going to make some big changes that would break any code that did not follow the calling conventions. He went to implement and commit a whole lot of stuff. I was impressed, and Dan later wondered if it was all done or not (as he wants to make some big changes soon). Apparently it is for the most part. http://xrl.us/drsv http://xrl.us/drsw http://xrl.us/drsx http://xrl.us/drsy http://xrl.us/drsz http://xrl.us/drs2 Stalk Walking Bug Nicholas Clark, with Leo's help, found a bug in the stalk walking code. Apparrently, our mask for valid pointers was a little over zealous. Nicholas checked in a quick fix. Steve Fink has a few suggestions. http://xrl.us/drs3 Register Allocation Bill Coffman is continuing his amazing work with register allocation. He has been making strong progress, and his new code is fast approaching production ready. Unfortunately for Dan, it still has a few rough points and a small memory leak preventing it from being used on Dan's evil code. Leo has been helping him along the entire time, and I predict that all of Bill's work will find its way into Parrot before the next summary. http://xrl.us/drs4 http://xrl.us/drs5 libjit Robert Spier pointed out the fairly nifty libjit. Unfortunately, according to Leo, the current jit is far enough along that it would be too much work to switch. I tend to believe him. http://xrl.us/drs6 -- libjit http://xrl.us/drs7 Looking for a hardware donation H.Merijn Brand reminded Leo that he hadn't been contacted yet about some Diana menthol alcohol. I was confused, but apparently Leo wasn't... http://xrl.us/drs8 pmc/inode analogy Stéphane Payrard wanted to know if his analogy between pmcs and filesystems was correct. Leo felt that it was mostly right and attempted to explain value/variable split. Dan corrected Leo and went a little further. What I have taken away from this is do not think of it in terms of high ;evel language operators, instead think of it in terms of C. You get pointers and values (and you can point to a value). Somethings do shallow copies (i.e. pointer copies) others do deep. http://xrl.us/drs9 pmc_type Nicholas Clark wanted to
Perl 6 Summary for 2004-10-18 through 2004-10-23
Perl 6 Summary for 2004-10-18 through 2004-10-23 All~ Last week I received a request to summarize perl6-language before internals. Frankly, it seems like a reasonable idea. Perl6-internals has always been first as long as I can remember. So perhaps, it is time to switch it up. Thus I give you Perl6 Language Packrat Parsing Thomas Sandlass posted a link to an article on Packrat Parsing. It looks like a promising technique for small programs, all though its memory requirements may be a bit heavy for large programs. Mr. Sandlass appears to have been Warnocked, but there are several explanations. First he posted from google, there has been trouble in the past about such things getting through. Second, he posted to Perl6 Language instead of Perl6 Compiler. http://xrl.us/dndb Perl6 Compiler Perl6 Compiler list troubles In the last summary, I mentioned that Perl6 Compiler has not yet found its way to google groups. Leo seems to have had trouble subscribing to it also... Perhaps this bears investigation? Parrot Unununium Dan and Steve Fink told Jacques Mony that a port to Unununium would probably require substantial changes to configure. http://xrl.us/dndc grsecurity interfering with the parrot JIT/build Apparently our current scheme of mem_alloc_executable and mem_free_executable is not quite enough to make grsecurity happy. Work is ongoing... http://xrl.us/dndd signal.t failure Will Coleda had problems with signal.t failing while his machine was under load. Leo pointed out that this is known behavior. Jeff Clites was a little confused/disappointed that his earlier patches to help solve this problem had not sufficed. http://xrl.us/dnde New naming for parrot_interp Brent 'Dax' Royal-Gordon warned everyone that he was committing a gianormous change which would effect any pending patches. From the lack of chaos on the list, I would say that his warning worked. http://xrl.us/dndf Parrot Forth Michel Pelletier and Matt Diephouse discussed some of the finer points of Forth implementations and optimizations. http://xrl.us/dndg Win32 update Ron Blaschke gave a quick update on his progress with VC7.1 on Win32. Looks good and keep on chugging Ron. Downloading Parrot Jerry Wiltz asked if help in downloading Parrot (he was starting from scratch (no Perl or C compiler)) on a WinXP box. Fred the LastNamelessOne provided a plethora of useful links. http://xrl.us/dndh The Return of Register Stacks Miroslav Silovic posted a summary of a design change that he and Leo were considering. I asked for more details as to how it was different then something we had moved away from much earlier. Leo provided a quite nice and thorough explanation. Thanks. Dan observed that this recurring thread happened nearly yearly, but that the cycle was not quite 12 months. Dan also observed that the timing to coincide with his being sick was fortuitous. Leo and Dan went back and forth for a while discussing the implementation and implications of it. I believe that the end result is that we will have indirect access to registers, we will not need to have saveall/restoreall pairs around function calls, and Dan should eventually get better, but not until this is fully thrashed out. http://xrl.us/dndi http://xrl.us/dndj http://xrl.us/dndk http://xrl.us/dndm http://xrl.us/dndn JIT rework As a side effect of indirect access to registers the JIT needs to be rejiggered to account for this. Leo and Jeff Clites went back and forth working on this with what sounds like good progress being made. http://xrl.us/dndo http://xrl.us/dndp http://xrl.us/dndq Win32 pernum test fix Ron Blaschke fixed a test failing because of -0.0. Leo applied the patch. http://xrl.us/dndr x86-64 problems fix Brian Wheeler submitted a patch to fix x86-64. Leo couldn't apply it. Brian resubmitted. It got mangled on the way. Brian reresubmitted. Leo applied it. Thanks for perservering Brian! http://xrl.us/dnds External dependencies Robert Spier suggested several options on how to simplify the problem of Parrot and external dependencies. Sadly, Warnock applies. http://xrl.us/dndt mod_parrot Jeff Horwitz is making amazing progress with his cybernetically enhanced parrot. Oh wait, I mean embedding parrot in to apache. It all looks really cool and he has been able to use his experience to provide valuable crituques to us all. http://xrl.us/dndu http://xrl.us/dndv Python, Parrot, and scoping Sam Ruby has been trying to make sense of Python's scoping in the context of Parrot. Leo, Dan, and Allen Short all rushed to his aid. http://xrl.us/dndw Resizable*Array implementation Bernhard
Perl 6 Summary for 2004-10-01 through 2004-10-17
All~ Welcome to my first summary. Since I am relatively new at this game, I will just steal Piers's approach and start with Perl6 internals. But before that let me warn you that my ability to make strange characters with accents is not great, thus please do not be offended if I don't include them in your name. If you want them to appear in the future, a quick email about how to make them appear using a US qwerty keyboard and Mozilla should suffice. Also, groups.google.com does not seem to have picked up perl6.compiler yet, so iw ould be s With that legal disclaimer out of the way onward to == Perl6-Internals = Configure problems and Improvements Leo noticed that Configure doesn't rebuild things correctly. Takers welcome. Nicholas Clark added a --prefix option for the make install target. http://xrl.us/divy http://xrl.us/divz http://xrl.us/div2 = Non-core module dependency Joshua Gatcomb accidentally introduced a dependency on Config::IniFiles. Since it is implemented in pure perl he offered to add it to the repository. Warnock applies. http://xrl.us/div3 = OpenBSD troubles Jens Rieks found and fixeda coredump on OpenBSD. Thanks, Jens. http://xrl.us/div4 = Threads on Cygwin Joshua Gatcomb discovered some trouble with threads on Cygwin. It seems that there are problems with both the thread implementation, and the tests not be generous enough if accepting out of order input. Still unresolved, I think. http://xrl.us/div5 = Parrot IO is not quite threadsafe Nicholas Clark discovered a double free in the IO system. While his problem was solved by Jens, the underlying problem still remains. http://xrl.us/div6 = make install portability issues Nicholas Clark asked why the install taget was not portable. Steve Fink responded that it was a quick hack at the time and made it better. http://xrl.us/div7 = Namespaces The namespace thread continues to churn. It is slowly making progress, but I beleive there is a fair amount of people talking past eachother going on. Perhaps Dan could step in and provide one final state of the namespaces? http://xrl.us/div8 http://xrl.us/div9 http://xrl.us/diwa = Parrot Abstract Syntax Tree aka PAST Sam Ruby decided to pick up the Python on Parrot ball. To that end he enquired as to what PAST is. Leo provided answers and help. Will asked for more help. Leo once again provided. http://xrl.us/diwb http://xrl.us/diwc = JIT for non-branching compare opcodes. Stephane Peiry provided a patch to JIT some more opcodes. Leo applied. Stephane then provided a patch with tests. Jens applied that one. http://xrl.us/diwd http://xrl.us/diwe = Comparing Pythons Sam Ruby posted a link comparing various pythons and there conformance to a test suite. http://xrl.us/diwf Sam Ruby: Comparing Pythons = Metaclasses? Dan admitted confusion as to what exactly metaclasses are/do. Papers and explanations were provided by Aaron Sherman, Michael Walter, and Sam Ruby. http://xrl.us/diwg http://xrl.us/diwh http://xrl.us/diwi = Plain Old Hash William Coleda wondered if Parrot had a basic hash implementation (not a PerlHas). Dan said D'oh! and asked for takers. Will Coleda added a TODO. http://xrl.us/diwj = Parakeet 0.3 Michael Pelletier's language Parakeet has hit 0.3 and been added to CVS. Everybody should play with it. http://xrl.us/diwk = make install thoughts Leo conjectured about creating a parrot_config.c which would encode all of parrot's configuration. Then parrot would know its own config. Jens suggested letting miniparrot generate it; Leo agreed. http://xrl.us/diwm = more piethon Dan's register spilling problems give him free time. He used it to work on piethon a little. http://xrl.us/diwn = Priviledge implementation Felix Gallo posted some questions/thoughts with respect to priveledges. While Leo addressed Felix's question about the location of source files (and provided a nice plug for vim). The others all remain Warnocked. http://xrl.us/diwo = make in languages/TCL Matthew Zimmerman supplied a patch to fix TCL's make. William Coleda modified and applied it. http://xrl.us/diwp = MANIFEST fixup. Andy Dougherty provided a patch to remove some old files from the manifest. Steve Fink applied it. http://xrl.us/diwq = Parrot 0.1.1 Poicephalus There was a little talk about names. Then a little talk about getting it posted to perl.org. In the end the 0.1.1 release did happen and even made it to /. Thank you to everyone who contributed. http://xrl.us/diwr = Data::Dumper TODO Will Coleda added a TODO for Data::Dumper. Apparently it cannot dump FixedPMCArrays. Will conjectures that there are probably other new PMCs it cannot handle either. Patches welcome. http://xrl.us/diws = Emacs, XEmacs, and pir-mode Jerome Quelin kicked off a thread that resulted in emacs getting better pir-mode support. Thanks to all involved, but I will continue to use vim ;-) http://xrl.us/diwt = A %= B Dan
Re: So long, and thanks for all the fish!
All~ I am willing to try and take on this responsibility. I have been reading p6i for several years now and always appreciated the summary, so what better way to give back. Any advice/scripts that Piers (or anyone else) can provide me would be appreciated. Matt -- Computer Science is merely the post-Turing Decline of Formal Systems Theory. -??? On Fri, 15 Oct 2004 10:05:21 +0200, Leopold Toetsch [EMAIL PROTECTED] wrote: The Perl 6 Summarizer [EMAIL PROTECTED] wrote: I tried, I really did, but I'm afraid that I must raise the white flag ..- Dan, Leo and the rest of the p6i team have done fantastic work Thanks for the flowers and of course for all your precise summaries. ... But if any of you are thinking I could do that! then don't let me stop you -- there's an awful lot goes on on the lists, and there's a lot of interested people who don't have the time to keep up with them. A regular summary helps the interested but busy people get a grasp of how the Perl 6 project is getting on, and that can only be a good thing. Yep, so please, interested folks, sharpen your pencil ... -- Piers Cawley -- Former Perl 6 Summarizer Thanks again, and maybe ex-former any tine, leo