Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-06-20

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:06 ssutch how does one apply a slurpy hash to another function? sub f(*%args) { other(*%args); } seems to puke
00:06 jnthn other(|%args)
00:06 BenGoldberg joined #perl6
00:07 ssutch what does |%args "mean"?
00:07 jnthn "flatten %args into the argument list"
00:08 ssutch cool, is it composable eg f(|%hash, |%hash2)
00:08 jnthn yes
00:08 ssutch sweet
00:08 ssutch thanks!
00:12 btyler joined #perl6
00:21 sorear jnthn: how do I test the chain op?
00:21 jnthn sorear: 1 < 2 < 3 uses it, I suspect
00:21 sorear in rakudo?
00:21 jnthn Yeah
00:22 jnthn Sleep time here...back tomorrow &
00:22 sorear do I have to make a blind change to qast compiler and the rebuild rakudo?
00:22 jnthn Or just write a QAST test to cover it in qast.t, if there ain't one already
00:23 jnthn sleep &
00:23 timotimo is the sequence operator specced to always give the  end-determination-block just one argument?
00:24 shachaf_ joined #perl6
00:25 shachaf_ joined #perl6
00:29 ssutch how does one compare the contents of an array to the contents of another array
00:29 timotimo i would like to be able to have a list 1, { generate-stuff } ... { $^a == $^b }, so that it would abort if it has the same element twice
00:29 ssutch r: say [1] eq [1]
00:29 camelia rakudo b2072f: OUTPUT«True␤»
00:29 ssutch it seems to work
00:29 timotimo r: say [1, 2, 3] ~~ [1, 2, 3]
00:29 camelia rakudo b2072f: OUTPUT«True␤»
00:29 timotimo r: say [1, 2, 3] Z== [1, 2, 3]
00:29 ssutch use ~~ instead of eq?
00:29 camelia rakudo b2072f: OUTPUT«True True True␤»
00:29 timotimo r: say [&&] [1, 2, 3] Z== [1, 2, 3]
00:29 camelia rakudo b2072f: OUTPUT«True␤»
00:29 timotimo gotta run to the tram
00:31 ssutch hm, i have two arrays of PB::Option objects which i need to compare
00:31 ssutch infix:<eq> doesnt seem to be called if i use [] eq []
00:32 ssutch nor with ~~
00:34 timotimo indeed
00:34 timotimo try Zeq
00:34 ssutch r: https://gist.github.com/samuraisam/5819387
00:34 camelia rakudo b2072f: OUTPUT«not ok 1 - option equality sanity test␤»
00:35 ssutch r: https://gist.github.com/samuraisam/5819387
00:35 camelia rakudo b2072f: OUTPUT«ok 1 - ␤»
00:37 timotimo i think Zeq is kind of cool
00:38 ssutch r: https://gist.github.com/samuraisam/5819387
00:38 camelia rakudo b2072f: OUTPUT«PB::Option<-1738647792> = PB::Option<-1734452444>␤True␤PB::Option<-1738647792> = PB::Option<-1734452444>␤ok 1 - option equality sanity test␤»
00:38 benabik joined #perl6
00:39 ssutch Zeq will yield a bool? or an array of bool?
00:39 ssutch r: say (["a"] Zeq ["b"])
00:39 camelia rakudo b2072f: OUTPUT«False␤»
00:39 ssutch r: say (["a", "c"] Zeq ["b", "c"])
00:39 camelia rakudo b2072f: OUTPUT«False True␤»
00:39 ssutch r: say [&&](["a", "c"] Zeq ["b", "c"])
00:39 camelia rakudo b2072f: OUTPUT«False␤»
00:41 timotimo array of bool, yes
00:41 timotimo it zips using the eq operstor
00:47 ssutch r: https://gist.github.com/samuraisam/5819387
00:47 camelia rakudo b2072f: OUTPUT«ok 1 - option equality sanity test␤not ok 2 - field equality with same options␤»
00:48 ssutch ok this is the problem im having ^ it's the same objects, but when accessed using the accessor, it doesn't work
00:48 timotimo cannot find a ticket for multiple argument closure for sequence endpoints
00:49 dalek nqp: 1855c19 | sorear++ | src/vm/jvm/ (2 files):
00:49 dalek nqp: Move "chain" to subcall_noa and nix unused callsites
00:49 dalek nqp: review: https://github.com/perl6/nqp/commit/1855c1969b
00:50 masak 'night, #perl6
00:50 ssutch any reason why Zeq would work normally, but then not work when looking at class attributes?
00:50 ssutch does it have anything to do with the type Array[PB::Option]?
00:51 ssutch in the latter case, the custom eq operator for PB::Option isn't being called at all
00:51 ssutch r: https://gist.github.com/samuraisam/5819387
00:51 camelia rakudo b2072f: OUTPUT«ok 1 - option equality sanity test␤not ok 2 - field equality with same options␤»
00:52 ssutch getting rid of the type doesn't make a diff
00:55 * timotimo looks
00:57 timotimo interesting
00:59 ssutch Zeq doesn't seem to work when comparing two @variables
00:59 ssutch r: https://gist.github.com/samuraisam/5819387
00:59 camelia rakudo b2072f: OUTPUT«ok 1 - option equality sanity test␤not ok 2 - option array @variable sanity test␤not ok 3 - option array .@attribute sanity test␤not ok 4 - field equality with same options␤»
00:59 ssutch ^ updated with test for just that in latest
00:59 timotimo the custom eq thing doesn't seem to be called; perhaps we have an array or arrays on each side or something
01:00 timotimo indeed.
01:00 timotimo when you wrote options=>[$fopt] you created a list with one element being an array with one element being $fopt
01:01 timotimo it should work without the []
01:01 timotimo (and indeed it does)
01:01 ssutch strange, why?
01:02 ssutch isnt [$var] a literal for [$var] ?
01:02 timotimo r: sub foo(@yarr) { say @yarr.perl }; foo([1, 2, 3]);
01:02 camelia rakudo b2072f: OUTPUT«Array.new(1, 2, 3)␤»
01:02 timotimo r: sub foo(@yarr) { say @yarr.perl }; foo((1, 2, 3));
01:02 camelia rakudo b2072f: OUTPUT«(1, 2, 3)␤»
01:02 sorear hmm.  I tried to run a nqp test using the eval-client.pl and got java.lang.OutOfMemoryError: PermGen space
01:03 timotimo r: class Bob { has @.foo; }; Bob.new(:foo(1, 2, 3)).perl.say;
01:03 camelia rakudo b2072f: OUTPUT«Bob.new(foo => Array.new(1, 2, 3))␤»
01:03 timotimo r: class Bob { has @.foo; }; Bob.new(:foo([1, 2, 3])).perl.say;
01:03 camelia rakudo b2072f: OUTPUT«Bob.new(foo => Array.new(1, 2, 3))␤»
01:03 timotimo hm, strange
01:03 timotimo here's a tip for your new method, btw
01:03 timotimo add ! to the end of your parameters
01:04 timotimo you don't have to check for definedness manually
01:04 ssutch ah!
01:04 ssutch cool
01:04 timotimo another possibility is to give them default values of die
01:04 timotimo r: class Bob { has $.dog = die "bob doesn't want to live without a dog!" }; Bob.new();
01:04 camelia rakudo b2072f: OUTPUT«bob doesn't want to live without a dog!␤  in method  at /tmp/aKIWbX11BT:1␤  in block  at src/gen/CORE.setting:798␤  in method BUILDALL at src/gen/CORE.setting:753␤  in method bless at src/gen/CORE.setting:743␤  in method new at src/gen/CORE.setting:728␤  in method …
01:04 timotimo r: class Bob { has $.dog = die "bob doesn't want to live without a dog!" }; Bob.new(:dog<woofy-fluffy>);
01:05 camelia rakudo b2072f:  ( no output )
01:05 ssutch cool, thanks
01:05 timotimo no problem :)
01:05 timotimo that doesn't explain the options array weirdness, though
01:05 ssutch is there a bug?
01:05 timotimo FWIW, i almost always write my lists with () instead of []
01:06 timotimo no, i just don't understand why it behaves that way
01:06 timotimo i mean, why did it put the array into the list as its only element
01:07 benabik r: say [1,2] Zeq [1,2]; my @a = [1,2]; my @b = [1,2]; say @a Zeq @b
01:07 camelia rakudo b2072f: OUTPUT«True True␤True␤»
01:07 timotimo maybe .clone is weird? i've never used it tbh
01:07 benabik r: say [1,2]; my @a = [1,2]; say @a
01:07 camelia rakudo b2072f: OUTPUT«1 2␤1 2␤»
01:08 benabik r: say [1,2].perl; my @a = [1,2]; say @a.perl
01:08 camelia rakudo b2072f: OUTPUT«[1, 2]␤Array.new([1, 2])␤»
01:08 ssutch so, .clone works if i use the :arg(a,b,c) syntax
01:08 ssutch but not if use arg=>[a,b,c]
01:08 timotimo r: class Bob { has @.foo; }; Bob.new(:foo([1, 2, 3])).clone(:foo([1, 2, 3])).perl.say;
01:08 camelia rakudo b2072f: OUTPUT«Bob.new(foo => Array.new([1, 2, 3]))␤»
01:08 timotimo oh, look!
01:08 ssutch yep
01:08 timotimo r: class Bob { has @.foo; }; Bob.new(:foo([1, 2, 3])).clone(:foo(1, 2, 3)).perl.say;
01:08 camelia rakudo b2072f: OUTPUT«Bob.new(foo => Array.new(1, 2, 3))␤»
01:08 timotimo clone doesn't seem to know about the listyness of @.options
01:09 Timbus joined #perl6
01:09 timotimo there's no test in the test suite that would cover it and there's no mention of how it should behave in the specs
01:10 timotimo so ... specbug?
01:10 ssutch perhaps
01:11 ssutch hard for me to say since i am new here as of a week ago
01:12 timotimo mhm
01:12 timotimo well, at least you know how to fix it
01:12 athomason joined #perl6
01:15 ssutch at least there's that
01:15 ssutch should i file a bug? maybe someone else who knows whats going on can?
01:16 timotimo https://github.com/perl6/specs/issues - i suggest to file a bug here
01:16 timotimo feel free to copypaste parts of the irclog, that's common practice in bug reports
01:16 timotimo at least for perl6 and friends
01:16 ssutch ok cool, thanks
01:19 ssutch r: https://gist.github.com/samuraisam/5819387
01:19 camelia rakudo b2072f: OUTPUT«ok 1 - option equality sanity test␤ok 2 - option array @variable sanity test␤not ok 3 - option array .@attribute sanity test (using => arg syntax)␤ok 4 - option array .@attribute sanity test (using :() arg syntax)␤not ok 5 - field equality with same options␤»…
01:21 timotimo can you try options=>($fopt), too? (although i think that would be a no-opt compared to options=>$fopt)
01:22 ssutch r: https://gist.github.com/samuraisam/5819387
01:23 camelia rakudo b2072f: OUTPUT«ok 1 - option equality sanity test␤ok 2 - option array @variable sanity test␤not ok 3 - option array .@attribute sanity test (using =>[] arg syntax)␤ok 4 - option array .@attribute sanity test (using :() arg syntax)␤ok 5 - option array .@attribute sanity test (usin…
01:23 ssutch ok: https://github.com/perl6/specs/issues/55
01:24 timotimo i suggest shortening the descriptions, so that they still fit in the output of the evalbot :D
01:25 ssutch hah
01:26 timotimo i recommend you quickly edit the gist link to also link directly at one of the revisions, or we start using a fork of that gist for future refinements
01:26 ssutch good point
01:27 dalek nqp: 5722e28 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (5 files):
01:27 dalek nqp: Class sharing!  For now this disables the caching in wvalResolve_noa and subcallResolve_noa entirely; we can be cleverer later.
01:27 dalek nqp: review: https://github.com/perl6/nqp/commit/5722e2853b
01:30 timotimo sorear: still going to limit yourself to startup time improvements for this compiler release?
01:34 sorear timotimo: ?
01:38 ssutch r: say [&&]([1] Zeq [])
01:38 camelia rakudo b2072f: OUTPUT«True␤»
01:39 ssutch one issue with this is that if the arrays are different size, it gives you an invalid answer
01:39 timotimo oh, right
01:40 timotimo just compare the two arrays with ==, too (== will coerce them to integers, meaning the size of the arrays)
01:43 ssutch wish there was a more elegant way to compare to arrays
01:43 ssutch ^ .oO()
01:48 sorear we seem to be creating *thousands* of __P6opaque__ classes
01:56 timotimo *cue sorear changing two lines, cutting the memory usage and startup time down to 1/20*
01:58 timotimo hm, it's kind of sad that perlito doesn't see very much activity
01:58 timotimo it'd be kind of cool to write javascript in perl6
01:59 sorear https://gist.github.com/sorear/5819756
01:59 timotimo what just happened
01:59 sorear it does leak memory, so before it can be used for spectesting I need to add something to restart the VM every 10-20 test files
02:00 sorear or fix the memory leaks, but I don't understand exactly what is leaking
02:01 sorear timotimo: it caches the loaded class files between runs
02:01 sorear so the second and subsequent runs are faster
02:03 bluescreen10 joined #perl6
02:03 timotimo ah, of course
02:03 timotimo i thought you did something magical in between those two calls
02:04 benabik He did.  He cached all the classes.  :-D
02:04 timotimo yeah, he did :)
02:05 sorear running hello world in a loop it gets to #26 before running out of memory
02:06 benabik Oh!  It's a client/server deal like Scala's fsc.
02:07 timotimo maybe it's related to back when calling say "hello world" twice in the repl would give a huge error message about a comp unit alreay existing?
02:16 sorear don't think so
02:17 timotimo okay, i don't think i'll be of much help, so i'll get some sleep instead :)
02:17 timotimo good luck!
02:41 btyler joined #perl6
02:41 atroxaper joined #perl6
02:42 cooper joined #perl6
02:45 labster So I broke the build on Windows?  great.
02:49 colomon just in time for the release!
02:49 labster I've joined an elite club, it seems
02:50 colomon ;)
02:50 labster I've been thinking about not using basename/directory/volume as attributes, but instead just having a $!path and base.../d/v methods.  Except for a few path manipulation things, most methods seem to want the entire thing as a string.
02:52 * colomon nods
02:52 twigel r: say ["a", "b"] eqv ["a", "b"]
02:52 camelia rakudo b2072f: OUTPUT«True␤»
02:53 labster If it has a side effect of fixing jnthn's build, all the better.
02:53 twigel r: say ["a", "b"] eqv ["a", "c"]
02:53 camelia rakudo b2072f: OUTPUT«False␤»
02:53 twigel r: say ["a", "b"] eqv ["a", "b", "c"]
02:53 camelia rakudo b2072f: OUTPUT«False␤»
02:55 sorear looks like I can blame most of the memory leakage on the fact that java.lang.invoke.MethodType uses an intern table.
03:01 snoopy joined #perl6
03:01 skids joined #perl6
03:06 SamuraiJack joined #perl6
03:06 labster .oO (at least the interns are unpaid)
03:08 sorear or hash consing, if you prefer that term
03:30 dalek nqp: 06dd701 | sorear++ | src/vm/jvm/QAST/Compiler.nqp:
03:30 dalek nqp: Compile methods as static methods taking CompilationUnit rather than instance
03:30 dalek nqp:
03:30 dalek nqp: This means that all methods for which MethodHandles are generated have types
03:30 dalek nqp: that do not mention dynamically generated types, so the intern table in
03:30 dalek nqp: MethodType does not indefinitely hold references to our classes (and
03:30 dalek nqp: indirectly, GlobalContexts and everything in them).
03:30 dalek nqp: review: https://github.com/perl6/nqp/commit/06dd701998
03:32 sorear correction: a 9-line patch which all but eliminates the memory leaks
03:33 sorear it might still be leaking some memory, but it's no longer leaking *everything*
03:34 xenoterracide|2 joined #perl6
03:38 sorear more than half of the non-amortizable startup time is in P6opaque class generation
03:39 diakopter emitting them?
03:39 sorear diakopter: yes
03:39 diakopter or jvm loading them?
03:39 diakopter oh
03:40 sorear I'm considering those together
03:40 sorear anyway, right now P6opaque generates a fresh java-class for every p6-class it sees
03:41 sorear but many of the java-classes are identical, because they mostly only depend on the number and native-type of attributes
03:41 sorear I'm going to modify p6opaque to recognize when it's emitting the same class twice, and short the whole process
03:42 sorear anyways, I just ran 'hello world' 500 times in the same VM without a problem
03:43 sorear versus 26 times before OOME before the last patch
03:43 diakopter q
03:44 sorear should have no trouble running all of roast (except the is_run ones of course) in a single VM now
03:47 zby_home joined #perl6
03:49 dmol joined #perl6
03:50 ldthien0 joined #perl6
03:55 diakopter sorear++
03:58 diakopter sorear: how long does the 500x take
04:06 sorear diakopter: 1-1.5 sec per call
04:06 sorear I didn't time the whole thing
04:06 diakopter whaaaaaaaa
04:07 sorear is that bad or good
04:07 sorear I mean it's better than before
04:07 sorear but is that onamotopoetic exclamation (positive) or crying (negative)?
04:07 diakopter that's surprise at so long; not necessarily bad though
04:08 diakopter just shrprising
04:08 sorear yeah, well, it's about to get muchf aster I thing :D
04:08 sorear rak-parrot is 0.6s on this machine (no caching, of course)
04:26 eternaleye joined #perl6
04:27 Psyche^ joined #perl6
04:29 sorear https://gist.github.com/sorear/5820307
04:34 sorear not quite what I expected
04:37 ldthien0 joined #perl6
04:45 sorear why is rakudo deserializing about 200 subclasses of Routine?
04:45 sorear traits, maybe
04:54 birdwindupbird joined #perl6
05:00 arlinius joined #perl6
05:09 ssutch r: ["a"] eqv ["a"]
05:09 camelia rakudo b2072f:  ( no output )
05:12 ssutch r: say ["a"] eqv ["a"]
05:12 camelia rakudo b2072f: OUTPUT«True␤»
05:12 ssutch r: say ["a"] eqv ["a", "a"]
05:12 camelia rakudo b2072f: OUTPUT«False␤»
05:12 ssutch sick, that's way better than Zeq
05:12 ssutch for my purposes, anyway
05:16 ssutch nooope, it doesn't call the custom eq i have for the contained classes
05:19 sorear diakopter: just ran 100 hello-worlds in a total of 98 seconds
05:20 dalek nqp: f96ea23 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/ (6 files):
05:20 dalek nqp: Add caching of generated P6opaque classes by "signature".
05:20 dalek nqp: review: https://github.com/perl6/nqp/commit/f96ea23a89
05:23 dalek nqp: 0b1ac5b | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6Opaque.java:
05:23 dalek nqp: It works a little better with soft references
05:23 dalek nqp: review: https://github.com/perl6/nqp/commit/0b1ac5bedb
05:23 ssutch r: class Bar { has $.bar; }; multi infix:<eq> (Bar $a, Bar $b) { say "i am being called"; false; }; say [Bar.new(bar=>"x")] eqv [Bar.new(bar=>"x")];
05:23 camelia rakudo b2072f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared routine:â�¤    false used at line 1â�¤â�¤Â»
05:23 ssutch r: class Bar { has $.bar; }; multi infix:<eq> (Bar $a, Bar $b) { say "i am being called"; False; }; say [Bar.new(bar=>"x")] eqv [Bar.new(bar=>"x")];
05:23 camelia rakudo b2072f: OUTPUT«False␤»
05:25 ssutch :( eqv does not call the custom eq op inside the list - should it?
05:25 ssutch r: class Bar { has $.bar; }; multi infix:<eq> (Bar $a, Bar $b) { say "i am being called"; True; }; say [Bar.new(bar=>"x")] eqv [Bar.new(bar=>"x")];
05:25 camelia rakudo b2072f: OUTPUT«False␤»
05:33 fgomez joined #perl6
05:35 dalek nqp: d88633c | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/CompilationUnit.java:
05:35 dalek nqp: Annotation fetching is more expensive then it looks, don't do it twice.
05:35 dalek nqp: review: https://github.com/perl6/nqp/commit/d88633c441
05:38 zakalwe joined #perl6
05:38 aindilis joined #perl6
05:53 SmokeMachine joined #perl6
05:54 labster writing $!path.perl is causing the rakudo build to segfault.  what the heck.
06:02 preflex joined #perl6
06:08 FROGGS joined #perl6
06:11 timotimo labster: it may have to do with the Cool.path method i invented some time ago
06:11 timotimo it could perhaps infiniloop
06:11 labster it shouldn't.  has Str $!path;
06:13 timotimo ah, didn't see the !
06:14 dayangkun joined #perl6
06:22 raiph joined #perl6
06:27 dalek nqp: 81970b3 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/ (7 files):
06:27 dalek nqp: Generate specialized deserialization methods for P6Opaque instead of using a reflective deserializer
06:27 dalek nqp: review: https://github.com/perl6/nqp/commit/81970b396d
06:29 sorear 1. cold start is now nearly 6 seconds
06:29 sorear 2. amortized run of 100 hello worlds in 64 seconds, same as a (nonamortized, so not a fair comparison) run of 100 with rakudo-parrot
06:29 sorear 3. that patch worked on the first try
06:30 ssutch uh oh: Method 'has_compile_time_value' not found for invocant of class 'NQPMu'
06:30 ssutch running tests
06:32 ssutch resulting from running this: :type:('')
06:32 ssutch rather, from running this: (try PB::Field.new(:name(''), :label(''), :type:(''), :number(1))
06:34 ssutch rn: sub foo(*%_) { say %_.perl }; foo(:a(''), :b:(''), :c(''));
06:34 camelia rakudo b2072f: OUTPUT«===SORRY!===␤Method 'has_compile_time_value' not found for invocant of class 'NQPMu'␤»
06:34 camelia ..niecza v24-79-gcb6f20b: OUTPUT«[31m===[0mSORRY![31m===[0m��Action method fakesignature not yet implemented at /tmp/wTESN6g4ig line 1:�------> [32m*%_) { say %_.perl }; foo(:a(''), :b:(''[33m�[31m), :c(''));[0m��Multi colonpair syntax not yet understood at /tmp/wTESN6g4ig line 1:…
06:34 FROGGS ssutch: use :type('') rather then :type:('') ?
06:34 ssutch yes, indeed
06:34 ssutch there should probably be a different error message
06:35 FROGGS maybe, yeah
06:36 ssutch or is it something that isn't yet implemented
06:37 FROGGS it might even be unspecced atm, see niecza's message
06:38 FROGGS std: :a:b() # std likes it
06:38 camelia std d4cc5ab: OUTPUT«ok 00:00 42m␤»
06:49 kaleem joined #perl6
06:53 dalek nqp: 4596d05 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/ (5 files):
06:53 dalek nqp: Remove or synchronize remaining statics
06:53 dalek nqp: review: https://github.com/perl6/nqp/commit/4596d052a0
06:53 domidumont joined #perl6
06:54 sorear it's now possible to use prove -j4 together with VM sharing
06:54 sorear 43 second nqp test run
07:03 SmokeMachine joined #perl6
07:05 labster sorear++
07:05 ssutch nice
07:06 brrt joined #perl6
07:09 domidumont joined #perl6
07:10 labster I figured out what was causing my segfaults -- CORE.setting doesn't like to have final lines in a method with no semicolon at the end and private attributes.
07:27 sqirrel joined #perl6
07:38 moritz wut.
07:38 brrt left #perl6
07:41 labster haha, I know, but adding semicolons seemed to help.
07:42 labster I am not going to look this gift horse in the mouth.
07:44 FROGGS joined #perl6
07:46 ssutch r: module Foo::Bar { sub Lulz() is export { say 'wut'; } } Foo::Bar::Lulz();
07:46 camelia rakudo b2072f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at /tmp/mSiPzakllo:1â�¤------> [32m{ sub Lulz() is export { say 'wut'; } } [33mâ��[31mFoo::Bar::Lulz();[0mâ�¤    expecting any of:â�¤        postfixâ�¤        statement endâ�¤        statement modifierâ�¤        statement mod…
07:46 ssutch r: module Foo::Bar { sub Lulz() is export { say 'wut'; } }; Foo::Bar::Lulz();
07:46 camelia rakudo b2072f: OUTPUT«Could not find symbol '&Lulz'␤  in method <anon> at src/gen/CORE.setting:10166␤  in any  at src/gen/Metamodel.nqp:2504␤  in any find_method_fallback at src/gen/Metamodel.nqp:2492␤  in any find_method at src/gen/Metamodel.nqp:939␤  in block  at /tmp/Kh846QBFN4:1␤␤»…
07:46 ssutch why can't it see Lulz?
07:47 moritz because it's lexical
07:47 moritz subs are lexical by default
07:47 moritz and you don't import it either
07:47 FROGGS r: module Foo::Bar { our sub Lulz() { say 'wut'; } }; Foo::Bar::Lulz();
07:47 camelia rakudo b2072f: OUTPUT«wut␤»
07:47 moritz r: module Foo::Bar { sub Lulz() is export { say 'wut'; } }; import Foo::Bar; LuLz
07:47 camelia rakudo b2072f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared name:â�¤    LuLz used at line 1â�¤â�¤Â»
07:47 moritz r: module Foo::Bar { sub Lulz() is export { say 'wut'; } }; import Foo::Bar; Lulz
07:47 camelia rakudo b2072f: OUTPUT«wut␤»
07:48 ssutch ohh, okay
07:48 ssutch so i can get at it with `our`, but otherwise need to import it
08:11 ssutch is it possible to spread a module across multiple files, eg PB/Model/Option.pm PB/Model/Message.pm - if i want both of those to be in the PB::Model module?
08:12 FROGGS you cant spread *one* module between files, but you can put submodules into their own files
08:12 ssutch so i get PB::Model::Message and PB::Model::Option
08:13 FROGGS yeah, these two can/should be in separate files
08:14 ssutch that's fine, but then there is a class in those files named Message and Option respectively, so the final ident would be something like PB::Model::Message::Message
08:14 ssutch which is undesirable
08:15 FROGGS hmm?
08:16 labster file names aren't all that related to class names.
08:16 labster The file names are just where to look in a use statement.
08:16 FROGGS if you have a Foo.pm containing class Foo, then you make a file called Foo/Bar.pm containing class Foo::Bar
08:17 FROGGS right, and a directoryname does not imply a namespace
08:17 ssutch if i have a file called Model.pm, containing module Model, can i then make a file called Model/Bar.pm containing class Model::Bar?
08:18 ssutch my goal is to split up a very large Model.pm file into multiple files
08:18 lizmat all of this is related to my proposal for adding an 'unit' statement...
08:18 FROGGS ssutch: yes, you can
08:18 FROGGS lizmat: I think that is too much for him right now
08:18 lizmat ssutch: as long as each file contains a different class/module, you can
08:19 lizmat FROGGS: perhaps, but people need to realize that -use- only loads a file, and that what's in it determines what modules actually get loaded
08:19 arlinius joined #perl6
08:19 lizmat at least at the current state of -use-
08:20 * lizmat hopes TimToady's brane will be able to think about this some more today
08:22 lizmat I can also see a situation where -use- will actually specify a package like statement to be loaded, and have the system figure out which file to load
08:22 lizmat and then load all modules in that file along with it
08:22 lizmat but I think in the long run, this will cause more confusion
08:23 ssutch something like this: https://gist.github.com/samuraisam/5821113
08:24 lizmat ssutch: that won't work like that
08:25 ssutch lizmat: is there a way to accomplish the same sort of thing? it seems like a self-explanatory approach
08:26 ssutch (at least, coming from a java/go/etc understanding of packages and paths)
08:26 lizmat class PM::Model::Option {} in PM/Model/Option.pm
08:26 lizmat leave out the outer module PM::Model
08:27 lizmat class PM::Model::Message {} in PM/Model/Message.pm
08:27 lizmat leave out the outer module PM::Model
08:27 FROGGS lizmat: true, but telling someone who has problems understanding how namespaces work what the future plans are might be a but confusing.. though I appreciate your plans af course
08:28 ssutch *how namespaces work in perl 6 :)
08:28 FROGGS well, we are in #perl6, no? :o)
08:29 ssutch true
08:30 FROGGS I'd say it works pretty much like in Perl 5 atm at a first glance... it differs in details and will change in (near) future
08:30 lizmat it will be brought up to spec in the near future  :-)
08:30 ssutch is it possible to import PB::Model so I can refer to bare Option?
08:30 lizmat and maybe the spec will change  :-)
08:32 FROGGS ssutch: if you have a class claedd PB::Module::Option then you will never have a bare Option
08:32 FROGGS maybe I dont understand the question
08:32 ssutch yeah you do, that's what i thought
08:33 FROGGS if you have a nested class Option in the PB::Module class, the you maybe can do that
08:34 dakkar joined #perl6
08:34 domidumont joined #perl6
08:45 fhelmberger joined #perl6
08:50 * jnthn yawns
08:50 sorear o/ jnthn
08:51 sorear jnthn: I meant to ask you yesterday: *how* would you pass a bit of information like "jar or class with embedded stuff" into the codegen?
08:54 dalek rakudo/nom: 3c9027a | (Brent Laabs)++ | src/core/IO.pm:
08:54 dalek rakudo/nom: Change IO::Path to use full $!path attribute internally
08:54 dalek rakudo/nom:  instead of basename/directory/volume
08:54 dalek rakudo/nom: Should be faster in most cases and also hopefully fix the build on Windows.
08:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3c9027ad2a
08:54 dalek rakudo/nom: 13a9304 | (Brent Laabs)++ | src/core/IO.pm:
08:54 dalek rakudo/nom: make IO::Path.child a little more efficient with $!path now
08:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/13a9304d82
08:55 jnthn sorear: I guess it'd be a different --target, which means it's available in the set of adverbs passed to each stage in a HLL::Compiler, or available through %?COMPILING I guess.
08:56 sorear jnthn: I'm not sure how a different target would work.  Don't the targets have to be totally ordered?
08:58 jnthn sorear: Yeah, though classfile could always say "oh, you want a JAR in the end" or so
08:59 jnthn (And then do something different)
08:59 FROGGS one of the two must be the default
08:59 FROGGS and if the end-target is another, then the path might be another one
08:59 FROGGS s/path/steps/
08:59 sorear does jar come before or after jvm though?
08:59 sorear FROGGS: the default is "jvm"
09:00 jnthn before, I'd expect. "jvm" means "run stuff"
09:00 FROGGS I'd expect to pass my desired path/steps to Configure.pl
09:00 jnthn And if we're going to do that, we don't serialize.
09:01 jnthn So we have no serialization blob or need for a JAR to store it in.
09:01 sorear so classfile->jar->jvm, and jar is a noop unless target eq 'jar' ?
09:02 jnthn That feels about right to me.
09:02 jnthn Though I didn't do any coffee yet today :)
09:03 sorear jnthn: After we de-base64-string the serialization data, is there any reason to keep the string heap separate?
09:05 jnthn sorear: no
09:06 jnthn Other than many of those strings may get mentions as literals elsewhere too
09:06 jnthn So we may be duplicating them
09:07 jnthn sorear++ for the P6opaque cache :)
09:07 sorear I'd summarize the things I did today, but you appear to be reading the commit log
09:07 sorear Let me know if my changes to REPR are insane :)
09:07 jnthn yes :)
09:08 jnthn I'd not thought about exactly how to factor it, but it looks sane.
09:09 sorear also, inline deserialization is a pretty big win
09:10 jnthn Avoiding the reflection?
09:10 jnthn if (!tc.curFrame.codeRef.staticInfo.compUnit.shared)
09:10 jnthn When is "shared" true?
09:11 jnthn When in eval server mode?
09:11 sorear Yes to both
09:11 snearch joined #perl6
09:11 sorear only to things loaded by loadbytecode, though
09:12 sorear things compiled and run are still unshared
09:12 jnthn OK, so the indy stuff is only disabled for that case, not all
09:12 jnthn When I read the commit message I worried it was "all the time"
09:12 jnthn s/the indy stufff/those particular indy optimizations/
09:12 sorear Ah, no. Sorry about that.
09:13 * sorear is pondering ways to make the code generated for spills less blindingly stupid
09:15 jnthn labster: Sadly, didn't fix the Windows build :(
09:15 fhelmberger_ joined #perl6
09:15 labster Oh well, it was a still a good idea.
09:16 labster I've been thinking about changing it for weeks.
09:16 labster Maybe remove the part in terms.pm where $*CWD and $*TMPDIR are made into paths?
09:17 jnthn Why do we do things like:
09:17 jnthn my $slash    = regex {  <[\/ \\]> }
09:18 jnthn And call them with <$slash>
09:18 jnthn Rather than my regex slash {  <[\/ \\]> }
09:18 jnthn And call them with <&slash>
09:18 dalek roast: bad1a99 | (Brent Laabs)++ | S32-io/io-path- (2 files):
09:18 dalek roast: io-path no longer magically changes paths on you
09:18 dalek roast: review: https://github.com/perl6/roast/commit/bad1a99f8c
09:18 jnthn ?
09:18 labster probably because I haven't looked through S05 in enough detail :/
09:19 ssutch going to bed, thanks for all the help everyone!
09:20 labster I had a great deal of difficulty getting those to compile at all, so I generally left it as it was when I first got it to run properly.
09:21 labster g'night ssutch
09:21 sorear hey, module precompilation Just Works on the JVM
09:21 jnthn \o/
09:21 jnthn For Rakudo, you mean? :)
09:22 sorear yes
09:22 jnthn That's *nice*. I mean, it uses the same stuff that NQP module pre-comp does. But it's really nice it works right off. :)
09:23 * sorear is doing makefile hacking now trying to add test and spectest targets to rakudo-jvm :D
09:26 jnthn ooh, yay
09:26 * jnthn almost did test one last night :)
09:26 jnthn labster: ah, it doesn't work that way after all
09:26 * sorear isn't so sure about spectest_smolder
09:29 jnthn sorear: I'll return to working on the 10-regex.t once I get this Win32 startup hang fixed on Rakudo Parrot
09:29 jnthn sorear: Need to make sure this is nailed ahead of the release...
09:33 jnthn oh ffs
09:34 sorear jnthn: if we're dynamically creating several alternate runners (perl6-jdb-server, perl6-eval-sever, perl6-jdb-cleint), would it be reasonable to put them in a tools/jvm/ folder?
09:34 jnthn Adding an explicit transcode of what cwd returns to utf8 makes the problem go away oO
09:34 * sorear wonders if the NQP tools/jvm/eval-client.pl should be installed somehow
09:35 jnthn It's too bad it's a .pl rather than a .class...then the only thing we'd need Perl 5 for was build...
09:35 jnthn Though that can be a future thing... :)
09:37 nwc10 it's now a low-hanging fruit for an interested and motivated person?
09:37 jnthn Yes ;)
09:37 jnthn Well
09:37 jnthn I guess
09:37 jnthn :)
09:38 labster well, it's late enough for me.  Have a good night, all.
09:38 jnthn 'night, labster
09:38 sorear P5 was picked because it starts a bit faster, and this is going to start 712 times per spectest run
09:38 jnthn ah, OK :)
09:39 jnthn Well, test harness is P5 too so...yeah, no point not using a P5 impl here
09:41 xinming joined #perl6
09:43 ztt_ joined #perl6
09:45 * FROGGS .oO( "use v5;" *cough* )
09:46 nwc10 is v5 good enough yet to run Test::Harness?
09:46 nwc10 that would be an interesting goal
09:46 dalek roast: 1f38222 | sorear++ | fudge:
09:46 dalek roast: Extend fudge to allow an implementation "rakudo.jvm" that matches #?rakudo or #?rakudo.jvm
09:46 dalek roast: review: https://github.com/perl6/roast/commit/1f38222088
09:49 sorear jnthn: this does raise a question... HOW is the harness supposed to find $NQP/tools/jvm/eval-client.pl ?
09:50 sorear Somehow I think that adding an --nqp-prefix option to the harness and including --nqp-prefix "$(NQP_PREFIX)" in the makefile would not be the best way
09:50 jnthn sorear: Well, it'd have to be installed
09:51 jnthn So it should find it in the same place as the nqp that it was configured to use, I guess...
09:51 sorear jnthn: how does the harness learn the install dir?
09:51 jnthn Ah. Hm.
09:52 jnthn It's easy enough to get it into the makefile but how to cleanly give it to the harness is less clear...
09:52 fhelmberger joined #perl6
09:52 jnthn I mean, the "easy way out" is just to have the harness take an argument.
09:53 sorear probably need to turn the install dir into something with bin, lib, etc at some point
09:55 jnthn Yeah, the install stuff is just "make something work"
09:55 jnthn And hope somebody who knows how install-y stuff should look will come along to do it :)
09:56 mathw o/
10:01 * sorear cheats.
10:03 [particle] joined #perl6
10:04 zakalwe joined #perl6
10:05 TimToady did anyone ever point out that Zeq is unlikely to be what you want if the arrays are of unequal length?
10:06 daxim joined #perl6
10:06 TimToady timotimo: ^^
10:06 [particle]1 joined #perl6
10:07 FROGGS what do I want in this case?
10:07 TimToady eqv will compare two arrays
10:09 FROGGS nr: say (1, 2, 3, 4) Zeq (1, 2, 3) # it could fail with ENOTOFTHESAMELENGTH or so
10:09 camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«True True True␤»
10:10 TimToady that would be counterproductive to its typical use of matching a finite list against an infinite list
10:10 FROGGS hmmm, yeah
10:11 TimToady if you want an exception on length mismatch, use »eq« instead
10:12 FROGGS so it more a matter of putting a note to the spec/doc for the Zop in general
10:13 TimToady huh, I guess it doesn't mention it
10:15 FROGGS I guess I get used to all these handy ops when I actually start hacking P6 :o)
10:16 FROGGS I already got some of them though, and I really love the way they can be combined
10:17 FROGGS but they dont come to my mind immediately when solving a new problem
10:17 FROGGS (yet)
10:18 dalek rakudo/nom: 0f41b50 | jnthn++ | src/core/Cursor.pm:
10:18 dalek rakudo/nom: Iterate a portable way, not Parrot-dependent one.
10:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0f41b5049c
10:18 dalek rakudo/nom: a6e3bac | jnthn++ | src/core/IO.pm:
10:18 dalek rakudo/nom: Merge branch 'nom' of github.com:rakudo/rakudo into nom
10:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a6e3bacc3b
10:18 dalek rakudo/nom: 37d670b | jnthn++ | src/core/IO/Spec/Win32.pm:
10:18 dalek rakudo/nom: Don't cannonicalize Win32 tmpdir path for now.
10:18 dalek rakudo/nom:
10:18 dalek rakudo/nom: Avoids one place we get a startup hang.
10:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/37d670b8d6
10:18 dalek rakudo/nom: 7f360f4 | jnthn++ | src/core/terms.pm:
10:18 dalek rakudo/nom: Work around cwd encoding issue.
10:18 dalek rakudo/nom:
10:18 dalek rakudo/nom: This caused a hang in .path on startup on Win32. This "fixes" things.
10:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7f360f4afa
10:18 FROGGS jnthn: so you fixed the longer build/parse time you mentioned?
10:19 jnthn FROGGS: No, I fixed Rakudo Parrot hanging at startup on Windows :/
10:19 FROGGS ahh
10:19 jnthn The thing I did to un-hang it is too depressing for me to actually go and look for the real problem.
10:20 dalek specs: a559211 | larry++ | S03-operators.pod:
10:20 dalek specs: Mention that Zop stops after the shorter list
10:20 dalek specs: review: https://github.com/perl6/specs/commit/a559211023
10:23 FROGGS jnthn: I totally understand that
10:24 TimToady okay, yes, ssutch noticed you can't use Zeq for comparing arrays
10:26 moritz that's why eqv and ~~ exist
10:26 alanhaggai joined #perl6
10:28 TimToady but I think ssutch++ needs zipwith(&infix:<eq>,...) to use the custom eq
10:29 TimToady you'd think it would use the local one though
10:29 TimToady oh, it was eqv that wasn't using his custom op, duh
10:29 jnthn I woulda thought it does too, since it's basically just HOP
10:29 TimToady so we need an eqvwith :)
10:30 TimToady well, a type with its own eqv is probably the best solution
10:31 * TimToady still feels like his brane is in sideways
10:32 mtk joined #perl6
10:35 dalek rakudo/nom: c6980c9 | jnthn++ | src/core/Cursor.pm:
10:35 dalek rakudo/nom: Fix match construction on JVM.
10:35 dalek rakudo/nom:
10:35 dalek rakudo/nom: Gets 10-regex.t to pass.
10:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c6980c9d90
10:39 sorear wtf
10:39 sorear use v6 is broken with the eval server
10:42 masak good afty, #perl6
10:42 moritz note that p6eval uses RESTRICTED.setting
10:42 moritz \o masak, *
10:42 moritz speaking of which: where is p6eval?
10:42 masak camelia: oh hai
10:42 * masak points to camelia
10:43 jnthn sorear: yesterday I said 99-basic.t fails on Windows; if I run it with -Ilib it works. So I guess that is fixed once we start pre-compiling Test.pm :)
10:45 jnthn sorear: Appears 02-rakudo/dump.t is now passing also.
10:45 moritz masak: thanks, momentary laps of reason
10:45 jnthn sorear: So we're down to just two sanity tests with failures :)
10:48 crab2313 joined #perl6
10:49 sorear use v6 is hitting EXHAUST. :/
10:49 jnthn sorear: I wonder if it's the same issue at the bottom of 01-literals.t
10:49 jnthn sorear: Which is also doing that.
10:50 FROGGS jnthn: can imagine why the capture-key is missing? https://gist.github.com/FROGGS/11c1f734a85186d919d4 (I believe in your jedi-force)
10:51 jnthn FROGGS: What is m/.../ implemented as in v5?
10:51 sorear jnthn: but why does it only do it with the eval server
10:51 jnthn sorear: That...is a mystery
10:51 FROGGS jnthn: exactly like in rakudo, <sym> <quibble(%*LANG<P5Regex>)>
10:51 masak sorear, jnthn: are you going to suggest that the release manager cut a JVM release tonight -- or is that still one month too early?
10:52 * sorear tries enabling shared mode unconditionally
10:52 FROGGS jnthn: and that P5Regex is identical to the P5-mode of perl6
10:52 jnthn masak: Whoever cuts a Rakudo release will automatically be cutting a release with JVM support
10:52 jnthn masak: Because the work is in the "nom" branch.
10:52 sorear YEAH!  IT DIES!
10:52 FROGGS jnthn: and the ast is the same too
10:52 sorear so, it must be the subtle differences in subcall semantics that do it
10:53 jnthn FROGGS: Do you have a custom Match or Cursor class in P5 land?
10:53 FROGGS jnthn: I just can guess that something with QAST::SpecialArg (:named) is wrong...
10:53 FROGGS jnthn: I'm augmenting Match to have a P5Str method
10:54 FROGGS but this method isnt used in a 6.0.0 block
10:54 jnthn FROGGS: Well, maybe but that feels weird
10:54 masak jnthn: I figured a "JVM release" would be more than a "release with JVM support", though.
10:54 jnthn FROGGS: I suggest trying to work out if it's a broken Match object, or broken Match object printing.
10:55 jnthn masak: The compiler release announcement can claim basic/partial JVM support. But not the Star one.
10:55 masak jnthn: so, not a separate JVM release tarball this month.
10:55 FROGGS jnthn: it must be a broken match object because I cant use $1, $2 vars... (and yes, it will return $1 for $0)
10:56 jnthn masak: There will never be a separate JVM release tarball.
10:56 masak oh!
10:56 masak I assumed that there would be.
10:56 jnthn masak: There will be different Star binary releases, no doubt.
10:56 jnthn masak: No, Rakudo is Rakudo. It's one compiler that supports multiple VMs. :)
10:57 jnthn For a source build, you get a choice.
10:57 jnthn Because for Rakudo, at lesat 90% of the source is exactly the same. :)
10:58 atroxaper left #perl6
10:58 masak ok, gotcha :)
10:59 nwc10 is the compiler release just a source tarball? ie, is it only Star which gets MSI installers?
11:00 jnthn nwc10: yes
11:01 jnthn Also the compiler releases are deemphasized compared to the Star ones.
11:01 nwc10 yes. so my question effectively is "who actually installs the compiler release?" My assumption being that people are either building from git, or installing Star
11:02 masak r: class C { has $.x }; multi infix:<eqv>(C $l, C $r) { $l.x eqv $r.x }; say C.new(:x[1, 2, 3]) eqv C.new(:x[1, 2, 3])
11:02 camelia rakudo b2072f: OUTPUT«True␤»
11:02 masak \o/
11:02 masak <TimToady> well, a type with its own eqv is probably the best solution
11:02 masak looks like :)
11:02 jnthn nwc10: The compiler releases are more aimed at those producing distributions.
11:05 FROGGS jnthn: okay, it is not the augmenting, I comment that out (all of it)
11:05 * sorear can't help but wonder if the EXHAUST failing is related to the fact that the compiler is rebinding subs, and shared mode is known to be weird about that
11:05 nwc10 jnthn: aha thanks
11:06 FROGGS I wonder where in nqp it counts the caps
11:07 jnthn FROGGS: Well, try calling .CURSOR.CAPHASH or so on the Match object. It's what matches are made of
11:07 sorear "6".Numeric lives; my $x = "6"; $x.Numeric dies
11:08 moritz missing decontainerization?
11:08 FROGGS jnthn: same like when callling.caps, here for v5: ("" => Match.new(orig => "10", from => 0, to => 2, ast => Any, list => ().list, hash => EnumMap.new())).hash
11:08 colomon hmm... related to the $x == $x bug?
11:09 sorear https://gist.github.com/sorear/5821914
11:10 woolfy left #perl6
11:10 sorear The containers don't actually matter, it always goes through the same sequence of error messages.
11:10 woolfy joined #perl6
11:11 jnthn wow
11:11 jnthn and wtf
11:12 dalek nqp: 2f67595 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
11:12 dalek nqp: Implement string bitwise ops.
11:12 dalek nqp: review: https://github.com/perl6/nqp/commit/2f67595436
11:17 mls Hi jnthn!
11:18 jnthn o/ mls
11:18 mls Did you happen to stumble over my comments on auto-close when backlogging?
11:18 jnthn mls: Not yet...which channel were they in?
11:18 mls #perl6, 2013-06-13
11:18 mls I can copy&paste them if you like
11:19 JimmyZ joined #perl6
11:19 jnthn just foudn it in the log, thanks!
11:20 mls It's something I wanted to push into parrot a long time ago.
11:21 mls Now we have sixparrot and the other VMs, and it may be a bit more difficult to make that change
11:21 mls So I'm at a loss what to do
11:22 sorear looks like Numeric is... kind of a stress test for a lot of stuf
11:23 sorear jnthn: What's a compiler stub?
11:23 JimmyZ jnthn: welcome back
11:23 yoleaux 19 Jun 2013 15:47Z <diakopter> JimmyZ: you can .ask and .tell me things via this
11:23 FROGGS mls: I'd think one can do whet one wants with parrot, because we can stick to a given version when we need time to update other backends... no?
11:23 FROGGS what*
11:24 mls Well, the patch is a somewhat incompatible change, so many HLLs have to be touched
11:24 sorear jnthn: I just realized that subcall is kind of broken when it comes to nested subs
11:24 mls So I need the buy-in of nqp/rakudo ;)
11:25 FROGGS I see
11:25 sorear And .Numeric uses nested subs and call by name heavily
11:26 jnthn sorear: It's for handling cases like sub foo() { }; BEGIN foo
11:26 mls (The incompatible change is that a auto-created context is garbage collected when the sub is left, so you can't use it to store static data
11:26 sorear This doesn't explain why it works only in nonshared mode.  I'd expect the reverse
11:26 JimmyZ mls: long time no see... about two years ..
11:26 jnthn sorear: It's preventing us wiring the foo() through to the thunk that does the on-demand compilation of sub foo, rather than the result of doing so.
11:27 mls Thus, the change for rakudo/nqp is to add a capture_lex op
11:27 moritz \o/ mls!
11:28 mls JimmyZ: yes, lots of other projects stole all of my spare time.
11:28 mls But I've read through the #perl6 irc logs from time to time to keep up with the development ;)
11:29 JimmyZ mls: me too^^
11:29 JimmyZ :P
11:30 jaldhar joined #perl6
11:34 domidumont joined #perl6
11:39 mls Here's a gist with missing changes: https://gist.github.com/mlschroe/5822045
11:39 mls That's from almost two years ago, though, so PAST not QAST...
11:39 mls It's just so that you get an idea about what the changes would be
11:40 mls at that time, all of nqp's and rakudo's test cases passed.
11:41 lizmat seeing some test failures in t/spec/S32-io/io-path-cygwin.t and t/spec/S32-io/io-path-win.t on OS X
11:44 lizmat r: say IO::Path::Cygwin.new("foo/bar" ).absolute("\\usr")   # expected /usr/foo/bar
11:44 camelia rakudo b2072f: OUTPUT«IO::Path::Cygwin</usr/foo/bar>␤»
11:44 sorear cf.caller.outer.oLex[7].field_0.outer == cf.caller.outer = false
11:44 sorear so um I think closure cloning / outer setting is broken
11:44 lizmat that's odd, it's \usr/foo/bar with me
11:44 sorear how is that handled?
11:45 sorear where in nqp/rakudo is the chunk of code that says "on entry to a block, clone all my closures and set their outer to this"?
11:45 jnthn sorear: I seem to have hit upon a similar thing...
11:46 jnthn (with RANGEPOS)
11:46 jnthn Actions.pm:2213
11:46 jnthn (for subs)
11:46 lizmat r: say IO::Path::Cygwin.new("\\\\server\\share\\").Str  # comes out as \\server\'share\ with me on OS X
11:46 camelia rakudo b2072f: OUTPUT«//server/share␤»
11:47 lizmat *\\server\share\
11:49 sorear jnthn: I wonder if .clone is maybe just cloning the Code and sharing a reference to the $!do... although I'm not sure that could explain what I'm seeing...
11:49 lizmat r: say IO::Path::Win32.new("\\\\server\\share\\").Str  # also comes out as \\server\share\ with me
11:49 camelia rakudo b2072f: OUTPUT«\\server\share␤»
11:49 jnthn sorear: I just checked that. But it doesn't look like it
11:49 jnthn sorear: I also wondered if clone forgot to decont. But no, it does that.
11:50 lizmat labster: you might want to have a look at the above IO::Path::* errors
11:50 jnthn sorear: It's certainly cloning the $do
11:50 timotimo o/
11:50 jnthn sorear: Or at least, I can see the code that's doing it
11:50 jnthn Unless CodeRef REPR's clone is broke
11:51 lizmat offline for some updates&
11:52 sorear jnthn: Where is .clone even being called on the do?
11:52 jnthn sorear: Hmm... CodeRef.java:59 looks...interesting.
11:53 jnthn sorear: BOOTSTRAP.nqp adds the clone method to Code, Block, etc.
11:53 jnthn See around line 576
11:54 sorear ah.
11:55 dalek rakudo/jvm-hacking: d1b3d1f | sorear++ | t (3 files):
11:55 dalek rakudo/jvm-hacking: Work-in-progress test scripts
11:55 dalek rakudo/jvm-hacking: review: https://github.com/rakudo/rakudo/commit/d1b3d1f491
11:55 sorear well, I commit what I have
11:55 sorear and I need to sleep
11:55 sorear hopefully you'll crack this nut by my morning. :D
11:56 sorear sleep&
11:56 jnthn 'night
11:58 timotimo night sorear!
11:59 hoelzro http://rdstar.wordpress.com/2013/06/19/a-new-perl-6-major-mode-for-emacs-in-progress/ # nice
11:59 hoelzro will be looking for ideas to stea^Wborrow for vi-perl
11:59 hoelzro *vim-perl
12:00 timotimo hoelzro: do you know of any highlighting thingies that would do highlight-as-you-type inside browsers?
12:01 hoelzro there's probably a JS library that does it
12:01 hoelzro GH uses one in particular for its WYSIWYG editor
12:01 hoelzro I can't recall its name, though...
12:01 timotimo anything that would be generated from something else?
12:02 hoelzro meaning from some other project?
12:03 hoelzro it would be nice to have a "standard" syntax description format that everyone could use
12:03 hoelzro for Perl6 it's tricky, though
12:03 hoelzro I had to break out the most hardcore of lexer classes in pygments to get it right
12:07 cognominal joined #perl6
12:09 timotimo indeed.
12:12 timotimo the ruby highlighting thing you mentioned is what they use for github for displaying code, yes?
12:12 timotimo and, i suppose, figuring out what language code is
12:12 timotimo it would be nice to see authentic language usage statistics for perl6 from github in the future
12:12 hoelzro agreed
12:12 hoelzro here's how it works:
12:12 hoelzro linguist determines what the language is and invokes pygments.rb
12:13 hoelzro pygments.rb in turn has an internal child process running python pygments
12:13 hoelzro which does the actual highlighting
12:13 hoelzro so you need support on all three levels
12:13 hoelzro it's in python's pygments
12:13 timotimo oh!
12:13 hoelzro my PR has been sitting in the pygments.rb queue for well over a month now
12:13 timotimo i suppose all pygments.rb needs is to know that there is such a thing as perl6 inside pygments?
12:13 hoelzro and linguist doesn't accept PRs that aren't merged into pygments.rb
12:14 hoelzro well, pygments.rb ships with its own copy of pygments
12:14 timotimo >_>
12:14 hoelzro so you just need to copy the changed files over
12:14 hoelzro so it took me 5 minutes to do
12:14 hoelzro (well, a little more, because I suck at hg)
12:14 hoelzro but apparently it takes more than a month to review this change...
12:15 hoelzro to be fair, mine isn't the only PR that's gone unaddressed
12:16 timotimo yeah, looking at the pr's right now
12:16 lizmat joined #perl6
12:16 timotimo i'll just +1 the PR
12:16 hoelzro thanks
12:17 hoelzro I *really* want this in GH
12:17 * hoelzro wonders if GH would consider pulling from my repo for now
12:18 timotimo i say: ask them
12:21 hoelzro just did
12:24 timotimo i saw a year-old PR that adds ".pm6" support apparently
12:27 hoelzro heh
12:27 hoelzro in linguist?
12:31 timotimo yes
12:31 timotimo https://github.com/github/linguist/pull/161?source=cc - this one
12:34 hoelzro hmm
12:34 hoelzro that just highlights it as Perl 5 code
12:34 timotimo ah, ok
12:35 timotimo better than nothing at least
12:36 timotimo so, i was hoping i could get a little bit of discussion started on the sequence operator; i was hoping i could get the ability to have a multi-argument end-point closure specced
12:37 FROGGS joined #perl6
12:37 lizmat r: my %h=a=>1; undefine %h  # huh?  also, undefine as a method seems NYI
12:37 camelia rakudo b2072f: OUTPUT«Odd number of elements found where hash expected␤  in method STORE at src/gen/CORE.setting:7023␤  in sub undefine at src/gen/CORE.setting:13782␤  in block  at /tmp/A6LH72tNTo:1␤␤»
12:37 ajr joined #perl6
12:41 masak rn: my $value = 1; loop { say ENTER $value; last if $value == 3; $value++ }
12:41 camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«Nil␤Nil␤Nil␤»
12:42 masak did I misunderstand ENTER? "at every block entry time, repeats on loop blocks" -- "Constructs marked with a C<*> have a run-time value, and if evaluated
12:42 masak earlier than their surrounding expression, they simply save their
12:42 masak result for use in the expression later"
12:42 masak so why is 'ENTER $value' Nil above?
12:42 masak by the decree of two implementations, no less.
12:43 jnthn masak: try ENTER say $value
12:43 masak oki
12:43 masak rn: my $value = 1; loop { ENTER say $value; last if $value == 3; $value++ }
12:43 camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«1␤2␤3␤»
12:44 lizmat fwiw, that makes more sense to me
12:44 masak jnthn: but that misses the point a bit, I want to use/store 'ENTER $value' for comparison with the current value.
12:44 FROGGS that these fasers return Nil is a known bug
12:44 masak oh.
12:44 masak FROGGS: do you happen to have the RT number close at hand?
12:44 lizmat r: say BEGIN 1
12:44 camelia rakudo b2072f: OUTPUT«1␤»
12:44 lizmat not always
12:44 lizmat not all phasers
12:45 lizmat r: say END 1
12:45 camelia rakudo b2072f: OUTPUT«Nil␤»
12:45 lizmat now, *that* makes sense  :-)
12:45 masak agreed :)
12:46 jnthn masak: Yes, but keeping the return values around is an NYI for that particular phaser
12:46 jnthn masak: Because of their different timing, you need to solve the problem pretty much on a per-phaser basis...
12:46 masak FROGGS says known bug, jnthn says NYI. I still don't see an RT ticket.
12:46 jnthn And nobody solved it for ENTER yet
12:47 masak either I'm missing the RT ticket, or we're missing an RT ticket :P
12:47 FROGGS please wait while...
12:47 * masak submits NYI rakudobug, in slow motion!
12:48 FROGGS masak: https://rt.perl.org/rt3/Ticket/Display.html?id=116102
12:48 rindolf joined #perl6
12:49 masak FROGGS: thank you.
12:49 FROGGS masak: your're welcome
12:53 atroxaper joined #perl6
12:55 lizmat can a hash or a list ever become undefined ?
12:56 lizmat aka .defined is False ?
12:57 lizmat or should we define .defined as having any element of an array being defined?
12:58 JimmyZ rn: say %h.defined
12:58 camelia rakudo b2072f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Variable '%h' is not declaredâ�¤at /tmp/c3tK8tsPqf:1â�¤------> [32msay %h.defined[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        method argumentsâ�¤Â»
12:58 camelia ..niecza v24-79-gcb6f20b: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Variable %h is not predeclared at /tmp/JJKsAbhPUG line 1:â�¤------> [32msay [33mâ��[31m%h.defined[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) â�¤  at /home/p6eval/n…
12:58 lizmat rn: my %h; say %h.defined
12:58 camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«True␤»
12:58 FROGGS rn: my %h = Hash; say %h.defined
12:58 camelia niecza v24-79-gcb6f20b: OUTPUT«Unhandled exception: Cannot unbox a VarHash from an object of repr P6opaque␤  at /tmp/cE2Xw2o9_w line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4531 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4532 (module-CORE @ 581) …
12:58 camelia ..rakudo b2072f: OUTPUT«Cannot look up attributes in a type object␤  in method pairs at src/gen/CORE.setting:6895␤  in method list at src/gen/CORE.setting:6889␤  in method STORE at src/gen/CORE.setting:7020␤  in block  at /tmp/kwtjNgyycp:1␤␤»
12:59 lizmat Hash.new ?
12:59 FROGGS okay, so .defined looks for +pairs
12:59 JimmyZ rn: my %h; say %h
12:59 camelia rakudo b2072f: OUTPUT«().hash␤»
12:59 camelia ..niecza v24-79-gcb6f20b: OUTPUT«{}␤»
12:59 FROGGS no, I meant Hash
12:59 lizmat wouldn't that need to be my $h=Hash ?
12:59 JimmyZ rn: my $h; say $h
12:59 camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«(Any)␤»
12:59 JimmyZ rn: my $h; say $h.defined
12:59 camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«False␤»
13:01 JimmyZ rn: my $h; say @($h)
13:01 masak r: say Nil.^mro
13:01 camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«(Any)␤»
13:01 camelia rakudo b2072f: OUTPUT«Nil (Iterator) (Iterable) (Cool) (Any) (Mu)␤»
13:01 JimmyZ rn: my $h; say %($h)
13:01 camelia niecza v24-79-gcb6f20b: OUTPUT«Unhandled exception: Unmatched key in Hash.LISTSTORE␤  at /home/p6eval/niecza/lib/CORE.setting line 391 (Any.hash @ 3) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/PHzZ8nAH7b line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4531…
13:01 camelia ..rakudo b2072f: OUTPUT«Odd number of elements found where hash expected␤  in method STORE at src/gen/CORE.setting:7023␤  in method hash at src/gen/CORE.setting:1352␤  in block  at /tmp/6ICCuglnW_:1␤␤»
13:01 JimmyZ rn: my $h; say @($h).defined
13:01 camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«True␤»
13:02 dayangkun joined #perl6
13:02 lizmat S32/Basics:62 states: "A value may be defined according to one role and undefined according to another."  "…defaults to the definition of defined supplied by the type of the object"
13:02 lizmat I guess we're not supplying a definition of defined for Hash/List yet
13:03 jnthn lizmat: I'm...not sure I understand what it means :)
13:03 lizmat well, one could argue that an empty hash would return True for .defined
13:04 lizmat *False
13:04 lizmat (duh)
13:04 jnthn That's what boolification does.
13:04 lizmat r: say so my %h
13:04 camelia rakudo b2072f: OUTPUT«False␤»
13:04 lizmat r: say so my %h=a=>1
13:04 camelia rakudo b2072f: OUTPUT«True␤»
13:05 lizmat r: my %h; undefine %h
13:05 camelia rakudo b2072f: OUTPUT«Odd number of elements found where hash expected␤  in method STORE at src/gen/CORE.setting:7023␤  in sub undefine at src/gen/CORE.setting:13782␤  in block  at /tmp/NfTB22Ag3n:1␤␤»
13:05 lizmat I was going to fix this by making it do %h = () instead of %h = my $undefined
13:06 lizmat but that still doesn't make the tests for .defined on hashes work
13:07 lizmat r: undefine my %h  # is still a bug
13:07 camelia rakudo b2072f: OUTPUT«Odd number of elements found where hash expected␤  in method STORE at src/gen/CORE.setting:7023␤  in sub undefine at src/gen/CORE.setting:13782␤  in block  at /tmp/MAG5lc8C7U:1␤␤»
13:08 lizmat my solution: multi sub undefine(Mu       \x) { x = my $undefined } multi sub undefine(Iterable \x) { x = () }
13:11 masak lizmat: there's a big long RT ticket about this. maybe we've talked about this before.
13:11 lizmat I don't recall that…  have a ticket #
13:12 masak on it, hold on.
13:12 moritz the real problem is that a variable has two types, a constraint type and a default type
13:12 moritz and &undefine and  $var = Nil should reset it to the default type
13:12 lizmat also S32/Basics:85 states: In all cases, calling C<undefine> on a variable should place the object in the same state as if it was just declared.
13:12 moritz but we don't store that type along with the container
13:13 moritz right, and   my $x; puts a type constraint of Mu in there, but it's initialized with Any
13:13 moritz but at runtime, we have no way of knowing this Any
13:13 dalek nqp: 23a3a11 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/IndyBootstrap.java:
13:13 dalek nqp: Fix mis-optimization of sub calls.
13:13 dalek nqp:
13:13 dalek nqp: The outer is tied up with the CodeRef, so we can't just blindly curry
13:13 dalek nqp: the callsite with that. Fixes lexical issues that plagued some of the
13:13 dalek nqp: Rakudo sanity tests.
13:13 dalek nqp: review: https://github.com/perl6/nqp/commit/23a3a11bdd
13:14 lizmat r: my Int $a=1; undefine $a   # indeed
13:14 camelia rakudo b2072f: OUTPUT«Type check failed in assignment to '$a'; expected 'Int' but got 'Any'␤  in sub undefine at src/gen/CORE.setting:13782␤  in block  at /tmp/k9fLJoJlM1:1␤␤»
13:14 dalek rakudo/nom: e517236 | jnthn++ | src/Perl6/World.nqp:
13:14 dalek rakudo/nom: Missing p6capturelex needed by JVM.
13:14 dalek rakudo/nom:
13:14 dalek rakudo/nom: With this, just one failing sanity test.
13:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e5172369f8
13:14 dagurval r: say so.WHAT
13:14 camelia rakudo b2072f: OUTPUT«False␤»
13:15 dagurval so what!
13:15 lizmat r: say so.so.WHAT
13:15 camelia rakudo b2072f: OUTPUT«False␤»
13:15 moritz IMHO &undefine can go away, because $a = Nil is specced to do the same thing
13:15 moritz r: say so not.WHAT
13:15 camelia rakudo b2072f: OUTPUT«True␤»
13:15 masak lizmat: https://rt.perl.org/rt3/Ticket/Display.html?id=64928
13:16 lizmat moritz: that's fine by me as well  :-)
13:16 nwc10 what's the next class of tests in the heirachy after sanity tests?
13:16 dagurval so, WHAT is so?
13:17 JimmyZ so is to bool
13:17 lizmat r: my Int $a=1; $a=Nil  # assignment with Nil is also broken
13:17 camelia rakudo b2072f: OUTPUT«Type check failed in assignment to '$a'; expected 'Int' but got 'Nil'␤  in block  at /tmp/mCOCwq4_fL:1␤␤»
13:17 masak dagurval: like 'and' is to '&&', 'so' is to '?'
13:17 moritz http://faq.perl6.org/#so
13:18 dalek nqp: f4a8406 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
13:18 dalek nqp: Fix string bitwise op semantics.
13:18 dalek nqp:
13:18 dalek nqp: Strings of different lengths want The Other Thing.
13:18 dalek nqp:
13:18 dalek nqp: With this, all Rakudo sanity tests pass on JVM.
13:18 dalek nqp: review: https://github.com/perl6/nqp/commit/f4a840698b
13:18 JimmyZ r: say ?.WHAT
13:18 camelia rakudo b2072f: OUTPUT«False␤»
13:18 JimmyZ r: say !?.WHAT
13:18 camelia rakudo b2072f: OUTPUT«True␤»
13:18 timotimo jnthn: \o/
13:18 lizmat masak: ticket from 2009, I was definitely *not* involved then  :-)
13:18 jnthn .tell sorear PASS ALL THE SANITY TESTS! \o/
13:18 yoleaux jnthn: I'll pass your message to sorear.
13:18 timotimo sorear++ jnthn++
13:18 lizmat jnthn++++
13:18 JimmyZ jnthn++ do the hard work
13:18 dagurval first faq question, should have known -_-
13:18 jnthn sorear++ did the rest of the hard work :)
13:19 JimmyZ yes, sorear++ indeed
13:19 nwc10 yay
13:19 nwc10 jnthn++
13:19 nwc10 sorear++
13:19 nwc10 so now, "We have [sanity]. I repeat, we have [sanity]. Anything you still can't cope with is therefore your own problem." ? :-)
13:20 colomon \o/
13:20 nwc10 and this means that the compiler release announcment today can happily report that JVM sanity was achieved?
13:21 masak lizmat: no, I was thinking if I mentioned it before to you.
13:21 masak lizmat: I know pmichaud++ has done a fair bit of thinking on the issue.
13:21 jnthn nwc10: Yes.
13:21 nwc10 (for some value of JVM sanity. The JVM doesn't always seem to be sane. eg http://blog.headius.com/2013/06/the-pain-of-broken-subprocess.html  )
13:22 lizmat masak: I assume WHENCE is NYI
13:22 masak r: say (my $a).WHENCE
13:22 camelia rakudo b2072f: OUTPUT«No such method 'WHENCE' for invocant of type 'Any'␤  in block  at /tmp/Fmv5lJYrm0:1␤␤»
13:22 masak looks like.
13:22 lizmat but I think there are 2 issues here in that ticket
13:22 tadzik wow, big news :)
13:23 tadzik jnthn++, sorear++
13:23 lizmat 1. what makes an object undefined
13:23 masak jnthn++ sorear++
13:23 lizmat 2. how can we check whether a parameter has been passed to a sub/method, even if that parameter is undefined, such as Any
13:23 lizmat r: say Any.defined
13:23 camelia rakudo b2072f: OUTPUT«False␤»
13:24 colomon sorear++ jnthn++
13:24 lizmat the second case I had to deal with when writing the code for combining adverbs
13:25 lizmat in hash slices.  The approach is to default the parameter to something secret, and see whether the parameter still has that secret when running
13:25 tadzik ...I missed masakism yesterday, didn't I
13:25 lizmat tadzik: you did
13:25 tgt joined #perl6
13:25 masak yup.
13:25 PerlJam good $localtime all
13:25 masak lizmat: fwiw, I don't worry about (2) at all anymore.
13:26 masak lizmat: I think it would be foolish consistency to invent a "fix".
13:26 lizmat if we could come up with some syntactic sugar for that, we would be free to fix this in the future
13:26 tadzik dang
13:26 lizmat masak: why don't you worry about 2 anymore?
13:26 masak tadzik: feel free to envy those who were there by means of the very nice backlog :)
13:27 masak lizmat: because I have a good workaround, which I think wouldn't be improved by a language feature.
13:27 timotimo i think it should be programmatically possible for the value of a variable to dictate if a function should consider a parameter passed or not
13:27 lizmat and is that workaround what I just described ?
13:27 timotimo as in: i shouldn't have to write a big tree of if statements to get to the right candidate; instead i should be able to pass undefined parameters
13:27 masak I missed that. what workaround did you describe?
13:28 lizmat my @default; sub a ( :a=@default ) { if $a === $default { not specified...
13:28 masak lizmat: my workaround is: define a sentinel object, set that as the default of the parameter. make sure (through scoping or whatever) that no-one passes the sentinel.
13:28 masak lizmat: right.
13:28 * jnthn does a few quick hacks to be able to do some kind of spectest run
13:29 jnthn (sorear++ is well into doing the proper thing so I won't be pushign this)
13:29 masak timotimo: isn't that what multis are?
13:29 jnthn Well, we pass all of S02-lexical-conventions/ already :P
13:29 JimmyZ \o/
13:30 lizmat masak: and everybody does this in some other way, seems like we need to have something like that as syntactic sugar
13:30 lizmat my @default; sub notspecified () { @default }; method notspecified () { self === @default }
13:31 kaare_ joined #perl6
13:31 lizmat in Any.pm, probably
13:31 timotimo masak: multis make that a bit harder; but i'm thinking of subs that take perhaps three optional arguments; if i want to make it depend on user input which of them are to be "defined"/"passed", i'd have to do something like if $first { if $second { if $third { fun(:$first, :$second, :$third); } else { fun(:$first, :$second) } } else { if $third { fun(:$first, :$third) } else { fun(:$first) } } else ...
13:31 konundra joined #perl6
13:31 timotimo (more likely i'd create a capture programmatically)
13:33 masak lizmat: I (currently) disagree that we need to have something like that as syntactic sugar.
13:33 masak lizmat: there's diminishing returns in trying to provide solutions for everything. in this particular case, I like the workaround and think it's already good. a built-in solution wouldn't improve it.
13:34 btyler joined #perl6
13:34 masak lizmat: I'd name @default 'constant NOT_PASSED' or something like that. and to me, it'd look pretty much like a language feature. :)
13:34 PerlJam lizmat, masak: What if Perl 6 provided the "secret" for you?   for instance, there could be a role that all paramters do by default that gets destroyed on assignment.
13:34 masak ugh, no.
13:34 masak please don't further weigh down the type system with cute-today ideas.
13:35 masak junctions were bad enough :/
13:35 PerlJam fairy nuff
13:36 lizmat I was more hoping that a .notspecified method could later introspect the assignment to the Capture and would remove the need for the secret
13:36 lizmat so you could build your code for the future in that respect already
13:37 lizmat brb
13:37 masak lizmat: yes, for a long time I also wanted a way to introspect the Capture.
13:37 masak lizmat: thing is, the Capture is caller-side, and when you want to do the introspection, you're callee-side.
13:38 masak which would mean keeping the Capture around even after it bound to the Signature, which would be one of those solutions that punished the many to benefit the few.
13:38 jnthn You already can keep a capture around if you want to look at it.
13:39 jnthn sub foo(|c, :$a, :$b) { c.exists('a') }
13:39 masak oh, troo.
13:39 masak so, there we go.
13:39 masak feature already in the language. :) case closed. :)
13:39 PerlJam yep
13:39 PerlJam jnthn++
13:39 masak I guess we can close the RT ticket, too.
13:41 jnthn There are, of course, LOADS of spectest failures so far into the run. But there are quite a lot of test files that pass already too
13:41 jnthn Unfortunately I will not have a useful number at the end of this
13:41 cognominal when compiling nqp on a 64 bits macbook running OSX 10.8.4 with a fresh icu binary, I get ICU not loaded.
13:41 jnthn One test went mad and spat out 15,000 "not ok"s... :(
13:42 timotimo i don't mean to be pushy, but will or won't the div by zero softfails PR get into rakudo?
13:42 nwc10 I was going to say "if you have Test::Harness 3.28, that will use less RAM" but it's not true
13:42 nwc10 it's only true once tests pass :-)
13:42 nwc10 but probably worth upgrading to it, if there are 15,000 tests in a file
13:43 jnthn nwc10: There aren't, it just got in an infinite loop somehow
13:43 nwc10 ah oops
13:43 nwc10 Perl 5 does have some tests which produce a lot of OKs
13:43 cognominal lizmat, are you able to compile nqp on your mac?
13:44 jnthn Hm, we're probably failing a lot of tests as warnings are apparently currently fatal.
13:44 masak jnthn: I guess that mad test was *really* not OK with the result :P
13:45 masak someone(TM) should do statistics on how we're doing on the JVM spectests...
13:47 bluescreen10 joined #perl6
13:48 colomon joined #perl6
13:48 lizmat cognominal: was the last time I checked
13:49 cognominal lizmat: when was that?
13:49 timotimo is there something that can be done about the "endless spam of vmarray iter something something error message in the repl" for rakudo-jvm?
13:49 lizmat r: sub foo(|c, :$a, :$b) { say c.exists('a') }; foo( :a ); foo( :b )
13:49 camelia rakudo b2072f: OUTPUT«No such method 'exists' for invocant of type 'Capture'␤  in sub foo at /tmp/TRtJ6oHume:1␤  in block  at /tmp/TRtJ6oHume:1␤␤»
13:49 lizmat :-(
13:50 lizmat but I guess that can be fixed...
13:51 lizmat r: sub foo(|c, :$a, :$b) { say c.hash.exists('a') }; foo( :a ); foo( :b )
13:51 camelia rakudo b2072f: OUTPUT«True␤False␤»
13:53 jnthn timotimo: How to reproduce it?
13:53 kaleem joined #perl6
13:55 * masak thinks Capture should have an .exists
13:56 sqirrel joined #perl6
13:56 * lizmat is working on that
13:57 lizmat as in Capture.exists
13:57 timotimo jnthn: i just built a recent rakudo-jvm
13:58 jnthn timotimo: yes, and then?
13:58 timotimo i'm trying to find something that'll cause it
13:58 timotimo i think it was pretty easy the last time i tried
13:59 timotimo it seems like "foo bar baz".comb(/\W/) is infinilooping or something (not related to the spam bug)
13:59 colomon Hash shouldn't have exists, should it?  why should capture as well?
14:00 lizmat why shouldn't Hash have .exists ?
14:00 colomon r: sub foo(|c, :$a, :$b) { say c{'a'}:exists; }; foo( :a ); foo( :b )
14:00 camelia rakudo b2072f: OUTPUT«No such method 'exists' for invocant of type 'Capture'␤  in method postcircumfix:<{ }> at src/gen/CORE.setting:1683␤  in method postcircumfix:<{ }> at src/gen/CORE.setting:1642␤  in sub foo at /tmp/A0Gny56sNg:1␤  in block  at /tmp/A0Gny56sNg:1␤␤»
14:00 colomon lizmat: it was a hack added back when Rakudo couldn't handle :exists
14:00 lizmat aha...
14:01 colomon r: sub foo(|c, :$a, :$b) { say c.hash{'a'}:exists; }; foo( :a ); foo( :b )
14:01 camelia rakudo b2072f: OUTPUT«True␤False␤»
14:01 lizmat well, fwiw, :exists is implemented in terms of .exists  :-(
14:01 colomon n: sub foo(|c, :$a, :$b) { say c{'a'}:exists; }; foo( :a ); foo( :b )
14:01 camelia niecza v24-79-gcb6f20b: OUTPUT«Potential difficulties:â�¤  $a is declared but not used at /tmp/HCraRf1Smb line 1:â�¤------> [32msub foo(|c, :[33mâ��[31m$a, :$b) { say c{'a'}:exists; }; foo( :a[0mâ�¤  $b is declared but not used at /tmp/HCraRf1Smb line 1:â�¤------> [32msub foo(|c, :$a, :[33m…
14:02 colomon n: sub foo(|c) { say c{'a'}:exists; }; foo( :a ); foo( :b )
14:02 camelia niecza v24-79-gcb6f20b: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Capture␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 352 (Any.exists_key @ 9) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/5thb22SL2Z line 1 …
14:04 timotimo rakudo-jvm seems to be missing "Cannot assign to a readonly variable or a value"
14:04 lizmat I guess S11:189 and S11:229 need to have it changed to :exists then, if .exists as a method is a no go
14:05 timotimo though it seems silly to be listing things that are missing from rakudo-jvm at this point :)
14:05 tadzik it's funny, how rakudo-jvm passes t/00-parrot :)
14:05 colomon lizmat: perhaps TimToady has given in, and exists is officially offical now
14:06 tgt joined #perl6
14:08 dalek rakudo/nom: 1767e8f | (Elizabeth Mattijsen)++ | src/core/Capture.pm:
14:08 dalek rakudo/nom: Add .exists to Capture
14:08 dalek rakudo/nom:
14:08 dalek rakudo/nom: So that we can more easily check whether a parameter was passed, by doing
14:08 dalek rakudo/nom: sub foo (|c, :$a ) { if c.exists("a") {...
14:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1767e8f6c6
14:08 lizmat running spectest now
14:09 jnthn tadzik: Yes, I think that may be up for a renaming :)
14:11 dalek nqp: 922a848 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/TypeObject.java:
14:11 dalek nqp: Make nqp::clone on a type object not explode.
14:11 dalek nqp:
14:11 dalek nqp: Seems lots of spectsets somehow hit a codepath where they do this.
14:11 dalek nqp: review: https://github.com/perl6/nqp/commit/922a8484b6
14:11 dalek nqp: cc63066 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
14:11 dalek nqp: Implement nqp::rand_n.
14:11 dalek nqp: review: https://github.com/perl6/nqp/commit/cc63066016
14:11 timotimo java.lang.IllegalArgumentException: sprintf only accepts ints, nums, and strs, not class __P6opaque__62 - hehe :)
14:16 timotimo aaw, callframe being missing prevents MAIN from working
14:16 lizmat TimToady,pmichaud: FWIW, if .exists and .delete as methods need to go, I can do that
14:30 jeff_s2 joined #perl6
14:31 timotimo huh, curious
14:31 timotimo for (12)...1 { say $_ } works in rakudo-jvm, but for (6 + 3 + 3)...1 { say $_ } seems to hang
14:34 masak well, '6' contains a loop...
14:34 masak :P
14:34 colomon :p
14:34 timotimo :D
14:36 [Coke] jnthn++ sorear++
14:37 ajr joined #perl6
14:38 raiph joined #perl6
14:39 tgt joined #perl6
14:44 lizmat cycling&
14:49 kaleem_ joined #perl6
14:50 dalek nqp: 836f18b | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/IndyBootstrap.java:
14:50 dalek nqp: Catch one more unoptimizable case.
14:50 dalek nqp: review: https://github.com/perl6/nqp/commit/836f18bead
14:50 dalek nqp: 967d89b | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
14:50 dalek nqp: Fix Inf/-Inf/NaN handling.
14:50 dalek nqp:
14:50 dalek nqp: Unbusts a range of spectests in Rakudo JVM.
14:50 dalek nqp: review: https://github.com/perl6/nqp/commit/967d89b5e1
14:50 skids joined #perl6
14:50 sqirrel joined #perl6
15:00 jnthn r: 'foO'.tclc.say
15:00 camelia rakudo b2072f: OUTPUT«Foo␤»
15:01 btyler_ joined #perl6
15:03 tgt joined #perl6
15:12 [Coke] TCL!
15:12 [Coke] oh. :(
15:14 [Coke] :)
15:14 JimmyZ here  is a company named TCL
15:15 [Coke] huh.
15:21 atroxaper joined #perl6
15:23 lawrmcfa joined #perl6
15:32 * colomon just had all sanity tests fail under rakudo-jvm  :(
15:33 timotimo :(
15:33 FROGGS joined #perl6
15:34 colomon t/01-sanity/12-try.t ............... Unhandled exception: use of uninitialized value of type Any in numeric context
15:34 colomon (etc)
15:35 colomon command line prove -e "./perl6" t/01-sanity/
15:35 timotimo yeah, it seems like warnings are fatal in rakudo-jvm so far
15:37 jnthn Odd, that one passes here
15:37 jnthn But yes, warnings are fatal at the moment
15:38 colomon jnthn: ALL of the sanity tests are failing here
15:38 colomon that was just an example
15:39 colomon dunno what the story is, but they were working better yesterday
15:39 colomon but then, I may have been invoking them a different way?
15:39 jnthn colomon: Did you build an up to date NQP too?
15:39 sciurius joined #perl6
15:39 [Coke] Nice to have: "make test", "make spectest" on rakudo-java
15:39 colomon jnthn: yes
15:40 colomon nqp at 967d89b5e1adb79a18f2280589ed1afa8a2edc9e
15:40 colomon that's Fix Inf/-Inf/NaN handling.
15:40 jnthn [Coke]: sorear has some progress on that, so I'm not going to duplicate work.
15:40 tgt joined #perl6
15:40 jnthn sorear++, even :)
15:40 [Coke] rogerroger
15:44 [Coke] only 2 failures for me in rove -e ./perl6 -vr t/0*
15:47 colomon just occurred to me it might be useful to send the entire error stack: https://gist.github.com/colomon/5823947
15:47 colomon never mind, this is all my fault, I think
15:47 xenoterracide|2 joined #perl6
15:47 colomon left some debugging code in there from yesterday
15:47 colomon I wouldn't have expected it to fail like that, but....
15:49 dalek rakudo/nom: 20e0034 | jnthn++ | src/core/Str.pm:
15:49 dalek rakudo/nom: Some missing coercions.
15:49 dalek rakudo/nom:
15:49 dalek rakudo/nom: The JVM implementation correctly treats as constraints some things
15:49 dalek rakudo/nom: that became coercions on Parrot. This adds the needed coercions. On
15:49 dalek rakudo/nom: Parrot, should avoid going via a v-table override too.
15:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/20e00341ed
15:49 dalek rakudo/nom: 7bd7a6b | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Ops.java:
15:49 dalek rakudo/nom: Implement nqp::tclc.
15:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7bd7a6b7ab
15:49 dalek rakudo/nom: 5913ce8 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
15:49 dalek rakudo/nom: Implement $!foo parameters.
15:49 dalek rakudo/nom:
15:49 dalek rakudo/nom: Fixes Junction construction, which in turn unbusts various junction
15:49 dalek rakudo/nom: related things.
15:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5913ce8821
15:49 timotimo nice
15:51 colomon hrm, now I'm just getting a different failure
15:53 fgomez joined #perl6
15:59 colomon after pulling the latest changes and rebuilding, my only sanity fail is 99-test-basic.t
16:00 jnthn colomon: Yeah, and if run outside of prove with -Ilib then it passes
16:02 colomon or run in prove with -Ilib
16:02 colomon :)
16:03 [Coke] colomon: I don't think that will help, will it?
16:04 colomon [Coke]: prove -e "./perl6 -Ilib" t/01-sanity/
16:04 colomon works beautifully
16:05 colomon I'm showing all "make test" tests passing except t/02-rakudo/dump.t
16:05 jnthn oh, that was passing for me also earlier...
16:06 jnthn I thought so, anyway...
16:06 [Coke] dump is also failing here.
16:06 FROGGS damnit, now I'm using sort of excel to compare two ASTs >.<
16:06 [Coke] OS X 10.8.x
16:07 konundra joined #perl6
16:08 colomon my fail is on ubuntu
16:08 sqirrel joined #perl6
16:08 colomon (since as nearly as I can tell, OS X 10.6.8 cannot run Rakudo-JVM because its JVM is too old)
16:10 [Coke] you can have multiple jvms installed on OSX side by side in the system area.
16:10 colomon errr... problem appears to be that dump.t has no plan / plan equivalent ?
16:10 [Coke] I have to do that for work, as I need six for some corporate packages, and seven for dev work.
16:10 [Coke] colomon: ah, yes.
16:10 colomon [Coke]: but all the 1.7 builds I was able to find what 10.7 or higher
16:10 [Coke] colomon: ... that sucks.
16:11 [Coke] perhaps something in macports?
16:11 colomon [Coke]: yes, I agree.
16:11 [Coke] adding a plan.
16:11 masak I'm going to start le release engineering in an hour or so.
16:11 colomon [Coke]: my macports install appears to be hosed.  I may have never really used it on this machine, and only have bits left over from my previous Mac.
16:11 colomon masak++
16:12 lawrmcfa joined #perl6
16:16 dalek rakudo/nom: 45e54f8 | coke++ | t/02-rakudo/dump.t:
16:16 dalek rakudo/nom: Add a plan for this test.
16:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/45e54f821a
16:18 colomon [Coke]++
16:21 colomon with that change, all t/0* tests pass for me.  (ubuntu)
16:24 FROGGS jnthn: the ast differs
16:25 timotimo i'd really like the softdiv by zero pr to get into rakudo before masak cuts the release
16:25 benabik joined #perl6
16:25 timotimo pm said it was okay, lizmat spectested it successfully
16:27 masak timotimo: go right ahead.
16:28 timotimo i don't have a commitbit ;)
16:28 masak oh, or is there a pull request I should merge?
16:28 masak sorry, a bit slow here :)
16:28 timotimo yes, the one that's visible on the pulse tab
16:28 timotimo thank you! :D
16:28 SamuraiJack joined #perl6
16:29 dalek rakudo/nom: 5faaf15 | (Timo Paulssen)++ | src/core/ (3 files):
16:29 dalek rakudo/nom: soft-fail X::Numeric::DivisionByZero for div and /
16:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5faaf15c33
16:29 dalek rakudo/nom: 0506d2a | (Timo Paulssen)++ | src/core/Rat.pm:
16:29 dalek rakudo/nom: don't infiniloop when trying to .perl a Rat with 0 denominator
16:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0506d2a7bb
16:29 dalek rakudo/nom: 5e83051 | (Timo Paulssen)++ | t/spectest.data:
16:29 dalek rakudo/nom: test S03-operators/div.t as well.
16:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5e83051c48
16:29 dalek rakudo/nom: 6205794 | (Timo Paulssen)++ | src/core/ (2 files):
16:29 dalek rakudo/nom: rewrite nqp::if with unless.
16:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/62057948ce
16:29 dalek rakudo/nom: 60e4582 | (Carl Mäsak)++ | / (5 files):
16:29 dalek rakudo/nom: Merge pull request #169 from timo/softfail-div-by-zero
16:29 dalek rakudo/nom:
16:29 dalek rakudo/nom: Softfail div by zero
16:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/60e4582710
16:29 timotimo lovely! :D
16:29 masak :)
16:29 [Coke] eek. I'm concerned about brining in the /0 stuff just before the release.
16:29 [Coke] *brining
16:29 [Coke] *bringing # g key stuck?
16:30 timotimo now to figure out if i already committed the spectest changes
16:30 timotimo yes, i did. great!
16:30 * perigrin brines several null terminators.
16:31 colomon [Coke]: yeah, I'm sitting here wondering if floating point divide by zero only happens for Nums that are false...
16:31 GlitchMr joined #perl6
16:31 [Coke] From the email thread, it looks like that was merged over pmichaud's objections.
16:31 masak [Coke]: I guess the risk you see is more ecosystem-y than purely release-engineering-y.
16:32 masak <timotimo> pm said it was okay, lizmat spectested it successfully
16:32 masak [Coke]: I think there was conversation on-channel after that comment on the pull request.
16:33 [Coke] masak: yes. what else will this break, and now we have very little time to test it.
16:33 jnthn That doesn't feel like the kinda thing that shoulda gone in this close...
16:34 [Coke] if someone could build a *star with it and test the modules, that would be nice. (the daily star testing is only what's in the star repo at this point)
16:34 colomon at least half of the commits are absolutely unambiguously right and safe, IMO.
16:34 colomon I guess I can launch a smoke test here, can't I?
16:34 [Coke] jnthn++ - I think it should have waited until post-release.
16:35 masak still not too late to revert to an earlier state.
16:35 masak I know git; I can do that :)
16:35 colomon I think the rest of the commits are pretty safe, to be fair to timotimo.
16:35 masak me too.
16:35 masak it's a set of commits which turn a hard failure into a soft failure.
16:36 masak and if someone's module in the ecosystem breaks because they relied on a hard failure of a division by zero... then that must be a rather interesting module and I'd like a word with its author ;)
16:36 [Coke] certainly the other direction would have been riskier.
16:36 Chillance joined #perl6
16:37 [Coke] if someone runs the star tests, I withdraw my objection.
16:37 * masak checks if the change was noted in the ChangeLog
16:40 colomon actually, I'm not sure I'm sold on a soft exception making more sense than returning an Inf, or something like that.  But it certainly seems preferable to a hard exception.
16:40 timotimo colomon: the spec says something about Inf, -Inf and NaN being soft exceptions in their own right
16:41 timotimo but that has to wait a bit longer
16:41 dalek nqp: 4a8d8ea | jnthn++ | src/vm/jvm/ (2 files):
16:41 dalek nqp: Fix CONTROL handlers.
16:41 dalek nqp: review: https://github.com/perl6/nqp/commit/4a8d8ea111
16:43 atroxaper left #perl6
16:45 dalek rakudo/nom: d221425 | jnthn++ | src/core/Exception.pm:
16:45 dalek rakudo/nom: Make warnings not be fatal on JVM.
16:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d221425e07
16:47 colomon \o/
16:48 colomon smoke test launched
16:48 colomon may go a bit slow, as I am also running a big $work test suite run at the moment (and probably for the next three or four hours).
16:49 timotimo you're not smoking with rakudo-jvm, are you? ;)
16:50 masak colomon++
16:51 colomon timotimo: I've got a special account for smoke testing on that machine, just to make sure I don't do something like that.  ;)
16:52 alester joined #perl6
16:53 timotimo hehehe
16:54 dmol joined #perl6
17:02 jeff_s2 I have Pugs passing 69 tests in S32-trig/cos.t. Is that an improvement? I'm having trouble reading [COKE]'s https://github.com/coke/perl6-roast-data/blob/master/pugs_summary.out .
17:05 census joined #perl6
17:05 jnthn When running spectests and it shows the progress thingy, like:
17:05 jnthn ===(    7183;686 ...
17:05 jnthn What are those two numbers?
17:06 timotimo jeff_s2: it seems like coke didn't include cos.t in his tests
17:07 colomon joined #perl6
17:07 sqirrel joined #perl6
17:08 jeff_s2 Ah ok, that makes sense.
17:09 kaleem joined #perl6
17:10 masak jnthn: individual tests and test files, respectively_
17:10 masak ?
17:10 jnthn masak: It's surpassed the number of tst files in spectest.data by now, so no :)
17:11 masak dang :)
17:11 masak could one of them be seconds elapsed?
17:11 jeff_s2 [COKE]: I uploaded a new version of regex-pcre-builtin to Hackage, which should let some more Pugs tests pass due to enabling UTF support.
17:12 jnthn masak: um, hm...I think the second one may be :P
17:12 jeff_s2 Locally I went from 0 to 69 tests passing in S32-trig/cos.t.
17:13 masak jnthn: by that logic, the first one is primes elapsed :P
17:14 nwc10 IIRC it's seconds elapsed and total number of subtests
17:15 jnthn Total executed, not total passed. Aww. :)
17:16 ssutch joined #perl6
17:17 nwc10 jnthn: you could hack line 95 or so of TAP::Formatter::Console::ParallelSession to change that
17:17 jnthn Aww...we'd have S32-trig clean except *one* test fails in cosech.t
17:18 kaleem joined #perl6
17:19 jnthn Files=738, Tests=16180, 1492 wallclock secs
17:20 jnthn And a looong failure list that doesn't fit in my terminal's buffer.
17:20 jnthn Wish I knew how to get this thing to give me some better statistics on number passing, skipped, etc.
17:21 nwc10 jnthn: maybe take a look in t/harness in the perl 5 distribution. Specifically how it uses bits of App::Prove::State to record test state
17:22 nwc10 I don't know how to *analyse* them, but I think that it's saving enough to disk to be able to do that after the event
17:28 jeff_s1 joined #perl6
17:29 jnthn bbl
17:38 amoe_ joined #perl6
17:41 masak ok, going into release engineering mode, people.
17:42 sqirrel joined #perl6
17:43 yoleaux joined #perl6
17:44 raiph FROGGS: what's your spectest pass count for v5?
17:44 raiph is there any nice way for folk to keep tabs on that?
17:46 yoleaux joined #perl6
17:47 FROGGS raiph: https://github.com/rakudo-p5/v5/blob/master/STATUS.md
17:48 FROGGS raiph: so it is like 1.97% passes
17:49 * [Coke] wonders why any utf support is needed in S32-trig/cost.t
17:49 [Coke] *cos.t
17:49 raiph FROGGS++ # very nice
17:50 [Coke] jnthn: get t/spec/test_summary working?
17:50 [Coke] that's how the daily runs for pugs/rakudo-p/niecza run.
17:50 dalek perl6-roast-data: 5a43b2c | coke++ | / (4 files):
17:50 dalek perl6-roast-data: today (automated commit)
17:50 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/5a43b2c8ed
17:50 raiph FROGGS: i'm guessing progress will be an S-curve. is that what you anticipate?
17:51 halliday joined #perl6
17:51 halliday how's it hanging?
17:52 * diakopter likes the new github UI
17:52 masak lizmat, pmichaud, et al involved in module musings: have you seen https://github.com/rakudo/rakudo/blob/nom/docs/S11-Modules-proposal.pod ?
17:52 FROGGS raiph: well yes, if one gets pack done, that means 16k tests, but there are more important things that have just 50 tests
17:52 masak it's three years old and sitting in docs/
17:55 masak lizmat: there's no Nancy.pm?
17:55 masak (thinking of what to name the release)
17:55 colomon [Coke]: I have no idea why cos.t would be using non-ascii characters
17:57 masak halliday: oh hai! it's hanging adequately, thanks.
17:57 * masak is bad at online pleasantries
17:57 masak halliday: how's with you, my good online being?
17:57 halliday lol.  was reading the perl6 web site
17:58 halliday u good.
17:58 masak heh.
17:58 masak we have our moments.
17:59 halliday have been thinking about perl6 lately and was wondering if the thread support was improved over perl5
18:00 masak tadzik: is it time for a "Poznan" release yet? what's the latest news from that .pm group? :)
18:00 masak halliday: threading still needs a solid implementation and a few spec iterations in Perl 6.
18:01 masak halliday: there are plenty of good ideas floating around, but no-one who has really sat down and "attacked" threading.
18:01 masak halliday: my guess is things will turn a lot more interesting once Rakudo is established on the JVM.
18:01 tadzik masak: they have a website, but no content yet :)
18:01 masak Rakudo and Parrot never really "connected" on a threading story.
18:02 halliday ahhhh
18:02 masak tadzik: do you think they would appreciate having a Rakudo release named after them? :)
18:02 tadzik masak: that may motivate them, or not ;P
18:02 masak good enough for me!
18:02 ajr joined #perl6
18:02 masak :)
18:02 tadzik masak: I vowed to take a train/bus to their first meeting, so I'll know when they actually work ;)
18:03 halliday think threading is good enough for testing at this point?
18:04 masak halliday: I think you'll have most luck trying out testing on Niecza right now.
18:04 masak but I don't know much more than that, unfortunately.
18:04 masak maybe someone else here does.
18:04 * tadzik documetees
18:04 [Coke] jeff_s1: regexp-pcre doesn't seem to be listed in the pugs repo. how does it get pulled in?
18:05 halliday thanks, masak.  will try it out
18:05 masak jnthn:
18:05 masak Compiler Performance/Portability Improvements (jnthn)
18:05 masak 2 **    finish up any remaining s/pir::/nqp::/
18:05 masak 2 ?     re-organize Rakudo, build process, etc. for multi-backend
18:05 masak 3 **    Optimizing multis for `[+] 1..10` and `[<=] 1..10` etc.
18:05 geekosaur [Coke], cabal installs it from hackage
18:06 masak do these need updating?
18:06 geekosaur pyanfar:60029 Z$ grep pcre */*.cabal
18:06 geekosaur pugs-compat/pugs-compat.cabal:  Build-depends   : base >=4 && < 5, time, directory, process, regex-pcre-builtin >= 0.94.4.4.8.31, regex-base,
18:06 [Coke] geekosaur: thank you. was wondering what pulled it in.
18:07 lizmat masak: despite having had the FPW there, there does not seem to be a Nancy.pm
18:07 [Coke] (I know it comes from hackage...)
18:07 FROGGS $ perl6 -e 'use v5; { use 6.0.0; "11" ~~ m:P5/(\d+)/; { use v5; say $1; { use 6.0.0; say $/ } } }' # 11\n 「11」\n 0 => 「11」 <--- this is working, weird :/
18:07 lizmat mask: wrt https://github.com/rakudo/rakudo/blob/nom/docs/S11-Modules-proposal.pod : it seems rather intent on scaling down the spec to something easily implementable
18:08 masak yes.
18:08 masak lizmat: I think that was the fashion of 2010.
18:08 lizmat but I agree with one point: you can only have 1 auth/ver string per file (UNIT)
18:08 masak lizmat: just wondering in general if the file was remembered or forgotten.
18:08 lizmat my point is, that it should live in a statement of its own, for clarity of all involved
18:09 masak no sense in reinventing too many wheels :)
18:09 lizmat this was the first time I saw it
18:09 masak well, mission accomplished then.
18:09 lizmat indeed :-)
18:09 masak I will now promptly forget it myself and leave it up to you whether to remove it or replace it with something better :)
18:09 lizmat FWIW, I spectested my Capture.exists addition, and it doesn't break anything
18:09 masak goodie.
18:10 [Coke] jeff_s1: grabbed it manually with a cabal install, seeing what happens.
18:10 masak I will run a few spectests tonight myself before cutting the final release.
18:10 lizmat now we only need TimToady,pmichaud to shine their light on .exists method in general, and Capture.exists in particular
18:11 masak ok, barring jnthn's comments, the ROADMAP looks current to me.
18:11 masak (it was updated in December)
18:11 [Coke] jeff_s1: do I need to do anything to make sure pugs builds with the latest version? (I apparently have 3 versions installed)
18:14 colomon errr .... http://71.10.146.50:3001/report (tests for 06/21 are the smoke test I just ran with the current Rakudo)
18:14 colomon File::Directory::Tree and IO::Path::More started failing sometime in the last 12 hours
18:16 masak in the release announcement, second sentence: "Rakudo is an implementation of Perl 6 on the Parrot Virtual Machine (see <http://www.parrot.org>)." -- should I amend this sentence somehow? :)
18:16 colomon +1
18:16 masak suggestions?
18:16 jnthn aye
18:17 colomon on NQP
18:17 diakopter s/on/with backends including the JVM and/ ?
18:17 [Coke] jeff_s1: https://gist.github.com/coke/5825216 - new passing tests.
18:19 masak diakopter: and link to Parrot but not the JVM?
18:19 diakopter how do you link to the jvm?
18:19 [Coke] diakopter: http://java.com/
18:19 jeff_s1 Sorry, was afk.
18:20 masak or I could drop the Parrot link.
18:20 jeff_s1 [Coke]: Great! Were there any new failures?
18:20 [Coke] jeff_s1: nope.
18:21 TimToady I don't mind something like .exists and .delete as internal methods, but they're more in the category of at_key and at_pos, not something that should be used much in Userland
18:22 TimToady so maybe a rename to exists_at_key and such
18:22 masak TimToady: this will break a lot of code.
18:22 amoe joined #perl6
18:22 masak a *lot* of code.
18:22 TimToady but all of those internals are subject to renegotiation as soon as S09 starts getting implemented
18:22 TimToady :exists is supposed to be S09-proof
18:23 TimToady we can't guarantee that for .exists
18:23 TimToady not without an explicit mapping of multidimensional args to single dimensional...
18:24 [Coke] colomon: your page is non responsive. can you do a screen grab or save source and throw that somewehre else?
18:24 TimToady we know we have subscripts, and we know that we want to delete and test existence using subscript notation; the rest is still unspecced
18:25 spider-mario joined #perl6
18:25 colomon [Coke]: the important info is "file:///Applications/Colloquy.app/Contents/Resources/Styles/Standard.colloquyStyle/Contents/Resources/:Directory::Tree and IO::path::More started failing sometime in the last 12 hours"
18:26 TimToady what does this turn into: my Things @things[3,3,*]; @things[1;2;$min..$max]:delete
18:27 vk joined #perl6
18:27 TimToady er, my Things @things[3;3;*]; @things[1;2;$min..$max]:delete
18:27 drbean joined #perl6
18:27 TimToady s'posed to use ; consistently...
18:28 masak the leap seconds script is broken. it's not a problem this month, because there has been no new leap second announced.
18:28 masak but it's something we should look at long-term.
18:28 TimToady currently .exists only knows about single keys, afaik
18:28 xenoterracide|2 joined #perl6
18:29 TimToady we'd need a .exists that knows about LoLs, where each sublist can be lazy
18:29 TimToady the :exists form is more straightforward as soon as you get out of single dimensions
18:30 colomon [Coke]: http://harmonyware.com/pictures/smoke.png
18:31 FROGGS masak: it doesnt like windows line endings
18:31 abnorman joined #perl6
18:35 masak FROGGS: oh, you found what's wrong? wonderful!
18:35 masak FROGGS++
18:36 FROGGS I wanted to fix that last time I made the release but forgot about it
18:36 masak FROGGS: now's your chance ;)
18:37 masak (no rush)
18:37 FROGGS you are cutting the release today?
18:40 masak yes, now.
18:40 masak but I'm not in any way blocking on a working leap second script.
18:40 * [Coke] kicks off a spectest run for rakudo.jvm using the test_summary script.
18:41 colomon r: say path("/").append("foo")
18:41 camelia rakudo b2072f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared routine:â�¤    path used at line 1â�¤â�¤Â»
18:41 [Coke] (only needed a small change to test_summary to pass in "-Ilib" # colomon++
18:41 [Coke] r: say IO.path("/") #?
18:41 * colomon is glad he did something right today.
18:41 camelia rakudo b2072f: OUTPUT«No such method 'path' for invocant of type 'IO'␤  in block  at /tmp/1kXQOUQG7C:1␤␤»
18:41 FROGGS masak: k
18:41 colomon [Coke]: I'm looking at IO::Path::More -- apparently that's where path comes from
18:42 masak http://smolder.parrot.org/app/projects/smoke_reports/5 was last updated 2013-03-29, it seems.
18:42 ajr_ joined #perl6
18:42 [Coke] that recently!?
18:43 * [Coke] is again rminded to fix muddle.
18:43 [Coke] http://smolder.parrot.org/app/projects/report_details/39357 - internal server error. :(
18:43 [Coke] camelia: help
18:43 camelia [Coke]: Usage: <(nqp-jvm|star|pugs|nqp|std|niecza|rakudo|b|nom|npr|n|r|perl6|prn|rn|p|rnp|nrp|pnr|rpn|p6|nr)(?^::\s) $perl6_program>
18:46 colomon Hmmm, I'm guessing it's labster's middle-of-the-night changes to IO::Path last night that broke his modules
18:46 labster oh hai
18:48 labster yeah, IO::Path::More is on the list to be completely refactored
18:48 [Coke] * won't pick those up for distro automatically, so that's ok.
18:52 konundra joined #perl6
18:53 lizmat TimToady: I like the .exists_at_key idea, since .exists currently is really an at_key cut short
18:54 TimToady but again, what's a "key" look like when you add slicing and multidimensionality?
18:55 * TimToady isn't sure
18:55 lizmat If necessary, I can do this rename of .exists internally + test-suite
18:56 lizmat I agree with your argument about S09,  :exists is the way to do this, as it will easily allow you to specify on which slice you want things to be applied
18:57 lizmat .exists should only handle a single key (as in perl 5), and to make it an "internal" method, rename it to ".exists_at_key"
18:59 dalek specs: b49be30 | (Elizabeth Mattijsen)++ | S11-modules.pod:
18:59 dalek specs: Remove mention of .exists method from example, replace by :exists adverb
18:59 dalek specs: review: https://github.com/perl6/specs/commit/b49be30200
19:00 FROGGS jnthn: I solved my capture-bug, this line caused it: https://github.com/rakudo-p5/v5/blob/master/lib/Perl5/Actions.nqp#L2824
19:01 FROGGS jnthn: it is trying to use P6Regex actions on a P5Regex grammar -.-
19:01 lizmat I guess I will rename Capture.exists to Capture.specified, does that make sense TimToady?
19:01 jnthn FROGGS: oh!
19:02 masak in the README: "For example, rakudo-jvm is known to fail many tests." -- should this be amended somehow?
19:04 lizmat maybe add "for now"
19:04 FROGGS I'd say that it does not yet pass many tests
19:04 FROGGS so it'll sound positive after all
19:05 lizmat I see FROGGS is a bottle half full person
19:05 lizmat :-)
19:05 masak it passes all the 'make test' tests, doesn't it?
19:05 lizmat it is supposed to now, afaik
19:05 masak I was thinking about the distinction between 'test' and 'spectest'.
19:05 FROGGS lizmat: yeah, and the readme or announcement is still some sort of advertising for the product
19:05 Chillance joined #perl6
19:05 masak 'tests' sounds like it's making a statement about the former.
19:06 FROGGS you could say that it passes al internal test, but not many of the language spectests
19:07 dalek rakudo/nom: da1c51b | masak++ | README:
19:07 dalek rakudo/nom: [README] clarification about the JVM tests failed
19:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/da1c51b437
19:08 lizmat afk for a few hours, amongst other things to make sure I won't interfere with masak's work tonight&
19:09 colomon lizmat++
19:11 masak 'Implement :$<foo> colonpair syntax.'
19:11 masak jnthn: really!? I totally missed that :D
19:12 FROGGS cool
19:12 masak things you learn by updating the ChangeLog... :)
19:12 FROGGS yepp
19:12 masak is... is that spec'd?
19:12 FROGGS who cares as long it is cool :P
19:14 * masak cares :)
19:14 TimToady $<foo> is listed under the twigils; it just happens to require a closer twigil too
19:16 masak r: constant True = "Yeah, well, you know, that's just, like, your opinion, man."; say True
19:16 camelia rakudo b2072f: OUTPUT«True␤»
19:17 * masak adds to https://rt.perl.org/rt3/Public/Bug/Display.html?id=111734
19:17 TimToady n: constant True = "Yeah, well, you know, that's just, like, your opinion, man."; say True
19:18 camelia niecza v24-79-gcb6f20b: OUTPUT«Yeah, well, you know, that's just, like, your opinion, man.␤»
19:19 [Coke] S03-metaops/reduce.rakudo.jvm......................  81 224227    2    7    0
19:19 [Coke] 5 skipped: =:= NYI
19:19 [Coke] 2 skipped: [!===]
19:19 [Coke] 1 todo   : item context
19:19 [Coke] 1 todo   : reduced hyper op
19:19 [Coke] 224317 tests more than planned were run
19:19 [Coke] whoops. slightly more lines than intended, sorry.
19:19 [Coke] (and that was after I killed it)
19:19 colomon jvm must be really fast, to run that many tests...
19:20 benabik joined #perl6
19:21 [Coke] it had been running for some time. :)
19:25 * [Coke] starts this over using the perl6-limited script and saving the output.
19:26 jnthn "Does Rakudo JVM run more spectests than on Parrot?" "Yes." :P
19:26 [Coke] :P :P :P
19:26 [Coke] honestly, I'm surprised it's doing this well.
19:27 [Coke] jnthn++ sorear++
19:31 * colomon has moved his estimate for when Rakudo-JVM will be ready for prime time significantly forward in the last 24 hours.  :)
19:32 diakopter forward in time?
19:32 [Coke] "closer to now"
19:32 colomon what [Coke] said
19:32 diakopter that's what it seemed, it's just forward usually means means forward in time
19:32 TimToady the time dimension is negative in relativity :)
19:33 diakopter also relative in negativity
19:33 TimToady it's negatively relative in dimensionality, however :)
19:33 TimToady well, except maybe an event horizon
19:34 TimToady s/an/near an/
19:37 [Coke] "more tests run than expected" reminds me of issues with junctions when trying to fudge things for pugs.
19:39 jnthn For those who'll be there: Anything anybody particularly wants to hear me speak about at YAPC::EU?
19:40 TimToady How Perl 6 runs *almost* as fast as Perl 5? :D
19:40 PerlJam TimToady++ faster snark than I
19:41 dalek nqp: 07698e7 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
19:41 dalek nqp: D'oh, CATCH isn't a control exception thing.
19:41 dalek nqp: review: https://github.com/perl6/nqp/commit/07698e7d72
19:41 TimToady jnthn++ for putting up with snark :)
19:41 jnthn TimToady: How hard am I allowed to cheat? :P
19:41 TimToady s:g/cheat/optimize/
19:42 TimToady just don't get caught!
19:42 jnthn ;)
19:42 lawrmcfa joined #perl6
19:42 dalek rakudo/nom: 201b7ff | masak++ | docs/ChangeLog:
19:42 dalek rakudo/nom: update ChangeLog
19:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/201b7ff1dc
19:43 masak that is one impressive changelog.
19:43 masak I'd just like to take this moment to say moritz++ who usually does a lot of the ChangeLog updates.
19:43 [Coke] masak: No java mention in the changelog?"
19:44 masak [Coke]: no; feel free to add something.
19:44 jnthn Feels like that should be in there :)
19:45 masak can I count on [Coke] or jnthn to add something in there?
19:46 [Coke] jnthn: "JVM backend passes all core tests" ?
19:47 jnthn Well, it was added for the first time in this release also
19:47 [Coke] I thought it was partially here for a while that was longer than a month. huh.
19:47 jnthn The merge was this month :)
19:47 [Coke] ok. "JVM backend added - passes all core tests"
19:48 jnthn That's OK
19:48 [Coke] plus, I imagine, a ¶ in the release notes.
19:48 jnthn Yeah, somewhere we should be clear what "core tests" mean
19:48 jnthn (e.g. "it's not the spectests"
19:49 jnthn )
19:49 TimToady initial sanity tests?
19:49 jnthn +1
19:50 jnthn If we have a % of spectest (compared to on Parrot) in time, that could go in, though not sure how meaningful it is.
19:50 jeff_s1 Looks like Pugs needs Failure.
19:50 [Coke] jnthn: it's not going to happen in time.
19:50 jnthn ok
19:50 [Coke] unless you want to wait until late.
19:51 dalek rakudo/nom: 5b5ac4b | coke++ | docs/ChangeLog:
19:51 dalek rakudo/nom: Add note about the JVM backend!
19:51 dalek rakudo/nom:
19:51 dalek rakudo/nom: jnthn++ sorear++ (et al.)
19:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5b5ac4b099
19:51 [Coke] I promise to write up a blog post for it though when I add the first run.
19:51 jnthn [Coke]: Well, it's masak really :)
19:51 jnthn But yeah, it's not really worth waiting for :)
19:51 [Coke] soooo slow.
19:51 nwc10 it's going to be out of date by the time that most people read it
19:52 [Coke] (presumably due to the startup time issues that sorear was discussing)
19:52 PerlJam nwc10: that's okay.  Think about how long it takes your friendly neighborhood linux dist to update.
19:53 dmol joined #perl6
19:56 colomon what *does* :$<foo> do?
19:56 TimToady foo => $<foo>
19:57 colomon hmmmm
19:57 colomon TimToady++
19:57 masak I guess it doesn't do 'bar => $<foo><bar>', though.
19:57 TimToady the spec even has :$$foo turning into foo => $$foo
19:58 TimToady just finds the next identifier, whatever it is
19:59 TimToady not that that means anything now
19:59 TimToady but :$@foo and :@$foo are meaningful
19:59 dalek rakudo/nom: 1bf789d | masak++ | docs/ChangeLog:
19:59 dalek rakudo/nom: [docs/ChangeLog] fixed thinko
19:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1bf789d2ac
20:03 dalek rakudo/nom: 7e6ef07 | masak++ | docs/announce/2013.06.md:
20:03 dalek rakudo/nom: [docs/announce/2013.06.md] added
20:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7e6ef07973
20:03 masak please please eyes eyes :)
20:03 * masak points to eyes and to the above commit and its URL
20:04 labster the eyes have it
20:04 masak oh nose
20:04 labster I can ear you.
20:04 TimToady me senses a pun-war coming
20:04 * jnthn takes up arms
20:04 masak labster: so you must have a cute earring.
20:05 TimToady nice touch
20:05 nwc10 is it always pun time in hair?
20:05 jnthn "Rakudo is an
20:05 jnthn +implementation of Perl 6 on the Parrot Virtual Machine"
20:05 nwc10 I was wondering that
20:05 masak suddenly everyone elbows in with a pun
20:05 jnthn That sounds funny when it says "JVM backend added" further down ;)
20:05 masak oh!
20:06 masak I thought I added diakopter++'s fix, but seems I didn't.
20:06 masak ok, let me do that right away.
20:06 dalek rakudo/nom: 2f2b4e3 | masak++ | docs/announce/2013.06.md:
20:06 dalek rakudo/nom: [docs/announce/2013.06.md] ...and the JVM
20:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2f2b4e38f7
20:06 masak feel free to further suggest improvements to that wording.
20:08 FROGGS hmmm, I dont see anything strange left
20:08 timotimo ++ implement sequences between 1-codepoint strings implemented
20:08 timotimo oops :)
20:08 labster It might be nice to note that Rakudo Star includes a module installer.  I'd probably spell out Java Virtual Machine.
20:09 masak timotimo: that one is fixed already :)
20:09 timotimo ok
20:09 masak labster: ok. fixing both.
20:09 PerlJam What's "poznan" ?
20:10 jnthn :D
20:10 TimToady can any of this be categorized as prelim work for targeting moarvm?
20:10 * [Coke] should have bumped up the "imited" perl6-jvm to last longer than 45s.
20:10 flussence .oO( positive NaN )
20:10 [Coke] in general, things that allow us to run on more than platform are helping with moarvm, aye.
20:10 jnthn TimToady: Some of the portability fixes will help there too.
20:11 TimToady might be politic to mention it along with JVM
20:11 TimToady or might not be :)
20:11 dalek rakudo/nom: a7dea6c | masak++ | docs/announce/2013.06.md:
20:11 dalek rakudo/nom: [docs/announce/2013.06.md] spell out JVM
20:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a7dea6c44f
20:11 dalek rakudo/nom: dc5038b | masak++ | docs/announce/2013.06.md:
20:11 dalek rakudo/nom: [docs/announce/2013.06.md] mention module installer
20:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dc5038b06b
20:11 dalek v5: 0c3b4cd | (Tobias Leich)++ | / (3 files):
20:11 dalek v5: properly capture in regexes, and allow the use of $1-vars
20:11 dalek v5: review: https://github.com/rakudo-p5/v5/commit/0c3b4cd1a0
20:11 [Coke] I wouldn't until we pass the sanity tests.
20:11 [Coke] that was the effective line in the sand for the jvm.
20:11 masak *nod*
20:12 jnthn +1
20:12 timotimo that can't take long ... :)
20:12 PerlJam well ... there is another release in a month  ;)
20:12 masak rn: say qq[What's "poz{lc sqrt -1}" ?]
20:12 camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«What's "poznan" ?␤»
20:12 masak :)
20:13 FROGGS >.< :P
20:13 labster https://github.com/rakudo/rakudo : "Rakudo Perl -- Perl 6 on Parrot"  we might want to change that too.
20:13 masak labster: nice!
20:13 flussence .oO( the correct answer is highly complex... )
20:13 masak I mean, good catch.
20:13 labster I know I'm nice :)
20:13 TimToady but Positive Over Zero == +Inf, not NaN...
20:15 masak ok, I'm now descending into the "release nqp" subroutine.
20:15 [Coke] I thought we just said it was a Fail
20:16 TimToady Inf and Nan are very small failures, for large values of small
20:16 masak or non-values, in the case of NaN.
20:17 masak jnthn: haha, I go to the nqp repository on github, and the first thing that catches my eye is your gravatar going "D'oh, CATCH isn't a control exception thing." :D
20:17 masak jnthn: it's like a punchline of some really un-funny joke :)
20:18 jnthn I was like...where are all the exceptions going?!
20:18 masak there's always a catch :P
20:19 jnthn oh, control those puns...
20:20 masak I'll try...
20:20 PerlJam finally!
20:20 TimToady the odds are stacked against you being able to unwind tonight
20:21 masak oh, I'm exceptionally good at unwinding.
20:21 masak both PRE and POST a release :)
20:21 * TimToady throws up his hands
20:21 jnthn Well, that's a warning...
20:21 masak according to the logic of the nqp release guide, I should *not* update to Parrot 5_3_0. anyone feel different?
20:21 masak jnthn: err.
20:22 PerlJam masak: unless there's a compelling need, no. (IMHO)
20:22 masak PerlJam: the logic is based on that, I think.
20:23 masak PerlJam: basically, if there was a compelling need during the month, we'd be targeting a git commit, not a release. which we're not.
20:23 sorear good * #perl6
20:23 yoleaux 13:18Z <jnthn> sorear: PASS ALL THE SANITY TESTS! \o/
20:23 dalek nqp: 5816238 | masak++ | VERSION:
20:23 dalek nqp: bump VERSION to 2013.06
20:23 dalek nqp: review: https://github.com/perl6/nqp/commit/58162385ca
20:23 masak sorear! \o/
20:24 colomon \o/
20:24 nwc10 \o/
20:24 TimToady \ö/
20:24 jnthn o/ sorear :)
20:25 PerlJam Heh ... I notice that most of the blank lines in NQP's release guide are still attributed to me  :)
20:25 anocelot \o/
20:26 masak PerlJam: we trust you with blank lines. whenever we have a need for them, you're foremost in our minds.
20:26 masak :P
20:27 * PerlJam looks at masak blankly
20:27 TimToady the shortest distance between two bullet points is a blank line
20:27 PerlJam not in POD6!
20:27 masak the shortest *range* between... :)
20:28 labster r: say (++(my $ = "pop") for ^10);
20:28 camelia rakudo b2072f: OUTPUT«poq poq poq poq poq poq poq poq poq poq␤»
20:28 labster r: say (++(state $ = "pop") for ^10);
20:28 camelia rakudo b2072f: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
20:29 masak ok, Houston, we have a problem.
20:29 masak perl Configure.pl --gen-parrot fails in nqp: https://gist.github.com/masak/5826320
20:29 masak :(
20:30 * flussence grabs the poqcorn
20:30 TimToady that's popcorm to you
20:30 jnthn That looks terribly like an absolute path to me
20:30 flussence hm, lemme try running that...
20:30 sorear jnthn: Did you see what I'm doing with "jvm-hacking"?
20:30 TimToady er, popcoro
20:30 masak notice the the first problem already on L12.
20:31 masak TimToady: a "popcoro" sounds like an implementation detail of green threads :)
20:31 labster surprise, it's threaded!
20:32 * PerlJam hands out some popqorn instead
20:32 TimToady don't confuse me like that--it's redundant
20:33 masak why does that fail now? we already targeted this Parrot release last month...
20:33 masak it almost has to be something that changed on the nqp end, no?
20:34 PerlJam masak: WHAT. DID. YOU. DO?!?
20:34 sorear jnthn: also, [[ Files=738, Tests=16180, 1492 wallclock secs ]] - is that using the evalserver?
20:34 PerlJam ;)
20:34 flussence masak: rakudo build sailed past that point without a complaint on my end...
20:34 jnthn sorear: I noticed it...guessed it was a work in progress
20:34 masak flussence: not rakudo. clean nqp.
20:34 jnthn sorear: No, that's just a couple of local hacks on t/harness and perl6.bat, with --jobs=4
20:34 flussence oh
20:34 flussence hm
20:34 masak anyway... halp!
20:34 masak currently very much blocking on this.
20:34 sorear jnthn: Pm doesn't want me committing to nom without spectesting parrot first, so I'm doing everything on a branch so I can spectest once before merging
20:34 flussence (does it count if my build thingy runs git clean -dfx everywhere first?)
20:35 masak flussence: just saying where I ran into problems.
20:35 jnthn sorear: Oh...
20:35 sorear or rather, Pm doesn't want me committing anything to nom that casues spectest regressions.  I'm just paranoid about what might cause them.
20:35 jnthn sorear: Ah, OK. I'm probably not paranoid enough :)
20:35 * masak dives into lib/Parrot/Configure/Options.pm looking for the line that died
20:36 jnthn sorear: otoh, I shoulda just earned some Pm credit by doing a re-write of that MapIter thing I did in terms of nqp:: ops :)
20:36 jnthn sorear: Meaning it'll be valid for Moar too \o/
20:37 sorear :D
20:37 jnthn *and* it now supports next/last/redo :D
20:38 masak $ perl -MFile::Spec -wE 'say File::Spec->file_name_is_absolute("/home/masak/ours/nqp/install")'
20:38 TimToady and we all know that the sequence of opcodes couldn't possibly have any machine dependencies...
20:38 masak 1
20:38 masak vewwy vewwy odd.
20:38 anocelot jnthn: cool!
20:38 vk joined #perl6
20:38 colomon jnthn++
20:39 jnthn sorear: I've spent the day beyond getting sanity all passing picking off various things spectests showed up
20:39 FROGGS joined #perl6
20:39 * colomon is going to shut down his LAN and try installing one of these fancy new Time Capsules.
20:39 masak a-ha!
20:40 masak $ perl -MFile::Spec -wE 'say File::Spec->file_name_is_absolute(q["/home/masak/ours/nqp/install"])'
20:40 masak <empty line>
20:40 masak this seems to be what's happening.
20:40 masak I have no idea why it's suddenly happening.
20:40 flussence masak: can't reproduce that with a clean nqp here, although I'm using a perlbrew'd 5.18 instead of system perl
20:40 masak checking the log for that file.
20:40 tgt joined #perl6
20:40 flussence that's the only difference I can see :/
20:40 sorear jnthn: How does CONTROL interact with the fact that lexotics (seem to) bypass the entire NQP exception system and just do a JVM unwind?
20:40 masak perl 5.14 here.
20:40 TimToady why the double quoting with q[""]?
20:40 FROGGS masak: q["..."] <--- is that right?
20:41 FROGGS ahh, maybe to allow space
20:41 flussence if it's quoting a fs path to use in a command line, yeah
20:41 masak FROGGS: I don't know about *right*. I had it debug-output $value, and that's what $value contains!
20:41 anocelot colomon: I've had mixed results with the Time Capsule.
20:41 TimToady surely you're feeding '"..."' to the m method
20:41 TimToady s/m //
20:42 sorear jnthn: Oops, seems I never did merge back the "get rid of all the statics" thing either...
20:42 jnthn sorear: I...don't they they do any more...
20:42 TimToady and a file starting with " isn't absolute
20:42 masak right.
20:42 masak well, *I'm* not feeding. Configure.pl is, I guess.
20:43 jnthn sorear: They used to a long, long time back before I did the rest of the exception system. I'm pretty sure they all go through the same path now
20:43 * masak looks for the line that does that
20:43 FROGGS masak: I get an empty line with the extra quotes too, but not without them
20:43 FROGGS 5.14.2 that is
20:43 sorear jnthn: return doesn't go through exceptions, I can tell
20:44 jnthn sorear: Return doesn't.
20:45 masak my @cmd = ($^X, "Configure.pl", @opts, "--prefix=\"$prefix\"");
20:45 jnthn sorear: Sorry, I thought you were talking about next/last/redo etc.
20:45 masak that line puts the double quotes there.
20:45 masak ...and it's been changed this month.
20:45 masak 6c24e71c
20:45 FROGGS and they make sense there
20:45 masak by [Coke]. "Quote args passed to parrot's Configure."
20:46 sorear jnthn: I was kind of talking about both because I wasn't thinking about it clearly
20:46 flussence shot in the dark, what version's your File::Spec? 3.40 here.
20:47 FROGGS 3.33 here, and I have the same behaviour like masak
20:47 TimToady maybe two different fixes for the same problem?
20:47 TimToady one added q[], the other added ""?
20:47 masak flussence: 3.33 here.
20:47 TimToady in different spots?
20:47 masak TimToady: no, I don't think so.
20:47 masak TimToady: [Coke] added "", and at least Parrot 5.2.0 doesn't like that.
20:48 * masak checks if a newer Parrot fixes it.
20:48 TimToady can't be a Parrot problem; q[""] just makes no sense as Perl
20:49 masak oh, indeed https://github.com/parrot/parrot/commit/1291bb19d83cea601e8a883712dca89acf86e930
20:49 TimToady prefix is used in multiple places? and some other place (a shell? a Makefile) was fixed with the ""
20:49 sorear jnthn: what kind of machine do you build and test on?
20:49 flussence well I can't imagine File::Spec was broken and fixed between .33 and .40...
20:49 flussence unless it's a locale thing...
20:49 masak TimToady: I have the feeling we're talking past each other. I used q[] in a one-liner of mine; haven't seen it in nqp or Parrot.
20:50 masak anyway, I think I need to upgrade Parrot to 5.3.0 for this reason.
20:50 masak I'll try this.
20:50 timotimo using the :$<foo> syntax, can i also do something like :replacement($<replacement>.Str shorter? (the .Str part is what i'm wondering about)
20:50 TimToady masak: okay
20:50 jnthn sorear: Quad core i7 running at 3.4 Ghz, 16 GB RAM, all build tools and sources on an SSD
20:50 labster File::Spec is only broken from a design point of view :)
20:50 jnthn sorear: Didn't turn on HT, though pondering trying it...
20:50 timotimo r: "foo" ~~ /<ident>/; (:$<ident>.Str).perl.say
20:50 camelia rakudo b2072f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Bogus statementâ�¤at /tmp/EdO7EZ1E5v:1â�¤------> [32m"foo" ~~ /<ident>/; (:$[33mâ��[31m<ident>.Str).perl.say[0mâ�¤    expecting any of:â�¤        colon pairâ�¤Â»
20:51 jnthn sorear: Apart from I seem to go a month or so between reboots and find 'em annoying... :)
20:51 FROGGS timotimo: I dont think there is a nice way to do that
20:51 TimToady timotimo: probably not, would mean (replacement => $<replacement>).Str
20:52 masak dang, still the same error :(
20:52 FROGGS :(
20:52 sorear jnthn: yeah, just wondering because it builds the setting twice as fast as mine
20:52 flussence p5eval: "/home/foo/bar/nqp/install" =~ m:^/:s
20:53 p5eval flussence: 1
20:53 jnthn [nom 6f38170] Redo MapIter with nqp ops; handle next/last/redo.
20:53 masak oh, because I should bump all the way up to 5.5.0...
20:53 jnthn 2 files changed, 35 insertions(+), 218 deletions(-)
20:53 jnthn ...nice!
20:53 masak d'oh
20:54 colomon joined #perl6
20:54 dalek rakudo/nom: f3f182d | jnthn++ | src/Perl6/Actions.nqp:
20:54 dalek rakudo/nom: Allow nqp::handle(...) use in Perl 6 code.
20:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f3f182dfaf
20:54 dalek rakudo/nom: a0d138a | jnthn++ | / (3 files):
20:54 dalek rakudo/nom: Merge branch 'nom' of github.com:rakudo/rakudo into nom
20:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a0d138a534
20:54 dalek rakudo/nom: 8506c14 | jnthn++ | src/ (2 files):
20:54 dalek rakudo/nom: Redo MapIter with nqp ops; handle next/last/redo.
20:54 dalek rakudo/nom:
20:54 dalek rakudo/nom: This tosses the JVM specific version with something generic, which
20:54 dalek rakudo/nom: means it can be re-used for MoarVM later on too. pmichaud++ for the
20:54 dalek rakudo/nom: suggestion to do it this way.
20:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8506c14cff
20:54 masak yay it works again \o/
20:54 jnthn oops, I forgot le --rebase...
20:54 masak jnthn: I have non-ff merges turned off by default. recommended.
20:55 jnthn masak: Just for pull?
20:55 jnthn Not sure I'd want it as a default anywhere else...
20:55 sorear grr, now I need to merge nom into jvm-hacking *again*... :D
20:55 colomon Airport Utility tells me I need to update it before I can work with the new Airport Time Capsule.  And how do I do that when I cannot log into the internet because I do not have a working Airport?  Luckily, I figured out how to make my laptop piggyback off my phone's internet connection back in March....
20:56 sorear I think I'll take my paranoia down a notch and just work on nom after this merge
20:56 * masak .oO( just because you take your paranoia down a notch doesn't mean the stop following you )
20:57 jnthn e
20:57 jnthn oops
21:01 masak editing files again? :P
21:01 jnthn yeah
21:01 jnthn :P
21:02 jnthn hm, seems one of the biggest blockers at the moment is no working sort.
21:04 FROGGS didnt sorear++ already fix cmp for that?
21:05 sorear say %*ENV works, say %*ENV<PERL6LIB> doesn't
21:06 dalek nqp: 0bff39f | masak++ | tools/build/PARROT_REVISION:
21:06 dalek nqp: [tools/build/PARROT_REVISION] bump to Parrot 5.5.0
21:06 dalek nqp:
21:06 dalek nqp: Needed because of some quote business involving nqp commit
21:06 dalek nqp: 6c24e71 and Parrot commit 1291bb1.
21:06 dalek nqp: review: https://github.com/perl6/nqp/commit/0bff39f17b
21:07 jnthn sorear: Can only guess it's something to do with %*ENV having a magical at_key
21:07 jnthn (done by role mixin)
21:08 dalek rakudo/nom: 4040ef1 | jnthn++ | src/core/List.pm:
21:08 dalek rakudo/nom: Don't rely on magical 'Inf' coercion.
21:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4040ef105c
21:09 lue hello world o/
21:10 masak lue! \o/
21:10 sorear lue! :D
21:10 masak nqp uploaded. you can admire it here: http://rakudo.org/downloads/nqp/
21:11 anocelot lue! o/
21:11 masak popping back up to Rakudo release process.
21:11 sorear ok, I'm merging and smoking
21:11 colomon oh for pete's sake.  my machine isn't capable of configuring the new airport time capsule because its version of OS X is too old...
21:12 * colomon comtemplates a sort of Tower of Hanoi upgrade process...
21:13 masak colomon: the good thing is that you can be sure it will only require 2**N-1 moves :)
21:13 dalek rakudo/nom: cf89b50 | masak++ | tools/build/NQP_REVISION:
21:13 dalek rakudo/nom: [release] bump NQP revision
21:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cf89b50f07
21:13 dalek rakudo/nom: c37bc49 | masak++ | VERSION:
21:13 dalek rakudo/nom: [release] bump VERSION
21:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c37bc4916f
21:14 grondilu joined #perl6
21:14 grondilu /usr/bin/perl tools/build/gen-cat.pl parrot src/QRegex/P5Regex/Grammar.nqp src/QRegex/P5Regex/Actions.nqp src/QRegex/P5Regex/Compiler.nqp  > src/stage2/gen/NQPP5QRegex.nqp
21:14 grondilu ./nqp --target=pir --output=src/stage2/gen/NQPP5QRegex.pir \ src/stage2/gen/NQPP5QRegex.nqp
21:15 grondilu make: *** [NQPP5QRegex.pbc] Segmentation fault
21:15 grondilu Command failed (status 512): make
21:15 grondilu Command failed (status 512): /usr/bin/perl Configure.pl --with-parrot=/media/disk27/lucien/rakudo/install/bin/parrot --make-install
21:15 masak grondilu: well hello to you too.
21:15 masak :)
21:15 flussence --parrot-option=--without-pcre
21:15 grondilu sorry if that was rude
21:15 masak exceedingly! :P
21:15 timotimo grondilu: delete all of everything
21:15 labster Well I never.
21:15 masak the nerve!
21:16 * grondilu runs rm -rf nqp parrot
21:17 * grondilu reruns perl Configure --gen-nqp --gen-parrot
21:17 dalek rakudo/nom: 98a5e56 | sorear++ | src/vm/jvm/runtime/org/perl6/rakudo/ (2 files):
21:17 dalek rakudo/nom: Use simpler (and threadsafer) reporting of binder errors
21:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/98a5e566e1
21:17 dalek rakudo/nom: 76f8db7 | sorear++ | src/vm/jvm/ (4 files):
21:17 dalek rakudo/nom: Move Rakudo global state into a GlobalContext extension
21:17 timotimo remove install/, too
21:17 jnthn Remember to kill your install dir too
21:17 jnthn oh noah...a flood!
21:18 masak you should also remove your install folder.
21:18 * grondilu removes install/
21:18 dalek joined #perl6
21:18 colomon_ joined #perl6
21:18 masak jnthn: I sea what you did there.
21:18 flussence or just run `git clean -dffx` from the rakudo/ dir, which has the same effect
21:18 grondilu flussence: too late, but I'll try to remember this for next time
21:19 jnthn Two f's? Is that like, REALLY force it? :)
21:19 * colomon_ is back on the old Airport Time Capsule again.  Now to see if his wife's computer is backed up properly, so he can update OS X on it, so he can configure the new Airport Time Capsule, so he can properly backup his computer....
21:19 flussence jnthn: that nukes every subdir with a .git in it. I'd prefer a --recursive option...
21:19 jnthn flussence: oh, nice. There's my bit of git education for the day :)
21:21 dalek rakudo/nom: a0f672b | sorear++ | / (2 files):
21:21 dalek rakudo/nom: Break circular deps in JVM makefile...
21:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a0f672b601
21:22 masak jnthn: 'git clean' gets tricky, what with .gitignore and submodules and stuff.
21:23 masak jnthn: the closest I've been to submitting a gitbug was when I tracked a problem of mine down to a fix upstream of my git version. :)
21:24 masak (the fix fixed the problem, it didn't cause it. but I didn't have a new enough version)
21:25 masak spectestin'
21:28 * timotimo likewise
21:28 sorear jnthn: I'd like your opinion on rakudo:76f8db7  when you get a chance.
21:30 jnthn sorear: It's just eliminating the various statics in Rakudo Ops.java?
21:30 sorear Yes
21:31 jnthn Looks reasonable to me.
21:32 lizmat masak: about the changelog: maybe we should remove the mention of Capture.exists as it may change its name soon (like Capture.specified)
21:32 lizmat since .exists is to become an internal method ?
21:33 masak t/spec/integration/advent2009-day23.rakudo returned 'dubious' and exit status 1 here.
21:33 sorear jnthn: Heh.  I was thinking "This is the least insane way I could find... jnthn will hate it for sure..."
21:33 timotimo Result: PASS - but maybe not with the exact version that comes in the tarball
21:33 masak when I try to run it outside of the harness, I can't even find advent2009-day23.rakudo, only the .t version.
21:34 sorear masak: I may have broken the fudger
21:34 sorear RFC: change rakudo's impl name to rakudo.parrot
21:34 masak lizmat: but it is a change, regardless of whether it will change again soon.
21:34 masak lizmat: I did already exclude it from the announce.
21:34 lizmat ah, cool, must have looked at an old diff then  :-)
21:34 timotimo sorear: sounds sensible to me, since it does prefix matching
21:35 jnthn sorear: Well, I understand why it's being done, and that it's worth it for the evalserver.
21:35 masak lizmat: no, it was never in the announce. only in the changelog.
21:35 lizmat Ah, I meant the changelog
21:35 sorear timotimo: I added the prefix matching yesterday
21:35 masak lizmat: I think it belongs there. the changelog logs changes.
21:35 lizmat but if you want to keep it as it is a change, then keep it
21:35 jnthn sorear: What does that mean in reality?
21:35 lizmat ok
21:35 masak even changes that we think might... change :)
21:35 Rotwang joined #perl6
21:36 jnthn sorear: I mean, we'll still have things that no Rakudo backend does, that I think we'll want to #?rakudo still
21:36 jnthn sorear: I guess I'm asking: what are you proposing changing?
21:37 sorear jnthn: yesterday I modified fudge to do prefix matching, so if you set the impl name to rakudo.parrot it matches both #?rakudo and #?rakudo.parrot
21:37 timotimo if we fudge #?rakudo, we'll also automatically fudge #?rakudo.jvm
21:37 jnthn sorear: oh, I see
21:37 jnthn sorear: So the change is just to make Rakudo on Parrot pass rakudo.parrot to fudge instead of rakudo?
21:38 sorear yes
21:38 jnthn sorear: iiuc, that should be harmless?
21:38 sorear should be :D
21:38 jnthn OK, it makes sense to me.
21:38 labster mostly harmless anyway
21:39 lizmat I need my towel
21:39 masak sorear: +1
21:39 dalek rakudo/nom: baa862c | sorear++ | t/harness:
21:39 dalek rakudo/nom: support #?rakudo.parrot
21:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/baa862ce68
21:39 timotimo Files=739, Tests=28112, 413 wallclock secs ( 5.04 usr  0.87 sys + 1211.60 cusr 85.00 csys = 1302.51 CPU)
21:39 timotimo that's a pretty quick spectest
21:41 sorear timotimo: jvm?
21:41 lizmat that's probably because --jobs=4 is now secretly added ?
21:42 lizmat note that the number of CPU seconds is roughly 3.5x the wallclock
21:43 timotimo lizmat: i added it nonsecretly
21:43 timotimo sorear: that's parrot
21:44 labster Well, I have some minor changes to perl6.org, mentioning the JVM, ready to push when masak puts up a release.
21:44 jnthn sorear: Should make test / make spectest work in nom now?
21:45 dalek rakudo/nom: 7c2e0b9 | sorear++ | src/core/terms.pm:
21:45 dalek rakudo/nom: Fix a stupid variable reuse error
21:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7c2e0b9d75
21:45 sorear jnthn: make test works right now on jvm
21:45 tomyan joined #perl6
21:45 * sorear attempts a spectest
21:47 masak I should maybe ask people not to commit to nom during release engineering...
21:47 jnthn masak: BRANCH!!!
21:47 jnthn :P
21:47 masak ...but I find I don't really care that much.
21:47 masak that commit simply won't make it into the release, because I'm not re-running stresstest twice just for that :)
21:48 * sorear opens the evalserver in jvisualvm for fun
21:49 dalek rakudo/nom: 8dd1f32 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Ops.java:
21:49 dalek rakudo/nom: Fix thinko in p6store.
21:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8dd1f3208e
21:50 lizmat hmm… make spectest for me doesn't add --jobs=4  ?
21:50 sorear jnthn: That commit won't make it into my spectest run.
21:50 jnthn sorear: that's fine...I suspect with the evalserver they're cheaper to make... :)
21:51 lizmat calling it a night, see you all again on the longest day of the year&
21:51 jnthn 'night, lizmat
21:51 FROGGS joined #perl6
21:52 sorear I love the sawtooth shape of the memory use graph
21:52 sorear "the GC is doing its job"
21:52 jnthn hm, latest changes don't work on windows
21:52 * jnthn looks into it
21:53 konundra joined #perl6
21:53 sunnavy joined #perl6
21:53 sorear I don't really expect them to
21:53 masak rakudo 2013.06 uploaded.
21:53 * grondilu successfully compiled nqp and parrot.  Thanks
21:53 masak you can admire it here. http://rakudo.org/downloads/rakudo/
21:53 sorear need a relacement for system("... &")
21:54 sorear and a few other bits
21:54 jnthn sorear: Well, doesn't actually get through "make" even...
21:54 jnthn Testing a fix for that bit now
21:54 * masak emails p6c
21:57 masak hm, there seems to be general disunity as to whether to have the announce header *both* in the email subject and at the top of the body, or just in the email subject. :)
21:57 masak p6c email sent.
21:57 * masak updates http://en.wikipedia.org/wiki/Rakudo
21:59 masak done.
22:00 flussence masak++
22:00 masak standing down release mode.
22:00 * masak celebrates with one of his favorite imperial stouts
22:00 jnthn masak++ # taste in beer, release
22:01 sorear Irrbloss?
22:01 sorear masak: Might want to fix the first sentence... :D
22:01 sorear whee, we're on S06
22:01 dalek rakudo/nom: 4748680 | jnthn++ | tools/build/Makefile-JVM.in:
22:01 dalek rakudo/nom: Fix "make" on Windows.
22:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/474868004b
22:01 dalek rakudo/nom: 3acc5aa | masak++ | docs/release_guide.pod:
22:01 dalek rakudo/nom: [docs/release_guide.pod] belatedly move #65 up
22:01 dalek rakudo/nom:
22:01 dalek rakudo/nom: Somehow I didn't do this step during the release process itself.
22:01 dalek rakudo/nom: Oh, well.
22:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3acc5aa902
22:02 dagurval joined #perl6
22:02 masak sorear: "Irrbloss" is the sv translation of https://en.wikipedia.org/wiki/Will-o%27-the-wisp from https://en.wikipedia.org/wiki/Never_ending_story
22:03 sjn joined #perl6
22:03 * masak fixes the first sentence
22:04 dalek rakudo/nom: 49f1113 | jnthn++ | t/harness:
22:04 dalek rakudo/nom: Use correct slashes in t/harness.
22:04 dalek rakudo/nom:
22:04 dalek rakudo/nom: Doesn't make it work, but gets to the next error.
22:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/49f1113af9
22:05 sorear masak: so it is you then :D
22:05 xilo_ joined #perl6
22:05 sorear jnthn++ # being portable so I don't have to.  Er.
22:06 jnthn sorear: Hmm..
22:06 jnthn Exception in thread "main" java.lang.UnsupportedOperationException: 'posix:permi
22:06 jnthn ssions' not supported as initial attribute
22:06 jnthn Any guesses? :)
22:06 timotimo i broke it!
22:06 masak sorear: yeah, that's my paranoia shining through. I could've chosen 'masak', but I didn't want to tie my Wp identity too close to my default online identity...
22:07 sorear jnthn: I was afraid of that
22:07 sorear jnthn: should modify the EvalServer.java to do something else appropriate
22:08 sorear jnthn: the point here is to prevent other local users from reading the token, because then they could use perl6 to take over your account. :p
22:11 sorear ideas for the eval server:
22:11 sorear * time out after inactivity, so even if someone kills the harness the eval server won't stick around forever
22:12 sorear * use a packetized reply format so that STDOUT, STDERR, and exit codes can be kept separate
22:12 sorear advent!
22:13 sunnavy joined #perl6
22:13 timotimo sorear: you're 1/3rd of the way towards implementing an ipython notebook compatible kernel :)
22:16 sorear https://gist.github.com/sorear/5827219
22:16 sorear 1695 seconds on my slow machine :D
22:16 flussence would it be feasible to write a new try.rakudo.org based around that eval server at this point? seems like it'd be way more efficient than the old site's prefork method...
22:16 xilo_ joined #perl6
22:17 sorear it would be faster, but S03-metaops/reduce.t went into an infinite loop and acted as one of my TEST_JOBS for the entire rest of the run
22:17 flussence (especially considering it was preforking an entire rakudo repl per remote user on feather3 and only timing out after 10 minutes...)
22:18 flussence ooh, now there's an interesting idea: a REPL module with session save/restore
22:19 sorear flussence: i'd rather just write an applet frontend for rakudo at this point
22:20 sorear dayjob focus&
22:20 flussence oh right, I forgot it *runs on java* now :D
22:26 jnthn 350 test files have failures, out of 713
22:27 jnthn r: say 713 - 350
22:27 camelia rakudo 49f111: OUTPUT«363␤»
22:27 jnthn So more than half of the spectest files already run without failures.
22:28 sorear jnthn: are you analyzing my gist or one of your runs?
22:28 jnthn sorear: your gist
22:29 jnthn sorear: It's possible things improved since then
22:29 sorear o_O "TODO passed"
22:30 benabik joined #perl6
22:31 sorear looks like if I put all the binaries in jar files it comes out to a bit under 5M
22:31 sorear not that it will *run* from jars yet... but the added code for that isn't going to be huge
22:32 sorear will be even smaller if/when I do NO_INDY and pack200
22:32 benabik What is it now?
22:32 sorear benabik: it = Rakudo
22:32 sorear benabik: also, https://gist.github.com/sorear/5827219
22:32 sorear :D :D
22:33 * colomon is suddenly dreaming of having Rakudo running on his phone....
22:33 sorear make spectest works on the JVM now and we're failing less than half of the test files
22:33 benabik sorear: Yay running tests! :)  But I meant how big is it right now?
22:33 benabik i.e. before putting things in JARs.
22:34 colomon sorear: is that all pushed to nom on github?
22:34 sorear benabik: bigger, but I'm not sure that's a relevant question, we can't sanely deploy an applet as loose classes
22:34 sorear colomon: yes
22:34 colomon sorear++
22:34 colomon \
22:35 colomon is that make spectest also in parallel?
22:35 sorear wc -c *.class blib/Perl6/*.class ../nqp-jvm/install/*.class rakudo-runtime.jar ../nqp-jvm/install/*.jar  #  25992647 total
22:35 sorear colomon: yes
22:35 * colomon would not be upset if it is not, mind you...
22:35 sorear colomon: running on four Java threads in the evalserver process
22:36 colomon \o/
22:36 sorear colomon: note that S03-metaops/reduce.t went into an infinite loop and I didn't notice until the very end when the test harness went from running 4 jobs down to 1
22:37 colomon r: say 1695 / 4
22:37 camelia rakudo 49f111: OUTPUT«423.75␤»
22:37 colomon r: say 1695 / 60
22:37 camelia rakudo 49f111: OUTPUT«28.25␤»
22:37 sorear er, 1695 is already divided by 4
22:37 colomon 28 minutes, eh?
22:37 colomon sorear: yes, major thinko there on my part.
22:37 colomon :)
22:37 sorear the test run took 28 minutes
22:38 BenGoldberg joined #perl6
22:38 skids joined #perl6
22:38 sorear TEST_JOBS=4 make spectest on Parrot takes 869 seconds here, btw
22:41 sorear benabik: https://gist.github.com/sorear/5827413
22:42 grondilu Compiling lib/Panda/Installer.pm
22:42 grondilu IO::Handle.copy is deprecated.  Please use IO::Path.copy instead.  in block  at /usr/local/src/panda/lib/Panda/Builder.pm:76
22:43 sorear but, there still be room for optimizing code generation
22:43 * timotimo re-runs configurejvm
22:44 timotimo grondilu: my local changes to panda make that go away
22:44 sorear Is it sane to merge the contents of multiple jars for deployment?
22:44 timotimo but there's more work to be done for it to be good
22:48 timotimo Dubious, test returned 2 (wstat 512, 0x200) - for every single file. what am i missing?
22:48 timotimo Can't open perl script "./eval-client.pl": No such file or directory - that could be what caused it %)
22:48 timotimo should nqp/tools/jvm/eval-client.pl be in rakudo/ ?
22:49 timotimo Can't locate File/Slurp.pm in @INC - yeah, i'm getting somewhere
22:51 timotimo yes, that indeed fixed it. cool!
22:51 sorear timotimo: the harness is supposed to copy that into rakudo/
22:51 sorear er, not the harness
22:51 timotimo the makefile i guess?
22:51 sorear tools/build/create-jvm-runner.pl
22:52 grondilu timotimo: consider making a merge request please
22:54 timotimo grondilu: it should be redone in a different way (Find::Result should be replaced by Path instead)
22:55 labster And there's already a pull request for File::Find that I wrote at YAPC:NA.
22:56 timotimo sounds good :)
22:56 labster We've been waiting on the new release, which should be out any minute now.
22:57 labster Incidentally, I used File::Find::Result to try to understand Perl 6 classes for the first time, and now I'm proposing to chop it.
22:58 timotimo :D
23:01 timotimo so reduce.rakudo.jvm is basically just spamming the console with "ok"?
23:02 sorear .oO( yes ok )
23:05 timotimo should i try to home in on the test(s) that cause the infiniloop?
23:05 benabik joined #perl6
23:05 sorear timotimo: Here it's spamming the console with not ok, actually
23:06 sorear Infinite repetition of:
23:06 sorear not ok 195 - [^^] mix 1
23:06 sorear #      got: ''
23:06 sorear # expected: '0'
23:06 timotimo ah
23:08 * sorear digs
23:09 ssutch with this method signature: method new(Str :$name!, Array[PB::Model::Option] :@options?, Array[PB::Model::EnumField] :@fields?) # i get nominal type check failed for parameter '@options'; expected Positional but got Array instead
23:09 ssutch when i don't pass the @options or @fields in
23:09 masak labster: "waiting on the new release"? of what?
23:10 labster of what just happened.
23:10 timotimo ssutch: try PB::Model::Option :@options? and the other one instead
23:11 labster I got stuck on a phone call and am a little bit behind
23:11 dalek perl6.org: 800e1df | (Brent Laabs)++ | source/ (2 files):
23:11 dalek perl6.org: mention the JVM as a backend for Rakudo
23:11 dalek perl6.org: review: https://github.com/perl6/perl6.org/commit/800e1dfa6e
23:11 ssutch timotimo: same thing =/
23:11 timotimo oh :(
23:13 lue r: sub foo(:@a?) { say @a }; foo(:a<1 2 3>); foo();
23:13 camelia rakudo 49f111: OUTPUT«1 2 3␤␤»
23:13 lue r: sub foo(Str :@a?) { say @a }; foo(:a<1 2 3>); foo()
23:13 camelia rakudo 49f111: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional but got Parcel instead␤  in sub foo at /tmp/a0Np3CQTph:1␤  in block  at /tmp/a0Np3CQTph:1␤␤»
23:13 ssutch r: sub foob(Array[Str] :@strings?) { say "strings: ", @strings.perl; }; say foob();
23:14 camelia rakudo 49f111: OUTPUT«Nominal type check failed for parameter '@strings'; expected Positional but got Array instead␤  in sub foob at /tmp/GDRN3ZiIfi:1␤  in block  at /tmp/GDRN3ZiIfi:1␤␤»
23:14 ssutch that ^
23:14 timotimo it may very well be that that's broken at the moment :(
23:14 lue r: sub foo(Str :$a?) { say $a }; foo(:a<5>); foo();
23:14 camelia rakudo 49f111: OUTPUT«5␤(Str)␤»
23:14 ssutch r: sub foob(Str :@strings?) { say "strings: ", @strings.perl; }; say foob();
23:14 camelia rakudo 49f111: OUTPUT«Nominal type check failed for parameter '@strings'; expected Positional but got Array instead␤  in sub foob at /tmp/tPVFlyNdKH:1␤  in block  at /tmp/tPVFlyNdKH:1␤␤»
23:15 lue It seems rakudo doesn't like optional named arrays having a type specified :/
23:16 timotimo i'm getting the feeling that #?rakudo.jvm skip 'foo' doesn't actually work
23:16 timotimo ah, because i have to pass rakudo.jvm
23:16 ssutch n: sub foob(Str :@strings?) { say "strings: ", @strings.perl; }; say foob();
23:16 camelia niecza v24-79-gcb6f20b: OUTPUT«strings: [].list␤True␤»
23:17 ssutch n: sub foob(Array[Str] :@strings?) { say "strings: ", @strings.perl; }; say foob();
23:17 camelia niecza v24-79-gcb6f20b: OUTPUT«strings: [].list␤True␤»
23:17 timotimo Unhandled exception: use of uninitialized value of type Int in string context
23:17 timotimo is my raduko-jvm out of date? wasn't there a commit to make warns not fatal on jvm?
23:18 ssutch r: sub foob(:@strings?) { say "strings: ", @strings.perl; }; say foob();
23:18 camelia rakudo 49f111: OUTPUT«strings: Array.new()␤True␤»
23:19 ssutch rakudobug
23:19 timotimo r: sub foob(:@strings?) { die unless all(@strings) ~~ Str; say "strings: ", @strings.perl; }; say foob();
23:19 camelia rakudo 49f111: OUTPUT«␤  in sub foob at /tmp/OhS3hOb_NF:1␤  in block  at /tmp/OhS3hOb_NF:1␤␤»
23:19 timotimo r: sub foob(:@strings?) { die unless !@strings.defined or all(@strings) ~~ Str; say "strings: ", @strings.perl; }; say foob(); say foob(("a", "b", "c")); say foob((1, 2, 3, 4));
23:19 camelia rakudo 49f111: OUTPUT«␤  in sub foob at /tmp/swOZqX0q2i:1␤  in block  at /tmp/swOZqX0q2i:1␤␤»
23:20 timotimo er, huh
23:21 ssutch should there be tests for this?
23:22 sorear https://gist.github.com/sorear/5827643
23:22 ssutch n: sub foob(Array[Str] :@strings?) { say "strings: ", @strings.perl; }; say foob(:strings<a, b, c>);
23:22 camelia niecza v24-79-gcb6f20b: OUTPUT«strings: ("a,", "b,", "c")␤True␤»
23:22 timotimo ^^ is logical xor, right?
23:22 masak yes.
23:23 masak but in chained form it's more similar to one()
23:23 masak rn: say 1 ^^ 2 ^^ 3
23:23 camelia niecza v24-79-gcb6f20b: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤  at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] in <file…
23:23 camelia ..rakudo 49f111: OUTPUT«Nil␤»
23:23 masak r: say 0 ^^ 2 ^^ ""
23:23 camelia rakudo 49f111: OUTPUT«2␤»
23:27 timotimo t/spec/S06-signature/code.rakudo.jvm ......................... Failed 3/8 subtests  (1 TODO test unexpectedly succeeded)
23:28 timotimo ah, probably the todo succeeding, but the test after it to make sure that it behaved the way it should have failign.
23:30 sorear I think I found it
23:30 sorear xor was using a nonunique label
23:31 timotimo oh, so it jumped somewhere nonsensical?
23:31 sorear yeah
23:31 sorear one xor_true label
23:31 sorear jumped into the middle of the previous xor... :D
23:31 timotimo m)
23:31 jnthn Which fool wrote that bit of code-gen... :)
23:32 jnthn Nice find :)
23:34 colomon sorear: no make spectest target yet?
23:35 colomon or did I simply forget to run ConfigureJVM.pl ?
23:35 timotimo the latter
23:35 timotimo also, you *may* have to change ./t/fudgeandrun and run the script that creates the runner helper
23:35 colomon colomon--
23:35 sorear jnthn: I'm taking some time to add checks to jast2bc to detect label misuse
23:35 dagurval joined #perl6
23:35 timotimo tools/build/create-jvm-runner.pl
23:35 colomon sorear++
23:37 sjn joined #perl6
23:37 timotimo https://gist.github.com/timo/8a50eb8a3360e32c4cb4 <- my results
23:40 ssutch r: sub foob(:@strings?) { say "strings: ", @strings.perl; }; say foob();
23:40 camelia rakudo 49f111: OUTPUT«strings: Array.new()␤True␤»
23:40 timotimo r: sub foob(:@strings?) { say "strings: ", @strings.perl; say @strings.defined; }; say foob();
23:40 camelia rakudo 49f111: OUTPUT«strings: Array.new()␤True␤True␤»
23:40 sorear timotimo: you made reduce run?
23:40 timotimo but why? :/
23:41 timotimo sorear: i made reduce skip
23:41 timotimo all the rakudo todos i copied into rakudo.jvm skips ;)
23:45 ssutch submitted to rakudobug
23:49 timotimo sorear: are you going to commit the jump label fix?
23:49 timotimo oh, you were told to spectest before every push to nom, right?
23:50 dalek nqp: 3f69cff | sorear++ | src/vm/jvm/QAST/JASTNodes.nqp:
23:50 dalek nqp: Preserve some tree structure in the JAST document
23:50 dalek nqp: review: https://github.com/perl6/nqp/commit/3f69cff282
23:50 dalek nqp: 419102f | sorear++ | src/vm/jvm/ (2 files):
23:50 dalek nqp: Fix label mixup in nqp::xor and check in jast2bc that labels are used right
23:50 dalek nqp: review: https://github.com/perl6/nqp/commit/419102fbfc
23:50 sorear timotimo: I stopped doing that
23:53 timotimo oh, you made a bit of extra code that will cath any similar errors in the future automatically? :)
23:54 ssutch did i see something like $a."$fieldname" or something
23:54 ssutch to get at an attribute named $fieldname
23:54 timotimo r: my $attr = "codes"; "foo"."$attr".say;
23:54 camelia rakudo 49f111: OUTPUT«[31m===[0mSORRY![31m===[0m�Quoted method name requires parenthesized arguments. If you meant to concatenate two strings, use '~'.�at /tmp/PIRrCDCpRH:1�------> [32mmy $attr = "codes"; "foo"."$attr"[33m�[31m.say;[0m�»
23:55 timotimo r: my $attr = "codes"; "foo".{"$attr"}.say;
23:55 camelia rakudo 49f111: OUTPUT«postcircumfix:<{ }> not defined for type Str␤  in method gist at src/gen/CORE.setting:10361␤  in method gist at src/gen/CORE.setting:892␤  in sub say at src/gen/CORE.setting:11248␤  in method say at src/gen/CORE.setting:889␤  in method say at src/gen/CORE.setting:8…
23:55 timotimo r: my $attr = "codes"; "foo".{$attr}.say;
23:55 camelia rakudo 49f111: OUTPUT«postcircumfix:<{ }> not defined for type Str␤  in method gist at src/gen/CORE.setting:10361␤  in method gist at src/gen/CORE.setting:892␤  in sub say at src/gen/CORE.setting:11248␤  in method say at src/gen/CORE.setting:889␤  in method say at src/gen/CORE.setting:8…
23:55 timotimo there's a way to do it.
23:55 timotimo r: my $attr = "codes"; "foo".$attr.say;
23:55 camelia rakudo 49f111: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Str'␤  in block  at /tmp/WBKWezZUYN:1␤␤»
23:55 timotimo oooh
23:55 timotimo i should have read more closely.
23:55 timotimo r: my $attr = "codes"; "foo"."$attr"().say;
23:55 camelia rakudo 49f111: OUTPUT«3␤»
23:55 timotimo there you go.
23:55 sorear timotimo: yes, yes I did.  :D
23:56 ssutch "$attr"() ok
23:56 * sorear likes being in the rakudo release announcment
23:56 ssutch :)
23:57 timotimo me, too :3
23:57 timotimo one day i'll do more than just low hanging fruit
23:57 masak what, like low-hanging vegetables? :P
23:57 timotimo yeah, perhaps even low-hanging nuts
23:58 jnthn ...
23:58 * jnthn is glad to see sorear++ in the release announce :)
23:58 * masak is glad to see the release announce :)

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo