% grim_fandango has left grim_fandango!~matt@bas2-kingston08-1167932179.dsl.bell.ca r27697 | fperrad++ | trunk: : [Lua] : - bytecode translation : refactor diff: http://www.parrotvm.org/svn/parrot/revision?rev=27697 % jjore has left jjore!~jjore@c-24-16-241-176.hsd1.mn.comcast.net % leo has joined #parrot r27698 | pmichaud++ | trunk: : [p6object]: : * Refactor handling of parent class addition a bit, to simplify things : for rakudo. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27698 % zOrK has joined #parrot pmichaud: ping. % bacek_ has left bacek_!~bacek@mcas-151.usr.optusnet.com.au % zOrK has left zOrK!~eclipse@196-97-22-190.adsl.tie.cl morning all morning, jonathan % ruoso has joined #parrot % jjore has joined #parrot % jjore is now known as zz_jjore % zz_jjore is now known as jjore pmichaud: (...is there no way to determine if a class has a method of a given name, either itself or via inheritance?) - the 'can' opcode/method should do this % ank has left ank!~ank@ppp121-44-210-24.lns1.hba1.internode.on.net % Patterner has left Patterner!~Psyche@d138176.adsl.hansenet.de % wknight8111 has joined #parrot jonathan, evening... bacek: Hi there :-) jonathan, can you review second patch from http://rt.perl.org/rt3/Ticket/Display.html?id=54514? is it "right way" for workaround about broken inheritance? bacek: .sub '$!sort' :method Just !sort if you want to make it private No $ jonathan, O! New knowledge about "dark magick" :) Other than wondering if Perl 6 sort really is in-place, it looks good. I thought it returned a sorted copy of the list? it should bacek: But that's only a small change. :-) jonathan, hmm... I don't fully understand "'=sort' mutator form" bacek: That's a form that would be called, as an optimization, when writing for example @stuff .= sort(); However, Rakudo doesn't know about this yet, I don't think. r27699 | jonathan++ | trunk: : [rakudo] Implement => infix operator, for constructing more complex pairs. Make them work in calls when you just have a string literal there. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27699 jonathan: without the spaces please moritz: It works without the spaces too? jonathan: I think method calls may not have spaces at all jonathan: you *have* to write it as @stuff.=sort Normally, they may not. But in STD.pm token infix:sym<.=> ( --> Item_assignment) { {*} } so infix:<.=> is an alias for the method call .= ? ok, I take back everything I said ;9 Yes; and it allows the spaces :-) Otherwise you'd not be able to write my Dog $fido .= new(); It'd have to be without the spaces. ok thanks for the clarification np Do you know if you're allowed to do things like foo($name => $value) when calling? Or is only a literal string allowed on the left hand side of =>? no, the lhs of => is a scalar If you're allowed more than a literal string, we have a problem at the moment, 'cus Parrot don't support that right now. :-( or Any, probably because the lhs is a hash table entry or something? OK, in the general case, yes, it just makes a Pair Because in Parrot Intermediate Code you're only allowed a string literal for the name. I've made 'foo' => 42 work now jonathan, http://pastebin.org/37501 jonathan, this is reworked sort bacek: Looks good O_O And bonus points for tail call usage ;-) http://rt.perl.org/rt3/Ticket/Display.html?id=54312 and this this 5-days old infix:=> implementation :) jonathan: Yes why is that? Because some parrot object is being used for it? avar: Why are you only allowed a string literal at Parrot level, you mean? I don't have a good answer to that, other than, that's the way it is. If the lhs needs to be a string literal but not the rhs that would suggest you're using some parrot datatype that is limited in that way. Yes, Parrot's signatures only allow a string constant there. That's the limitation. If you're allowed to write foo($name => $value), though, then I think Parrot's going to have to change to support non-constant names for named parameters. Ah, so parrot calling conventions for subroutines are being used directly. That answers my question. avar: Yes, correct. Yes, either that or pass a Perl 6 object that describes the arguments Such as a Capture. :-) Unfortunately, doing so would rather harm our ability to interoperate with other languages on Parrot. bacek: That was similar to what I first thought of doing; unfortunately, it doesn't work out with writing calls. bacek: Is that sort patch ready to apply? jonathan, I think so. OK. Is there a ticket for it? New version attached to http://rt.perl.org/rt3/Ticket/Display.html?id=54514 bacek: Does this work for you: my @a = (7,1,8,3,2); my @b = sort { $^a <=> $^b }, @a; say @b; I'm actually getting segfaults here from that! bacek: Also, my @a = (7,1,8,3,2); my @b = @a.sort({$^a <=> $^b}); too many arguments passed (2) - 1 params expected jonathan, just a sec... min... I rebuilding parrot from scratch. Oh, did you support passing a comparer yet? about second example: no. It will not work. jonathan, comparer passing works only for sort {}, @list OK I still learning parrot... My version with .sub 'sort' :multi(_) :method in list just always complains about wrong number of arguments % Alias has left Alias!~adam@svn.ali.as bacek: Maybe make it an optional parameter? :optional i think :optional is a flag to an argument jonathan, ok. I'll read pdds once again to figure how it should work OK bacek@icebolt:~/src/parrot/languages/perl6$ cat sort2.pl my @a = (7,1,8,3,2); my @b = sort { $^a <=> $^b }, @a; say @b; bacek@icebolt:~/src/parrot/languages/perl6$ ../../parrot perl6.pbc sort2.pl 12378 I'm curious if my @a = (7,1,8,3,2); my @b = sort { $^a <=> $^b }, @a; say @b; my @a = (7,1,8,3,2); my @b = sort { $^a <=> $^b }, @a; say @b;[6~[6~[6~[6~[6~[6~[6~ ...oops If that works for you Oh, you just tried it. Hmm jonathan, http://rt.perl.org/rt3/Ticket/Display.html?id=54474 :) jonathan, I've fixed cmp before :) Ah, and that patch is unapplied? jonathan, yes that's one of the things that make parrot development less fun Latest version attached to the ticket is one that should be applied, right? jonathan, yes. But it is not reviewed. Just looked over it, looks good. jonathan, but according to Coke and chromatic it is right way to do Not sure about the change to freeze though. That's the only bit I'm a tad unsure about applying. The rest, looks good to me. Applied it locally, apart from the freeze part. Testing it. bacek@icebolt:~/src/parrot/languages/perl6$ cat sort3.pl my @a = (7,1,8,3,2); my @b = @a.sort({$^b <=> $^a}); say ~@b; bacek@icebolt:~/src/parrot/languages/perl6$ ../../parrot perl6.pbc sort3.pl 8 7 3 2 1 jonathan, :optional really works! I'll create new patch for 'sort' :) % braceta has joined #parrot Yay! moritz: You mean dealing with the segfaults makes it less fun? jonathan: no, that patches usually take quite some times before getting applied Ah. * bacek have to deal with kids... It's a bed time % masak has joined #parrot jonathan: for example I submitted a patch to make languages/PIR/ compile again, which can easily be verified I can understand that patches to the core are thoroughly revied, but things like that should be easy and fast to do % braceta has left braceta!~Braceta@83.240.229.38 does rakudo support `use v5`? does it default to perl 5 if no version is given? masak: No and no, for the moment. but we're heading there? I think it's far down the roadmap I mean, at least it's on the roadmap, right? moritz: Agree that things like that likely can be applied nice and quickly, yes. In fact, people working on stuff in languages/ should be able to get commit bits after a few patches anyway. I don't need it now, just curious whether it will be there and how masak: If it's in the spec, then yes, it will be there eventually. that means that every compliant distro of perl 6 will also include perl 5 The spec seems to suggest it will be that way... masak: yes will that be in the form of a parrot project, or in the form of the original perl 5 codebase? although I could imagine that 20 years after Perl 6 is being deployed we might get rid of that dependency one can only hope masak: Probably original Perl 5 embedded in Parrot, initially. what does that mean? can it do `use v5; { use v6; ... }`? you will ok, good r27700 | jonathan++ | trunk: : [core] Make Integer PMC call SELF.get_integer() rather that look straight at the data in various places, so as to make subclassing work properly. Patch courtesty of Vasily Chekalkin (bacek++). diff: http://www.parrotvm.org/svn/parrot/revision?rev=27700 % ank has joined #parrot % braceta has joined #parrot r27701 | jonathan++ | trunk: : Give bacek an entry in CREDITS. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27701 % wknight8111 has left wknight8111!~nobody@c-71-230-33-251.hsd1.pa.comcast.net r27702 | fperrad++ | trunk: : [install] : - add MIME/Base64.pbc (used by pheme) diff: http://www.parrotvm.org/svn/parrot/revision?rev=27702 % bacek has left bacek!~bacek@123-243-38-218.tpgi.com.au % bacek has joined #parrot hi again oh, you're back! purl, damn bot! :) bacek: i'm not following you... bacek: Applied your Integer PMC patch, thanks. :-) jonathan, thank for applying 'cmp bug' Thank you for the patch! jonathan, wait a little bit with sort. Sure, whenever you're ready with it. Latest version broke my first test... I've got Null PMC access in get_bool :( What is proper way to check :optional argument was passed? But :opt_flag after it .param pmc foo :optional .param int have_foo :opt_flag Test have_foo for zeroness. jonathan, thanks. http://pastebin.org/37515 This version work with my all my tests. bacek: OK, great. I have a few local changes that I need to get sorted out and ci'd first, but will take a look in a moment. (Well, after lunch...) jonathan, ok. Bon appetite! I'll attach latest version to ticket. http://rt.perl.org/rt3/Ticket/Display.html?id=54514#txn-409824 jonathan, BTW, I think you can remove 'join' and 'sort' from TODO in List.pir :) and 'reduce' too. * moritz tests his new 'make spectest_regression' Question (another stupid one): in which syn described this syntax: my @s = sort { $^a <=> $^b }: @a; with colon after sub. r27703 | jonathan++ | trunk: : [rakudo] Fix Int cloning. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27703 bacek: it's the same as { $^a <=> $^b }.sort(@a); (the thing before the : is the invocant). Either S02 or S12. moritz, thanks looks like in S06: invokant parameters... % braceta has left braceta!~Braceta@83.240.229.38 Is it handled by 'token adverbs' in STD.pm> ? * moritz doesn't know STD.pm well enough to answer that yes it is... And it is not handled in current rakudo at all... * DietCoke drinks a coffee. * bacek just drinks % gryphon has joined #parrot make spectest_regression patch for rakudo sent! to perl6-internals, that is hope that helps jonathan % tetragon has left tetragon!~seneca@216.126.67.44 % Zaba has joined #parrot % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru * jonathan returns from myamming a ham sarnie moritz: Do we actually pass the tests on that list? But - thank you muchly for this patch. bacek: So that patch is ready to apply? jonathan, I think so jonathan: yes, rakudo passes these tests ( r27698 ) moritz++ you're welcome OK, will get these both in when I figure out how to get the first cut of lazy ranges in without breaking stuff that currently works... for 1..6 { ... } # actually constructs an interator now 'A'...'Z' works locally too :-) By iteator I mean, Range object. jonathan++ % Infinoid has left Infinoid!infinoid@mad.cow.org But gotta get my @a = (1..6); to do something sensible. (Without doing everything that really needs to be done. Yet.) hey, do you guys know what "TRE" is? (i'm reading rakudo.org and it talks about "TRE" as a token matcher) ank: it's a regex library http://laurikari.net/tre/ cool! thanks and for perl: http://search.cpan.org/perldoc?re::engine::TRE yw * DietCoke wonders why the hell jonathan's email about fixing integer.pmc didn't hit the list. jonathan: any reason why you cc'd parrot-porters@perl.org and not perl6-internals@perl.org? (just spent 5m getting ready to apply the patch to find it applied. =-) DietCoke: I thought parrot-porters was the Right Address for the list now? it's an alias. japhb: I use git-svn there's no reason to override the list that RT provides. =-) (I'm guessing it got held up for moderation somewhere.) % davidfetter has left davidfetter!~chatzilla@start.fetter.org I couldn't see the "Toggle cc to ..." r27704 | coke++ | trunk: : Add test to verify cmp works in subclasses of 'Integer', reworked from a : sample provided by Vasily Chekalkin in RT#54474 diff: http://www.parrotvm.org/svn/parrot/revision?rev=27704 r27705 | jonathan++ | trunk: : [rakudo] Really fix Int cloning. D'oh. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27705 bacek: reworked your initial case as a test and committed that. For bonus points, provide those PIR scripts as failing tests in teh first place. =-) bacek++ DietCoke: Strange, I see it now...who knows. :-) r27706 | jonathan++ | trunk: : [rakudo] Make range objects work as iterators. You can now create them and use them as such. However, we're not ready to make them be created with .. just yet; need to sort out various other bits. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27706 DietCoke, clean version of test made by pmichaud... bacek: This sort patch is final one to apply, right? jonathan, yes. % ank has left ank!~ank@ppp121-44-210-24.lns1.hba1.internode.on.net * bacek going to sleep... bacek: Will apply this, thanks. jonathan, thank. Ah, it has a slight bug Will tweak it. BTW, any chances for 'protoregexes' in near future? jonathan, no way! It's prefect! :) pmichaud is planning to work on them in the not too distant future, I believe. bacek: Unless you try it with my @a = <5 1 7 3>; my @b = sort @a; say @b; Then it things the array is the comparer. ;-) jonathan, yeek... You right. It's only 99% percent perfect :) jonathan, so it it should be 2 versions of 'sort' with :multi? bacek: Actually, I just check if the comparer is code or not. :-) Works. Will ci. % wknight8111 has joined #parrot bacek: It's in. Thanks! jonathan, thank for knowledge about "Dark Magick" :) I'll try to implement 'map' better. r27707 | jonathan++ | trunk: : [rakudo] Implement sort method and sub. Patch courtesy of bacek++. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27707 ok. good night to everyone. goodnight :-) moritz: When I do "nmake spectest_regression" it seems to be running everything but the spectests... % rdice has joined #parrot jonathan: are you on windows? jonathan: it assumes / as the path separator, my bad moritz: Yes Ah jonathan: try to translitare all backslashes by slashes in the grep in line 50 in t/harness Whoops. Blogger made it a little to easy to post to the wrong blog there. apologies if that diet post shows up in anyone's parrot feed. :| 'too' moritz: Think I've got a fix that makes it portable. It was the slashes issue. Wow. jonathan: and we need a to die if @tfiles is empty, because it means that something is wrong jonathan: and it also means that t/0*/* is executed which is what happened to you Ah, yes, good idea. Added. and in root.in a line like this: @echo " spectest_regression: Run the tests of the official test suite that are known to pass." Yup, added r27708 | jonathan++ | trunk: : [rakudo] Add spectest_regression makefile target, which only runs tests on a known-to-pass whitelist. The goal is to have make spectest be useful enough not to need this; for now, this way provides highly useful information. Patch courtesy of Moritz Lenz (moritz++), with a couple of platform tweaks by jonathan++ so it works on Windows. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27708 I know it's a hack, but isn't there a builtin module for file path assembly, and or a parrot config option you can steal it from rather than re-inventing tha particular wheel? (I know it's a really small wheel, though.) moritz++ # thank you thank you thank you! * moritz performs a sweeping bow DietCoke: Probably; I'm sure if a cage cleaner feels strongly enough about it, they'll tweak it. :-) OK, back to the hacking. * jonathan hopes pmichaud is awake soon, since he has questions for him :-) jonathan: hopefully it'll be gone by then. =-) Sure, but for now it solves a real problem, so I'm very happy to have it here. (to be clear, I'm happy it got applied. =-) pong I see that everyone step in jonathan toes for things he has already built in his heads. pmichaud: A few things... a few things are worse than a gecko revolt s/heads/head/ A gecko revolt sounds coool!! ooh, can I have one? pmichaud: First, I've put in lazy ranges as iterators. Apart from, I can't use them with .. yet. er, ranges as lazy iterators But they work like that. Thing is @a = (3..5); # oh my Because of course, you can't do @a[1] on an iterator pmichaud, I did a svn update, make clean, perl Configure.PL, and make and got error:imcc:syntax error, unexpected SHIFT_LEFT ('<<') in file 'src/PCT/HLLCompiler.pir' line 17 error:imcc:syntax error, unexpected RELOP_EQ ('==') in file 'src/PCT/HLLCompiler.pir' line 21 error:imcc:syntax error, unexpected SHIFT_RIGHT_U ('>>>') in file 'src/PCT/HLLCompiler.pir' line 25 make[1]: *** [../../runtime/parrot/library/PCT.pbc] Error you mean in Parrot's implementation of Iterator. Right. Parrot's Itertor doesn't really do what we need, I don't think. No, no. Range *is* an iterator. It's working fine as an iterator. I am checking to see if I am clean... :) my $r = Range.new(from => 1, to => 6); for $r -> { say $_ } # works The thing is what happens on assigning it to an array. right now (wrong or right) the array just gets a copy of the Range, yes? Yeah. Ranges need to support postcircumfix:<[ ]> cognominal: looks like you got a merge conflict. pmichaud: That'd be one way, but I don't think they're menat to. I was wondering the other day what needs to change in the List::* builtins to support working with lazy lists. I mean, @a should be an array, which references the lazy iterator. okay, then we have to have lazy list implementation to make it work. I feared this. :-) there's a *reason* I put laziness far down the roadmap, jonathan. :-) yes I need to do branc intead of of experementing many stuf at once. s/bran/branches/ Yeah, it hadn't quite occured to me that lazy iterators would wind up with needing to do the whole thing. I think once we have mutables, laziness becomes much simpler. Yeah. jonathan: what about makiing it eager for a start? (eager) that was the approach I had been taking. thus infix:<..> was returning a flattened list It still is. I haven't switched it over to using Range. You could do the eagerness only on assignment. (to an array) Yeah, that would be one way. I think overall it's easier to just get mutables working first. Yes. and then do it "right" Agree. OK, I'll leave Range for now...the class is useful once we get to it. Next up, sorting out $/, $!, and so on. anyway, with my @a = 1..10; we start out with @a being [ 1..10 ] but after we do @a[2] we end up with [ 1, 2, 3, 4..10 ] or something like that. Yes, agree. so, postcircumfix:[] on the array does the flattening Right. Thus the laziness - it's lazy until you try and get at the value. jonathan: your previous commit broke Makefile (I think), because of leading spaces (instead of tab) Oh? jonathan: at least I get warnings I'm about to check in my class refactoring in the rakoo branch. It undoubtedly breaks a ton of stuff That's OK, we've got a nice makefile target to find out what. :-) make Makefile Makefile:167: warning: overriding commands for target `spectest_regression' Makefile:129: warning: ignoring old commands for target `spectest_regression' make: `Makefile' is up to date. make Makefile is a shortcut moritz: I don't, but maybe Windows cares about this... erm, doesn't care jonathan: or maybe it's just my stuff that's borked, let me check.. pmichaud: asking for testing? Tene: more like "asking for understanding" when the world shifts beneath everyone's feet :-) moritz: Found some spaces instead of tabs, fixed. jonathan: in the generated Makefile I have a leading space in line 128 (which is the documentation for spectest_regression) ok pmichaud: are you checking into a branch, or into trunk? (sorry, I think I b0rked that) branch. (rakoo branch) moritz: Try it now. r27709 | jonathan++ | trunk: : [rakudo] Fix makefile breakage in last commit, noticed by moritz++. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27709 pmichaud: Any chance you can sync the branch with trunk, so I can run the spectest_regression target in it? That will give a clearer picture of any breakage. jonathan: doing that now. But I really expect that most class/grammar/etc. stuff is completely broken pmichaud: OK. Will get myself a copy of the branch. :-| cla? cla is Contributor License Agreement or http://www.perlfoundation.org/contributor_license_agreement jonathan: still not fixed :( I did an 'rm Makefile' and then 'perl Makefile.PL' in the root dir I'm getting a t/codingstd/trailing_whitespace test failure on languages/perl6/src/classes/List.pir * pmichaud is _really_ concerned about trying to make these changes in a branch with so many people actively working in trunk. jonathan: there's a single leading whitespace at config/makefiles/root.in:125 jonathan: removing that fixes the problem for me Urk. Found it. That was sneaky. r27710 | fperrad++ | pdd25cx: : [Lua] : - fix compil : s/ILL_INHERIT/EXCEPTION_ILL_INHERIT/g diff: http://www.parrotvm.org/svn/parrot/revision?rev=27710 pmichaud: You getting merge conflicts? yes. Ugh. and even trying to sync the makefile changes you're making now is a pain. does svn not help you with that? I have to keep track of what has been merged and what hasn't. and yes, there are merge conflicts, so that recent changes to List conflicted with what I did a few hours ago. moritz: Try that one? r27711 | jonathan++ | trunk: : [rakudo] Try to fix another whitespace bug in the makefile. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27711 jonathan: works! OK, good. any bug admins here? #54476 was closed by r27708 r27712 | pmichaud++ | rakoo: : re-sync rakoo branch with trunk. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27712 moritz: yes, will close pmichaud: Does rakoo branch include the changes too? r27713 | pmichaud++ | rakoo: : [rakudo]: : * First round of base class refactorings to use P6object. : * Undoubtedly quite a few things break. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27713 jonathan: it does now. OK, let me svn up and see what the damage is. :-) I apologize in advance. :-) pmichaud: Thinking back on mutables etc. The only PMC we need to add for those is the Scalar one, right? yes, but I was thinking of calling it "Mutable" OK, sure. But Array is subclass of ResizablePMCArray? and then Scalar, Array, Hash etc are types of mutables I'm not sure about Array yet. OK Building the branch... the biggest thing the branch tries to do at this point is to clean up Perl6Object and Any handling and get all of the other classes oriented correct for that OK, sounds good. 09:24 pmichaud: (...is there no way to determine if a class has a method of a given name, either itself or via inheritance?) - the 'can' opcode/method should do this unfortunately, the 'can' opcode only works on instances. at least, for what I want to do. pmichaud: and to get a list of all methods in a class? Ah, OK meths = inspect class, "methods" what I end up having to do is to inspect the class for 'all_parents', and then walk the mro list to look at each class and check its .'methods'() list % Zaba_ has joined #parrot r27714 | fperrad++ | trunk: : [build] : - fix 'make realclean' on Windows (partial revert of r27361) : The input line is too long. i already had it that way, dalek. : make: *** [prog-clean] Error 255 diff: http://www.parrotvm.org/svn/parrot/revision?rev=27714 because .'methods'() only gives me the methods of the class itself, not its parents Sure % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru That's the design. which is fine, but there's no way to figure out if objects of a given class can perform a given method without either instantiating such an object or walking the mro list :-) fperrad? anyway, my workaround works for now. :-) pmichaud: If we implemented something in C, it'd only be doing the same thing, I guess. and I even refactored it into a single place, so it's no big deal (walking the MRO, that is) jonathan: yes, I think so. And it's not a common enough operation to warrant much optimization. That was going to be my next question. Do you do it enough to want it optimized. it only occurs when we create or register a new class. (using P6object) so, no. anyway, in the rakoo branch I currently get two 'make test' failures 07-isa.t and 07-ref.t starting to look at those nose. Yeah, I just noticed we fail those. *now. I'm going to see how bad the spectest_regression target is. * pmichaud cringes. the 'class' and 'grammar' keywords need some reworking Well, we ain't failing *everything* in that target... make_grammar_proto should now simply be p6meta.'register'(class, 'parent'=>'Grammar') In fact, only four of them. Three of them OO ones (force 'class' to be a subclass of Grammar if it's not one already) * pmichaud tries the spectest_regression target another big change is that Hash.pir is now Mapping.pir (and we eliminate "Perl6Hash". Yay!) What will things look like eventually when HLLs want to use class names already taken by parrot? they will break until Parrot fixes that. pmichaud: Working on class keyword okay. We no longer have a 'make_proto' sub use p6meta.'register' instead p6meta.'new_class' creates a new class and registers it p6meta.'register' just registers an existing class in the case of the class keyword, we should (1) create a new class (2) process any has/does/is keywords (3) call p6meta.'register'(class, 'parent'=>'Any') to create the protoobjects and otherwise ensure that the class is a subclass of 'Any' % masak has left masak!~user@130.238.45.242 Tene: what you mentioned is RT#43419 . pmichaud: Done. class Foo { method bar { say "yay"; } }; Foo.new().bar; yay outstanding I think I have 01-ref fixed. er, 07-ref fixed. % davidfetter has joined #parrot However, we have...issues Oh, you probably fixe dthem. .WHAT() gave weird errors? oh, didn't fix it yet. But it's undoubtedly something to do with .WHAT(), yes. feel free to do liberal commits in rakoo -- i.e., commit things even if tests don't pass I think we'll have a few hours or so of cleaning up rakoo, maybe a bit longer % Infinoid has joined #parrot pmichaud: Is this a bug: grammar Foo { rule TOP { \d+ } } if "hi" ~~ Foo { say "yes" } if "h2i" ~~ Foo { say "yes" } if "2" ~~ Foo { say "yes" } % jhorwitz has joined #parrot yes Note it doesn't print yes after the second check. r27715 | pmichaud++ | rakoo: : [rakudo]: : * merge Makefile fix from trunk into branch : * be sure to register Perl6Str as well as String diff: http://www.parrotvm.org/svn/parrot/revision?rev=27715 I thik that should produce "yes" twice, if that's what you're asking. pmichaud: That's same in trunk though. Yes, I think it should. OK, that's a bug, but it's not related to the branch. On the upside, that means I've got the grammar keyword working again too. (commit?) yea, just reading my diff for sanity :-) % GeJ has left GeJ!~geraud@edna.nealab.net r27716 | jonathan++ | rakoo: : [rakudo] Get class and grammar keywords working again. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27716 r27717 | pmichaud++ | rakoo: : [rakudo]: : * Need to register "Boolean" type as "Bool". : * 07-ref.t passes. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27717 % ambs has joined #parrot although, really I shouldn't have had to make r27717 in order to get 07-ref.t to pass. Hrm. * pmichaud investigates. % ambs has changed the topic of #parrot to: Parrot 0.6.2 "Reverse Sublimation" Released | http://parrotcode.org/ | 20/672 new/open tix % GeJ has joined #parrot I have a clean tree (at last) and I dabble with pod5 parsing and got Unable to find regex 'panic' Null PMC access in invoke() oh, ick. it there anything new on this front? r27718 | jonathan++ | rakoo: : [rakudo] s/Perl6Hash/Mapping/ in actions.pm. Makes a spectest fail differently. ;-) diff: http://www.parrotvm.org/svn/parrot/revision?rev=27718 cognominal: I think I forgot to re-register the panic method in PCT::Grammar. I have [ $ || ] seen DietCoke DietCoke was last seen on #parrot 30 minutes and 21 seconds ago, saying: fperrad? seen coke coke was last seen on #parrot 1 day and 19 hours ago, saying: tries to figure out why that thread starts with tilly's message and not ambs's. [May 19 13:28:34 2008] cognominal: just a sec, I'll fix. no big deal Yes it is! I hate you I hate you purl, I hate you too ambs: sorry... * jonathan tries to work out why inheritance is br0ked in rakoo "pmichaud" at 76.183.97.54 pasted "weirdness in 'copy' op" (56 lines) at http://nopaste.snit.ch/13031 if pmichaud and jonathan continue at thus pace the only sane way for peerl 5.12 will be to use parrot for bootstrap look at the line that says find_lex P11, "$bool" % tedkat has joined #parrot 39 copy P10, P9 P10=Undef=PMC(0x833d5a0) P9=Object(Bool)=PMC(0xb7482eb4) 42 find_lex P11, "$bool" P11=PMCNULL 45 unless_null P11, 6 P11=Boolean=PMC(0x833d5a0: 1) the object goes into 0x833d5a0 as a "Bool" but comes out as a "Boolean" pmichaud: One mo, I'll look atthat... I'll write a small test case. "pmichaud" at 76.183.97.54 pasted "weirdness in 'copy' op #2 -- small test case" (27 lines) at http://nopaste.snit.ch/13032 % Infinoid has left Infinoid!infinoid@mad.cow.org % uniejo has left uniejo!~uniejo@langebro.adapt.dk pmichaud: Will look, just trying to get to the bottom of why trait_auxilliary:is isn't dispatching properly... is that the one in Perl6Object ? .sub 'trait_auxiliary:is' :multi('P6protoobject', 'Class') Isn't matching anything oh you probably don't want P6protoobject However, :multi(_,_) and printing the inheritance hierarchy of the first parameter shows that it includes P6protoobject it's a :multi, not a :method ? Yes. Well, it just extracts the Parrot Class and re-dispatches. where does trait_auxiliary:is get invoked from? The code generated by an "is" .... i knew that .... :-) I mean, it's in the generated PIR? Ah, yes. P6protoobject feels wrongish to me. class Bar is Foo { } % iblechbot has left iblechbot!~iblechbot@ppp-62-216-205-125.dynamic.mnet-online.de Here, Foo is the protoobject Foo? I was thinking Bar No, we haven't created Foo yet. In the end, yes, we will install a proto-object for Foo * pmichaud double-takes. I think you mean Bar. We haven't created Bar yet. Yes! Grr! so, trait_auxiliary:is gets invoked as trait_auxiliary:is(Bar, Foo) ? No Foo, Bar trait_auxiliary:is(Bar, $def) (where "Bar" is the class w/o a proto) Ooops trait_auxiliary:is(Foo, $def) * particle waves as he arrives after two hours of scrollback reading Where $def is the under-construction class okay. checking. pmichaud: This may be related class Foo { } rumour has it class Foo { } is okay Foo.get_parrotclass() get_parrotclass requires an argument. I would have expected that to work? class Foo { } class Foo { } is okay grr it's a helper function -- it doesn't work on its invocant. yes, but Method 'get_parrotclass' not found for invocant of class '' get_parrotclass works on metaclass objects, not protoobjects Foo.HOW.get_parrotclass(Foo) but you don't have to have Foo's metaclass -- any metaclass will work p6meta.get_parrotclass(Foo) class Foo { } hmmm... class Foo { } is okay Foo.HOW.get_parrotclass(Foo) that's OK purl, forget class Foo { } pmichaud: I forgot class foo { } the argument to get_parrotclass can be a parrotclass, a protoobject, a metaobject, a String, an array basically it says "I have X, I want to know what it represents as a parrotclass" we may end up throwing namespaces in there as well :-) Hmm class Foo { method hi { say "hi" } }; class Bar is Foo { }; # now "works" my $x = Bar.new(); $x.hi; This gives attempt to access code outside of current code segment Also to make that work I've done .sub 'trait_auxiliary:is' :multi(_,Class) .param pmc parent .param pmc child .local pmc HOW HOW = parent.'HOW'() parent = HOW.'get_parrotclass'(parent) 'trait_auxiliary:is'(parent, child) .end ...that was helpful nopaste? nopaste is probably at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://paste.husk.org/ or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or don't bother me while I'm eating DietCoke: ping "Jonathan" at 85.216.151.226 pasted "inheritance" (8 lines) at http://nopaste.snit.ch/13034 I suggest using p6meta instead Which is wrong, because we need something that means "a proto-object" on the left As the first argument % sjansen has joined #parrot HOW = get_hll_global 'Perl6Object', '$!P6META' instead of HOW = parent.HOW() on the off-chance that parent doesn't know how to HOW % donaldh has joined #parrot pmichaud: OK, I have changed it. But still the same problem. the same problem is, like, what killed killtrac do we need the :multi(Class, Class) form at all? if so, why? And it worries me that we've also got a failed multi-dispatch on stuff we know is in the inheritance hierarchy. We may well not. I think we may just want addparent directly in the :multi(P6protoobject, Class) form and get rid of Class,Class until we know we need it. Sure, but what I'm saying is that writing the multi you suggested gets us a no applicable methods error. yes, I'm still thinking about why that might be the case. OK Got rid of the Class, Class variant. in the _,Class form, check to see if parent isa P6protoobject I know you did this already --I'm wanting to double-check. $I0 = isa parent, 'P6protoobject' say $I0 1 but changing the _ to P6protoobject causes it to fail? Correct. Let me check in my clean-ups so far, with _ in there. okay. I'll try a test case. OK. We'll swap problems; I'll go peek at your boolean one r27719 | jonathan++ | rakoo: : [rakudo] Start trying to unbreak inheritance. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27719 ...after making another cup of tea... "pmichaud" at 76.183.97.54 pasted "P6protoobject and multi bug -- simple test case" (25 lines) at http://nopaste.snit.ch/13035 % starc has joined #parrot pmichaud: OK, problem is that copy calls VTABLE_clone and Object PMCs don't know how to clone? Which in turn ends up dispatching to the clone method of Boolean PMC, I guess. Seems not I've written clone vtable methods for most of our types Bool was missing one right, I took quite a few of those out erm... I think it belongs in Object PMC and not in our classes. (as my test case shows.) OK, but I fear that doesn't work out too nicely. Oh, in Object PMC OK. clearly 'copy' isn't making a correct copy. Well, copy just calls clone So it depends on whatever clone does I'm not saying that none of our classes will have 'clone' methods -- I'm just saying that Rakudo shouldn't be blindly working around parrot bugs. (visibly working around Parrot bugs is okay, but we should have a note for when we're doing that and why.) I suspect copy could actually have the whole morph chunk of it deleted with no ill effects. but that's a separate issue OK, implementing clone in the Object PMC. Ouch. Down to my last tea bag. :-| not good. :-) "pmichaud" at 76.183.97.54 pasted "P6protoobject and multi bug -- simple test case, slightly improved" (30 lines) at http://nopaste.snit.ch/13036 I think you're correct that there's a problem with mmd there. % iblechbot has joined #parrot Does P6protoobject ever end up in the class registry? yes OK first statement of P6object.pir :-) That's that theory out then. oh, 3rd statement. (coulda been first. was the first at one time, then I thought it made more sense to create the Hash first.) of course, the protoobjects themselves are instances of anonymous (nameless) classes I wonder if giving those classes a name makes a difference? % Eevee has left Eevee!~eevee@c-67-160-3-54.hsd1.wa.comcast.net pmichaud: It may, but I like to hope not. The thing is that I fear anonymous classes currently don't get type numbers. do we use type 0? okay, I'm confused. Just a sec. the perl6 grammar is real fun when one gets used to it. How can we have lived without it. (preparing nopaste) jonathan: runtime/parrot/include/pmctypes.pasm lists 'default' as typeid 0 * particle thinks that's for anonymous classes even anonymous classes will need unique typeids (as long as we're using typeids) Thing is, I thought that protoclasses in the previous implementation were anonymous too. they were. Hmm That doesn't seem like a likely reason for it not working now, then... :-S P6protoobject basically uses the same algorithm as Perl6ProtoObject did (as far as that goes.) oh, hrm % donaldh has left donaldh!~chatzilla@proxy-sjc-1.cisco.com a-ha! jonathan: you're not going to like this it's a little confusing that the grammar module changed from P6Regex to Perl6Regex, and Perl6Protoobject is changing to P6Protoobject P6protoobject (small 'p') it takes after P6opaque from the spec. my point is P6 vs Perl6 I know Oh, shiese! :P but P6objects != Perl6 objects Well, at least it's an easy fix. jonathan: here's why it "worked" in trunk Object.pir: protoclass = subclass objectclass, 'Perl6Protoobject' traits.pir: .sub 'trait_auxiliary:is' :multi('Perl6ProtoObject', 'Class') there is no "Perl6Proto*O*bject" % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt Oh? Hmm.. So the bug was a typo, or? so I'm guessing that MMD treated that as _ or something. (sorry, half my head is writing Object.pmc's clone right now) another difference is that in the old style Perl6Protoobject is a subclass of Perl6Object but in p6object P6protoobject is a standalone class (no parent) but I think the typo might be the issue. I'll try. pmichaud: OK, for http://nopaste.snit.ch/13032 - that prints MyInt twice here now I've done this in the rakoo branch Heavily untested. % Eevee has joined #parrot jonathan, okay great. and I have one for you r27720 | jonathan++ | rakoo: : [core] Implement clone v-table method for Object PMC. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27720 Running make test on it right now, but committed to see how it solves your issues. in trunk, if I change traits.pir to have :multi('Perl6Protoobject', 'Class') and then try the Foo/Bar class test, I get "pmichaud" at 76.183.97.54 pasted "P6protoobject and multi bug -- now in trunk!" (16 lines) at http://nopaste.snit.ch/13037 so the same problem exists in trunk. Arses. * jonathan points the finger at MMD. and what is really weird is that it matched Perl6ProtoObject when there was no Perl6ProtoObject class. % NotFound has joined #parrot Hello. I'm wondering if non-existent classes somehow map to '_' I fear they may. It's the only answer that makes sense. * pmichaud tries Object clone fix. code for Object.clone looks good. nice work. glad it was you and not me :-) I have vague recollections of writing quite a few bits of class.pmc and object.pmc. ;-) how many failures do you see in spectest_regression now? autoref complains about code outside segment particle: Will look in a moment - was down to 3 last time. % Theory has joined #parrot Grr. Failing tests thanks for my patch. Oh, argh. That's because it's wrong wrong wrong. mmmmm, "Wii Fit" just arrived. :) Could be a wii bit distracting. argggggh actually, rakudo and parrot are more interesting at the moment so I set the box aside for Paula to look at later and came back into the office but now it's lunch time Nice to know that coding beats playing wiht your wii. well, Wii Mario Kart generally gets about 30 minutes a day :-) :-) Just fixing the copy.t test that I broke... anyway, lunchtime. Then I'll come back and play with rakoo a bit more. Cool we seem to be a lot farther along than I had expected by this point. (as far as migration goes) Nice. It's not going to be the most inspiring Rakudo post today. * particle is hoping to dig in "Today we broke everything...then fixed it." "Also, I failed to implement ranges." ...amazingly, it only took a day to fix. jonathan: you bit off a bit more than you could chew with ranges Well, I thought I could get away with not having to do the whole load of lazy stuff elsewhere too. * particle considers ieee membership And in reality I probably *can*. It just might not really be worth it. if mutables works out okay, we may be able to do laziness in just a couple of weeks Cool. as long as we don't get too lazy. :-) or laziness doesn't mutate "We have a lazily evaluated implementation of Perl 6." that sounds like a good slide quote % iblechbot has left iblechbot!~iblechbot@ppp-62-216-196-37.dynamic.mnet-online.de "Q: Why is it taking long to implement Perl 6?" :-) jonathan: did you get "for 1..* { ... }" working? "A: Because Perl 6 is built on lazy evaluation semantics." *lazy implementation semantics :) Tene: That'd be another thing that hangs on, getting the lazy implementation right. Tene: It's not hard to get a Range object set up correctly that represents 1..* jonathan: you said that you got lazy ranges working, you just can't assign them to an array. Is assigning to an array required for 'for' support? No. That's why I was asking. :) I can give you quite easily, for Range.new(from => 1, to => *) { } But we can't really make the .. operator construct a Range object, until we can also have @a = 1..5; work :-) Ahh, okay. is there an object that corresponds to the whatever star? Whatever. I keep finding myself thinking "Ah, I'll just wait for pmichaud to finish $x and then $y will be much easier to do." It's just an instance of Whatever. :-) ok ;) I think I'll do more assorted builtins later, I guess. I got all of my insurance paperwork done last night. glad you're properly insured to work on assorted builtins. Heh. * japhb finally finishes scrollback * Tene throws a git-svn at japhb Tene: OK, are you committing directly to Parrot, or sending patches into RT? directly jonathan: are you madly hacking on something now? Object.clone, then was pondering hacking on some fried rice...what you wanting? ... Because I need to know the proper Parrot-standards way to do both. 'git format-patch' and 'git am' have a bazillion options, and it's not clear to me which are best. i'm looking at the test/spectest failures and wondering how i can help * particle has rakudo-shaped tuits today Then once I get commitbit, I have to learn the "right" way to do that as well particle: in Rakudo command line mode to class Foo { }; say Foo.new().WHAT(); japhb: I've never cared about those options, and I've never had someone complain about the format of my patches. I just used git format-patch s/to/do/ Does that trigger an error? Tene: And then do you take that patch and attach it to an email, or did you use am to send the mbox-formatted patch directly? * DietCoke smacks ambs class Foo {}; say Foo.new.WHAT; Foo For committing directly, I just commit, and do the svn metadata fixes in a separate svn checkout when necessary. Oh. I just attached to email. The learning curve for git is much steeper than SVK ... I was expecting the code segment error. Tene: Ah, OK, that was going to ask that question also, about how you handled the svn metadatta it is? I tried svk two or three times, and I could never really get it working. jonathan: sorry, can't deliver that :) Tene: oh, it's buggy as all hell. I'm happy the error is gone. Every time I tried it, I gave up before actually able to get anything done. i get too many arguments in 01-sanity/isa With git, it's always worked without problem for me. I guess my mental model of revision control happens to map well to what git already does. and code segment error in S02-literal/autoref particle: Going to see what I get now with my latest patch in the branch. I always get confused by svn too, somehow. * DietCoke tries to find all the parrot stuff in the backscroll. but 'svk checkout http://some/thing' ... hack hack hack ... 'svk commit -m "message"' (AKA pretend it's SVN) worked for me As I recall, svk checkout wanted me to do some initial configuration about where to store things, and I couldn't get that working. particle: Just getting latest and greatest and taking a look at what's failing Tene: usually pressing enter a lot works. :-) ok, i'll wait for your commit and rebuild/retest r27721 | fperrad++ | trunk: : [Lua] : - follows PCT, switch from Protomaker to P6metaclass diff: http://www.parrotvm.org/svn/parrot/revision?rev=27721 r27722 | jonathan++ | rakoo: : [rakudo] Fix object clone method, so now it clones any PMCs we inherit from too. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27722 I've found why gmp has problems when compiling with c++. There are c_... #defines in debug.h, and c_str makes c++ unhappy. particle: It's in now. ...already rebuilding already... particle: You could always fix my innevitable trailing whitespace. ;-) :P Though probably best, after I go to bed. I'll only end up making more. :P Tene: Once you've committed to git-svn locally, what's the right way to push your changes back to the svn repo? git-svn dcommit after a rebase, ideally Tene: OK, so you make a pile of local commits, finally ready to push the whole patch, make sure no uncommitted changes, 'git svn rebase', 'git svn dcommit', right? Exactly. Tene: thank you. Add a couple of 'make test's in there for good measure. :) My brain was melting from all the git docs I've read in the past 24 hours Tene: well, of course. Indubitably. :-) jonathan: is $_, $!, $? well-defined enough now to start hacking on? Yeah, but I think we need to fix Rakudo's use of lexicals first. Perhaps Hmm, actually probably not. (Though we should maybe do that anyway. "say $x; my $x = 'foo';" should be an error.) (If there's no other $x in an outsr scope) But basically, for $! and $?, if we're not at the start of a routine, then we should just look at what they were in the outer scope. Our meta-model is certainly meta-circular. I just managed to turn isa into an infinite loop. :-) you know how to spell banana but you don't know when to stop err. oops. jonathan: i get the same test failures after your last commit <@jonathan> if "h2i" ~~ Foo { say "yes" } that should not match subrules imply :p anchoring r27723 | jonathan++ | rakoo: : [rakudo] Fix the obvious problem with isa. However, we're still not passing the test yet. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27723 TimToady: Oh, they must match the whole string? * jonathan goes to look up :p no, but they must match the beginning of the string and h !~~ ^\d+ h isn't a digit!?!?! when did that happen? ;) Ah, OK. I didn't know about that. japhb: how are you getting your copy of the repo? that's why I told you :) :p ;-) * jonathan wonders how many more hidden smilesy are in Perl 6 though I seem to recall that a match against a bare rule has to match the whole string: $x ~~ token {...} % AndyA has left AndyA!~andy@82.152.157.85 but for a match against a grammar, I expect the TOP rule to enforce compleatness since different grammars might want to give different error messages, or simply allow themselves to be embedded in other languages Tene: I did the "full history" checkout of the main Parrot SVN repo. Then went and ate a meal japhb: and it completed in that time? the TOP rule in STD currently allows $+STOP as an alternate endpoint for parsing, for instance that's new OK, makes sense. As I recall, yes, though it's been a while (I did the checkout a couple weeks ago, when it was "interesting thing to learn" rather than "only working tool"). I'm probably network-near it. % AndyA has joined #parrot r27724 | jonathan++ | rakoo: : [rakudo] Should register both Sub and Closure under the name Code. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27724 jonathan: should parrot core pmcs have an 'isa' method? OK, we can't make 07-isa.t pass without making P6Object's isa also care about the name the class is registered under rather than just it's parrot name... particle: They may implement the isa v-table method. But I'd expect something in default.pmc to really be doing the work for all but special cases. yes, the vtable function. (Like Object.pmc, which needs to lie) but i mean for $P0.'isa'($P1) Oh, I don't think as a method, no. if $P0 contains a 'String'... ok $I0 = isa $P0, $p1 er, $P1 I think fixing the isa sanity test needs a change in P6Object - will wait to get pmichaud's opinion on that one, though. So, spectest_regression... t\spec\S02-literals\autoref......ok 1/57Null PMC access in type() take a look at this nopaste to check my sanity... particle: Feel free to dig into that. ok * particle really wants this thorn out of his thumb :( "particle" at 24.19.3.148 pasted "minimal test case for isa (too minimal?)" (11 lines) at http://nopaste.snit.ch/13038 oops! i see my error it should be new ... 'Perl6Str' twice, then assign $P17, 'Str' Ok :-) hrmm, that still prints 1 What's the bug you're chasing? 07-isa.t You got latest from svn? yep Only one last test fails there now And it's not to do with string. my $code = { 42 }; if $code.isa("Code") { say "ok 3" } else { say "not ok 3" } It's that one The problem is that isa is checking only the Parrot class name, which in this case is Sub, rather than the registered name. ah, hrmm, i must have been looking at an old test failure report They all used to fail, but now only that last one does. For me here, anyway. t\01-sanity\07-isa.t 3 1 3 % cjfields has joined #parrot yes, i get the same now where's isa defined? src/classes/Object? should Code override Any's isa method? or is this something for p6meta? Something for p6meta, I believe. t\spec\S02-literals\autoref.rakudo 1 256 57 62 27-57 t\spec\S12-class\instantiate.t 1 256 2 2 2 t\spec\S12-class\parent_attributes.t 1 256 3 6 1-3 These are the failing spec tests that we are down to, out of those that passed before. How we fail more than we have in total on some of those bewilders me. back from lunch particle: Both of those second two can probably be fixed by working out if we are calling the 'new' method in Perl6Object, and if not making it so we do. pmichaud: isa test nearly passes now, but not for Code type, because isa is only calling parrotclass's isa method, which is unaware of our own name mappings. I'm kinda here and making dinner, so might reply a little slow for the next while... % cjfields_ has joined #parrot (isa) I'm workingon isa -- need to know if $foo.isa('Dog') is the same as $foo.isa(Dog) % julian_ has joined #parrot % ruoso has left ruoso!~ruoso@195.23.92.2 There aren't any examples in the spec that show a string argument to .isa() s/spec/synopsis/ % cjfields has left cjfields!~cjfields@newrad.igb.uiuc.edu Is it ever possible to care if something is a class or role that we can't currently resolve? Could the meta information be fiddled with by hand? also, P6object doesn't want to use string names to check 'isa' semantics. i.e., at the level of the 'isa' opcode, we're not doing string comparisons. (we can use a string name to decide what classes to compare, however.) OK, makes sense. Tene: We can find out if something is a class or role at runtime, if that's what you mean. % Andy has left Andy!~AndyL@host3130.follett.com $foo.WHAT = 'zomgl' Don't think you can call .WHAT on a role. IIRC Perl6Object should end up with its own 'new' method I commented the existing one out. so I could review it :-) all of the object objects will then (or should) gain Perl6Object's new method in lieu of the one that is in P6protoobject I guess the only other reason to support it is dealing with user input. $foo.isa(=$*IN) s/object/other/ yes, I suspect that string arguments are valid to .isa just wanting to work out the mapping in my head :-) (and then in code) purl: codehead? no idea, tene purl: codehead is where pmichaud works out mappings tene: bugger all, i dunno bah pmichaud: Perl6Object's new method doesn't appear commented out here... :-S did you put it back in? No it's commented out. Look *carefully*. :-P It's not getting called, though. Or so it seems. =item new() Create a new object having the same class as the invocant. .sub 'new' :method .param pmc init_parents :slurpy OH! That is *evil*. That said, uncommenting it makes all tests fail. :-) I guess I should've used #=cut there to make it more obvious what I did :-) #=cut++ yes, I didn't update the code yet. % cognominal has left cognominal!~cognomina@82.67.232.89 it seems a bit odd to me that 'new' is using setattribute directly. wouldn't it go through the accessor? and I would expect it to get broken out into separate BUILD and BUILDALL components Yes, I know we have to break it up into those. I think it should set the attributes directly, as we don't know if it has any accessor methods or not. Where did the setting of the auto-vivification stuff go to? I just took it out for now -- we may need to import it back in from trunk it was making my brane hurt :-) I also wanted to see if any of it ends up belonging in p6object somehow % julian_ is now known as jjore_ * particle is out of his area of expertise and decides to leave rakoo hacking to pmichaud++ and jonathan++ % cognominal has joined #parrot % leo has left leo!lt@feather.perl6.nl % dalek has left dalek!dalek@feather.perl6.nl % wolverian has left wolverian!wolverian@feather.perl6.nl % PerlJam has left PerlJam!duff@feather.perl6.nl % jonathan has left jonathan!jonathan@feather.perl6.nl % pmichaud has left pmichaud!pmichaud@feather.perl6.nl % Juerd has left Juerd!juerd@feather.perl6.nl % dalek has joined #parrot % pmichaud has joined #parrot looks like feather died again? % pmichaud has left pmichaud!~pmichaud@cpe-76-183-97-54.tx.res.rr.com % lichtkind has joined #parrot % pmichaud has joined #parrot looks like. looks like is not the fault of this trace, the interpreter must be already corrupted. * pmichaud waits for jonathan to return. no, looks like is okay, DietCoke. so, are the parameters to .new() allowed to initialize private attributes? or just public ones? % jonathan has joined #parrot % Juerd has joined #parrot % Ivatar has joined #parrot % wolverian has joined #parrot ah, jonathan returns. Excellent. so, are the parameters to .new() allowed to initialize private attributes? or just public ones? % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net % Infinoid has joined #parrot % Zaba has joined #parrot % AndyA has left AndyA!~andy@82.152.157.85 % AndyA has joined #parrot % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % gryphon has joined #parrot pmichaud: I believe private too (sorry, cooking) hmmm. % rdice has left rdice!~richard_d@CPE0014bfafbbd5-CM0011e6ecf48a.cpe.net.cable.rogers.com somehow that's counter-intuitive to me. because then they're not really "private". but I guess that's not too much different than the fact of attributes being read-only, either. r27725 | allison++ | pdd25cx: : [pdd25cx] Fix warning about incompatible pointer type. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27725 I'll try #perl6 r27726 | allison++ | pdd25cx: : [pdd25cx] Fix warning about incompatible pointer type. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27726 * jonathan is back from eating pmichaud: Get any answer from #perl6? S12 just says "It expects all arguments to be named parameters initializing attributes of the same name." - it doesn't mention whether they have constructors. erm, s/constructors/accessors/ jonathan: TimToady on #perl6 now here's the summary 19:18 $!foo is the physical storage. $.foo is just the accessor, which does not require $!foo to be implemented by this class, as long as some base class does it. 19:21 BUILD is a submethod, so should only modify $!foo % Ademan has left Ademan!~dan@h-69-3-235-19.snfccasy.dynamic.covad.net so, my takeaway on that is that BUILD can indeed use setattribute, but it needs to do so on the $! form of the attribute OK, which is the physical storage. All attributes are named $! under the hood, no matter how they are declared. That's how Rakudo implements it. okay. I didn't catch that part (how Rakudo implements it) Yeah, that's one bit of S12 I think I have got right. :-) and so yes, BUILD (and hence new) can likely initialize private attributes, and does so directly. I think you do also. Yup. we just need to refactor 'new' into the BUILD/BUILDALL components then OK or update what we have now to work with the new object system btw, we can also choose to add some of the other HOW methods into P6object's metaclass objects e.g., .attributes() to retrieve a list of attribute descriptors as described in S12 oops, I gotta run pick up kids bbi30 ok r27727 | allison++ | pdd25cx: : [pdd25cx] Fix warning about returning from function marked 'noreturn'. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27727 Boys, perl6/src/classes/List.pir fails whitespace and pod syntax tests. Trailing space, I mean. the core pod syntax tests? t/codingstd/trailing_space (those shouldn't be being run against files with perl6 pod in them, methinks.) t/doc/pod make test does it. * particle doubts the .pir files have perl 6 pod in them DietCoke: It'll just be the POD in the PIR files, which will be Perl 6 Won't be a big deal to fix. whoops, missed the .pir i mean, doubts they should have perl 6 pod... right, right. pmichaud: (backlogging, from 15:30 UTC:) is P10 tied to $bool lexically? (i was confused about this for a while (still am?); it didn't show up in the trace, does trace have access to that so it could learn to display something about it?...) (if not so tied, it looks like P10 is never used and $bool has magically gotten a related value) spinclad: yes, they were tied. Look at the 0x..... values of the PMC (they're the same) so they are. danke. pmichaud: WHENCE - it's implemented on the protoobject Not on the class itself So before it was in Perl6ProtoObject Now, well, not too sure where it belongs, since we have a shared proto between all things? I don't have a problem with defining a WHENCE accessor on P6protoobject oh, but it has to be an attribute hrm. Yeah, it needs somewhere for storage. protoobjects don't have to be singletons, in other words. % ruoso has joined #parrot OK, so it can go as a method on the proto-object? I'm just getting initialization working again normally first, then I'll look at WHENCE thinking http://www.terrybisson.com/meat.html Dog but WHENCE({...}) is still considered a protoobject, yes? but it's not the same protoobject as Dog Call. Yes. It returns a clone of the protoobject with WHENCE property set. Someone wants to take a look at a big and complex patch? #54602 pmichaud: Down to one failing spectest_regression test. r27728 | jonathan++ | rakoo: : [rakudo] Re-enable initialization of the current class' attributes. However, WHENCE stays disabled for now. This gets us down to one fialing spectest_regression test. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27728 Which will be fixed once WHENCE is back. Will probably show up with code to check in - got about the right amount of time at Prague airport connecting to have dinner and drain my laptop's battery while writing code. :-) % davidfetter has left davidfetter!~chatzilla@start.fetter.org You could just feed the dinner to the laptop. but then we wouldn't get the code :) spaghetti code? % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % cjfields_ has left cjfields_!~cjfields@cjfields.igb.uiuc.edu since WHENCE is a property, should it go into %properties ? every protoobject has one of those :-) % mj41 has left mj41!chatzilla@pc-jurosz.ro.vutbr.cz % ejs has joined #parrot NotFound: here's an easy win: 39132 - rip out pirtidy and its tests etc. pmichaud: Yes, it should. I think so anyway. In that case, it's easy! % iblechbot has joined #parrot % mj41 has joined #parrot DietCoke: I don't even know what pirtidy is. % PerlJam has joined #parrot particle: http://rt.perl.org/rt3/Ticket/Display.html?id=44393 % ejs has left ejs!~ejs@66-200-124-91.pool.ukrtel.net % lichtkind has left lichtkind!~chatzilla@d90-135-76-128.cust.tele2.de % Zaba_ has joined #parrot NotFound: http://rt.perl.org/rt3/Ticket/Display.html?id=46667 (another removal) % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru DietCoke: I looked at it some days ago, but I don't know how to test the function. r27729 | jonathan++ | rakoo: : [rakudo] Add WHENCE support back into the proto-object. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27729 No one is interested in compiling parrot with c++? % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net % Zaba has joined #parrot % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru r27730 | jonathan++ | rakoo: : [rakudo] Remove some code from the WHENCE setter that pretained to the old model. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27730 morning jonathan: so, putting WHENCE into %!properties is working out? ;-) nice when the tools actually start to match the spec. :-) % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru pmichaud: It was in there before, but yes, WHENCE itself works now. % cjfields has joined #parrot new doesn't use it quite right yet. Working on that. Unfortunately, type checking is broken too. NotFound: I wouldn't say that. if possible I recommend avoiding using the parrot class opcodes directly NotFound: if no one else gets to it, I'll review and apply that patch before sleep. pmichaud: Sure, just need an easy way to create a new instance of the proto-object, that seemed like the neatest way. (taking the ticket. don't let that stop anyone else, committers) DietCoke: thanks, but maybe rewieing it produce insomniae ;) perhaps Perl6Object should provide an accessor for %!properties ? % Zaba has joined #parrot It's not very private any more, if it has an accessor...unless the accessor is private too. But gnerally, no. We will touch %properties a lot. %!properties, I mean I was thinking private accessor, or submethod We don't want an extra call every single time we want to get at it. we have a lot of extra calls floating around already :-) Right. I'm not wanting to add to that. ;-) But .'WHENCE'(...) and .'accessor'('WHENCE', ...) seems like the same number of calls to me :-) I'm struggling to see what you're after, or why. a generic interface for accessing properties, as opposed to always directly interrogating the %!properties hash Less places using getattribute? yes. Ah, I see. Let's get this at least working again, and then refactor. right. I was just about to say.... ....but I'm not going to push it for now. It can wait. :-) It's tricky enough trying to do one thing at a time. ;-) % donaldh has joined #parrot % julian^ has joined #parrot If we can get the isa bug, this new thing and type checks fixed, I think we'll be good to roll this back into trunk later on today. just in general I'm wanting to avoid too much reliance on the parrot internals. If we need it for speed, yes, but let's not too be too quick to assume we need it for speed. I'm on the isa bug right now (if I can avoid more interruptions :-) actually, I think the current isa bug is from having Code/Sub improperly defined so I'm fixing that I agree re: rolling back into trunk we can indicate that a few things are temporarily broken in trunk -- I just didn't want a whole lot of things breaking. % jjore_ has left jjore_!~julian@mail0.w3data.com I think we're almost at the point where we may want to tag releases :-) If we have sanity tests and spectest_regression passing again, I'll be happy to see it rolled back in. i.e., we can say that features x, y, and z work as of release nnnnn, but between releases things may be in a bit more flux any impressions on the refactor thus far -- does it look reasonable to you? I like that we now have metaclass, protoclass and the actual class we instantiate all separated out. And that the metaclass isn't just the parrotclass I like that it's easy to get everything mapped into its appropriate 'Any' position -- even parrotclasses The parent => ... thing is certainly a LOAD cleaner for inheriting from Any and Grammar too. % Ademan has joined #parrot and yes, it's all hiding behind an abstraction layer now so that we can change the internals at some point I will toss the specialized make_proto that grammar had. for example, someday we may want Object/Any to be PMCs If you didn't already. I don't know if I tossed it or not It's no longer needed thanks to parent => ... I'll be looking more closely at the methods in src/classes/*.pir over the next couple of weeks and cleaning them up OK (make_proto_grammar) was one of the reasons I was pushing ahead on P6object. It felt really funny to me :-) I'll get on with fixing whence and leave you to isa for a while. :-) I'm updating/rebuilding I should have isa fixed in about 10 mins, barring interruption OK. We're on one last failure on spectest_regression * pmichaud races the clock. oh this is just TOO PRETTY. "pmichaud" at 76.183.97.54 pasted "turning Parrot Subs and Closures into Perl 6 Code" (7 lines) at http://nopaste.snit.ch/13040 ...and now isa passes :-) and I get rid of Sub.pir . Nice! Erm Don't lose the ACCEPTS method It's now in Code.pir Or you break smartmatch on regex. OK, cool. since smartmatch is defined on Code objects Yup. I'll need to multimethod that one on Regex, though, when we get the ability to define the .sub type my $x = Bar.new(y => 42, Foo{ x=> 10 }); # works again ohthatissocool OK. Just type checking. That is only broken because the protoobject lost it's ACCEPTS put ACCEPTS back into Perl6Object r27731 | jonathan++ | rakoo: I hadn't done that yet. : [rakudo] Enable WHENCE again and get new to work with WHENCE'd protoobjects again. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27731 Perl6ProtoObject or Perl6Object? there is no Perl6ProtoObject ERm, the first is no more. Yeah. This was on the protoobject. So you can do $obj ~~ Foo For "is $obj a Foo" looking. actually, it should be Any Type type membership $_.does(X) yes? (from S03) Yeah, I think we had does I haven't implemented 'does' in P6object yet-- it's on the list .sub 'ACCEPTS' :method .param pmc topic .local pmc HOW # Do a does check against the topic. HOW = self.'HOW'() $I0 = does topic, HOW if $I0 goto do_return (from trunk) Well, we were delegating it to the Parrot does feel free to add ACCEPTS to P6protoobject OK you can do it either in rakudo or in P6object.pir Really need to look at this again. right, I'll review it and refactor it later actually, for now just put it into rakudo It neeeds to be on the protoclass, not on the object, through? sure Oh, stick it in the right namespace will do it? .namespace ['P6protoclass'] right er, P6protoobject but it will end up in P6object.pir soon actually..... if you want, put it in P6object.pir it's going to be basically the same OK It does some weird stuff to try and call the ACCEPTS of an instance too, though...I'm now trying to think why. hrm I wouldn't have gone to the trouble just for the fun of it. well, object methods tend to override the protoclass methods sorry, protoobject ones but I think that might be just for 'new' so I might need to tag 'ACCEPTS' as being more important on a protoobject than anything coming from the object class I think the problem actually was that, protoclass method overrode object one. ahhhhh yes r27732 | pmichaud++ | rakoo: : [rakudo]: : * Fix Code so that .isa works on it again. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27732 uh, no. hrm protoclass method should override object one Well, yes, it should. Dog.ACCEPTS(x) is different from $dog.ACCEPTS(x) Yeah. I'm now trying to remember why on earth that went in there. I think commit log is the best way. :-) Oh ouch. % teknomunk has joined #parrot r27338 | jonathan | 2008-05-06 12:56:17 +0200 (Tue, 06 May 2008) | 1 line [rakudo] Make grammars more class-like. We now create protoobjects for them. Add ed a Grammar class, implementing the ACCEPTS method which calls TOP. Had to twea k the protoclass' ACCEPTS to also try the one in the class to make this work; sh ould review if this is really the Right Way for this to work. ahhhhh so a Grammar protoobject should prefer the object one It's because smart-matching against a grammar's proto-object needs to now do a DOES check. Yeah. Well, both We expect also grammar Foo { ... } if Foo ~~ Grammar { ... } # smart matching against a grammar is in the table er, *isn't* (in S03) It's mentioned in S05, but yes, it shuld probably be in the table too. I'm not sure we need to expect Foo ~~ Grammar at this point OK it might show up in the table, but I think we can ignore it for now there's always Foo.^isa(Grammar) True Well actually That'd dispatch to Grammar Grammar.ACCEPTS(...) So hmm. it would? r27733 | jonathan++ | rakoo: : [rakudo] Put ACCEPTS into the proto-class. Gets type checks working, and all spectest_regression passing again. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27733 Yeah, right hand side is the thing we call .ACCEPTS on Foo.^isa(Grammar) is Foo.HOW.isa(Grammar) which doesn't call ACCEPTS? No, no, I was still talking about Foo ~~ Grammar right I'm saying that for Grammar.ACCEPTS the accepts method should override the protoobject one So I think actually my hack wasn't anything to do with needing both at all. oh getting Grammar.ACCEPTS to work isn't too difficult -- just a sec It was to get Grammar.ACCEPTS to override the protoobject one. just call 'add_method' on the protoobject's class and stick in the one you really want. If you can get that to work, you can remove the pile of nasty... Erm, isn't it going to complain that we already have an ACCEPTS? it's the same for what I do for 'new'. it complains if you use addmethod class, .... but not if you use class.'add_method'(...) That's...so wrong. :-) at any rate, there should be a way for me to override existing methods, so it works fine. yes, I think they should both do what class.'add_method'() does. (i.e., not complain) We should yell at the guy who implemented the Class PMC....oh, wait... anyway I'll fix Grammar ACCEPTS just a sec OK Just verifying that we have a clean bill of health on the tests. Yes! All sanity tests and spectest_regression pass for me in the rakoo branch! "pmichaud" at 76.183.97.54 pasted "ACCEPTS for Grammar protoobject" (25 lines) at http://nopaste.snit.ch/13041 ohhh! add_method doesn't complain because the protoclass doesn't have an ACCEPTS method of its own. Oh... It's inheriting it from P6protoobject. So this is a simple override. :-) It's because it inherits it from...yes. coooooool OK, if you commit that. I didn't test it -- I just wrote it. I don't have a convenient test handy. but I'll commit, yes. Now I can make perl6 with C++ :) NotFound++ # nice work oh, hrm. pmichaud: I need to get a few more spectests in place... this might not be sufficient. Only problem was a "class" variable name. NotFound: Is that an OpenGL-enabled build? I'm curious if I need to make changes there. I don't know if subclasses of Grammar will also get the correct ACCEPTS jonathan: are role attributes supposed to be implemented yet? japhb: I think it was... Were was the triangle test? actually, they won't. cjfields: No. ok NotFound: ./parrot examples/opengl/triangle.pir pmichaud: Ah. That won't work then. :-( so, I need to treat ACCEPTS the same way I do 'new' then cjfields: It's on my (long, long) list. or, no, that's not it. np hrm. japhb: it works :) excellent. I can work around for now; looks like raakoo pmichaud: We can leave current hack in until we have a good answer. yes, I was about to say the same. I'm being hit with too many interruptions here is more important I will send the updated patch in a few minutes. (kids are home, paula just came home, etc.) jonathan: so, okay if I roll branch back into trunk? s/raakoo/rakoo a bit later tonight? pmichaud: Fine with me. excellent thank you for all of your outstanding work on this. I'm really happy to see this done. It's passing a bunch of tests. Sure, it wasn't as bad to fix up as I'd feared. same here tewk: Note for your NCI stuff ... during my OpenGL header parsing work, I've come across a couple headers that have C++ class declarations in them. Have you explicitly decided not to handle those, sticking strictly to C99? pmichaud: What are you planning to work on next? probably PGE refactor. either that or mutables PGE refactor may get us list assignment quicker Could they be parallelized? I'll likely have some spare hours hacking time over the coming weekend. you mean work on both at the same time? Couple of hours at the airport tomorrow, easily. Yeah. Mutables, I've got a rough idea of what needs doing. the PGE one is conceptually tougher and involves learning more code so ifyou want to start on mutables, that'd be okay Yeah, I wouldn't take that one on myself. OK You can a moment to run over what you had in mind? I'm awake for another ~ 2 hours if right now isn't good. mainly I was going to look at default.pmc and delegate.pmc for ideas OK since delegate tends to forward to another PMC (and so does default) Right. We can subclass delegate to probably get a lot of what we want. Or create our own thing based upon it. I wasn't planning to subclass delegate, but if it works then that would be good. I've had some weird experiences with delegate before Are you thinking that we'll have Mutable, whihc pretty much forwards everything. yes Then we will in, for example, in Scalar, override assign. In Array, override set_pmc_keyed And so forth? I'm not sure about overriding set_pmc_keyed, but essentially, yes. % donaldh has left donaldh!~chatzilla@host213-123-171-12.in-addr.btopenworld.com the big one is overriding assign if we have that, then we can figure out the details on the other stuff not sure about overriding set_pmc_keyed <= as in, should have said keyed_int? Or? Oh, OK. I don't know that mutable will need a set_pmc_keyed override Yes, in fact Assign may be all we need, now I think about it some more. anyway, I need to run. OK, sure thanks again! I'm going to finish up my various slides for the weekend's talks. Thanks to you too - this is looking a lot cleaner now. :-) Patch updated in #54602 purl: C? C is probably for lettuce, it's good enough for me! % Andy has joined #parrot % iblechbot has left iblechbot!~iblechbot@ppp-62-216-196-126.dynamic.mnet-online.de % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk % IllvilJa has joined #parrot % kid51 has joined #parrot purl, no C is for cookie, and it's good enough for you. ...but no c is way simpler than Perl... purl, no, C is for cookie, and it's good enough for you. okay, DietCoke. % tetragon has joined #parrot Is the plan to merge rakoo back over to trunk? * cjfields reads back, smacks self okay, disregard that last bit... % cjfields has left cjfields!~cjfields@cjfields.igb.uiuc.edu % mire has joined #parrot % Ivatar has left Ivatar!~graham@tu055.demon.co.uk % ank has joined #parrot % Zaba_ has joined #parrot % mire has left mire!~Frodo@186-169-222-85.adsl.verat.net % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Limbic_Region has joined #parrot DietCoke: ping A message concerning the Parrot/Rakudo buildfest workshop at YAPC::NA::2008 in Chicago (Wed June 18). I'm sending email to people who have expressed interest in mentoring or who *might* be interested in mentoring. If you can take the time to read/respond to this mail, please do so. And if you're not yet on my list of contacts for this workshop, please ping me or msg me or email me or whatever. % bacek_ has joined #parrot % bacek_ has left bacek_!~bacek@mcas-151.usr.optusnet.com.au % sjansen has left sjansen!~sjansen@hq-nat2.gurulabs.com % bacek_ has joined #parrot % tetragon_ has joined #parrot % tetragon has left tetragon!~seneca@69-196-141-26.dsl.teksavvy.com % tetragon_ has left tetragon_!~seneca@69-196-141-26.dsl.teksavvy.com % tetragon_ has joined #parrot hi there hey, bacek_. purl: want cookie? bacek_: bugger all, i dunno OK, sleep time night all jonathan: g'day :) r27734 | jkeenan++ | trunk: : Applying patch submitted in RT 54610 by Ifejinelo Onyiah eliminating 2 lines : with trailing whitespace. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27734 r27735 | chromatic++ | trunk: : [Rakudo] Fixed POD formatting in Range class. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27735 % tedkat has left tedkat!~tedkat@24-119-222-126.cpe.cableone.net r27736 | chromatic++ | trunk: : [src] Fixed C++ compilation (NotFound, RT #54602). diff: http://www.parrotvm.org/svn/parrot/revision?rev=27736 % tetragon_ is now known as tetragon % tetragon has left #parrot % tetragon has joined #parrot r27737 | chromatic++ | trunk: : [Rakudo] Fixed a typo in r27708 (Moritz Lenz). diff: http://www.parrotvm.org/svn/parrot/revision?rev=27737 % paco has left paco!~chatzilla@139.Red-80-36-122.staticIP.rima-tde.net % paco has joined #parrot % Limbic_Region has left Limbic_Region!~Limbic_Re@c-68-49-236-220.hsd1.md.comcast.net * pmichaud prepares to merge rakoo into trunk. yay! * Tene prepares to read a diff. r27738 | chromatic++ | trunk: : [config] Fixed interpflags.pasm generation to handle ORd values (Chris Dolan, : RT #53548) diff: http://www.parrotvm.org/svn/parrot/revision?rev=27738 % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot well, it may take a big. Lots to merge. s/big/bit/ quite a few conflicts :-| ah, finally, time for 'make test' % jhorwitz has left jhorwitz!~chatzilla@96.245.16.45 pmichaud: BTW, http://rt.perl.org/rt3/Ticket/Display.html?id=54520#txn-409832 bacek_'s url is at http://xrl.us/bkuq4 there is comment about PMC methods inheritance... * kid51 must sleep $kid51->sleep(8 * 3600); r27739. hope it works. :-) % kid51 has left kid51!~jkeen@68.237.14.176 need dinner. r27739 | pmichaud++ | trunk: : [rakudo]: : * Merge rakoo branch back into trunk. : * Also updates object.pmc to make 'clone' work properly. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27739 % jjore has left jjore!~jjore@c-24-19-49-60.hsd1.mn.comcast.net pmichaud++ jonathan++ % jjore has joined #parrot % jjore is now known as zz_jjore % zz_jjore is now known as jjore % tetragon has left tetragon!~seneca@69-196-141-26.dsl.teksavvy.com % jjore is now known as zz_jjore % zz_jjore is now known as jjore % tetragon has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % wknight8111 has left wknight8111!~nobody@c-71-230-33-251.hsd1.pa.comcast.net % confound has left confound!hdp@floe.aq % cotto_home has left cotto_home!~cotto@75-92-237-130.sea.clearwire-dns.net % confound has joined #parrot % cotto_home has joined #parrot % bacek_ has left bacek_!~bacek@mcas-151.usr.optusnet.com.au % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % bacek_ has joined #parrot % Zaba_ has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % teknomunk has left teknomunk!~teknomunk@r74-195-239-111.stl1cmta01.stwrok.ok.dh.suddenlink.net % uniejo has joined #parrot % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net % starc has left starc!~chatzilla@69-12-248-205.dsl.dynamic.humboldt1.com % AndyA has left AndyA!~andy@82.152.157.85 % AndyA has joined #parrot