% UltraDM has joined #parrot % Whiteknight has left Whiteknight!~nobody@c-71-230-33-251.hsd1.pa.comcast.net % bacek_ has left bacek_!~bacek@mcas-151.usr.optusnet.com.au % dalek has left dalek!dalek@feather.perl6.nl % iblechbot has joined #parrot % dalek has joined #parrot % tetragon has left tetragon!~seneca@216.126.67.44 r28255 | fperrad++ | trunk: : [Lua] : -improve string.byte() (Lua 5.2 preview) diff: http://www.parrotvm.org/svn/parrot/revision?rev=28255 % grim_fandango has left grim_fandango!~matt@bas2-kingston08-1167934364.dsl.bell.ca % allison has joined #parrot % allison has left allison!~chatzilla@91-103-38-26.dynamic.thecloud.net % allison has joined #parrot r28256 | pmichaud++ | trunk: : [pge]: : * ratcheting PGE::Exp::WS (<.ws>) rule doesn't need to backtrack : * <.foo> rules are supposed to be non-capturing (RT#54380, tewk++) : * 0..1 ratcheting quantified item doesn't need to backtrack diff: http://www.parrotvm.org/svn/parrot/revision?rev=28256 Cardinal's make test used to take 37 seconds to run, and now takes 7 seconds to run. How can I meaningfully express that in "% faster"? i prefer '% of the old time' Me too. chromatic always says "% faster", though, and I'm not sure exactly what that means. thats exactly what i was thinking too heh 30 / 37 0.810810810810811 Cardinal's make test is 81% faster. so its like the compliment of '% of the old time' yes. If something is 25% faster, then it takes only 3/4 as much time as before. % cotto_home has left cotto_home!~cotto@75-92-237-130.sea.clearwire-dns.net guess that makes sense pmichaud: perldoc PAST/Node.pir claims that ::Op accepts :pasttype('assign'), but afaict, that's not true. correct, that ended up being unimplemented. Okay, thanks. but :pirop('assign') should work, depending on what is being assigned. :pasttype('assign') was from before when we had a reasonable 'copy' opcode morning i.e., to do the morph+assign trick morning, jonathan today is rakudo day for you? Yes Erm, are you up exceptionally early or exceptionally late? ;-) morning, j. exceptionally late -- was getting ready to get a couple of hours sleep Tene: morning :-) OK Did the pmc2c bug get fixed? * jonathan svn up's hopefully unfortunately I might not be around as much as I had planned today -- I'm likely to have to accompany Paula to the doctor's office today ...pmc2c bug? If I lie and say that I fixed it, will I have a net karma increase or decrease? pmichaud: Some change to that was breaking the Rakudo build for at least myself and particle (e.g. may be Win32 specific) ah, okay. Build failed in perl6str PMC I see an update to that file though... anyway, I'm heading to sleep. I'll either be back in approx 6 hours or otherwise much later than that. seeya good luck well, good luck is all I can say. % cotto_home has joined #parrot theres no reverse op in parrot? 3: reverse? reverse is verboten. or true? :) or needing lots of lube pmichaud: OK, sleep well. for strings TiMBuS: that would be a method in the string pmc, not an opcode. oh, im not really up to scratch on parrots' internals, i just assumed from string.ops they were standalone operations % Zaba_ has joined #parrot Yup, builds works again. Now I can hack on Rakudo. Phew! % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % allison has left allison!~chatzilla@91-103-38-26.dynamic.thecloud.net % allison has joined #parrot % allison has left allison!~chatzilla@91-103-38-26.dynamic.thecloud.net re % faster, aiui 25% faster would mean 125% as fast (5/4), or taking 4/5 as much time. its opposite would be 20% slower. so cardinal is (30/7 =) 428% faster. evening everyone evening, bacek (well, afternoon here...) * bacek almost see future r28257 | jonathan++ | trunk: : [rakudo] Fill out the implementation of ^.., ..^ and ^..^ operators. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28257 jonathan, can you review #55438 please? (It probably will require another patch for eval from #55304...) * jonathan digs into roles, having done the ranges patch to get properly woken up bacek: Any idea what this is about: - proclaim($cond, $desc); + &proclaim($cond, $desc); Why do we need the sigil on there, if just calling it? We don't? I'll try without it. Just a sec In general though, I don't think I'm a good person to apply patches to Test.pm. I just don't know it well enough to be able to make a good enough judgement call on whether patches to that are good or not. If it gets an OK for particle or pmichaud, I'm happy to actually apply it. % cosimo has left cosimo!~cosimo@pat-tdc.opera.com % cosimo has joined #parrot (we don't need &) It's always good to learn something new :) I'm thinking that http://rt.perl.org/rt3//Public/Bug/Display.html?id=44297 can be closed now? jonathan, indeed Hmm. You have several unapplied patches. "Implementation of List.min and List.max" looks quite sane to me jonathan, pmichaud is quite busy to check them :) yeah bacek: Are we passing much/any of http://svn.pugscode.org/pugs/t/spec/S29-list/minmax.t with this patch? all tests passed Nice! (But it's better to check again on 'clean' checkout :) Sure, doing so here. Will commit that and adding it to spectet_regression if it all passes. jonathan, there is more passing tests, btw. (ok 24 for minman) #55368 should be closed. pmichaud applied it. bacek: Not seeing that here t\spec\S29-list\minmax.....................ok 1/24too many arguments passed (4) - at most 2 params expected current instr.: 'parrot;List;min' pc 2959 (src/gen_builtins.pir:2012) t\spec\S29-list\minmax.t 1 256 24 44 3-24 % tetragon has joined #parrot jonathan, oops... I did't commit minmax.t cause I'm not sure about correctness of fix. just a sec -is max({ abs $^a <=> abs $^b }, @array), -9, +is max({ abs 0+$^a <=> abs 0+$^b }, @array), -9, This sample of changes.. -isnt @array.max: { $^a <=> $^b }, -9, +isnt (@array.max: { $^a <=> $^b }), -9, this is another... Oh, I see What is precedence of comma after '}' in second case? erm * jonathan tries to think * bacek thinking... 13% done... S12 In case of ambiguity between indirect object notation and dot form, the nearest thing wins: dothis $obj.dothat: 1,2,3 means dothis ($obj.dothat(1,2,3)) looks like it not supported in rakudo (yet) or just a sec... oh, what I'm not sure if that's the thing we're talking about. s/what/wait/ our List multi min( Ordering @by, *@values ) OK, I suggest I put min/max patch for list in now, and then we ask pmichaud about the syntax in the test file later. @by? If you right (and I'm sure in it), than original test case is incorrect. min({ abs $^a <=> abs $^b }) our List multi min( Ordering $by = &infix:, *@values ) (it is second form of sort() for List) s/sort/min/ r28258 | jonathan++ | trunk: : [rakudo] Fix trailing whitespace. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28258 r28259 | jonathan++ | trunk: : [rakudo] Add min and max to list. Patch courtesy of Vasily Chekalkin (bacek++). diff: http://www.parrotvm.org/svn/parrot/revision?rev=28259 "bacek" at 202.7.166.181 pasted "Full patch of minmax.t" (50 lines) at http://nopaste.snit.ch/13235 bacek: OK, let's run that by pm later. jonathan, ok But the min/max patch looked good, so that's in. Thanks! And one less for pm. :-) :) bacek: For your uniq patch comparer = get_hll_global 'infix:eq' I'm not sure forcing everything to be stringified is the Right Thing. jonathan, probably. But 'uniq' is totally unspecced... I got idea from tests... I think that 'infix:<=>' is better as default comparer. % iblechbot has left iblechbot!~iblechbot@ppp-62-216-196-219.dynamic.mnet-online.de (But S29-list/uniq.t fails with <=>...) r28260 | kjs++ | trunk: : [ecmascript] implement return statement : + add a test diff: http://www.parrotvm.org/svn/parrot/revision?rev=28260 % tetragon has left tetragon!~seneca@216.126.67.44 yeah! infix:~~. * bacek forgot about it once again... % tetragon has joined #parrot % tetragon has left tetragon!~seneca@gw-312-705.somanetworks.com % tetragon has joined #parrot % Whiteknight has joined #parrot r28261 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] updating to trunk r28260 diff: http://www.parrotvm.org/svn/parrot/revision?rev=28261 % cognominal has left cognominal!~cognomina@82.67.232.89 % tetragon has left tetragon!~seneca@gw-312-705.somanetworks.com r28262 | jonathan++ | trunk: : [core] addattribute op should work for roles as well as classes. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28262 % gryphon has joined #parrot r28263 | jonathan++ | trunk: : [rakudo] A few changes to get us a little further along with role attributes. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28263 % smash has joined #parrot hello everyone % iblechbot has joined #parrot r28264 | jonathan++ | trunk: : [rakudo] Initial work to support basic attribute composition. Far from complete, but gets private attributes from a directly composed role working. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28264 r28265 | jonathan++ | trunk: : [rakudo] Get accessor and handles methods of roles in the correct namespace, making composition of public attributes work. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28265 % Zaba has joined #parrot r28266 | jonathan++ | trunk: : [rakudo] Add passing regression test for some basic role attribute composition to spectest_regression. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28266 % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % contingencyplan has joined #parrot % UltraDM has left UltraDM!~george@dasapass.avira.com % cognominal has joined #parrot % Andy has joined #parrot % TiMBuS has left TiMBuS!~Hurf@123-243-167-27.static.tpgi.com.au % uniejo has left uniejo!~uniejo@langebro.adapt.dk % jhorwitz has joined #parrot % ruoso has left ruoso!~ruoso@a81-84-237-13.cpe.netcabo.pt % grim_fandango has joined #parrot % ruoso has joined #parrot % IllvilJa has joined #parrot r28267 | jonathan++ | trunk: : [rakudo] Support 'is rw' on attribute declarations. Trying to use the accessor in l-value context when it's not marked 'is rw' now results in an exception, as per S12. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28267 crap. something broke mod_perl6 * jhorwitz finds his debugging hat... * jonathan hopes he's not to blame jhorwitz: When you work out what, let's make sure we add a regression text. s/text/test/ jonathan: definitely. none of my HLL modules have tests yet. r28268 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] updating branch to trunk r28260 diff: http://www.parrotvm.org/svn/parrot/revision?rev=28268 pong r28269 | jonathan++ | trunk: : [rakudo] Fix 'handles'. The fact we have to do this may point to a PCT bug - it hadn't used to require a PAST::Val node here. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28269 * jhorwitz realizes he was wearing his moron hat % obra has left obra!~jesse@diesel.bestpractical.com it is wise to actually to load mod_perl6 in httpd.conf when running perl6 handlers. DOH! :-) % obra has joined #parrot * jhorwitz obviously needs more coffee (min/max) I'm preferring to export the actual Parrot methods as opposed to creating separate wrapper functions. % particle has joined #parrot oh, wait, these have slurpy arguments. never mind. Okie dokie pmichaud: See http://www.parrotvm.org/svn/parrot/revision?rev=28269 - maybe something to fix in PCT, but your call. Also, I'm looking at the spectest for handles. It does stuff like ok Backend1.new, "class definition worked"; Which at the moment gives us "get_bool not implemented on class Backend1" right, I need to set up defined and true in class Object Should Object by default have a get_bool that returns true, and proto-object overrides it with false? % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net I think that get_bool should call .true OK, can do that. but wait (checking spec) ok S02: # The definition of .true for the most ancestral type (that is, the Object type) is equivalent to .defined. Since protoobjects are considered undefined, all protoobjects (including Object itself) are false unless the type overrides the definition of .true to include undefined values. Instantiated objects default to true unless the class overrides the definition. Note that if you could instantiate an Object it would be considered defined, and thus t OK I was actually going to do that part :-) So we call .true from get_bool, which calls .defined the generic mechanism for changing a class' boolean value will be to override .true. OK, soon? I'm keen to get at least some test in for handles, since it broke and I like to get tests in for things so we're less likey to accidentally break them again. :-) I can do it this morning. Yes, makes sense. like, in the next hour or so. OK, I can leave it to you if you want it. :-) re: r28269.... why do you need a node called '1' ? % particle1 has joined #parrot sorry, parameter called '1'? Actually, what is that? I need to look at actions.pm. Oh, context it's in handles It's to generate the PIR :flat :named Before :flat(1), :named(1) did it fine Now you have to stick a PAST::Val in :named - it still emits the correct code. It's just gathering and forwarding the arguments. that's definitely a pct bug OK, suspected so. however, do we have to do it that in PAST at all? why not just call a function that does the forwarding for us? No, we're actually generating a forwarder method. oh. If we called a forwarder function, we'd still have to generate the method... And we'd still have to pass it the args. :-) okay, works for me for now. (something seems odd about it to me at the moment, but I can't figure out what it is.) checking pct bug. weird. I don't know what I was thinking when I wrote that. DietCoke, ping jonathan: r28270 should fix the :named(1). (untested -- can you test?) r28270 | pmichaud++ | trunk: : [pct]: : * Fix bug with :flat :named argument nodes (jonathan++) diff: http://www.parrotvm.org/svn/parrot/revision?rev=28270 pmichaud: Will do soon, just got something in the works here. r28271 | tene++ | trunk: : [cardinal] : * Faster : * Cleaner : * Parse many things we couldn't parse before diff: http://www.parrotvm.org/svn/parrot/revision?rev=28271 Horrible commit message, I know, but I need to go teach class now. % davidfetter has left davidfetter!~davidfett@start.fetter.org jonathan: I'll have to work on C after lunch -- it's a bit more involved than originally expected (because there are a lot of classes and objects that are overriding vtable_get_bool so we're ending up in loops. but I'll do it immediately after lunch. pmichaud: OK, no worries. I'm busying myself with a few type-related things. Check this bit of evil in S12 out: "Two has attributes of the same name, whether public or private, are simply merged into one slot, provided the types are the same; otherwise, the composition fails." So, attribute types are going in... is that for roles? particle1: Yup. sweet evil. Yeah, it made me implement attribute types. % particle has left particle!~particle@c-98-232-7-104.hsd1.wa.comcast.net Then I forgot that this was what I was meant to be doing and when and got is rw working on attributes first... s/when/went/ that won't *hurt* anything, though :) ;-) Yeah, good to have it. Now when I give slides on attributes, I cna leave out the "and one day you will be able to write is rw..." Roles are quite a lot of work. what, you mean it won't be done today? or you'll need another tea first? % particle1 is now known as particle Erm. I don't think I'll get generic ones done today. :-P i'm *so* far behind but finding work and rebuilding my machine have to take priority Method composition works, and basic attrib comp does as of today now too. r28272 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] wrote black and grey marking functions, updated Small_Object_Pool and Gc_it_pool_data structures to be more compact do you have 'resolves' done? diff: http://www.parrotvm.org/svn/parrot/revision?rev=28272 is that what it's called, to name a method something else when composed in the class? Parrot supports that, and there's tests for it. I'm not sure Perl 6 actually does that, though. Or at least, I'm not seeing it in the spec... i'm pretty sure i does There are several ways to solve method conflicts. The first is simply to write a class method that overrides the conflicting role methods, perhaps figuring out which role method to call. Alternately, if the role's methods are declared multi, they can be disambiguated based on their long name. If the roles forget to declare them as multi, you can force a multi on the roles' methods by installing a proto stub in the class being constructed (that was from S12) Thsoe are the only two ways it mentions. I'd not tended to count two as several, but... :-) yeah, that's what i'm reading now The original traits paper mentioned such a mechanism. yep and like you said, parrot has it but i suppose using a class method works instead of using a trait % AndyA has left AndyA!~andy@82.152.157.85 Yup. btw any reason it's trait_auxiliary: instead of trait: ? There are trait_verb as well rule trait { | | } ah, right I'm not 100% sure exactly why or what the distinction is. auxiliary is an ugly word, though But different trait-ish things are consistently distinguished. So I'm guessing there is a reason. the verbs don't have a sig they're not multis Oh You're right. OK, that's why. :-) but 'trait_multi' and 'trait_verb' sound better to me however multi and verb don't quite fit the same class of words anyway, it's just paint. % AndyA has joined #parrot Sure % sjansen has joined #parrot did you do trait_verb yet? i assume it'd be easy, considering there's no sig The handles trait verb is already implemented, on attributes. returns - not yet, but now the return statement is in, I may look at return type stuff. r28273 | jonathan++ | trunk: : [rakudo] Allow types to be declared on attributes and enforce them. We also move a little closer to STD.pm in this patch and gain support for type conjunctions (the code was there, just not being called into), so you can do my Type1 Type2 $foo. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28273 % iblechbot has left iblechbot!~iblechbot@ppp-62-216-222-188.dynamic.mnet-online.de Whiteknight: If you are concerned about checking something that should obviously be true, use an assertion. those will get eliminated in optimized builds, IIRC. okay thanks DietCoke, ping pong Whiteknight: ack for PARROT_ASSERT Hey, who is Whiteknight anyway i heard Whiteknight was updating the book. It talks about .pragma fastcall, pushing and popping arguments onto the user stack, etc I know PARROT_ASSERT, i just need to use it more I keep seing postings. I'm working on the PDD09 GC sharing a cab from ORD tomorrow sounds fine But do you have a name, pardner? Andrew Since I'm arriving first, I'll hang out near where your flight will arrive and we can go from there. pmichaud: The PCT fix didn't work; not it generates: $P68 = $P65."go"($P66 :flat :named :flat, $P66 :flat :named :flat) is it normal that quite a lot of tests fail when I run make spectest_regression in perl6? http://port25.technet.com/archive/2008/03/20/inside-the-oss-lab.aspx cotto_work's url is at http://xrl.us/bphf2 Zaba: No, they shouldn't be failing. :-S I'm in the bottom picture, leftmost jonathan, I got quite a lot of dubious results and some failures.. OK, that's odd cotto_work: I'm not getting in until later. Is it worth waiting for you? (catching up) Awesome. Zaba: I have some local changes, but not much, and it's looking pretty clean here...just running it now. Zaba: Yup, I get a clean sheet. Do you have latest? jonathan, I svn up'd about 10 minutes ago (it took time to build parrot, make test parrot..) OK, that's odd. What platform are you on? linux amd64 Did the Parrot tests pass pretty cleanly? cotto++ And any chance you can nopaste the output from make spectest_regression, so I can see if I can spot some pattern? jonathan, yup and yes I will pastebin the failure summary r28274 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] wrote some basic functions to deal with root items and the queue. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28274 http://rafb.net/p/LMCgOV69.html parrot r28266 hmm. I indeed missed a bit should I try to svn up? My word that's a lot of failures... Yes, and perhaps try a make realclean if you didn't do one before this build. But I'm surprised the Parrot tests all passed if there is an issue. okay :flat :named :flat ?! I don't quite see how it could do that... but I will try make realclean hrm. jonathan: can you send me a sample code snippet so I can generate it on my box? class Foo { has $.x handles 'go' } You'll need to undo the actions.pm change I put in earlier today for it too good enough, thanks. np jonathan: r28275 r28275 | pmichaud++ | trunk: : [pct]: : * Really fix :named :flat this time. (jonathan++) diff: http://www.parrotvm.org/svn/parrot/revision?rev=28275 Thanks, will check in a moment...just fighting with attribute composition. jonathan, I still have dubious results here after make realclean and passing all parrot tests % smash has left smash!~smash@gil.di.uminho.pt Zaba: OK, then I'm confused. jonathan, about the same amount of failures.. Zaba: OK, let me make a clean build here. With svn head And see if I can reproduce anything like you're seeing. r28276 | jonathan++ | trunk: : [rakudo] Get us closer to S12 role composition semantics for attributes. This patch implements, 'Two has attributes of the same name, whether public or private, are simply merged into one slot, provided the types are the same; otherwise, the composition fails.' Also, move some code around to make sure we do the role composition once everything inside the class has been declared, not before, as per the spec. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28276 If I can't, I'm suspecting it maybe is platform specific. hmmm But that answer feels odd to me. zaba: (I'm coming into the middle of this) what platform? pmichaud, linux amd64 which linux? pmichaud, gentoo hrm. any options to Configure.pl ? nope * Infinoid tries to reproduce it on his gentoo amd64 box jonathan: are the attributes merged into a public, or private slot? Zaba, does svn st list any changes? cotto_work, no particle: Not entirely sure what you're asking. These are role attributes declared with has, and the declarations with has are done as if they had been declared in the class itself. particle: You can declare an attribute that is not visible to the class at all, with my $!foo, but I didn't implement this yet, and those are truely private. multiple attributes of same name are wedged into the same slot particle: Only if the type matches. yes but one may be private, another public If the type doesn't match, you can a composition error. Sure, then they are both public. Declaring $.foo is just generating a foo accessor method. that's what i'm asking. if one is public, then effectively they both are % gryphon has joined #parrot Yes, but if the composition suceeded because they had the same type, then there isn't a both. They're sharing a slot. right, but if a role expects the attribute to be private, whoops! ...some method in the role, that is How so? Then it just means the class has decided to expose it. it's difficult for me to think of a real-world use case If a role wants true privacy, it can use my $!x, and the class can't even see that. That's about next on my implementation list, but I should probably eat first. yes, but does $!x exist past class composition time? Yes. ah, okay then. It's a private attribute. role-private Right. Was as has $!x in a role is class-private. meaning if a class overrides a role's method, that method can't see it Right. % iblechbot has joined #parrot my $!x # can only be seen in the role can it be seen in roles that are composed into the role? No. ...a role made from many roles ok The "my" gives it lexical semantics. Outside of that block, it's not visible. rakudo test passes here, several spectest failures. (most of those are along the lines of "Statement not terminated properly" or "Syntax error") Infinoid: Is that spectest or spectest_regression? spectest should fail a lot. spectest_regression should pass everything jonathan: spectest ok, so it sounds normal Ok, fine. What particle said. If spectest_regression passes them all, then we're good. OK, I'm going to go grab some fast food rather than cooking, so I can keep on hacking. Back in a little while. * Infinoid lets that run for a while jonathan, no fast food! To make a decent plate of nachos, start with the big bang. ccache helps. "Infinoid" at 96.238.213.50 pasted "My rakudo spectest_regression results: FAIL" (129 lines) at http://nopaste.snit.ch/13237 r28277 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] more notes, comments. Info about root items. some conditionals. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28277 So, there are some linux amd64 errors of some sort? Huh, I'm getting a bunch of failures too. * pmichaud wonders if it's time for him to switch back to 64-bit linux. Just go halfway. 48-bit ftw. % davidfetter has joined #parrot tene;did you try the obligatory realclean? I did! I tried it first this time! r28278 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] add functions to obtain an objects flag from the card, and start rewrite of pobject_lives diff: http://www.parrotvm.org/svn/parrot/revision?rev=28278 Segfaults! No whammies! % gmansi has left gmansi!~gmansi@190.55.35.246 yep, here too, here comes a backtrace "Infinoid" at 96.238.213.50 pasted "t/spec/S02-builtin_data_types/type.rakudo segfault" (45 lines) at http://nopaste.snit.ch/13238 % cjfields has joined #parrot % barney has joined #parrot r27000 passes. bisecting... % Ivatar has joined #parrot % barney has left barney!~bernhard@dslb-084-058-190-159.pools.arcor-ip.net r28279 | chromatic++ | trunk: : [Pheme] Fixed several Pheme parsing failures, after PGE backtracking changed in : r28256. (In particular, '() gets parsed as two atoms, a quote and an empty : cons, rather than a single atom -- the empty cons.) : One parse failure remains, though all tests pass. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28279 there's one spectest_regression failure in r28256 which seems to be unrelated to the segfault I'm tracking down all the segfaults began with r28257. (maybe it's exercising the internals harder? or using a new unstable feature of parrot?) interesting. I actually happen to be re-writing the Range code at the moment, so perhaps what I write will fix things. I am happy to test patches as needed here are more nopastes, for the logs: pmichaud: Re-writing it? Was it really that bad? "Infinoid" at 96.238.213.50 pasted "One spectest_regression failure in r28256 (unrelated to the segfault I'm tracking)" (99 lines) at http://nopaste.snit.ch/13240 "Infinoid" at 96.238.213.50 pasted "Many spectest_regression failures in r28257" (153 lines) at http://nopaste.snit.ch/13241 I started a refactor and then decided rewriting was quicker. r28280 | Whiteknight++ | trunk: : [pdd09] updating function and macro names to satisfy pdd09 deprecation notes. rt#55364 diff: http://www.parrotvm.org/svn/parrot/revision?rev=28280 Infinoid: Does -G make any difference? Is this GC related? but I can't get 'clone' to work properly. jonathan: let me check pmichaud: OK, would be interested to know, what was wrong with the original... checking the end of the range shouldn't be done by decrementing the end, for one. zsh: segmentation fault ../../parrot perl6.pbc t/spec/S02-builtin_data_types/type.rakudo zsh: segmentation fault ../../parrot -G perl6.pbc t/spec/S02-builtin_data_types/type.rakudo the code I have feels more in tune with what the spec says about how iteration should be done. OK, fine. % AndyA has left AndyA!~andy@82.152.157.85 also, I factored out the boundary tests into their own private methods so we aren't repeating ourselves I also didn't like the separate tests for both exclusivity (e.g., in accepts) -- we can test each end individually. Ok. You can re-do the role attributes afterwards. ;-) :-) I'm really confused why the clone vtable isn't working, though. % AndyA has joined #parrot That's odd... Well, what the fuck did you EXPECT? ... HA! right now I have .sub 'clone' :method :vtable .local pmc from, to from = getattribute self, '$!from' to = getattribute self, '$!to' .return 'infix:..'(from, to) .end grrr. The original, cloned from and to as well, I think. "pmichaud" at 76.183.97.54 pasted "Range clone" (6 lines) at http://nopaste.snit.ch/13243 but afaict, it never gets invoked. You've just a "say" in there to check? been following trace output, actually s/just/put/ OK, that should be indicative too. oh, 'say' gives me something different. It's just clone that seems to not be being called? Other v-table methods work? > say 1..5 cloning Range src/inter_call.c:301: failed assertion 'PObj_is_PMC_TEST(sig_pmc)' Backtrace - Obtained 19 stack frames (max trace depth is 32). Ouch. same results for "my @a = 1..5;" I'll turn on tracing at that point. ohhhhh I bet it's a tailcall problem. Oh! Yes, it is. can't do tailcalls in 'clone', I guess? Now I remember - I tried to write it just like that this morning. And it didn't work, so removed the tailcall again. It seems so. I think it's a more general thing with tailcalls close to the C boundary. I guess that deserves a ticket somewhere. If it doesn't already have one, then yes, for sure. OK, time to write some tests for the various things I did in the last couple of patches... % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk it appears to have trouble with any form of method call from within clone, also. :-S OK, that I haven't seen. % tene_evalbot has joined #parrot cardinal: puts "foo" No output (you need to produce output to STDOUT) Yay, death! why does that evalbot look familiar to me? ;-) % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 ;) you scared him off. % tene_evalbot has joined #parrot I have plans to have it pastebin --target={parse,past,pir} cardinal: puts "foo" OUTPUT[Syntax error at line 1, near "puts \"foo\""␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;cardinal::Grammar;TOP' pc 4382 (src/gen_grammar.pir:154)␤called from Sub 'parrot;PCT::HLLCompiler;parse' pc 562 ..(src/PCT/HLLCompiler.pir:348)␤called from Sub 'parrot;PCT::HLLCompiler;co... Huh. cardinal: puts "foo"; OUTPUT[foo␤] Oh, cardinal requires newline at the end. That sound useful to anyone? cardinal: make Tene's computer explode; OUTPUT[Syntax error at line 1, near "make Tene'"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;cardinal::Grammar;TOP' pc 4382 (src/gen_grammar.pir:154)␤called from Sub 'parrot;PCT::HLLCompiler;parse' pc 562 ..(src/PCT/HLLCompiler.pir:348)␤called from Sub 'parrot;PCT::HLLCompiler;comp... hehe is that for any language in svn? It will be by the end of the day, if you'd like it to be. yes, lease. lolcode_evalbot... * DietCoke was hoping to get his tcl bot back. =-) Tene: try to cut off all these stack traces Tene: they produce a lot of output, but usually only the first line is really of interest moritz: my plan is to pastebin it if it's more than a line or two. Tene: seems sensible cardinal: puts 'Tene++'; OUTPUT[Tene++␤] cardinal: "test" OUTPUT[Syntax error at line 1, near "\"test\""␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;cardinal::Grammar;TOP' pc 4382 (src/gen_grammar.pir:154)␤called from Sub 'parrot;PCT::HLLCompiler;parse' pc 562 ..(src/PCT/HLLCompiler.pir:348)␤called from Sub 'parrot;PCT::HLLCompiler;compil... % grim_fandango has left grim_fandango!~matt@bas2-kingston08-1167934364.dsl.bell.ca r28281 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] updating to trunk r28280 apparently method tailcalls in vtable methods are bad. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28281 dies_ok { class C2 does R2 { has $!a } }, 'Roles with conflicing attributes'; That seems not to be catching the exception. isn't there a tailcall ticket or two open? all of the *dies* functions probably need some work. jonathan: dies_ok doesn't catch compile time errors i.e., exception handling still isn't quite right there yet. (although it's on its way) which is why we need eval_dies_ok for those cases DietCoke, cotto_work: care to wait until my 6:20 arrival to leave for iit? OK, does eval_dies_ok work? mostly at least ;) oh, actually, i arrive before coke particle: that's before I get in. particle, you're arriving before DietCoke, so I don't see a problem so yes, I'll wait, and he's already waiting for me. =-) :) this cab ride is getting much cheaper for me! heh Lots of continuation runloop jumping fun now. % davidfetter has left davidfetter!~davidfett@start.fetter.org do you guys want to wait for me? ;-) cotto: i bet you get in right near my gate, since we're both on alaska particle, can you put your flight on the wiki so I know where to look for you? get your own cab, pmichaud :P cotto_work, done I will be doing carryon, so once I get there we can book. i screwed the syntax up , though, fixing and put them in time order! aigh! fix it fix it fix it they were in time order insertion time see you there! Gaaah. Test returned status 5 (wstat 1280, 0x500) after all the subtests completed successfully inferior runloop! Indeed. tcl's lsort test does that. * jonathan hopes Allison's branch fixes a bunch of these. I'm eager to test it this weekend. DietCoke: Is there a workaround? I'm fearing not. jonathan: no is this valid Perl 6? if $code.isa("Code") { say "ok 3" } else { say "not ok 3" } nope. 'make test' still works. so it wasn't a high priority for me. pmichaud: looks valid to me pmichaud: why wouldn't it be we allow strings to .isa() ? i thought string and type hrm. gotta check the spec S06? S06 is probably dev.perl.org/perl6/doc/design/syn/S06.html ack. no, S06 is http://dev.perl.org/perl6/doc/design/syn/S06.html okay, particle. only three occurrences of '.isa' in the synopses none of them use quoted strings. ah S12? S12 is, like, out of sync with reality S05 and S12 no, S12 is http://dev.perl.org/perl6/doc/design/syn/S12.html okay, particle. 3801: <.isa(Dog)> 1969: $obj.HOW.isa(Mammal) 1981: $obj.isa(Mammal) I find it hard to believe you'd not be able to do it with a string. It just would feel so un-Perl-ish to not let you do so. ;-) yep I'm wondering how to go from a String to a namespace. or, more precisely, to a protoobject. ::() ... is that ascii art for the alien from MIB? yes, but ::() from within .isa() would mean that we'd need to get the caller's namespace. so that we can figure out what the String is relative to. Ah. Hmm. * particle moves his seat up 13 rows and prints his boarding pass anyway, I'll put in a workaround. Maybe to do it by string you need to do the lookup of the string and pass the result to isa. .isa(::{'Foo'}) # I'm sure that's the wrong syntax % Zaba_ has joined #parrot jhorwitz: ping omg! there's shadows outside! for the first time in a week, the sky is blue! particle: hey, we want our blue back you're gonna have to pry it from my cold, dead hands. that won't take long... you live in Washington. particle: poing jhorwitz: i'm going to submit my lightning talk now did you do yours yet? snow! in june! % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru oooh lightning talk! what's it going to be? ;-) particle: what are you calling it? lightning: creating a language in 5 minutes with Parrot Compiler Toolkit I've been seriously thinking about a lightning talk, but I fear there will be more speakers than slots particle: so you went all boring on us :) what should i call it? the language is called 'lightning' so yours can be 'mod_lightning' man! aaaaah i was gonna call it "stealing particle's work for fun and profit in 5 minutes" hopefully i'll commit it and you can svn co :) * jhorwitz goes to submit his lightning talk... ok, i can make a wittier tagline, but it's definitely gonna live under languages/lightning/ how about languages/kaboom ? oops, i forgot turing-complete what's the URL for submitting the talks? I do wish the guy last year had actually written his language describing urinal rules. i always have trouble finding it http://conferences.mongueurs.net/yn2008/newtalk kaboom? kaboom is What about my q-37 space modulator? DietCoke: ever play the flash game where you have to pick the right urinal? no, but that's exactly the sort of thing I'm talking about, yes. http://www.albinoblacksheep.com/flash/urinal ah, perfect score. men always have a perfect score it's amazing It's the mirrors * jonathan doesn't tell anyone his score % luca_ has joined #parrot yeah, i did bad * Whiteknight failed bathroom 101 did you try to socialize with the guy next to you? ;-) not overtly Some of the cases are like, obvious. Others are...well...less so. I'm getting a failure in S12-role/attributes.t in trunk. expected? % Zaba has joined #parrot pmichaud: No. % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 What output? output is probably different % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % tene_evalbot has joined #parrot cardinal: puts "I should probably test this in a different channel"; No output (you need to produce output to STDOUT) % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 "pmichaud" at 76.183.97.54 pasted "spectest regression failure -- S12-role/attributes.t" (30 lines) at http://nopaste.snit.ch/13244 OH! I'm also getting a failure in S29-list/grep.rakudo r28282. % tene_evalbot has joined #parrot cardinal: puts "foo"; OUTPUT[foo␤] * Tene prods DietCoke to try tcl: I'd fudged the one that is failing because of the continuation thing, then forget to remov the #pure. tcl: puts "foo"; OUTPUT[Parrot VM: Can't stat languages/tcl/tcl.pbc, code 2.␤main: Packfile loading failed␤] Well, I'd removed it. I'd forgotten to bheck it in. Oh, I didn't compile tcl. r28282 | jonathan++ | trunk: : [rakudo] S12-role/attributes.t is now fudged. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28282 tcl: puts "foo"; OUTPUT[foo␤] % luca_ has left luca_!~lucax@78.13.103.1 * Tene runs 'make' in languages/ APL: 1 :-P particle: you're creating lightning live, right? % IllvilJa has joined #parrot going to yapc::na 2008? going to yapc? See : going to yapc::na or yapc::whatever or cwest, uri, DrForr going to yapc::na ? going to yapc::na is hachi, particle, Coke, cotto, DrForr, rjbs, confound, hobbs, Alias, jjore, pmichaud, allison, uri, chargrill, Abigail, stevan, waltman, PerlJam, lucs or theory ...PerlJam is going to yapc::na? cooooool purl, going to yapc::na is also jhorwitz okay, jhorwitz. jhorwitz is going to yapc::na? cooooool :-) i hear attendance is mandatory for speaking going to yapc::eu? going to yapc::eu is (: going to YAPC::EU 2008) going to YAPC::EU 2008? going to YAPC::EU 2008 is ambs, smash, allison, cognominal, cog, root, pmichaud, hex (hopefully), Abigail or tsee and Tux and Nicholas or Hinrik or Alias particle: talk submitted going to YAPC::EU 2008 is also jonathan okay, jonathan. hum, there is a parrot hackathon too? cognominal: que YAPC? NA ou EU? rumor was that there would be hackathon days immediately before and after yapc::eu EU going to YAPC::EU 2008 is also Patterner okay, Patterner. % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 not rich enough to go to the states and not willin to go with the current government % tene_evalbot has joined #parrot APL: 1 OUTPUT[1␤] aiiigh! APL: 1 3 + OUTPUT[Syntax error at line 1, near " +"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;APL::Grammar;statement' pc 3490 (src/gen_grammar.pir:364)␤called from Sub 'parrot;APL::Grammar;statement_list' pc 2914 ..(src/gen_grammar.pir:146)␤called from Sub 'parrot;APL::Grammar;TOP' pc 2705 ... APL: 1+3 OUTPUT[4␤] 4 Should I just grab everything in languages/ ? now *that's* a lightning talk -- what funny languages can we stick on IRC? ;-) tcl: puts [expr sin(3)-2**4] OUTPUT[-15.85887999194013␤] lolcode: VIZIBLE 'OH HAI' tcl: puts \u1234 OUTPUT[ሴ␤] I CAN HAZ LOLCODE_EVALCAT? I've been trying to figure out how to do an befunge evalbot Please do bf. ;-) that's quite the evalglot % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 % tene_evalbot has joined #parrot The problem with lolcode is its mandatory block circumfix header footer things. it doesn't like single statements. I should fix that. TO HELL WITH SPEC. WE NEED EVALBOTS. I CAN CHANGEZ SPEC? you could always have the eval bot do a wrap for lolcode. I certainly could. mmm, lolwrap. Right now it's qw(abc APL bf cardinal lolcode lua pheme plumhead punie pynia squaak tcl) lolcode: WAIT FOR IT \ OUTPUT[Failed to parse source␤current instr.: 'parrot;PCT::HLLCompiler;panic' pc 156 (src/PCT/HLLCompiler.pir:103)␤called from Sub 'parrot;PCT::HLLCompiler;parse' pc 589 (src/PCT/HLLCompiler.pir:356)␤called from Sub 'parrot;PCT::HLLCompiler;compile' pc 438 (src/PCT/HLLCompiler.pir:291)␤called from ..Sub 'parrot;PCT::HLLCompiler;eval' pc 753 (src/P... Hm... needs a newline-translator for bf. finally! spectest_regression passing! ! pmichaud: With new Range code? yes. Infinoid: see if r28284 fixes things. Note that one also has to do 'make' from parrot dir in order to rebuild P6object.pbc . r28283 | pmichaud++ | trunk: : [p6object]: : * Turns out we can't quite trust Parrot's MMD for get_parrotclass : to always dtrt, so refactor to explicitly code the preferences : we want. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28283 r28284 | pmichaud++ | trunk: : [rakudo]: : * Refactor Range a bit. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28284 % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 % tene_evalbot has joined #parrot cardinal: puts "zomg"; OUTPUT[zomg␤] Tene++ # The polyglot evalbot we always wanted justasec, it's about to get awesome. Wait for it. :-) * jhorwitz is dying from the anticipation Tene: does forth work? no idea. * japhb is dying to do forth jokes via evalbot ... ;-) .oO( I need to port gjbforth to Parrot one of these days ... ) tcl: set i 1; while {$i < 20} { incr i}; puts $i OUTPUT[20␤] tcl: error "this should be fun." OUTPUT[this should be fun.␤] what? you lie. =-) tcl: return "die" OUTPUT[die␤] freaky. % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 Tene, no perl6? or is that the awesome? % tene_evalbot has joined #parrot no perl6? Oops. perl6: say "what what?" % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 * Tene adds perl6. % tene_evalbot has joined #parrot perl6: say "foo" Huh. cardinal: say "foo"; Huh. Tene: say "Huh."; % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 Huh. Jeff Horwitz | mod_parrot: link: http://www.perlfoundation.org/parrot/index.cgi?mod_parrot uh, hm. i didn't make any changes there, just closed the window pmichaud: "can't trust parrot's MMD" - ticket coming on broken behavior? Jeff Horwitz | mod_parrot: link: http://www.perlfoundation.org/parrot/index.cgi?mod_parrot DietCoke: it's a little difficult to describe at the moment. I'll see if I can narrow it down to a cleaner test case. and if so, then submit a ticket. danke jhorwitz: the page history shows a change made. % tene_evalbot has joined #parrot yeah, i think i typed something and it autosaved when i closed the window. perl6: say "foo" kp6: No output (you need to produce output to STDOUT) ..pugs: No output (you need to produce output to STDOUT) ..rakudo: No output (you need to produce output to STDOUT) the last one was my correction to that. :) % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 % tene_evalbot has joined #parrot perl6: say "foo" kp6: No output (you need to produce output to STDOUT) ..pugs: No output (you need to produce output to STDOUT) ..rakudo: No output (you need to produce output to STDOUT) Wait, wtf is it getting kp6 and pugs and rakudo from? % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 oh % tene_evalbot has joined #parrot perl6: say "foo" OUTPUT[foo␤] bc: 22 / 7 3.14285714285714 abc: 22 / 7 3.14285714285714 OUTPUT[3.14286␤] abc: 22 / 7 3.14285714285714 OUTPUT[3.14286␤] schweet There's a ticket to rename abc to bc, btw. % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 % tene_evalbot has joined #parrot perl6: say "foo" OUTPUT[foo␤] perl6pir: say "foo" OUTPUT[␤.namespace ␤.sub "_block11" ␤ .lex "$_", $P12␤ .lex "$/", $P13␤ $P14 = getinterp␤ push_eh no_match_to_copy␤ $P14 = $P14['lexpad';1]␤ pop_eh␤ if null $P14 goto no_match_to_copy␤ $P14 = $P14['$/']␤ store_lex '$/', $P14␤ no_match_to_copy:␤ .lex "$!", $P15␤ new ..$P16, "Perl6Str"␤ assign $P16, "foo"␤ $P1... Ack, that's not right. That was supposed to nopaste. Why didn't it nopaste? tcl: puts [expr entier(3.141592654)] OUTPUT[3␤] I don't think I want to rename abc to bc. pmichaud: bc -> bcd? er, abc -> bcd? or bcbc, or some other variant. ISTR the ticket's point is that there already is a real language named abc, no relation to bc. I knew about 'abc' (the python precursor) when we started abc, and decided to use abc anyway. (with approvals from people on #parrot). Ah, OK. "pbc" would be better, since it's Parrot's bc That I like. also, it's explicitly not intended to be a 'bc' workalike. 'pbc' already has another meaning in Parrot-speak. true Maybe that's why it seemed so catchy. ;-) pabc % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 I like 'abc' because it's intended to be a tutorial for compiler writing. so 'abc' is a good name for that. (learn your a b c's!) we can hash this out again if someone else actually does decide to target parrot with that, but I think now let's reject the proposal and move on. =-) so if we do decide to implement the python precursor, we can call that pabc pebkac if someone is seriously interested in targeting the pre-python abc, then I'd rather steer them to working on pynie. and python's abc can be pyabc :-) % tene_evalbot has joined #parrot :-) or parabc Which one is pynie now? perl6pir: say "foo" "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (20 lines) at http://nopaste.snit.ch/13245 "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (42 lines) at http://nopaste.snit.ch/13246 No output (you need to produce output to STDOUT) pynie: python on parrot. rakudo: say "foo" two pastes? perl6: say "foo" OUTPUT[foo␤] I thought that was something else ... oh, right, multiple attempts, right? perl6: role Perl { method x { say self.WHAT } }; class Hacker does Perl { }; print 'Just Another ' ~ Perl ~ ' '; Hacker.new.x OUTPUT[Just Another Perl Hacker␤] scary. awesome indeed. afk for a while -- gotta make some yapc::na travel preparations. perl6past: role Perl { method x { say self.WHAT } }; class Hacker does Perl { }; print 'Just Another ' ~ Perl ~ ' '; Hacker.new.x "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (303 lines) at http://nopaste.snit.ch/13247 "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (360 lines) at http://nopaste.snit.ch/13248 No output (you need to produce output to STDOUT) how about "perl6,past" or "perl6-past" or something like that? anyway, afk. pmichaud: choose between them and I'll change it Tene: - looks marginally more natural to me The double pastes -- before and after some transform? They are subtly different. Yeah, something weird... checking... Oh, it checks if there's no output and wraps the program in '( ( do { ... } ).perl ).print' Hm. % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 % tene_evalbot has joined #parrot perl6-pir: say "foo" "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (20 lines) at http://nopaste.snit.ch/13249 OUTPUT[NOPASTE␤] There we go. So, any offers to host it? Wish I could -- but I have no externally accessible servers I'll put it on the server in my apartment for now. I'm moving this coming week, though. Tene: why not ask moritz moritz: diakopter says that you like hosting bots. :) moritz: diakopter said that you'll bake me a cake. % slightlyoff has joined #parrot % cjfields has left cjfields!~cjfields@cjfields.igb.uiuc.edu I'll ask about running it on my company's development server next week. This is a very slow box, so rebuilds won't be too frequent. * particle likes perl6.past because . looks like a target I can jump on that bandwagon. It looks like a method call on the compiler to me, and that makes sense given what it does. Still waiting for languages to compile on the server it's going to run on for now. just getting to tcl. tene: i'm pretty sure it could be hosted on feather do you have an account there? that's where thet #perl6 evalbot is Yeah, but then I'd have to figure out if there's a regularly-updated parrot tree there. feather1 iirc tene: there is, for sure particle: no, the #perl6 evalbot is not on feather it's on moritz' server hence me suggesting asking moritz :D ah, ok then i thought there was a feather vm for evalbots there is, but no one has used it aha HAY JUERD well why the heck not? it's there, begging to be used! HAY JUERD I HAVE AN EVALBOT FOR FEATHER I guess b/c it would take some effort to figure out how Juerd set up the VM/jail(s) Huh. When I try to run it on this box, it just says 'illegal instruction' Weird. % tene_evalbot has left tene_evalbot!~evalbot@216.98.223.199 % iblechbot has left iblechbot!~iblechbot@50.18-dial.augustakom.net % polyglotbot has joined #parrot perl6: say 'foo' OUTPUT[foo␤] perl6.paste: say 'foo' "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (1 line) at http://nopaste.snit.ch/13250 OUTPUT[NOPASTE␤] perl6.parse: say 'foo' "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (53 lines) at http://nopaste.snit.ch/13251 OUTPUT[NOPASTE␤] perl6.past: say 'foo' "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (49 lines) at http://nopaste.snit.ch/13252 OUTPUT[NOPASTE␤] perl6.pir: say 'foo' "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (20 lines) at http://nopaste.snit.ch/13253 OUTPUT[NOPASTE␤] % polyglotbot has left polyglotbot!~evalbot@216.98.223.199 % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % polyglotbot has joined #parrot There we go. I'm satisfied with it for now. % Zaba has joined #parrot jhorwitz: Bring in the bottled lightning the parrot compiler toolkit is parrot's bottled lightning. in five minutes, i'll create a parser, compiler, and tests for a turing-complete language. *called 'lightning'. % Limbic_Region has joined #parrot perl6.parse: say 'foo' "polyglotbot" at 216.98.223.199 pasted "perl6 parse paste" (53 lines) at http://nopaste.snit.ch/13254 OUTPUT[NOPASTE␤] how do lightning talks usually go? back to back, or with breaks at intervals * Tene svn co on feather1 yeehah, i have control of parrot.org now /usr/bin/parrot on feather1 is linked to audreyt's homedir, which was last updated in 2006, it looks like. particle++ now, to get hosting... % Ademan has left Ademan!~dan@h-67-101-102-123.snfccasy.dynamic.covad.net % polyglotbot has left polyglotbot!~evalbot@216.98.223.199 Tene: Does polyglotbot need to bother to say OUTPUT[NOPASTE]? Pastebots announce themselves by default anyway. s/themselves/the pastes/ Hm. Sure, I can make that go in the other direction. clutter-- There it should work now, if I was able to run it on feather. back, for now ...wrong window... % Ivatar has left Ivatar!~graham@tu055.demon.co.uk % smash has joined #parrot hello everyone hello % sjansen has left sjansen!~sjansen@hq-nat2.gurulabs.com % tetragon has joined #parrot r28285 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] basics of the function to mark children of the current node. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28285 % polyglotbot has joined #parrot perl6: say "HAY GUYZ IM AN EVALBOT" OUTPUT[Null PMC access in get_string()␤current instr.: 'parrot;P6metaclass;add_parent' pc 119 (runtime/parrot/library/P6object.pir:137)␤called from Sub 'parrot;P6metaclass;add_parent' pc 241 (runtime/parrot/library/P6object.pir:215)␤called from Sub 'parrot;P6metaclass;register' pc 411 ..(runtime/parrot/library/P6object.pir:295)␤called from Sub 'pa... Huh. i'd say that isn't correct * Tene rebuilds parrot on feather3 * jonathan breathes a sigh of relief, thinking that he might just have got role-private attributes cracked. Or close enough for now, anyways jonathan++ r28286 | jonathan++ | trunk: : [rakudo] Implement role-private attributes. These, declared as 'my $!spleen', are not visible outside of the role (unless you use 'trusts' (which isn't implemented yet)). diff: http://www.parrotvm.org/svn/parrot/revision?rev=28286 Which if I'm right means I've now dealt with the directly attribute-related things about roles from S12. Which is what I'd hoped to do today. perl6: say "HAY GUYZ IM AN EVALBOT" OUTPUT[HAY GUYZ IM AN EVALBOT␤] perl6.paste: say "foo" * jonathan grabs a beer and writes up his report perl6.paste: say "foo" "polyglotbot" at 193.200.132.146 pasted "perl6 paste" (1 line) at http://nopaste.snit.ch/13256 yay! cardinal.pir: puts "foo"; "polyglotbot" at 193.200.132.146 pasted "cardinal pir paste" (13 lines) at http://nopaste.snit.ch/13257 I'm pleased. :) awesome Tene++ again "Awesome speech!" Tene++ # this will be useful Okay, it should be updating parrot every 15 minutes. Tene: does it check whether it needs to? Nope. (rebuild, that is) I don't know the svn way of doing that. I'm just relying on make. Ah. does 'svn up' return failure if there are no updates ? Might be nice to have a way to tell the bot that 'svn up; make' is not sufficient, and that it needs 'make realclean; svn up; perl Configure.pl; make' Tene: Hmmm, ISTR so. % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net Oh, then it won't rebuild if no updates. % kid51 has joined #parrot % cotto_work has left cotto_work!~cotto@tide534.microsoft.com Also a way to get the current rev might be nice. That's all I'm doing today, though. 'svn info' gets you rev japhb: I meant a command for the bot to get it to report. Oh, right karma tene tene has karma of 87 Tene: sigh, exit code from 'svn up' doesn't seem to change :/ I guess check revision before and after update % ank has joined #parrot write a shell script to do it for me. I'm busy operating a stapler. Hack: see how many lines out output svn up gives. If only one, then it didn't update anything. ;-) Tene: perl -e 'sub get_rev { my $rev_line = `svn info |grep "^Revision: "`; my ($rev) = $rev_line =~ /(\d+)/; return $rev}; my $old_rev = get_rev; `svn up`; my $new_rev = get_rev; exit($old_rev != $new_rev);' That could be golfed a LOT, but there's the start Most of the time, my 'shell scripts' are perl one-liners. :-) % teknomunk has joined #parrot % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk % AndyA has left AndyA!~andy@82.152.157.85 % AndyA has joined #parrot r28287 | pmichaud++ | trunk: : [rakudo]: : * Add missing pir_coda and pod closing to Range.pir. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28287 % smash has left smash!~smash@bl9-208-25.dsl.telepac.pt Report: http://use.perl.org/~JonathanWorthington/journal/36677 ...so much for an early night...geck! * jonathan sleeps jonathan++ jonathan: s/someone/some/ r28288 | pmichaud++ | trunk: : [rakudo]: : * remove obsolete "compiler_directive" rule from grammar diff: http://www.parrotvm.org/svn/parrot/revision?rev=28288 r28289 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] comments and small fixes. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28289 % obra is now known as sanka % sanka is now known as obra % AndyA has left AndyA!~andy@82.152.157.85 % AndyA has joined #parrot r28290 | jhorwitz++ | trunk: : implement 'slurp' and 'close' builtins diff: http://www.parrotvm.org/svn/parrot/revision?rev=28290 % particle1 has joined #parrot % particle has left particle!~particle@c-98-232-7-104.hsd1.wa.comcast.net % cjfields has joined #parrot Sweet, I now have a place to live for another year. % bacek_ has joined #parrot g'day found a nice bridge, eh? % jhorwitz has left jhorwitz!~chatzilla@96.245.16.45 % cjfields has left cjfields!~cjfields@adsl-99-147-13-186.dsl.chmpil.sbcglobal.net Exactly! i think Exactly! is it not awesome? % davidfetter has joined #parrot % kid51 is now known as kid51_afk % kid51_afk has left kid51_afk!~jkeen@pool-68-237-17-14.ny325.east.verizon.net % davidfetter has left davidfetter!~davidfett@start.fetter.org % TiMBuS has joined #parrot % Ademan has joined #parrot purl, forget Exactly DietCoke: I forgot exactly % Limbic_Region has left Limbic_Region!~Limbic_Re@c-68-49-236-220.hsd1.md.comcast.net % Zaba_ has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % cognominal has left cognominal!~cognomina@82.67.232.89 r28291 | japhb++ | trunk: : [Bench] Add float4.pir struct packing benchmark : * Add float4.pir benchmark, testing four ways to pack a float4 structure: : + First element contains 4-element array of floats : + Named element contains 4-element array of floats : + Four numbered elements each contain one float : + Four named elements each contain one float diff: http://www.parrotvm.org/svn/parrot/revision?rev=28291 r28292 | japhb++ | trunk: : Setting metadata on float4.pir diff: http://www.parrotvm.org/svn/parrot/revision?rev=28292 % grim_fandango has joined #parrot % Whiteknight has left Whiteknight!~nobody@c-71-230-33-251.hsd1.pa.comcast.net r28293 | japhb++ | trunk: : [NEWS] OpenGL porting update; add float4.pir note diff: http://www.parrotvm.org/svn/parrot/revision?rev=28293 r28294 | pmichaud++ | trunk: : [rakudo]: : * Fix pod in Range.pir. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28294 r28295 | pmichaud++ | trunk: : [core]: : * Enable CCLASS_NEWLINE propery for unicode strings. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28295 % tetragon has left tetragon!~seneca@76-10-171-48.dsl.teksavvy.com r28296 | pmichaud++ | trunk: : [pct]: : * Add 'transcode' option to HLLCompiler to allow HLLs to : down-transcode program source into a representation that : allows quicker processing. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28296 r28297 | pmichaud++ | trunk: : [nqp]: : * NQP defaults to reading source as utf8/unicode, : but will attempt to transcode down to ascii for : faster processing. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28297 r28298 | pmichaud++ | trunk: : [rakudo]: : * Default reading program source as utf8. : * Use HLLCompiler's transcode option to try to down-transcode : the utf8 source to iso-8859-1 before compiling it. If that : succeeds, we get a speed win; if not, then at least the program : will still execute (modulo any exceptions due to unavailable ICU). diff: http://www.parrotvm.org/svn/parrot/revision?rev=28298 % gmansi has joined #parrot % grim_fandango has left grim_fandango!~matt@bas2-kingston08-1167934364.dsl.bell.ca r28299 | pmichaud++ | trunk: : [rakudo]: : * Allow uppercase hex characters in \x... escapes. : * S02-literals/hex_chars.t passes. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28299 % tetragon has joined #parrot r28300 | pmichaud++ | trunk: : [rakudo]: : * Mark S02-literals/hex_chars.t as #pure. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28300 % pmichaud has left pmichaud!pmichaud@feather.perl6.nl % pmichaud has joined #parrot hmm.. is it normal for 'token' type grammars to 'overshadow' each other? like say if you have {'i' | 'ia'} it doesnt ever match ia? token funccall { | 'i' {*} | 'ifte' {*} } never matches ifte. it does if i use 'rule' but then i capture the space after it. currently in PGE the longest pattern has to go first. when we implement longest-token-matching semantics on | then the order won't matter. ah can also get around it by forcing a word boundary token funccall { | 'i' >> {*} | 'ifte' >> {*} } that might be safer anyway, since you don't want input to be treated as a function call to 'i' but that gets ugly fast er, 'input' % particle1 is now known as particle % teknomunk has left teknomunk!~teknomunk@r74-195-239-111.stl1cmta01.stwrok.ok.dh.suddenlink.net its cool, 'input' gets matched as a user function it works as intended, i wont question it % Infinoid has left Infinoid!infinoid@quack.glines.org % Infinoid has joined #parrot r28301 | japhb++ | trunk: : [OpenGL] New example 'shapes.pir', testing GL 1.x / GLUT 3.x APIs : * New example file examples/opengl/shapes.pir : + Goal is to test "works everywhere" subset of GL/GLU/GLUT APIs : + Will try to hit as much of that ancient subset as reasonable : + First stub version (improved version of triangle.pir) diff: http://www.parrotvm.org/svn/parrot/revision?rev=28301 r28302 | japhb++ | trunk: : [OpenGL] Convert shapes.pir to new export API : * Convert examples/opengl/shapes.pir to use new OpenGL.pir : function export API diff: http://www.parrotvm.org/svn/parrot/revision?rev=28302 r28303 | japhb++ | trunk: : [OpenGL] Support visibility callback in shapes.pir : * First attempt at supporting visibility callback in examples/opengl/shapes.pir : + On Debian-testing/GNOME, only shows are hitting; hides are not diff: http://www.parrotvm.org/svn/parrot/revision?rev=28303 r28304 | japhb++ | trunk: : [OpenGL] shapes.pir: change floor; move triangle : * Change floor shape from square to annulus : * Move triangle from annulus center to its -Z area diff: http://www.parrotvm.org/svn/parrot/revision?rev=28304 r28305 | japhb++ | trunk: : [OpenGL] shapes.pir: Rotate view : * Rotate view (and pull back somewhat) : * Minor visual tweaks : * Add comments diff: http://www.parrotvm.org/svn/parrot/revision?rev=28305 r28306 | japhb++ | trunk: : [OpenGL] shapes.pir: Add teapot at +X : * Add lit cyan teapot at +X : * Position/rotate for nice reflections git svn dcommit in action! : * Lighting and material aren't right : (I'm not using the vector GL calls yet.) diff: http://www.parrotvm.org/svn/parrot/revision?rev=28306 r28307 | japhb++ | trunk: : [OpenGL] shapes.pir: Light teapot correctly : * Create global float4 structure definition : * Use it to pack structures for material color and light position diff: http://www.parrotvm.org/svn/parrot/revision?rev=28307 bacek: * r28308 | japhb++ | trunk: : [OpenGL] shapes.pir: faster float4 packing : * Switch to fastest float4 packing method from float4.pir benchmark diff: http://www.parrotvm.org/svn/parrot/revision?rev=28308 r28309 | japhb++ | trunk: : [OpenGL] shapes.pir: handle reshape; count frames : * Handle reshape events (as previously advertised) : * Count frames drawn (will be used for FPS calc eventually) er, bacek: :-) : * Clean up visibility callback diff: http://www.parrotvm.org/svn/parrot/revision?rev=28309 r28310 | japhb++ | trunk: : [OpenGL] shapes.pir: display FPS for keyboard quit : * Display total FPS when quitting by keyboard request : * Automagically ignore paused time for FPS calc diff: http://www.parrotvm.org/svn/parrot/revision?rev=28310 r28311 | japhb++ | trunk: : [OpenGL] shapes.pir: doc and MANIFEST updates : * Add shapes.pir to MANIFEST : * Mention shapes.pir in triangle.pir : * Mention examples in config/gen/opengl.pm docs : * Fix POD bugs in config/gen/opengl.pm :) diff: http://www.parrotvm.org/svn/parrot/revision?rev=28311 bacek: have OpenGL and GLUT on your box? japhb: never tried it Does Configure.pl say you have OpenGL? just a sec Determining if your platform supports OpenGL............yes, MacOSX_GLUT 5. So you should be able to do: ./parrot examples/opengl/triangle.pir and see a spinning triangle hey cool i can do that Ye! It works! And after updating to the most recent set of commits, try: ./parrot examples/opengl/shapes.pir (slightly more advanced, but still WIP) loaded a bit slow but cool freeglut (examples/opengl/shapes.pir): Unable to create direct context rendering for window 'Test' TiMBuS: which one was slow? Both? japhb: I have to git svn rebase to obtain second one :) bacek_: :-) just the second one % Infinoid has left Infinoid!infinoid@quack.glines.org * bacek_ running 'git stash; git svn rebase; git stash apply' Hmmm, I wonder why .... What does the second one report for FPS (when you exit using the escape or Q keys)? FPS: 424.587 lawl FPS: 96.5568 wheee ... might just be the xgl server * japhb in the middle at 335 or so i run compiz gotta have a desktop cube.. heh So for shapes.pir, do you both see a spinning RGB triangle and lit cyan teapot, reflected in a grey disc? (Just want to make sure the basics are working.) yep schweet I'm going to be adding more stuff to that one, but I figured there was enough to get people testing .... is this 'Unable to create direct context rendering' thing a problem? maybe thats related to compiz as well.. % Infinoid has joined #parrot I believe that's GLUT telling you that compiz has inserted itself in the middle of your OpenGL pipe, yes. Not something to worry about, it's just letting you know -- because if compiz *wasn't* there, it might indicate a problem with your GL drivers. % slightlyoff has left slightlyoff!~slightlyo@204.14.154.209 if i still had a radeon it wouldnt surprise me if it was a driver problem heh :-) % Psyche^ has joined #parrot r28312 | japhb++ | trunk: : [NEWS] Add NEWS item for shapes.pir : * Forgot to add shapes.pir to NEWS diff: http://www.parrotvm.org/svn/parrot/revision?rev=28312 r28313 | japhb++ | trunk: : [OpenGL] Set SVN props on shapes.pir diff: http://www.parrotvm.org/svn/parrot/revision?rev=28313 And with that, I'm taking a break. going to yapc::na? somebody said going to yapc::na was hachi, particle, Coke, cotto, DrForr, rjbs, confound, hobbs, Alias, jjore, pmichaud, allison, uri, chargrill, Abigail, stevan, waltman, PerlJam, lucs or theory or jhorwitz % uniejo has joined #parrot % Patterner has left Patterner!~Psyche@e177226138.adsl.alicedsl.de % Psyche^ is now known as Patterner % cotto_home has left cotto_home!~cotto@75-92-237-130.sea.clearwire-dns.net