»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by moritz on 3 May 2013.
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
ssutch what does |%args "mean"? 00:07
jnthn "flatten %args into the argument list"
ssutch cool, is it composable eg f(|%hash, |%hash2) 00:08
jnthn yes
ssutch sweet
thanks!
00:12 btyler joined 00:18 Guest36317 is now known as potatogim
sorear jnthn: how do I test the chain op? 00:21
jnthn sorear: 1 < 2 < 3 uses it, I suspect
sorear in rakudo?
jnthn Yeah
Sleep time here...back tomorrow & 00:22
sorear do I have to make a blind change to qast compiler and the rebuild rakudo?
jnthn Or just write a QAST test to cover it in qast.t, if there ain't one already
sleep & 00:23
timotimo is the sequence operator specced to always give the end-determination-block just one argument?
00:24 shachaf_ joined 00:25 shachaf_ left, shachaf_ joined, shachaf_ is now known as shachaf
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
ssutch r: say [1] eq [1]
camelia rakudo b2072f: OUTPUT«True␤»
ssutch it seems to work
timotimo r: say [1, 2, 3] ~~ [1, 2, 3]
camelia rakudo b2072f: OUTPUT«True␤»
timotimo r: say [1, 2, 3] Z== [1, 2, 3]
ssutch use ~~ instead of eq?
camelia rakudo b2072f: OUTPUT«True True True␤»
timotimo r: say [&&] [1, 2, 3] Z== [1, 2, 3]
camelia rakudo b2072f: OUTPUT«True␤»
timotimo gotta run to the tram
ssutch hm, i have two arrays of PB::Option objects which i need to compare 00:31
infix:<eq> doesnt seem to be called if i use [] eq []
nor with ~~ 00:32
00:34 benabik left
timotimo indeed 00:34
try Zeq
ssutch r: gist.github.com/samuraisam/5819387
camelia rakudo b2072f: OUTPUT«not ok 1 - option equality sanity test␤»
ssutch r: gist.github.com/samuraisam/5819387 00:35
camelia rakudo b2072f: OUTPUT«ok 1 - ␤»
timotimo i think Zeq is kind of cool 00:37
ssutch r: 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
ssutch Zeq will yield a bool? or an array of bool? 00:39
r: say (["a"] Zeq ["b"])
camelia rakudo b2072f: OUTPUT«False␤»
ssutch r: say (["a", "c"] Zeq ["b", "c"])
camelia rakudo b2072f: OUTPUT«False True␤»
ssutch r: say [&&](["a", "c"] Zeq ["b", "c"])
camelia rakudo b2072f: OUTPUT«False␤»
timotimo array of bool, yes 00:41
it zips using the eq operstor
ssutch r: 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␤»
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
dalek p: 1855c19 | sorear++ | src/vm/jvm/ (2 files):
Move "chain" to subcall_noa and nix unused callsites
00:49
masak 'night, #perl6 00:50
ssutch any reason why Zeq would work normally, but then not work when looking at class attributes?
does it have anything to do with the type Array[PB::Option]?
in the latter case, the custom eq operator for PB::Option isn't being called at all 00:51
r: gist.github.com/samuraisam/5819387
camelia rakudo b2072f: OUTPUT«ok 1 - option equality sanity test␤not ok 2 - field equality with same options␤»
ssutch getting rid of the type doesn't make a diff 00:52
timotimo looks 00:55
interesting 00:57
00:58 xenoterracide|2 left
ssutch Zeq doesn't seem to work when comparing two @variables 00:59
r: gist.github.com/samuraisam/5819387
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␤»
ssutch ^ updated with test for just that in latest
timotimo the custom eq thing doesn't seem to be called; perhaps we have an array or arrays on each side or something
indeed. 01:00
when you wrote options=>[$fopt] you created a list with one element being an array with one element being $fopt 01:01
it should work without the []
(and indeed it does)
ssutch strange, why?
isnt [$var] a literal for [$var] ? 01:02
timotimo r: sub foo(@yarr) { say @yarr.perl }; foo([1, 2, 3]);
camelia rakudo b2072f: OUTPUT«Array.new(1, 2, 3)␤»
timotimo r: sub foo(@yarr) { say @yarr.perl }; foo((1, 2, 3));
camelia rakudo b2072f: OUTPUT«(1, 2, 3)␤»
sorear hmm. I tried to run a nqp test using the eval-client.pl and got java.lang.OutOfMemoryError: PermGen space
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))␤»
timotimo r: class Bob { has @.foo; }; Bob.new(:foo([1, 2, 3])).perl.say;
camelia rakudo b2072f: OUTPUT«Bob.new(foo => Array.new(1, 2, 3))␤»
timotimo hm, strange
here's a tip for your new method, btw
add ! to the end of your parameters
you don't have to check for definedness manually 01:04
ssutch ah!
cool
timotimo another possibility is to give them default values of die
r: class Bob { has $.dog = die "bob doesn't want to live without a dog!" }; Bob.new();
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 …
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 )
ssutch cool, thanks
timotimo no problem :)
that doesn't explain the options array weirdness, though
ssutch is there a bug?
timotimo FWIW, i almost always write my lists with () instead of []
no, i just don't understand why it behaves that way 01:06
i mean, why did it put the array into the list as its only element
01:07 athomason left
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␤»
timotimo maybe .clone is weird? i've never used it tbh
benabik r: say [1,2]; my @a = [1,2]; say @a
camelia rakudo b2072f: OUTPUT«1 2␤1 2␤»
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])␤»
ssutch so, .clone works if i use the :arg(a,b,c) syntax
but not if use arg=>[a,b,c]
timotimo r: class Bob { has @.foo; }; Bob.new(:foo([1, 2, 3])).clone(:foo([1, 2, 3])).perl.say;
camelia rakudo b2072f: OUTPUT«Bob.new(foo => Array.new([1, 2, 3]))␤»
timotimo oh, look!
ssutch yep
timotimo r: class Bob { has @.foo; }; Bob.new(:foo([1, 2, 3])).clone(:foo(1, 2, 3)).perl.say;
camelia rakudo b2072f: OUTPUT«Bob.new(foo => Array.new(1, 2, 3))␤»
timotimo clone doesn't seem to know about the listyness of @.options
01:09 Timbus joined
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:09
so ... specbug? 01:10
ssutch perhaps
hard for me to say since i am new here as of a week ago 01:11
timotimo mhm 01:12
well, at least you know how to fix it
01:12 athomason joined
ssutch at least there's that 01:15
should i file a bug? maybe someone else who knows whats going on can?
timotimo github.com/perl6/specs/issues - i suggest to file a bug here 01:16
feel free to copypaste parts of the irclog, that's common practice in bug reports
at least for perl6 and friends
ssutch ok cool, thanks
r: 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␤»…
timotimo can you try options=>($fopt), too? (although i think that would be a no-opt compared to options=>$fopt) 01:21
ssutch r: gist.github.com/samuraisam/5819387 01:22
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: github.com/perl6/specs/issues/55
timotimo i suggest shortening the descriptions, so that they still fit in the output of the evalbot :D 01:24
ssutch hah 01:25
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
dalek p: 5722e28 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (5 files):
Class sharing! For now this disables the caching in wvalResolve_noa and subcallResolve_noa entirely; we can be cleverer later.
01:27
01:27 btyler left
timotimo sorear: still going to limit yourself to startup time improvements for this compiler release? 01:30
sorear timotimo: ? 01:34
ssutch r: say [&&]([1] Zeq []) 01:38
camelia rakudo b2072f: OUTPUT«True␤»
ssutch one issue with this is that if the arrays are different size, it gives you an invalid answer 01:39
timotimo oh, right
just compare the two arrays with ==, too (== will coerce them to integers, meaning the size of the arrays) 01:40
ssutch wish there was a more elegant way to compare to arrays 01:43
^ .oO()
sorear we seem to be creating *thousands* of __P6opaque__ classes 01:48
timotimo *cue sorear changing two lines, cutting the memory usage and startup time down to 1/20* 01:56
hm, it's kind of sad that perlito doesn't see very much activity 01:58
it'd be kind of cool to write javascript in perl6
sorear gist.github.com/sorear/5819756 01:59
timotimo what just happened
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
or fix the memory leaks, but I don't understand exactly what is leaking 02:00
timotimo: it caches the loaded class files between runs 02:01
so the second and subsequent runs are faster
02:03 bluescreen10 joined
timotimo ah, of course 02:03
i thought you did something magical in between those two calls
benabik He did. He cached all the classes. :-D 02:04
timotimo yeah, he did :)
sorear running hello world in a loop it gets to #26 before running out of memory 02:05
benabik Oh! It's a client/server deal like Scala's fsc. 02:06
02:06 fgomez left
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:07
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 :)
good luck!
02:17 rindolf left 02:38 Guest33284 is now known as ponbiki 02:41 btyler joined, atroxaper joined 02:42 cooper joined
labster So I broke the build on Windows? great. 02:45
colomon just in time for the release! 02:49
02:49 skids left
labster I've joined an elite club, it seems 02:49
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.
colomon nods 02:52
twigel r: say ["a", "b"] eqv ["a", "b"]
camelia rakudo b2072f: OUTPUT«True␤»
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"]
camelia rakudo b2072f: OUTPUT«False␤»
twigel r: say ["a", "b"] eqv ["a", "b", "c"]
camelia rakudo b2072f: OUTPUT«False␤»
sorear looks like I can blame most of the memory leakage on the fact that java.lang.invoke.MethodType uses an intern table. 02:55
03:01 snoopy joined, skids joined 03:06 SamuraiJack joined
labster .oO (at least the interns are unpaid) 03:06
sorear or hash consing, if you prefer that term 03:08
dalek p: 06dd701 | sorear++ | src/vm/jvm/QAST/Compiler.nqp:
Compile methods as static methods taking CompilationUnit rather than instance

This means that all methods for which MethodHandles are generated have types that do not mention dynamically generated types, so the intern table in MethodType does not indefinitely hold references to our classes (and indirectly, GlobalContexts and everything in them).
03:30
sorear correction: a 9-line patch which all but eliminates the memory leaks 03:32
it might still be leaking some memory, but it's no longer leaking *everything* 03:33
03:34 xenoterracide|2 joined
sorear more than half of the non-amortizable startup time is in P6opaque class generation 03:38
diakopter emitting them? 03:39
sorear diakopter: yes
diakopter or jvm loading them?
oh
sorear I'm considering those together 03:40
anyway, right now P6opaque generates a fresh java-class for every p6-class it sees
but many of the java-classes are identical, because they mostly only depend on the number and native-type of attributes 03:41
I'm going to modify p6opaque to recognize when it's emitting the same class twice, and short the whole process
anyways, I just ran 'hello world' 500 times in the same VM without a problem 03:42
versus 26 times before OOME before the last patch 03:43
diakopter q
sorear should have no trouble running all of roast (except the is_run ones of course) in a single VM now 03:44
03:47 zby_home joined 03:49 dmol joined 03:50 ldthien0 joined 03:52 ldthien0 left
diakopter sorear++ 03:55
sorear: how long does the 500x take 03:58
sorear diakopter: 1-1.5 sec per call 04:06
I didn't time the whole thing
diakopter whaaaaaaaa
sorear is that bad or good 04:07
I mean it's better than before
04:07 BenGoldberg left
sorear but is that onamotopoetic exclamation (positive) or crying (negative)? 04:07
04:07 dmol left
diakopter that's surprise at so long; not necessarily bad though 04:07
just shrprising 04:08
sorear yeah, well, it's about to get muchf aster I thing :D
rak-parrot is 0.6s on this machine (no caching, of course)
04:11 btyler left 04:22 arlinius left 04:26 eternaleye joined 04:27 Psyche^ joined
sorear gist.github.com/sorear/5820307 04:29
04:31 Psyche^ is now known as Patterner
sorear not quite what I expected 04:34
04:37 ldthien0 joined, ldthien0 left 04:38 zby_home left
sorear why is rakudo deserializing about 200 subclasses of Routine? 04:45
traits, maybe
04:54 birdwindupbird joined 05:00 arlinius joined 05:05 xilo_ left
ssutch r: ["a"] eqv ["a"] 05:09
camelia rakudo b2072f: ( no output )
ssutch r: say ["a"] eqv ["a"] 05:12
camelia rakudo b2072f: OUTPUT«True␤»
ssutch r: say ["a"] eqv ["a", "a"]
camelia rakudo b2072f: OUTPUT«False␤»
ssutch sick, that's way better than Zeq
for my purposes, anyway
nooope, it doesn't call the custom eq i have for the contained classes 05:16
sorear diakopter: just ran 100 hello-worlds in a total of 98 seconds 05:19
dalek p: f96ea23 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/ (6 files):
Add caching of generated P6opaque classes by "signature".
05:20
p: 0b1ac5b | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6Opaque.java:
It works a little better with soft references
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")];
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Undeclared routine:␤ false used at line 1␤␤»
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")];
camelia rakudo b2072f: OUTPUT«False␤»
ssutch :( eqv does not call the custom eq op inside the list - should it? 05:25
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")];
camelia rakudo b2072f: OUTPUT«False␤»
05:33 fgomez joined
dalek p: d88633c | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/CompilationUnit.java:
Annotation fetching is more expensive then it looks, don't do it twice.
05:35
05:36 xenoterracide|2 left 05:38 zakalwe joined, aindilis joined 05:51 SmokeMachine left 05:53 SmokeMachine joined
labster writing $!path.perl is causing the rakudo build to segfault. what the heck. 05:54
06:02 preflex joined, ChanServ sets mode: +v preflex 06:08 FROGGS joined
timotimo labster: it may have to do with the Cool.path method i invented some time ago 06:11
it could perhaps infiniloop
labster it shouldn't. has Str $!path;
timotimo ah, didn't see the ! 06:13
06:14 dayangkun joined 06:16 cognominal left 06:22 raiph joined
dalek p: 81970b3 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/ (7 files):
Generate specialized deserialization methods for P6Opaque instead of using a reflective deserializer
06:27
sorear 1. cold start is now nearly 6 seconds 06:29
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
3. that patch worked on the first try
ssutch uh oh: Method 'has_compile_time_value' not found for invocant of class 'NQPMu' 06:30
running tests
resulting from running this: :type:('') 06:32
rather, from running this: (try PB::Field.new(:name(''), :label(''), :type:(''), :number(1))
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'␤»
..niecza v24-79-gcb6f20b: OUTPUT«===SORRY!===␤␤Action method fakesignature not yet implemented at /tmp/wTESN6g4ig line 1:␤------> *%_) { say %_.perl }; foo(:a(''), :b:(''⏏), :c(''));␤␤Multi colonpair syntax not yet understood at /tmp/wTESN6g4ig line 1:…
FROGGS ssutch: use :type('') rather then :type:('') ?
ssutch yes, indeed
there should probably be a different error message
FROGGS maybe, yeah 06:35
ssutch or is it something that isn't yet implemented 06:36
FROGGS it might even be unspecced atm, see niecza's message 06:37
std: :a:b() # std likes it 06:38
camelia std d4cc5ab: OUTPUT«ok 00:00 42m␤»
06:49 kaleem joined
dalek p: 4596d05 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/ (5 files):
Remove or synchronize remaining statics
06:53
06:53 domidumont joined
sorear it's now possible to use prove -j4 together with VM sharing 06:54
43 second nqp test run
07:01 SmokeMachine left 07:03 SmokeMachine joined
labster sorear++ 07:05
ssutch nice
07:06 brrt joined 07:09 domidumont left, domidumont joined
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:10
07:19 dayangkun left 07:21 arlinius left 07:27 sqirrel joined 07:31 FROGGS left
moritz wut. 07:38
07:38 brrt left
labster haha, I know, but adding semicolons seemed to help. 07:41
I am not going to look this gift horse in the mouth. 07:42
07:44 FROGGS joined
ssutch r: module Foo::Bar { sub Lulz() is export { say 'wut'; } } Foo::Bar::Lulz(); 07:46
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/mSiPzakllo:1␤------> { sub Lulz() is export { say 'wut'; } } ⏏Foo::Bar::Lulz();␤ expecting any of:␤ postfix␤ statement end␤ statement modifier␤ statement mod…
ssutch r: module Foo::Bar { sub Lulz() is export { say 'wut'; } }; Foo::Bar::Lulz();
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␤␤»…
ssutch why can't it see Lulz?
moritz because it's lexical 07:47
subs are lexical by default
and you don't import it either
FROGGS r: module Foo::Bar { our sub Lulz() { say 'wut'; } }; Foo::Bar::Lulz();
camelia rakudo b2072f: OUTPUT«wut␤»
moritz r: module Foo::Bar { sub Lulz() is export { say 'wut'; } }; import Foo::Bar; LuLz
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Undeclared name:␤ LuLz used at line 1␤␤»
moritz r: module Foo::Bar { sub Lulz() is export { say 'wut'; } }; import Foo::Bar; Lulz
camelia rakudo b2072f: OUTPUT«wut␤»
ssutch ohh, okay 07:48
so i can get at it with `our`, but otherwise need to import it
07:58 domidumont left
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:11
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
FROGGS yeah, these two can/should be in separate files 08:13
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
which is undesirable
FROGGS hmm? 08:15
labster file names aren't all that related to class names. 08:16
The file names are just where to look in a use statement.
FROGGS if you have a Foo.pm containing class Foo, then you make a file called Foo/Bar.pm containing class Foo::Bar
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?
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...
FROGGS ssutch: yes, you can
lizmat: I think that is too much for him right now
lizmat ssutch: as long as each file contains a different class/module, you can
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
08:19 arlinius joined
lizmat at least at the current state of -use- 08:19
lizmat hopes TimToady's brane will be able to think about this some more today 08:20
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
and then load all modules in that file along with it
but I think in the long run, this will cause more confusion
ssutch something like this: gist.github.com/samuraisam/5821113 08:23
lizmat ssutch: that won't work like that 08:24
ssutch lizmat: is there a way to accomplish the same sort of thing? it seems like a self-explanatory approach 08:25
(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
leave out the outer module PM::Model
class PM::Model::Message {} in PM/Model/Message.pm 08:27
leave out the outer module PM::Model
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
ssutch *how namespaces work in perl 6 :) 08:28
FROGGS well, we are in #perl6, no? :o)
ssutch true 08:29
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 :-)
ssutch is it possible to import PB::Model so I can refer to bare Option?
lizmat and maybe the spec will change :-)
FROGGS ssutch: if you have a class claedd PB::Module::Option then you will never have a bare Option 08:32
maybe I dont understand the question
ssutch yeah you do, that's what i thought
FROGGS if you have a nested class Option in the PB::Module class, the you maybe can do that 08:33
08:34 dakkar joined 08:35 domidumont joined 08:45 fhelmberger joined
jnthn yawns 08:50
sorear o/ jnthn
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:51
dalek kudo/nom: 3c9027a | (Brent Laabs)++ | src/core/IO.pm:
Change IO::Path to use full $!path attribute internally

Should be faster in most cases and also hopefully fix the build on Windows.
08:54
kudo/nom: 13a9304 | (Brent Laabs)++ | src/core/IO.pm:
make IO::Path.child a little more efficient with $!path now
08:55 sqirrel left
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:55
sorear jnthn: I'm not sure how a different target would work. Don't the targets have to be totally ordered? 08:56
jnthn sorear: Yeah, though classfile could always say "oh, you want a JAR in the end" or so 08:58
(And then do something different) 08:59
FROGGS one of the two must be the default
and if the end-target is another, then the path might be another one
s/path/steps/
sorear does jar come before or after jvm though?
FROGGS: the default is "jvm" 09:00
jnthn before, I'd expect. "jvm" means "run stuff"
FROGGS I'd expect to pass my desired path/steps to Configure.pl
jnthn And if we're going to do that, we don't serialize.
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' ?
jnthn That feels about right to me. 09:02
Though I didn't do any coffee yet today :)
sorear jnthn: After we de-base64-string the serialization data, is there any reason to keep the string heap separate? 09:03
jnthn sorear: no 09:05
Other than many of those strings may get mentions as literals elsewhere too 09:06
So we may be duplicating them
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
Let me know if my changes to REPR are insane :)
jnthn yes :)
I'd not thought about exactly how to factor it, but it looks sane. 09:08
sorear also, inline deserialization is a pretty big win 09:09
jnthn Avoiding the reflection? 09:10
if (!tc.curFrame.codeRef.staticInfo.compUnit.shared)
When is "shared" true?
When in eval server mode? 09:11
sorear Yes to both
09:11 snearch joined
sorear only to things loaded by loadbytecode, though 09:12
things compiled and run are still unshared
jnthn OK, so the indy stuff is only disabled for that case, not all
When I read the commit message I worried it was "all the time"
s/the indy stufff/those particular indy optimizations/
sorear Ah, no. Sorry about that.
sorear is pondering ways to make the code generated for spills less blindingly stupid 09:13
jnthn labster: Sadly, didn't fix the Windows build :( 09:15
09:15 fhelmberger_ joined
labster Oh well, it was a still a good idea. 09:15
I've been thinking about changing it for weeks. 09:16
09:16 fhelmberger left
labster Maybe remove the part in terms.pm where $*CWD and $*TMPDIR are made into paths? 09:16
jnthn Why do we do things like: 09:17
my $slash = regex { <[\/ \\]> }
And call them with <$slash> 09:18
Rather than my regex slash { <[\/ \\]> }
And call them with <&slash>
dalek ast: bad1a99 | (Brent Laabs)++ | S32-io/io-path- (2 files):
io-path no longer magically changes paths on you
jnthn ?
labster probably because I haven't looked through S05 in enough detail :/
09:19 domidumont left
ssutch going to bed, thanks for all the help everyone! 09:19
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:20
g'night ssutch 09:21
sorear hey, module precompilation Just Works on the JVM
jnthn \o/
For Rakudo, you mean? :) 09:22
sorear yes
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. :)
sorear is doing makefile hacking now trying to add test and spectest targets to rakudo-jvm :D 09:23
jnthn ooh, yay 09:26
jnthn almost did test one last night :)
labster: ah, it doesn't work that way after all
sorear isn't so sure about spectest_smolder
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
sorear: Need to make sure this is nailed ahead of the release...
oh ffs 09:33
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
sorear wonders if the NQP tools/jvm/eval-client.pl should be installed somehow
09:34 ssutch left
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
Though that can be a future thing... :)
nwc10 it's now a low-hanging fruit for an interested and motivated person? 09:37
jnthn Yes ;)
Well
I guess
:)
labster well, it's late enough for me. Have a good night, all. 09:38
jnthn 'night, labster
sorear P5 was picked because it starts a bit faster, and this is going to start 712 times per spectest run
jnthn ah, OK :) 09:39
Well, test harness is P5 too so...yeah, no point not using a P5 impl here
09:41 xinming joined 09:43 ztt_ joined
FROGGS .oO( "use v5;" *cough* ) 09:45
nwc10 is v5 good enough yet to run Test::Harness? 09:46
that would be an interesting goal
dalek ast: 1f38222 | sorear++ | fudge:
Extend fudge to allow an implementation "rakudo.jvm" that matches #?rakudo or #?rakudo.jvm
sorear jnthn: this does raise a question... HOW is the harness supposed to find $NQP/tools/jvm/eval-client.pl ? 09:49
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
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?
jnthn Ah. Hm.
09:51 fhelmberger_ left
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
09:52 fhelmberger joined
jnthn I mean, the "easy way out" is just to have the harness take an argument. 09:52
sorear probably need to turn the install dir into something with bin, lib, etc at some point 09:53
jnthn Yeah, the install stuff is just "make something work" 09:55
And hope somebody who knows how install-y stuff should look will come along to do it :)
mathw o/ 09:56
sorear cheats. 10:01
10:03 [particle] joined 10:04 zakalwe left, zakalwe joined 10:05 [particle]1 left
TimToady did anyone ever point out that Zeq is unlikely to be what you want if the arrays are of unequal length? 10:05
10:06 daxim joined
TimToady timotimo: ^^ 10:06
10:06 [particle]1 joined
FROGGS what do I want in this case? 10:07
TimToady eqv will compare two arrays
10:08 [particle] left
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␤»
TimToady that would be counterproductive to its typical use of matching a finite list against an infinite list 10:10
FROGGS hmmm, yeah
TimToady if you want an exception on length mismatch, use »eq« instead 10:11
FROGGS so it more a matter of putting a note to the spec/doc for the Zop in general 10:12
TimToady huh, I guess it doesn't mention it 10:13
FROGGS I guess I get used to all these handy ops when I actually start hacking P6 :o) 10:15
I already got some of them though, and I really love the way they can be combined 10:16
but they dont come to my mind immediately when solving a new problem 10:17
(yet)
dalek kudo/nom: 0f41b50 | jnthn++ | src/core/Cursor.pm:
Iterate a portable way, not Parrot-dependent one.
10:18
kudo/nom: a6e3bac | jnthn++ | src/core/IO.pm:
Merge branch 'nom' of github.com:rakudo/rakudo into nom
kudo/nom: 37d670b | jnthn++ | src/core/IO/Spec/Win32.pm:
Don't cannonicalize Win32 tmpdir path for now.

Avoids one place we get a startup hang.
kudo/nom: 7f360f4 | jnthn++ | src/core/terms.pm:
Work around cwd encoding issue.

This caused a hang in .path on startup on Win32. This "fixes" things.
FROGGS jnthn: so you fixed the longer build/parse time you mentioned?
jnthn FROGGS: No, I fixed Rakudo Parrot hanging at startup on Windows :/ 10:19
FROGGS ahh
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 ecs: a559211 | larry++ | S03-operators.pod:
Mention that Zop stops after the shorter list
FROGGS jnthn: I totally understand that 10:23
TimToady okay, yes, ssutch noticed you can't use Zeq for comparing arrays 10:24
moritz that's why eqv and ~~ exist 10:26
10:26 alanhaggai joined 10:28 alanhaggai left
TimToady but I think ssutch++ needs zipwith(&infix:<eq>,...) to use the custom eq 10:28
you'd think it would use the local one though 10:29
oh, it was eqv that wasn't using his custom op, duh
jnthn I woulda thought it does too, since it's basically just HOP
TimToady so we need an eqvwith :)
well, a type with its own eqv is probably the best solution 10:30
TimToady still feels like his brane is in sideways 10:31
10:32 mtk joined
dalek kudo/nom: c6980c9 | jnthn++ | src/core/Cursor.pm:
Fix match construction on JVM.

Gets 10-regex.t to pass.
10:35
sorear wtf 10:39
use v6 is broken with the eval server
masak good afty, #perl6 10:42
moritz note that p6eval uses RESTRICTED.setting
\o masak, *
speaking of which: where is p6eval?
masak camelia: oh hai
masak points to camelia
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:43
sorear: Appears 02-rakudo/dump.t is now passing also. 10:45
moritz masak: thanks, momentary laps of reason
jnthn sorear: So we're down to just two sanity tests with failures :)
10:48 crab2313 joined
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
sorear: Which is also doing that.
FROGGS jnthn: can imagine why the capture-key is missing? gist.github.com/FROGGS/11c1f734a85186d919d4 (I believe in your jedi-force) 10:50
jnthn FROGGS: What is m/.../ implemented as in v5? 10:51
sorear jnthn: but why does it only do it with the eval server
jnthn sorear: That...is a mystery
FROGGS jnthn: exactly like in rakudo, <sym> <quibble(%*LANG<P5Regex>)>
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?
sorear tries enabling shared mode unconditionally 10:52
FROGGS jnthn: and that P5Regex is identical to the P5-mode of perl6
jnthn masak: Whoever cuts a Rakudo release will automatically be cutting a release with JVM support
masak: Because the work is in the "nom" branch.
sorear YEAH! IT DIES!
FROGGS jnthn: and the ast is the same too
sorear so, it must be the subtle differences in subcall semantics that do it
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...
jnthn: I'm augmenting Match to have a P5Str method
but this method isnt used in a 6.0.0 block 10:54
jnthn FROGGS: Well, maybe but that feels weird
masak jnthn: I figured a "JVM release" would be more than a "release with JVM support", though.
jnthn FROGGS: I suggest trying to work out if it's a broken Match object, or broken Match object printing.
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.
FROGGS jnthn: it must be a broken match object because I cant use $1, $2 vars... (and yes, it will return $1 for $0)
jnthn masak: There will never be a separate JVM release tarball. 10:56
masak oh!
I assumed that there would be.
jnthn masak: There will be different Star binary releases, no doubt.
masak: No, Rakudo is Rakudo. It's one compiler that supports multiple VMs. :)
For a source build, you get a choice. 10:57
Because for Rakudo, at lesat 90% of the source is exactly the same. :)
10:58 atroxaper left
masak ok, gotcha :) 10:58
10:59 raiph left, crab2313 left
nwc10 is the compiler release just a source tarball? ie, is it only Star which gets MSI installers? 10:59
jnthn nwc10: yes 11:00
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
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␤»
masak \o/
<TimToady> well, a type with its own eqv is probably the best solution
looks like :)
jnthn nwc10: The compiler releases are more aimed at those producing distributions.
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
nwc10 jnthn: aha thanks
FROGGS I wonder where in nqp it counts the caps 11:06
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
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
colomon hmm... related to the $x == $x bug?
sorear gist.github.com/sorear/5821914 11:09
The containers don't actually matter, it always goes through the same sequence of error messages. 11:10
11:10 woolfy joined
jnthn wow 11:11
and wtf
dalek p: 2f67595 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Implement string bitwise ops.
11:12
mls Hi jnthn! 11:17
jnthn o/ mls 11:18
mls Did you happen to stumble over my comments on auto-close when backlogging?
jnthn mls: Not yet...which channel were they in?
mls #perl6, 2013-06-13
I can copy&paste them if you like
11:19 JimmyZ joined
jnthn just foudn it in the log, thanks! 11:19
mls It's something I wanted to push into parrot a long time ago. 11:20
Now we have sixparrot and the other VMs, and it may be a bit more difficult to make that change 11:21
So I'm at a loss what to do
sorear looks like Numeric is... kind of a stress test for a lot of stuf 11:22
jnthn: What's a compiler stub? 11:23
JimmyZ jnthn: welcome back
yoleaux 19 Jun 2013 15:47Z <diakopter> JimmyZ: you can .ask and .tell me things via this
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?
what*
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
mls So I need the buy-in of nqp/rakudo ;) 11:25
FROGGS I see
sorear And .Numeric uses nested subs and call by name heavily
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
sorear This doesn't explain why it works only in nonshared mode. I'd expect the reverse
JimmyZ mls: long time no see... about two years ..
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.
mls Thus, the change for rakudo/nqp is to add a capture_lex op 11:27
moritz \o/ mls!
mls JimmyZ: yes, lots of other projects stole all of my spare time. 11:28
But I've read through the #perl6 irc logs from time to time to keep up with the development ;)
JimmyZ mls: me too^^ 11:29
:P
11:30 jaldhar joined 11:34 domidumont joined
mls Here's a gist with missing changes: gist.github.com/mlschroe/5822045 11:39
That's from almost two years ago, though, so PAST not QAST...
It's just so that you get an idea about what the changes would be
at that time, all of nqp's and rakudo's test cases passed. 11:40
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:41
11:43 FROGGS left
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>␤»
sorear cf.caller.outer.oLex[7].field_0.outer == cf.caller.outer = false
so um I think closure cloning / outer setting is broken
lizmat that's odd, it's \usr/foo/bar with me
sorear how is that handled?
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...
(with RANGEPOS) 11:46
Actions.pm:2213
(for subs)
lizmat r: say IO::Path::Cygwin.new("\\\\server\\share\\").Str # comes out as \\server\'share\ with me on OS X
camelia rakudo b2072f: OUTPUT«//server/share␤»
lizmat *\\server\share\ 11:47
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
camelia rakudo b2072f: OUTPUT«\\server\share␤»
jnthn sorear: I just checked that. But it doesn't look like it
sorear: I also wondered if clone forgot to decont. But no, it does that.
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
timotimo o/
jnthn sorear: Or at least, I can see the code that's doing it
Unless CodeRef REPR's clone is broke
lizmat offline for some updates& 11:51
sorear jnthn: Where is .clone even being called on the do? 11:52
jnthn sorear: Hmm... CodeRef.java:59 looks...interesting.
sorear: BOOTSTRAP.nqp adds the clone method to Code, Block, etc. 11:53
See around line 576
sorear ah. 11:54
dalek kudo/jvm-hacking: d1b3d1f | sorear++ | t (3 files):
Work-in-progress test scripts
11:55
sorear well, I commit what I have
and I need to sleep
hopefully you'll crack this nut by my morning. :D
sleep& 11:56
jnthn 'night
timotimo night sorear! 11:58
hoelzro rdstar.wordpress.com/2013/06/19/a-n...-progress/ # nice 11:59
will be looking for ideas to stea^Wborrow for vi-perl
*vim-perl
timotimo hoelzro: do you know of any highlighting thingies that would do highlight-as-you-type inside browsers? 12:00
hoelzro there's probably a JS library that does it 12:01
GH uses one in particular for its WYSIWYG editor
I can't recall its name, though...
timotimo anything that would be generated from something else?
hoelzro meaning from some other project? 12:02
it would be nice to have a "standard" syntax description format that everyone could use 12:03
for Perl6 it's tricky, though
I had to break out the most hardcore of lexer classes in pygments to get it right
12:07 cognominal joined
timotimo indeed. 12:09
the ruby highlighting thing you mentioned is what they use for github for displaying code, yes? 12:12
and, i suppose, figuring out what language code is
it would be nice to see authentic language usage statistics for perl6 from github in the future
hoelzro agreed
here's how it works:
linguist determines what the language is and invokes pygments.rb
pygments.rb in turn has an internal child process running python pygments 12:13
which does the actual highlighting
so you need support on all three levels
it's in python's pygments
timotimo oh!
hoelzro my PR has been sitting in the pygments.rb queue for well over a month now
timotimo i suppose all pygments.rb needs is to know that there is such a thing as perl6 inside pygments? 12:14
hoelzro and linguist doesn't accept PRs that aren't merged into pygments.rb
well, pygments.rb ships with its own copy of pygments
timotimo >_>
hoelzro so you just need to copy the changed files over
so it took me 5 minutes to do
(well, a little more, because I suck at hg)
but apparently it takes more than a month to review this change...
to be fair, mine isn't the only PR that's gone unaddressed 12:15
timotimo yeah, looking at the pr's right now 12:16
12:16 lizmat joined
timotimo i'll just +1 the PR 12:16
hoelzro thanks 12:17
I *really* want this in GH
hoelzro wonders if GH would consider pulling from my repo for now
timotimo i say: ask them 12:19
hoelzro just did 12:21
timotimo i saw a year-old PR that adds ".pm6" support apparently 12:24
hoelzro heh 12:27
in linguist?
timotimo yes 12:31
github.com/github/linguist/pull/161?source=cc - this one
hoelzro hmm 12:34
that just highlights it as Perl 5 code
timotimo ah, ok
better than nothing at least 12:35
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:36
12:37 FROGGS joined
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 12:38 ajr is now known as Guest2018
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␤»
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
earlier than their surrounding expression, they simply save their
result for use in the expression later"
so why is 'ENTER $value' Nil above?
by the decree of two implementations, no less.
jnthn masak: try ENTER say $value 12:43
masak oki
rn: my $value = 1; loop { ENTER say $value; last if $value == 3; $value++ }
camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«1␤2␤3␤»
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.
FROGGS that these fasers return Nil is a known bug
masak oh.
FROGGS: do you happen to have the RT number close at hand?
lizmat r: say BEGIN 1
camelia rakudo b2072f: OUTPUT«1␤»
lizmat not always
not all phasers
r: say END 1 12:45
camelia rakudo b2072f: OUTPUT«Nil␤»
lizmat now, *that* makes sense :-)
masak agreed :)
jnthn masak: Yes, but keeping the return values around is an NYI for that particular phaser 12:46
masak: Because of their different timing, you need to solve the problem pretty much on a per-phaser basis...
masak FROGGS says known bug, jnthn says NYI. I still don't see an RT ticket.
jnthn And nobody solved it for ENTER yet
12:46 bluescreen10 left
masak either I'm missing the RT ticket, or we're missing an RT ticket :P 12:47
FROGGS please wait while...
masak submits NYI rakudobug, in slow motion!
FROGGS masak: rt.perl.org/rt3/Ticket/Display.html?id=116102 12:48
12:48 rindolf joined
masak FROGGS: thank you. 12:49
FROGGS masak: your're welcome
12:53 atroxaper joined
lizmat can a hash or a list ever become undefined ? 12:55
aka .defined is False ? 12:56
or should we define .defined as having any element of an array being defined? 12:57
JimmyZ rn: say %h.defined 12:58
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Variable '%h' is not declared␤at /tmp/c3tK8tsPqf:1␤------> say %h.defined⏏<EOL>␤ expecting any of:␤ method arguments␤»
..niecza v24-79-gcb6f20b: OUTPUT«===SORRY!===␤␤Variable %h is not predeclared at /tmp/JJKsAbhPUG line 1:␤------> say ⏏%h.defined␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) ␤ at /home/p6eval/n…
lizmat rn: my %h; say %h.defined
camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«True␤»
FROGGS rn: my %h = Hash; say %h.defined
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) …
..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␤␤»
lizmat Hash.new ? 12:59
FROGGS okay, so .defined looks for +pairs
JimmyZ rn: my %h; say %h
camelia rakudo b2072f: OUTPUT«().hash␤»
..niecza v24-79-gcb6f20b: OUTPUT«{}␤»
FROGGS no, I meant Hash
lizmat wouldn't that need to be my $h=Hash ?
JimmyZ rn: my $h; say $h
camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«(Any)␤»
JimmyZ rn: my $h; say $h.defined
camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«False␤»
JimmyZ rn: my $h; say @($h) 13:01
masak r: say Nil.^mro
camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«(Any)␤»
rakudo b2072f: OUTPUT«Nil (Iterator) (Iterable) (Cool) (Any) (Mu)␤»
JimmyZ rn: my $h; say %($h)
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…
..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␤␤»
JimmyZ rn: my $h; say @($h).defined
camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«True␤»
13:02 dayangkun joined
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
I guess we're not supplying a definition of defined for Hash/List yet
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
*False 13:04
(duh)
jnthn That's what boolification does.
lizmat r: say so my %h
camelia rakudo b2072f: OUTPUT«False␤»
lizmat r: say so my %h=a=>1
camelia rakudo b2072f: OUTPUT«True␤»
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␤␤»
lizmat I was going to fix this by making it do %h = () instead of %h = my $undefined
but that still doesn't make the tests for .defined on hashes work 13:06
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␤␤»
lizmat my solution: multi sub undefine(Mu \x) { x = my $undefined } multi sub undefine(Iterable \x) { x = () } 13:08
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 #
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
and &undefine and $var = Nil should reset it to the default type
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.
moritz but we don't store that type along with the container
right, and my $x; puts a type constraint of Mu in there, but it's initialized with Any 13:13
but at runtime, we have no way of knowing this Any
dalek p: 23a3a11 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/IndyBootstrap.java:
Fix mis-optimization of sub calls.

The outer is tied up with the CodeRef, so we can't just blindly curry the callsite with that. Fixes lexical issues that plagued some of the Rakudo sanity tests.
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␤␤»
dalek kudo/nom: e517236 | jnthn++ | src/Perl6/World.nqp:
Missing p6capturelex needed by JVM.

With this, just one failing sanity test.
dagurval r: say so.WHAT
camelia rakudo b2072f: OUTPUT«False␤»
dagurval so what! 13:15
lizmat r: say so.so.WHAT
camelia rakudo b2072f: OUTPUT«False␤»
moritz IMHO &undefine can go away, because $a = Nil is specced to do the same thing
r: say so not.WHAT
camelia rakudo b2072f: OUTPUT«True␤»
masak lizmat: rt.perl.org/rt3/Ticket/Display.html?id=64928
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?
dagurval so, WHAT is so?
JimmyZ so is to bool 13:17
lizmat r: my Int $a=1; $a=Nil # assignment with Nil is also broken
camelia rakudo b2072f: OUTPUT«Type check failed in assignment to '$a'; expected 'Int' but got 'Nil'␤ in block at /tmp/mCOCwq4_fL:1␤␤»
masak dagurval: like 'and' is to '&&', 'so' is to '?'
moritz faq.perl6.org/#so
dalek p: f4a8406 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Fix string bitwise op semantics.

Strings of different lengths want The Other Thing.
With this, all Rakudo sanity tests pass on JVM.
13:18
JimmyZ r: say ?.WHAT
camelia rakudo b2072f: OUTPUT«False␤»
JimmyZ r: say !?.WHAT
camelia rakudo b2072f: OUTPUT«True␤»
timotimo jnthn: \o/
lizmat masak: ticket from 2009, I was definitely *not* involved then :-)
jnthn .tell sorear PASS ALL THE SANITY TESTS! \o/
yoleaux jnthn: I'll pass your message to sorear.
timotimo sorear++ jnthn++
lizmat jnthn++++
JimmyZ jnthn++ do the hard work
dagurval first faq question, should have known -_-
jnthn sorear++ did the rest of the hard work :)
JimmyZ yes, sorear++ indeed 13:19
nwc10 yay
jnthn++
sorear++
so now, "We have [sanity]. I repeat, we have [sanity]. Anything you still can't cope with is therefore your own problem." ? :-)
colomon \o/ 13:20
nwc10 and this means that the compiler release announcment today can happily report that JVM sanity was achieved?
masak lizmat: no, I was thinking if I mentioned it before to you. 13:21
lizmat: I know pmichaud++ has done a fair bit of thinking on the issue.
jnthn nwc10: Yes.
nwc10 (for some value of JVM sanity. The JVM doesn't always seem to be sane. eg blog.headius.com/2013/06/the-pain-o...ocess.html )
13:22 skids left
lizmat masak: I assume WHENCE is NYI 13:22
masak r: say (my $a).WHENCE
camelia rakudo b2072f: OUTPUT«No such method 'WHENCE' for invocant of type 'Any'␤ in block at /tmp/Fmv5lJYrm0:1␤␤»
masak looks like.
lizmat but I think there are 2 issues here in that ticket
tadzik wow, big news :)
jnthn++, sorear++ 13:23
lizmat 1. what makes an object undefined
masak jnthn++ sorear++
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
r: say Any.defined
camelia rakudo b2072f: OUTPUT«False␤»
colomon sorear++ jnthn++ 13:24
lizmat the second case I had to deal with when writing the code for combining adverbs
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
lizmat tadzik: you did
13:25 tgt joined
masak yup. 13:25
PerlJam good $localtime all
masak lizmat: fwiw, I don't worry about (2) at all anymore.
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
tadzik dang
lizmat masak: why don't you worry about 2 anymore?
masak tadzik: feel free to envy those who were there by means of the very nice backlog :)
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
lizmat and is that workaround what I just described ?
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
masak I missed that. what workaround did you describe?
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.
lizmat: right.
jnthn does a few quick hacks to be able to do some kind of spectest run
(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?
jnthn Well, we pass all of S02-lexical-conventions/ already :P
13:29 Guest2018 is now known as ajr_
JimmyZ \o/ 13:29
lizmat masak: and everybody does this in some other way, seems like we need to have something like that as syntactic sugar 13:30
my @default; sub notspecified () { @default }; method notspecified () { self === @default }
13:31 kaare_ joined
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
timotimo (more likely i'd create a capture programmatically) 13:31
masak lizmat: I (currently) disagree that we need to have something like that as syntactic sugar. 13:33
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
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.
masak ugh, no.
please don't further weigh down the type system with cute-today ideas.
junctions were bad enough :/ 13:35
PerlJam fairy nuff
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
so you could build your code for the future in that respect already
brb 13:37
masak lizmat: yes, for a long time I also wanted a way to introspect the Capture.
lizmat: thing is, the Capture is caller-side, and when you want to do the introspection, you're callee-side.
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.
sub foo(|c, :$a, :$b) { c.exists('a') } 13:39
masak oh, troo.
so, there we go.
feature already in the language. :) case closed. :)
PerlJam yep
jnthn++
masak I guess we can close the RT ticket, too.
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
Unfortunately I will not have a useful number at the end of this
cognominal when compiling nqp on a 64 bits macbook running OSX 10.8.4 with a fresh icu binary, I get ICU not loaded.
jnthn One test went mad and spat out 15,000 "not ok"s... :(
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
it's only true once tests pass :-)
but probably worth upgrading to it, if there are 15,000 tests in a file
jnthn nwc10: There aren't, it just got in an infinite loop somehow 13:43
nwc10 ah oops
Perl 5 does have some tests which produce a lot of OKs
cognominal lizmat, are you able to compile nqp on your mac?
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
someone(TM) should do statistics on how we're doing on the JVM spectests... 13:45
13:47 kaleem left, bluescreen10 joined 13:48 snearch left, colomon joined
lizmat cognominal: was the last time I checked 13:48
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?
lizmat r: sub foo(|c, :$a, :$b) { say c.exists('a') }; foo( :a ); foo( :b )
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␤␤»
lizmat :-(
but I guess that can be fixed... 13:50
r: sub foo(|c, :$a, :$b) { say c.hash.exists('a') }; foo( :a ); foo( :b ) 13:51
camelia rakudo b2072f: OUTPUT«True␤False␤»
jnthn timotimo: How to reproduce it? 13:53
13:53 kaleem joined
masak thinks Capture should have an .exists 13:55
13:56 sqirrel joined
lizmat is working on that 13:56
as in Capture.exists 13:57
timotimo jnthn: i just built a recent rakudo-jvm
jnthn timotimo: yes, and then? 13:58
timotimo i'm trying to find something that'll cause it
i think it was pretty easy the last time i tried
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?
lizmat why shouldn't Hash have .exists ? 14:00
colomon r: sub foo(|c, :$a, :$b) { say c{'a'}:exists; }; foo( :a ); foo( :b )
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␤␤»
colomon lizmat: it was a hack added back when Rakudo couldn't handle :exists
lizmat aha...
colomon r: sub foo(|c, :$a, :$b) { say c.hash{'a'}:exists; }; foo( :a ); foo( :b ) 14:01
camelia rakudo b2072f: OUTPUT«True␤False␤»
lizmat well, fwiw, :exists is implemented in terms of .exists :-(
colomon n: sub foo(|c, :$a, :$b) { say c{'a'}:exists; }; foo( :a ); foo( :b )
camelia niecza v24-79-gcb6f20b: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/HCraRf1Smb line 1:␤------> sub foo(|c, :⏏$a, :$b) { say c{'a'}:exists; }; foo( :a␤ $b is declared but not used at /tmp/HCraRf1Smb line 1:␤------> sub foo(|c, :$a, :…
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 …
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
timotimo though it seems silly to be listing things that are missing from rakudo-jvm at this point :) 14:05
14:05 tgt left
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
dalek kudo/nom: 1767e8f | (Elizabeth Mattijsen)++ | src/core/Capture.pm:
Add .exists to Capture

So that we can more easily check whether a parameter was passed, by doing sub foo (|c, :$a ) { if c.exists("a") {...
14:08
lizmat running spectest now
jnthn tadzik: Yes, I think that may be up for a renaming :) 14:09
dalek p: 922a848 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/TypeObject.java:
Make nqp::clone on a type object not explode.

Seems lots of spectsets somehow hit a codepath where they do this.
14:11
p: cc63066 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Implement nqp::rand_n.
timotimo java.lang.IllegalArgumentException: sprintf only accepts ints, nums, and strs, not class __P6opaque__62 - hehe :)
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:19 FROGGS left 14:23 tgt left 14:26 fgomez left 14:30 jeff_s2 joined
timotimo huh, curious 14:31
for (12)...1 { say $_ } works in rakudo-jvm, but for (6 + 3 + 3)...1 { say $_ } seems to hang
masak well, '6' contains a loop... 14:34
:P
colomon :p
timotimo :D
14:35 sqirrel left
[Coke] jnthn++ sorear++ 14:36
14:36 ajr_ left 14:37 ajr joined, ajr is now known as Guest41873 14:38 Guest41873 is now known as ajr_, raiph joined 14:39 tgt joined
lizmat cycling& 14:44
14:47 tgt left 14:49 kaleem_ joined, kaleem left
dalek p: 836f18b | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/IndyBootstrap.java:
Catch one more unoptimizable case.
14:50
p: 967d89b | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Fix Inf/-Inf/NaN handling.

Unbusts a range of spectests in Rakudo JVM.
14:50 skids joined, sqirrel joined
jnthn r: 'foO'.tclc.say 15:00
camelia rakudo b2072f: OUTPUT«Foo␤»
15:01 btyler_ joined 15:03 tgt joined 15:04 btyler left 15:11 birdwindupbird left
[Coke] TCL! 15:12
oh. :(
:) 15:14
JimmyZ here is a company named TCL
[Coke] huh. 15:15
15:19 atroxaper left 15:21 atroxaper joined 15:23 lawrmcfa joined, tgt left 15:31 fhelmberger left, lawrmcfa left
colomon just had all sanity tests fail under rakudo-jvm :( 15:32
timotimo :( 15:33
15:33 FROGGS joined
colomon t/01-sanity/12-try.t ............... Unhandled exception: use of uninitialized value of type Any in numeric context 15:34
(etc)
command line prove -e "./perl6" t/01-sanity/ 15:35
timotimo yeah, it seems like warnings are fatal in rakudo-jvm so far
jnthn Odd, that one passes here 15:37
But yes, warnings are fatal at the moment
colomon jnthn: ALL of the sanity tests are failing here 15:38
that was just an example
dunno what the story is, but they were working better yesterday 15:39
but then, I may have been invoking them a different way?
jnthn colomon: Did you build an up to date NQP too?
15:39 sciurius joined
[Coke] Nice to have: "make test", "make spectest" on rakudo-java 15:39
colomon jnthn: yes
nqp at 967d89b5e1adb79a18f2280589ed1afa8a2edc9e 15:40
that's Fix Inf/-Inf/NaN handling.
jnthn [Coke]: sorear has some progress on that, so I'm not going to duplicate work.
15:40 tgt joined
jnthn sorear++, even :) 15:40
[Coke] rogerroger
only 2 failures for me in rove -e ./perl6 -vr t/0* 15:44
colomon just occurred to me it might be useful to send the entire error stack: gist.github.com/colomon/5823947 15:47
never mind, this is all my fault, I think
15:47 xenoterracide|2 joined
colomon left some debugging code in there from yesterday 15:47
I wouldn't have expected it to fail like that, but....
dalek kudo/nom: 20e0034 | jnthn++ | src/core/Str.pm:
Some missing coercions.

The JVM implementation correctly treats as constraints some things that became coercions on Parrot. This adds the needed coercions. On Parrot, should avoid going via a v-table override too.
15:49
kudo/nom: 7bd7a6b | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Ops.java:
Implement nqp::tclc.
kudo/nom: 5913ce8 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
Implement $!foo parameters.

Fixes Junction construction, which in turn unbusts various junction related things.
timotimo nice
colomon hrm, now I'm just getting a different failure 15:51
15:51 domidumont left 15:52 JimmyZ left 15:53 fgomez joined 15:54 kaleem_ left 15:55 konundra left, sqirrel left
colomon after pulling the latest changes and rebuilding, my only sanity fail is 99-test-basic.t 15:59
15:59 japhb left
jnthn colomon: Yeah, and if run outside of prove with -Ilib then it passes 16:00
colomon or run in prove with -Ilib 16:02
:)
16:03 benabik left
[Coke] colomon: I don't think that will help, will it? 16:03
colomon [Coke]: prove -e "./perl6 -Ilib" t/01-sanity/ 16:04
works beautifully
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...
I thought so, anyway... 16:06
[Coke] dump is also failing here.
FROGGS damnit, now I'm using sort of excel to compare two ASTs >.<
[Coke] OS X 10.8.x^H^H
16:07 konundra joined
colomon my fail is on ubuntu 16:08
16:08 sqirrel joined
colomon (since as nearly as I can tell, OS X 10.6.8 cannot run Rakudo-JVM because its JVM is too old) 16:08
[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 ?
[Coke] I have to do that for work, as I need six for some corporate packages, and seven for dev work.
colomon: ah, yes.
colomon [Coke]: but all the 1.7 builds I was able to find what 10.7 or higher
[Coke] colomon: ... that sucks.
perhaps something in macports? 16:11
colomon [Coke]: yes, I agree.
[Coke] adding a plan.
masak I'm going to start le release engineering in an hour or so.
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.
masak++
16:12 lawrmcfa joined
dalek kudo/nom: 45e54f8 | coke++ | t/02-rakudo/dump.t:
Add a plan for this test.
16:16
16:17 SamuraiJack left
colomon [Coke]++ 16:18
with that change, all t/0* tests pass for me. (ubuntu) 16:21
FROGGS jnthn: the ast differs 16:24
timotimo i'd really like the softdiv by zero pr to get into rakudo before masak cuts the release 16:25
16:25 benabik joined
timotimo pm said it was okay, lizmat spectested it successfully 16:25
masak timotimo: go right ahead. 16:27
timotimo i don't have a commitbit ;) 16:28
masak oh, or is there a pull request I should merge?
sorry, a bit slow here :)
16:28 sqirrel left
timotimo yes, the one that's visible on the pulse tab 16:28
thank you! :D
16:28 SamuraiJack joined 16:29 [particle]1 is now known as [particle]
dalek kudo/nom: 5faaf15 | (Timo Paulssen)++ | src/core/ (3 files):
soft-fail X::Numeric::DivisionByZero for div and /
16:29
kudo/nom: 0506d2a | (Timo Paulssen)++ | src/core/Rat.pm:
don't infiniloop when trying to .perl a Rat with 0 denominator
kudo/nom: 5e83051 | (Timo Paulssen)++ | t/spectest.data:
test S03-operators/div.t as well.
kudo/nom: 6205794 | (Timo Paulssen)++ | src/core/ (2 files):
rewrite nqp::if with unless.
kudo/nom: 60e4582 | (Carl Mäsak)++ | / (5 files):
Merge pull request #169 from timo/softfail-div-by-zero

Softfail div by zero
timotimo lovely! :D
masak :)
[Coke] eek. I'm concerned about brining in the /0 stuff just before the release.
*brining
*bringing # g key stuck?
timotimo now to figure out if i already committed the spectest changes 16:30
yes, i did. great!
perigrin brines several null terminators.
colomon [Coke]: yeah, I'm sitting here wondering if floating point divide by zero only happens for Nums that are false... 16:31
16:31 GlitchMr joined
[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.
<timotimo> pm said it was okay, lizmat spectested it successfully 16:32
[Coke]: I think there was conversation on-channel after that comment on the pull request.
[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...
[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.
I guess I can launch a smoke test here, can't I?
[Coke] jnthn++ - I think it should have waited until post-release.
16:34 SamuraiJack left
masak still not too late to revert to an earlier state. 16:35
I know git; I can do that :)
colomon I think the rest of the commits are pretty safe, to be fair to timotimo.
masak me too.
it's a set of commits which turn a hard failure into a soft failure.
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
[Coke] if someone runs the star tests, I withdraw my objection. 16:37
masak checks if the change was noted in the ChangeLog
16:37 ajr_ left
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
but that has to wait a bit longer 16:41
dalek p: 4a8d8ea | jnthn++ | src/vm/jvm/ (2 files):
Fix CONTROL handlers.
16:43 atroxaper left
dalek kudo/nom: d221425 | jnthn++ | src/core/Exception.pm:
Make warnings not be fatal on JVM.
16:45
colomon \o/ 16:47
smoke test launched 16:48
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).
timotimo you're not smoking with rakudo-jvm, are you? ;) 16:49
masak colomon++ 16:50
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:51
16:52 alester joined 16:53 colomon left
timotimo hehehe 16:53
16:54 dmol joined
jeff_s2 I have Pugs passing 69 tests in S32-trig/cos.t. Is that an improvement? I'm having trouble reading [COKE]'s github.com/coke/perl6-roast-data/b...ummary.out . 17:02
17:05 census joined
jnthn When running spectests and it shows the progress thingy, like: 17:05
===( 7183;686 ...
What are those two numbers?
timotimo jeff_s2: it seems like coke didn't include cos.t in his tests 17:06
17:07 colomon joined, sqirrel joined
jeff_s2 Ah ok, that makes sense. 17:08
17:09 kaleem joined
masak jnthn: individual tests and test files, respectively_ 17:10
?
jnthn masak: It's surpassed the number of tst files in spectest.data by now, so no :)
masak dang :) 17:11
could one of them be seconds elapsed?
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.
jnthn masak: um, hm...I think the second one may be :P 17:12
17:12 ztt_ left
jeff_s2 Locally I went from 0 to 69 tests passing in S32-trig/cos.t. 17:12
masak jnthn: by that logic, the first one is primes elapsed :P 17:13
nwc10 IIRC it's seconds elapsed and total number of subtests 17:14
jnthn Total executed, not total passed. Aww. :) 17:15
17:16 kaleem left, ssutch joined
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
jnthn Files=738, Tests=16180, 1492 wallclock secs 17:19
And a looong failure list that doesn't fit in my terminal's buffer. 17:20
Wish I knew how to get this thing to give me some better statistics on number passing, skipped, etc.
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:21
17:21 sqirrel left
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:22
17:23 jeff_s2 left 17:24 kaleem left 17:28 jeff_s1 joined
jnthn bbl 17:29
17:38 amoe_ joined
masak ok, going into release engineering mode, people. 17:41
17:42 sqirrel joined 17:43 yoleaux joined, ChanServ sets mode: +v yoleaux
raiph FROGGS: what's your spectest pass count for v5? 17:44
is there any nice way for folk to keep tabs on that?
17:46 yoleaux left, yoleaux joined, ChanServ sets mode: +v yoleaux
FROGGS raiph: github.com/rakudo-p5/v5/blob/master/STATUS.md 17:47
raiph: so it is like 1.97% passes 17:48
[Coke] wonders why any utf support is needed in S32-trig/cost.t 17:49
*cos.t
raiph FROGGS++ # very nice
17:49 xenoterracide|2 left
[Coke] jnthn: get t/spec/test_summary working? 17:50
that's how the daily runs for pugs/rakudo-p/niecza run.
dalek rl6-roast-data: 5a43b2c | coke++ | / (4 files):
today (automated commit)
raiph FROGGS: i'm guessing progress will be an S-curve. is that what you anticipate?
17:51 halliday joined
halliday how's it hanging? 17:51
diakopter likes the new github UI 17:52
masak lizmat, pmichaud, et al involved in module musings: have you seen github.com/rakudo/rakudo/blob/nom/...oposal.pod ?
FROGGS raiph: well yes, if one gets pack done, that means 16k tests, but there are more important things that have just 50 tests
masak it's three years old and sitting in docs/
lizmat: there's no Nancy.pm? 17:55
(thinking of what to name the release)
colomon [Coke]: I have no idea why cos.t would be using non-ascii characters
masak halliday: oh hai! it's hanging adequately, thanks. 17:57
masak is bad at online pleasantries
halliday: how's with you, my good online being?
halliday lol. was reading the perl6 web site
u good. 17:58
masak heh.
we have our moments.
halliday have been thinking about perl6 lately and was wondering if the thread support was improved over perl5 17:59
masak tadzik: is it time for a "Poznan" release yet? what's the latest news from that .pm group? :) 18:00
halliday: threading still needs a solid implementation and a few spec iterations in Perl 6.
halliday: there are plenty of good ideas floating around, but no-one who has really sat down and "attacked" threading. 18:01
halliday: my guess is things will turn a lot more interesting once Rakudo is established on the JVM.
tadzik masak: they have a website, but no content yet :)
masak Rakudo and Parrot never really "connected" on a threading story.
halliday ahhhh 18:02
masak tadzik: do you think they would appreciate having a Rakudo release named after them? :)
tadzik masak: that may motivate them, or not ;P
masak good enough for me!
18:02 ajr joined
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 ajr is now known as Guest63309
halliday think threading is good enough for testing at this point? 18:03
18:03 Guest63309 is now known as ajr_
masak halliday: I think you'll have most luck trying out testing on Niecza right now. 18:04
but I don't know much more than that, unfortunately.
maybe someone else here does.
tadzik documetees
[Coke] jeff_s1: regexp-pcre doesn't seem to be listed in the pugs repo. how does it get pulled in?
halliday thanks, masak. will try it out 18:05
masak jnthn:
Compiler Performance/Portability Improvements (jnthn)
2 ** finish up any remaining s/pir::/nqp::/
2 ? re-organize Rakudo, build process, etc. for multi-backend
3 ** Optimizing multis for `[+] 1..10` and `[<=] 1..10` etc.
geekosaur [Coke], cabal installs it from hackage
masak do these need updating? 18:06
geekosaur pyanfar:60029 Z$ grep pcre */*.cabal
pugs-compat/pugs-compat.cabal: Build-depends : base >=4 && < 5, time, directory, process, regex-pcre-builtin >= 0.94.4.4.8.31, regex-base,
[Coke] geekosaur: thank you. was wondering what pulled it in.
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...)
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 :/
lizmat mask: wrt github.com/rakudo/rakudo/blob/nom/...oposal.pod : it seems rather intent on scaling down the spec to something easily implementable 18:08
masak yes.
lizmat: I think that was the fashion of 2010.
lizmat but I agree with one point: you can only have 1 auth/ver string per file (UNIT)
masak lizmat: just wondering in general if the file was remembered or forgotten.
lizmat my point is, that it should live in a statement of its own, for clarity of all involved
masak no sense in reinventing too many wheels :) 18:09
lizmat this was the first time I saw it
masak well, mission accomplished then.
lizmat indeed :-)
masak I will now promptly forget it myself and leave it up to you whether to remove it or replace it with something better :)
lizmat FWIW, I spectested my Capture.exists addition, and it doesn't break anything
masak goodie.
[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.
lizmat now we only need TimToady,pmichaud to shine their light on .exists method in general, and Capture.exists in particular
masak ok, barring jnthn's comments, the ROADMAP looks current to me. 18:11
(it was updated in December)
[Coke] jeff_s1: do I need to do anything to make sure pugs builds with the latest version? (I apparently have 3 versions installed)
colomon errr .... 71.10.146.50:3001/report (tests for 06/21 are the smoke test I just ran with the current Rakudo) 18:14
File::Directory::Tree and IO::Path::More started failing sometime in the last 12 hours
masak in the release announcement, second sentence: "Rakudo is an implementation of Perl 6 on the Parrot Virtual Machine (see <www.parrot.org>)." -- should I amend this sentence somehow? :) 18:16
colomon +1
masak suggestions?
jnthn aye
colomon on NQP 18:17
diakopter s/on/with backends including the JVM and/ ?
[Coke] jeff_s1: gist.github.com/coke/5825216 - new passing tests.
masak diakopter: and link to Parrot but not the JVM? 18:19
diakopter how do you link to the jvm?
[Coke] diakopter: java.com/
jeff_s1 Sorry, was afk.
masak or I could drop the Parrot link. 18:20
jeff_s1 [Coke]: Great! Were there any new failures?
[Coke] jeff_s1: nope.
18:20 amoe_ left 18:21 benabik left
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:21
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
masak a *lot* of code. 18:22
TimToady but all of those internals are subject to renegotiation as soon as S09 starts getting implemented
:exists is supposed to be S09-proof
we can't guarantee that for .exists 18:23
not without an explicit mapping of multidimensional args to single dimensional...
[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 ajr_ left, spider-mario joined
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:25
TimToady what does this turn into: my Things @things[3,3,*]; @things[1;2;$min..$max]:delete 18:26
18:27 vk joined
TimToady er, my Things @things[3;3;*]; @things[1;2;$min..$max]:delete 18:27
18:27 drbean joined
TimToady s'posed to use ; consistently... 18:27
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
but it's something we should look at long-term.
TimToady currently .exists only knows about single keys, afaik
18:28 xenoterracide|2 joined
TimToady we'd need a .exists that knows about LoLs, where each sublist can be lazy 18:29
18:29 lawrmcfa left
TimToady the :exists form is more straightforward as soon as you get out of single dimensions 18:29
colomon [Coke]: harmonyware.com/pictures/smoke.png 18:30
FROGGS masak: it doesnt like windows line endings 18:31
18:31 abnorman joined 18:32 halliday left 18:34 sqirrel left
masak FROGGS: oh, you found what's wrong? wonderful! 18:35
FROGGS++
FROGGS I wanted to fix that last time I made the release but forgot about it 18:36
masak FROGGS: now's your chance ;)
(no rush) 18:37
FROGGS you are cutting the release today?
masak yes, now. 18:40
but I'm not in any way blocking on a working leap second script.
[Coke] kicks off a spectest run for rakudo.jvm using the test_summary script.
colomon r: say path("/").append("foo") 18:41
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Undeclared routine:␤ path used at line 1␤␤»
[Coke] (only needed a small change to test_summary to pass in "-Ilib" # colomon++
r: say IO.path("/") #?
colomon is glad he did something right today.
camelia rakudo b2072f: OUTPUT«No such method 'path' for invocant of type 'IO'␤ in block at /tmp/1kXQOUQG7C:1␤␤»
FROGGS masak: k
colomon [Coke]: I'm looking at IO::Path::More -- apparently that's where path comes from
masak smolder.parrot.org/app/projects/smoke_reports/5 was last updated 2013-03-29, it seems. 18:42
18:42 konundra left, ajr_ joined
[Coke] that recently!? 18:42
[Coke] is again rminded to fix muddle. 18:43
18:43 kaare_ left
[Coke] smolder.parrot.org/app/projects/rep...ails/39357 - internal server error. :( 18:43
camelia: help
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>
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
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:51 Chillance left 18:52 konundra joined
lizmat TimToady: I like the .exists_at_key idea, since .exists currently is really an at_key cut short 18:53
TimToady but again, what's a "key" look like when you add slicing and multidimensionality? 18:54
TimToady isn't sure 18:55
lizmat If necessary, I can do this rename of .exists internally + test-suite
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:56
.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:57
dalek ecs: b49be30 | (Elizabeth Mattijsen)++ | S11-modules.pod:
Remove mention of .exists method from example, replace by :exists adverb
18:59
FROGGS jnthn: I solved my capture-bug, this line caused it: github.com/rakudo-p5/v5/blob/maste....nqp#L2824 19:00
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?
jnthn FROGGS: oh!
masak in the README: "For example, rakudo-jvm is known to fail many tests." -- should this be amended somehow? 19:02
lizmat maybe add "for now" 19:04
FROGGS I'd say that it does not yet pass many tests
so it'll sound positive after all
lizmat I see FROGGS is a bottle half full person 19:05
:-)
masak it passes all the 'make test' tests, doesn't it?
lizmat it is supposed to now, afaik
masak I was thinking about the distinction between 'test' and 'spectest'.
FROGGS lizmat: yeah, and the readme or announcement is still some sort of advertising for the product
19:05 Chillance joined
masak 'tests' sounds like it's making a statement about the former. 19:05
FROGGS you could say that it passes al internal test, but not many of the language spectests 19:06
dalek kudo/nom: da1c51b | masak++ | README:
[README] clarification about the JVM tests failed
19:07
lizmat afk for a few hours, amongst other things to make sure I won't interfere with masak's work tonight& 19:08
colomon lizmat++ 19:09
masak 'Implement :$<foo> colonpair syntax.' 19:11
jnthn: really!? I totally missed that :D
FROGGS cool 19:12
masak things you learn by updating the ChangeLog... :)
FROGGS yepp
masak is... is that spec'd?
FROGGS who cares as long it is cool :P 19:13
19:14 abnorman left
masak cares :) 19:14
TimToady $<foo> is listed under the twigils; it just happens to require a closer twigil too
masak r: constant True = "Yeah, well, you know, that's just, like, your opinion, man."; say True 19:16
camelia rakudo b2072f: OUTPUT«True␤»
masak adds to rt.perl.org/rt3/Public/Bug/Display...?id=111734 19:17
TimToady n: constant True = "Yeah, well, you know, that's just, like, your opinion, man."; say True
camelia niecza v24-79-gcb6f20b: OUTPUT«Yeah, well, you know, that's just, like, your opinion, man.␤» 19:18
[Coke] S03-metaops/reduce.rakudo.jvm...................... 81 224227 2 7 0 19:19
5 skipped: =:= NYI
2 skipped: [!===]
1 todo : item context
1 todo : reduced hyper op
224317 tests more than planned were run
whoops. slightly more lines than intended, sorry.
(and that was after I killed it)
colomon jvm must be really fast, to run that many tests...
19:20 benabik joined
[Coke] it had been running for some time. :) 19:21
19:22 xenoterracide|2 left
[Coke] starts this over using the perl6-limited script and saving the output. 19:25
jnthn "Does Rakudo JVM run more spectests than on Parrot?" "Yes." :P 19:26
[Coke] :P :P :P
honestly, I'm surprised it's doing this well.
jnthn++ sorear++ 19:27
colomon has moved his estimate for when Rakudo-JVM will be ready for prime time significantly forward in the last 24 hours. :) 19:31
diakopter forward in time? 19:32
[Coke] "closer to now"
colomon what [Coke] said
diakopter that's what it seemed, it's just forward usually means means forward in time
TimToady the time dimension is negative in relativity :)
diakopter also relative in negativity 19:33
19:33 daxim left
TimToady it's negatively relative in dimensionality, however :) 19:33
well, except maybe an event horizon
s/an/near an/ 19:34
[Coke] "more tests run than expected" reminds me of issues with junctions when trying to fudge things for pugs. 19:37
jnthn For those who'll be there: Anything anybody particularly wants to hear me speak about at YAPC::EU? 19:39
TimToady How Perl 6 runs *almost* as fast as Perl 5? :D 19:40
PerlJam TimToady++ faster snark than I
dalek p: 07698e7 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
D'oh, CATCH isn't a control exception thing.
19:41
TimToady jnthn++ for putting up with snark :)
jnthn TimToady: How hard am I allowed to cheat? :P
TimToady s:g/cheat/optimize/
just don't get caught! 19:42
jnthn ;)
19:42 lawrmcfa joined
dalek kudo/nom: 201b7ff | masak++ | docs/ChangeLog:
update ChangeLog
19:42
masak that is one impressive changelog. 19:43
I'd just like to take this moment to say moritz++ who usually does a lot of the ChangeLog updates.
[Coke] masak: No java mention in the changelog?"
masak [Coke]: no; feel free to add something. 19:44
jnthn Feels like that should be in there :)
masak can I count on [Coke] or jnthn to add something in there? 19:45
[Coke] jnthn: "JVM backend passes all core tests" ? 19:46
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.
jnthn The merge was this month :)
[Coke] ok. "JVM backend added - passes all core tests"
jnthn That's OK 19:48
[Coke] plus, I imagine, a ¶ in the release notes.
jnthn Yeah, somewhere we should be clear what "core tests" mean
(e.g. "it's not the spectests"
) 19:49
19:49 dakkar left
TimToady initial sanity tests? 19:49
jnthn +1
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.
[Coke] jnthn: it's not going to happen in time.
jnthn ok
[Coke] unless you want to wait until late.
dalek kudo/nom: 5b5ac4b | coke++ | docs/ChangeLog:
Add note about the JVM backend!

  jnthn++ sorear++ (et al.)
19:51
[Coke] I promise to write up a blog post for it though when I add the first run.
jnthn [Coke]: Well, it's masak really :)
But yeah, it's not really worth waiting for :)
[Coke] soooo slow.
nwc10 it's going to be out of date by the time that most people read it
[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 left, dmol joined
colomon what *does* :$<foo> do? 19:56
TimToady foo => $<foo>
colomon hmmmm 19:57
TimToady++
masak I guess it doesn't do 'bar => $<foo><bar>', though.
TimToady the spec even has :$$foo turning into foo => $$foo
just finds the next identifier, whatever it is 19:58
not that that means anything now 19:59
but :$@foo and :@$foo are meaningful
dalek kudo/nom: 1bf789d | masak++ | docs/ChangeLog:
[docs/ChangeLog] fixed thinko
kudo/nom: 7e6ef07 | masak++ | docs/announce/2013.06.md:
[docs/announce/2013.06.md] added
20:03
masak please please eyes eyes :)
masak points to eyes and to the above commit and its URL
labster the eyes have it 20:04
masak oh nose
labster I can ear you.
TimToady me senses a pun-war coming
jnthn takes up arms
masak labster: so you must have a cute earring.
TimToady nice touch 20:05
nwc10 is it always pun time in hair?
jnthn "Rakudo is an
+implementation of Perl 6 on the Parrot Virtual Machine"
nwc10 I was wondering that
masak suddenly everyone elbows in with a pun
jnthn That sounds funny when it says "JVM backend added" further down ;)
masak oh!
I thought I added diakopter++'s fix, but seems I didn't. 20:06
ok, let me do that right away.
dalek kudo/nom: 2f2b4e3 | masak++ | docs/announce/2013.06.md:
[docs/announce/2013.06.md] ...and the JVM
masak feel free to further suggest improvements to that wording.
FROGGS hmmm, I dont see anything strange left 20:08
timotimo ++ implement sequences between 1-codepoint strings implemented
oops :)
labster It might be nice to note that Rakudo Star includes a module installer. I'd probably spell out Java Virtual Machine.
masak timotimo: that one is fixed already :) 20:09
timotimo ok
masak labster: ok. fixing both.
PerlJam What's "poznan" ?
jnthn :D 20:10
TimToady can any of this be categorized as prelim work for targeting moarvm?
[Coke] should have bumped up the "imited" perl6-jvm to last longer than 45s.
flussence
.oO( positive NaN )
[Coke] in general, things that allow us to run on more than platform are helping with moarvm, aye.
jnthn TimToady: Some of the portability fixes will help there too.
TimToady might be politic to mention it along with JVM 20:11
or might not be :)
dalek kudo/nom: a7dea6c | masak++ | docs/announce/2013.06.md:
[docs/announce/2013.06.md] spell out JVM
kudo/nom: dc5038b | masak++ | docs/announce/2013.06.md:
[docs/announce/2013.06.md] mention module installer
: 0c3b4cd | (Tobias Leich)++ | / (3 files):
properly capture in regexes, and allow the use of $1-vars
[Coke] I wouldn't until we pass the sanity tests.
that was the effective line in the sand for the jvm.
masak *nod*
jnthn +1 20:12
timotimo that can't take long ... :)
PerlJam well ... there is another release in a month ;)
masak rn: say qq[What's "poz{lc sqrt -1}" ?]
camelia rakudo b2072f, niecza v24-79-gcb6f20b: OUTPUT«What's "poznan" ?␤»
masak :)
FROGGS >.< :P 20:13
labster github.com/rakudo/rakudo : "Rakudo Perl -- Perl 6 on Parrot" we might want to change that too.
masak labster: nice!
flussence
.oO( the correct answer is highly complex... )
masak I mean, good catch.
labster I know I'm nice :)
TimToady but Positive Over Zero == +Inf, not NaN...
masak ok, I'm now descending into the "release nqp" subroutine. 20:15
[Coke] I thought we just said it was a Fail
TimToady Inf and Nan are very small failures, for large values of small 20:16
masak or non-values, in the case of NaN.
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
jnthn: it's like a punchline of some really un-funny joke :)
jnthn I was like...where are all the exceptions going?! 20:18
masak there's always a catch :P
jnthn oh, control those puns... 20:19
masak I'll try... 20:20
PerlJam finally!
TimToady the odds are stacked against you being able to unwind tonight
masak oh, I'm exceptionally good at unwinding. 20:21
both PRE and POST a release :)
TimToady throws up his hands
jnthn Well, that's a warning...
masak according to the logic of the nqp release guide, I should *not* update to Parrot 5_3_0. anyone feel different?
jnthn: err.
PerlJam masak: unless there's a compelling need, no. (IMHO) 20:22
masak PerlJam: the logic is based on that, I think.
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
yoleaux 13:18Z <jnthn> sorear: PASS ALL THE SANITY TESTS! \o/
dalek p: 5816238 | masak++ | VERSION:
bump VERSION to 2013.06
masak sorear! \o/
colomon \o/ 20:24
nwc10 \o/
TimToady \ö/
jnthn o/ sorear :)
PerlJam Heh ... I notice that most of the blank lines in NQP's release guide are still attributed to me :) 20:25
anocelot \o/
masak PerlJam: we trust you with blank lines. whenever we have a need for them, you're foremost in our minds. 20:26
:P
20:26 FROGGS left
PerlJam looks at masak blankly 20:27
TimToady the shortest distance between two bullet points is a blank line
PerlJam not in POD6!
masak the shortest *range* between... :)
labster r: say (++(my $ = "pop") for ^10); 20:28
camelia rakudo b2072f: OUTPUT«poq poq poq poq poq poq poq poq poq poq␤»
labster r: say (++(state $ = "pop") for ^10);
camelia rakudo b2072f: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
masak ok, Houston, we have a problem. 20:29
perl Configure.pl --gen-parrot fails in nqp: gist.github.com/masak/5826320
:(
flussence grabs the poqcorn 20:30
TimToady that's popcorm to you
jnthn That looks terribly like an absolute path to me
flussence hm, lemme try running that...
sorear jnthn: Did you see what I'm doing with "jvm-hacking"?
TimToady er, popcoro
masak notice the the first problem already on L12.
TimToady: a "popcoro" sounds like an implementation detail of green threads :) 20:31
labster surprise, it's threaded!
PerlJam hands out some popqorn instead 20:32
TimToady don't confuse me like that--it's redundant
masak why does that fail now? we already targeted this Parrot release last month... 20:33
it almost has to be something that changed on the nqp end, no?
PerlJam masak: WHAT. DID. YOU. DO?!? 20:34
sorear jnthn: also, [[ Files=738, Tests=16180, 1492 wallclock secs ]] - is that using the evalserver?
PerlJam ;)
flussence masak: rakudo build sailed past that point without a complaint on my end...
jnthn sorear: I noticed it...guessed it was a work in progress
masak flussence: not rakudo. clean nqp.
jnthn sorear: No, that's just a couple of local hacks on t/harness and perl6.bat, with --jobs=4
flussence oh
hm
masak anyway... halp!
currently very much blocking on this.
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
flussence (does it count if my build thingy runs git clean -dfx everywhere first?)
masak flussence: just saying where I ran into problems. 20:35
jnthn sorear: Oh...
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.
jnthn sorear: Ah, OK. I'm probably not paranoid enough :)
masak dives into lib/Parrot/Configure/Options.pm looking for the line that died
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
sorear: Meaning it'll be valid for Moar too \o/
20:37 vk left
sorear :D 20:37
jnthn *and* it now supports next/last/redo :D
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...
masak 1
vewwy vewwy odd.
anocelot jnthn: cool!
20:38 vk joined
colomon jnthn++ 20:38
jnthn sorear: I've spent the day beyond getting sanity all passing picking off various things spectests showed up 20:39
20:39 FROGGS joined
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
$ perl -MFile::Spec -wE 'say File::Spec->file_name_is_absolute(q["/home/masak/ours/nqp/install"])'
<empty line>
20:40 tgt left
masak this seems to be what's happening. 20:40
I have no idea why it's suddenly happening.
flussence masak: can't reproduce that with a clean nqp here, although I'm using a perlbrew'd 5.18 instead of system perl
masak checking the log for that file.
20:40 tgt joined
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
flussence that's the only difference I can see :/
masak perl 5.14 here.
TimToady why the double quoting with q[""]?
FROGGS masak: q["..."] <--- is that right?
ahh, maybe to allow space 20:41
flussence if it's quoting a fs path to use in a command line, yeah
masak FROGGS: I don't know about *right*. I had it debug-output $value, and that's what $value contains!
anocelot colomon: I've had mixed results with the Time Capsule.
TimToady surely you're feeding '"..."' to the m method
s/m //
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...
TimToady and a file starting with " isn't absolute
masak right.
well, *I'm* not feeding. Configure.pl is, I guess.
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
FROGGS masak: I get an empty line with the extra quotes too, but not without them
5.14.2 that is
sorear jnthn: return doesn't go through exceptions, I can tell
20:44 colomon left
jnthn sorear: Return doesn't. 20:44
masak my @cmd = ($^X, "Configure.pl", @opts, "--prefix=\"$prefix\""); 20:45
jnthn sorear: Sorry, I thought you were talking about next/last/redo etc.
masak that line puts the double quotes there.
...and it's been changed this month.
6c24e71c
FROGGS and they make sense there
masak by [Coke]. "Quote args passed to parrot's Configure."
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:46 alester left
FROGGS 3.33 here, and I have the same behaviour like masak 20:47
TimToady maybe two different fixes for the same problem?
one added q[], the other added ""?
masak flussence: 3.33 here.
TimToady in different spots?
masak TimToady: no, I don't think so.
TimToady: [Coke] added "", and at least Parrot 5.2.0 doesn't like that.
masak checks if a newer Parrot fixes it. 20:48
TimToady can't be a Parrot problem; q[""] just makes no sense as Perl
masak oh, indeed github.com/parrot/parrot/commit/12...9acf86e930 20:49
TimToady prefix is used in multiple places? and some other place (a shell? a Makefile) was fixed with the ""
sorear jnthn: what kind of machine do you build and test on?
flussence well I can't imagine File::Spec was broken and fixed between .33 and .40...
unless it's a locale thing...
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.
anyway, I think I need to upgrade Parrot to 5.3.0 for this reason. 20:50
I'll try this.
timotimo using the :$<foo> syntax, can i also do something like :replacement($<replacement>.Str shorter? (the .Str part is what i'm wondering about)
TimToady masak: okay
jnthn sorear: Quad core i7 running at 3.4 Ghz, 16 GB RAM, all build tools and sources on an SSD
labster File::Spec is only broken from a design point of view :)
jnthn sorear: Didn't turn on HT, though pondering trying it...
timotimo r: "foo" ~~ /<ident>/; (:$<ident>.Str).perl.say
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Bogus statement␤at /tmp/EdO7EZ1E5v:1␤------> "foo" ~~ /<ident>/; (:$⏏<ident>.Str).perl.say␤ expecting any of:␤ colon pair␤»
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
TimToady timotimo: probably not, would mean (replacement => $<replacement>).Str
masak dang, still the same error :( 20:52
FROGGS :(
sorear jnthn: yeah, just wondering because it builds the setting twice as fast as mine
flussence p5eval: "/home/foo/bar/nqp/install" =~ m:^/:s
p5eval flussence: 1 20:53
jnthn [nom 6f38170] Redo MapIter with nqp ops; handle next/last/redo.
masak oh, because I should bump all the way up to 5.5.0...
jnthn 2 files changed, 35 insertions(+), 218 deletions(-)
...nice!
masak d'oh
20:54 colomon joined
dalek kudo/nom: f3f182d | jnthn++ | src/Perl6/Actions.nqp:
Allow nqp::handle(...) use in Perl 6 code.
20:54
kudo/nom: a0d138a | jnthn++ | / (3 files):
Merge branch 'nom' of github.com:rakudo/rakudo into nom
kudo/nom: 8506c14 | jnthn++ | src/ (2 files):
Redo MapIter with nqp ops; handle next/last/redo.

This tosses the JVM specific version with something generic, which means it can be re-used for MoarVM later on too. pmichaud++ for the suggestion to do it this way.
masak yay it works again \o/
jnthn oops, I forgot le --rebase...
masak jnthn: I have non-ff merges turned off by default. recommended.
jnthn masak: Just for pull? 20:55
Not sure I'd want it as a default anywhere else...
sorear grr, now I need to merge nom into jvm-hacking *again*... :D
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
masak .oO( just because you take your paranoia down a notch doesn't mean the stop following you )
jnthn e 20:57
oops
masak editing files again? :P 21:01
jnthn yeah
:P
hm, seems one of the biggest blockers at the moment is no working sort. 21:02
21:03 skids left
FROGGS didnt sorear++ already fix cmp for that? 21:04
sorear say %*ENV works, say %*ENV<PERL6LIB> doesn't 21:05
dalek p: 0bff39f | masak++ | tools/build/PARROT_REVISION:
[tools/build/PARROT_REVISION] bump to Parrot 5.5.0

Needed because of some quote business involving nqp commit 6c24e71 and Parrot commit 1291bb1.
21:06
jnthn sorear: Can only guess it's something to do with %*ENV having a magical at_key 21:07
(done by role mixin)
21:08 census left
dalek kudo/nom: 4040ef1 | jnthn++ | src/core/List.pm:
Don't rely on magical 'Inf' coercion.
21:08
lue hello world o/ 21:09
masak lue! \o/ 21:10
sorear lue! :D
masak nqp uploaded. you can admire it here: rakudo.org/downloads/nqp/
anocelot lue! o/ 21:11
21:11 konundra left
masak popping back up to Rakudo release process. 21:11
sorear ok, I'm merging and smoking
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...
colomon comtemplates a sort of Tower of Hanoi upgrade process... 21:12
masak colomon: the good thing is that you can be sure it will only require 2**N-1 moves :) 21:13
dalek kudo/nom: cf89b50 | masak++ | tools/build/NQP_REVISION:
[release] bump NQP revision
kudo/nom: c37bc49 | masak++ | VERSION:
[release] bump VERSION
21:14 grondilu joined
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
./nqp --target=pir --output=src/stage2/gen/NQPP5QRegex.pir \ src/stage2/gen/NQPP5QRegex.nqp
make: *** [NQPP5QRegex.pbc] Segmentation fault 21:15
Command failed (status 512): make
Command failed (status 512): /usr/bin/perl Configure.pl --with-parrot=/media/disk27/lucien/rakudo/install/bin/parrot --make-install
masak grondilu: well hello to you too.
:)
flussence --parrot-option=--without-pcre
grondilu sorry if that was rude
masak exceedingly! :P
timotimo grondilu: delete all of everything
labster Well I never.
masak the nerve!
grondilu runs rm -rf nqp parrot 21:16
grondilu reruns perl Configure --gen-nqp --gen-parrot 21:17
dalek kudo/nom: 98a5e56 | sorear++ | src/vm/jvm/runtime/org/perl6/rakudo/ (2 files):
Use simpler (and threadsafer) reporting of binder errors
kudo/nom: 76f8db7 | sorear++ | src/vm/jvm/ (4 files):
Move Rakudo global state into a GlobalContext extension

Break circular deps in JVM makefile...
timotimo remove install/, too
jnthn Remember to kill your install dir too
oh noah...a flood!
masak you should also remove your install folder. 21:18
grondilu removes install/
21:18 dalek joined, ChanServ sets mode: +v dalek, colomon_ joined
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
grondilu flussence: too late, but I'll try to remember this for next time
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....
flussence jnthn: that nukes every subdir with a .git in it. I'd prefer a --recursive option...
jnthn flussence: oh, nice. There's my bit of git education for the day :)
21:20 colomon left, colomon_ is now known as colomon
masak jnthn: 'git clean' gets tricky, what with .gitignore and submodules and stuff. 21:22
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:23
(the fix fixed the problem, it didn't cause it. but I didn't have a new enough version) 21:24
21:24 rindolf left
masak spectestin' 21:25
timotimo likewise 21:28
21:28 benabik left
sorear jnthn: I'd like your opinion on rakudo:76f8db7 when you get a chance. 21:28
21:29 spider-mario left
jnthn sorear: It's just eliminating the various statics in Rakudo Ops.java? 21:30
sorear Yes
jnthn Looks reasonable to me. 21:31
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
since .exists is to become an internal method ?
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..."
timotimo Result: PASS - but maybe not with the exact version that comes in the tarball
masak when I try to run it outside of the harness, I can't even find advent2009-day23.rakudo, only the .t version.
sorear masak: I may have broken the fudger 21:34
RFC: change rakudo's impl name to rakudo.parrot
masak lizmat: but it is a change, regardless of whether it will change again soon.
lizmat: I did already exclude it from the announce.
lizmat ah, cool, must have looked at an old diff then :-)
timotimo sorear: sounds sensible to me, since it does prefix matching
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.
sorear timotimo: I added the prefix matching yesterday
lizmat Ah, I meant the changelog
masak lizmat: I think it belongs there. the changelog logs changes.
lizmat but if you want to keep it as it is a change, then keep it
jnthn sorear: What does that mean in reality?
lizmat ok
masak even changes that we think might... change :)
21:36 Rotwang joined
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
sorear: I guess I'm asking: what are you proposing changing?
21:36 FROGGS left
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
jnthn sorear: oh, I see
sorear: So the change is just to make Rakudo on Parrot pass rakudo.parrot to fudge instead of rakudo?
sorear yes 21:38
jnthn sorear: iiuc, that should be harmless?
sorear should be :D
jnthn OK, it makes sense to me.
labster mostly harmless anyway
lizmat I need my towel 21:39
masak sorear: +1
dalek kudo/nom: baa862c | sorear++ | t/harness:
support #?rakudo.parrot
timotimo Files=739, Tests=28112, 413 wallclock secs ( 5.04 usr 0.87 sys + 1211.60 cusr 85.00 csys = 1302.51 CPU)
that's a pretty quick spectest
sorear timotimo: jvm? 21:41
lizmat that's probably because --jobs=4 is now secretly added ?
note that the number of CPU seconds is roughly 3.5x the wallclock 21:42
timotimo lizmat: i added it nonsecretly 21:43
sorear: that's parrot
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 Rotwang left
dalek kudo/nom: 7c2e0b9 | sorear++ | src/core/terms.pm:
Fix a stupid variable reuse error
21:45
sorear jnthn: make test works right now on jvm
21:45 tomyan joined
sorear attempts a spectest 21:45
masak I should maybe ask people not to commit to nom during release engineering... 21:47
jnthn masak: BRANCH!!!
:P
masak ...but I find I don't really care that much.
that commit simply won't make it into the release, because I'm not re-running stresstest twice just for that :)
sorear opens the evalserver in jvisualvm for fun 21:48
dalek kudo/nom: 8dd1f32 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Ops.java:
Fix thinko in p6store.
21:49
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.
jnthn sorear: that's fine...I suspect with the evalserver they're cheaper to make... :)
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
sorear I love the sawtooth shape of the memory use graph 21:52
"the GC is doing its job"
jnthn hm, latest changes don't work on windows
jnthn looks into it
21:53 konundra joined, sunnavy joined
sorear I don't really expect them to 21:53
masak rakudo 2013.06 uploaded.
grondilu successfully compiled nqp and parrot. Thanks
masak you can admire it here. rakudo.org/downloads/rakudo/
sorear need a relacement for system("... &")
and a few other bits 21:54
jnthn sorear: Well, doesn't actually get through "make" even...
Testing a fix for that bit now
masak emails p6c
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
p6c email sent.
masak updates en.wikipedia.org/wiki/Rakudo
done. 21:59
flussence masak++ 22:00
masak standing down release mode.
masak celebrates with one of his favorite imperial stouts
jnthn masak++ # taste in beer, release
sorear Irrbloss? 22:01
masak: Might want to fix the first sentence... :D
whee, we're on S06
dalek kudo/nom: 4748680 | jnthn++ | tools/build/Makefile-JVM.in:
Fix "make" on Windows.
kudo/nom: 3acc5aa | masak++ | docs/release_guide.pod:
[docs/release_guide.pod] belatedly move #65 up

Somehow I didn't do this step during the release process itself. Oh, well.
22:02 vk left, dagurval joined
masak sorear: "Irrbloss" is the sv translation of en.wikipedia.org/wiki/Will-o%27-the-wisp from en.wikipedia.org/wiki/Never_ending_story 22:02
22:03 sjn joined
masak fixes the first sentence 22:03
dalek kudo/nom: 49f1113 | jnthn++ | t/harness:
Use correct slashes in t/harness.

Doesn't make it work, but gets to the next error.
22:04
sorear masak: so it is you then :D 22:05
22:05 xilo_ joined
sorear jnthn++ # being portable so I don't have to. Er. 22:05
jnthn sorear: Hmm.. 22:06
Exception in thread "main" java.lang.UnsupportedOperationException: 'posix:permi
ssions' not supported as initial attribute
Any guesses? :)
timotimo i broke it!
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...
sorear jnthn: I was afraid of that 22:07
jnthn: should modify the EvalServer.java to do something else appropriate
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:08
22:10 sunnavy left
sorear ideas for the eval server: 22:11
* time out after inactivity, so even if someone kills the harness the eval server won't stick around forever
* use a packetized reply format so that STDOUT, STDERR, and exit codes can be kept separate 22:12
advent!
22:13 sunnavy joined
timotimo sorear: you're 1/3rd of the way towards implementing an ipython notebook compatible kernel :) 22:13
sorear gist.github.com/sorear/5827219 22:16
22:16 xilo_ left
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
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...)
ooh, now there's an interesting idea: a REPL module with session save/restore 22:18
sorear flussence: i'd rather just write an applet frontend for rakudo at this point 22:19
dayjob focus& 22:20
flussence oh right, I forgot it *runs on java* now :D
22:23 FROGGS left
jnthn 350 test files have failures, out of 713 22:26
r: say 713 - 350 22:27
camelia rakudo 49f111: OUTPUT«363␤»
jnthn So more than half of the spectest files already run without failures.
sorear jnthn: are you analyzing my gist or one of your runs? 22:28
jnthn sorear: your gist
22:28 ajr_ left
jnthn sorear: It's possible things improved since then 22:29
sorear o_O "TODO passed"
22:30 benabik joined
sorear looks like if I put all the binaries in jar files it comes out to a bit under 5M 22:31
not that it will *run* from jars yet... but the added code for that isn't going to be huge
will be even smaller if/when I do NO_INDY and pack200 22:32
benabik What is it now?
sorear benabik: it = Rakudo
benabik: also, gist.github.com/sorear/5827219
:D :D
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
benabik sorear: Yay running tests! :) But I meant how big is it right now?
i.e. before putting things in JARs.
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
colomon: yes
colomon sorear++
\
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
colomon: yes
colomon would not be upset if it is not, mind you...
sorear colomon: running on four Java threads in the evalserver process
colomon \o/ 22:36
22:36 twigel left
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:36
colomon r: say 1695 / 4 22:37
camelia rakudo 49f111: OUTPUT«423.75␤»
colomon r: say 1695 / 60
camelia rakudo 49f111: OUTPUT«28.25␤»
sorear er, 1695 is already divided by 4
colomon 28 minutes, eh?
sorear: yes, major thinko there on my part.
:)
sorear the test run took 28 minutes
22:38 BenGoldberg joined, skids joined
sorear TEST_JOBS=4 make spectest on Parrot takes 869 seconds here, btw 22:38
benabik: gist.github.com/sorear/5827413 22:41
grondilu Compiling lib/Panda/Installer.pm 22:42
IO::Handle.copy is deprecated. Please use IO::Path.copy instead. in block at /usr/local/src/panda/lib/Panda/Builder.pm:76
sorear but, there still be room for optimizing code generation 22:43
timotimo re-runs configurejvm
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?
timotimo but there's more work to be done for it to be good
Dubious, test returned 2 (wstat 512, 0x200) - for every single file. what am i missing? 22:48
Can't open perl script "./eval-client.pl": No such file or directory - that could be what caused it %)
should nqp/tools/jvm/eval-client.pl be in rakudo/ ?
22:49 benabik left
timotimo Can't locate File/Slurp.pm in @INC - yeah, i'm getting somewhere 22:49
yes, that indeed fixed it. cool! 22:51
sorear timotimo: the harness is supposed to copy that into rakudo/
er, not the harness
timotimo the makefile i guess?
sorear tools/build/create-jvm-runner.pl
grondilu timotimo: consider making a merge request please 22:52
timotimo grondilu: it should be redone in a different way (Find::Result should be replaced by Path instead) 22:54
22:54 bluescreen10 left, btyler_ left
labster And there's already a pull request for File::Find that I wrote at YAPC:NA. 22:55
timotimo sounds good :) 22:56
labster We've been waiting on the new release, which should be out any minute now.
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:57
timotimo :D 22:58
so reduce.rakudo.jvm is basically just spamming the console with "ok"? 23:01
sorear
.oO( yes ok )
23:02
23:04 lawrmcfa left
timotimo should i try to home in on the test(s) that cause the infiniloop? 23:05
23:05 benabik joined
sorear timotimo: Here it's spamming the console with not ok, actually 23:05
Infinite repetition of: 23:06
not ok 195 - [^^] mix 1
# got: ''
# expected: '0'
timotimo ah
sorear digs 23:08
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
when i don't pass the @options or @fields in
masak labster: "waiting on the new release"? of what?
labster of what just happened. 23:10
timotimo ssutch: try PB::Model::Option :@options? and the other one instead
labster I got stuck on a phone call and am a little bit behind 23:11
dalek href="https://perl6.org:">perl6.org: 800e1df | (Brent Laabs)++ | source/ (2 files):
mention the JVM as a backend for Rakudo
ssutch timotimo: same thing =/
timotimo oh :(
lue r: sub foo(:@a?) { say @a }; foo(:a<1 2 3>); foo(); 23:13
camelia rakudo 49f111: OUTPUT«1 2 3␤␤»
lue r: sub foo(Str :@a?) { say @a }; foo(:a<1 2 3>); foo()
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␤␤»
ssutch r: sub foob(Array[Str] :@strings?) { say "strings: ", @strings.perl; }; say foob();
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 ^
timotimo it may very well be that that's broken at the moment :(
lue r: sub foo(Str :$a?) { say $a }; foo(:a<5>); foo();
camelia rakudo 49f111: OUTPUT«5␤(Str)␤»
ssutch r: sub foob(Str :@strings?) { say "strings: ", @strings.perl; }; say foob();
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␤␤»
lue It seems rakudo doesn't like optional named arrays having a type specified :/ 23:15
timotimo i'm getting the feeling that #?rakudo.jvm skip 'foo' doesn't actually work 23:16
ah, because i have to pass rakudo.jvm
ssutch n: sub foob(Str :@strings?) { say "strings: ", @strings.perl; }; say foob();
camelia niecza v24-79-gcb6f20b: OUTPUT«strings: [].list␤True␤»
ssutch n: sub foob(Array[Str] :@strings?) { say "strings: ", @strings.perl; }; say foob(); 23:17
camelia niecza v24-79-gcb6f20b: OUTPUT«strings: [].list␤True␤»
timotimo Unhandled exception: use of uninitialized value of type Int in string context
is my raduko-jvm out of date? wasn't there a commit to make warns not fatal on jvm?
23:17 BenGoldberg left
ssutch r: sub foob(:@strings?) { say "strings: ", @strings.perl; }; say foob(); 23:18
camelia rakudo 49f111: OUTPUT«strings: Array.new()␤True␤»
ssutch rakudobug 23:19
timotimo r: sub foob(:@strings?) { die unless all(@strings) ~~ Str; say "strings: ", @strings.perl; }; say foob();
camelia rakudo 49f111: OUTPUT«␤ in sub foob at /tmp/OhS3hOb_NF:1␤ in block at /tmp/OhS3hOb_NF:1␤␤»
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));
camelia rakudo 49f111: OUTPUT«␤ in sub foob at /tmp/swOZqX0q2i:1␤ in block at /tmp/swOZqX0q2i:1␤␤»
timotimo er, huh 23:20
23:20 dmol left
ssutch should there be tests for this? 23:21
sorear gist.github.com/sorear/5827643 23:22
ssutch n: sub foob(Array[Str] :@strings?) { say "strings: ", @strings.perl; }; say foob(:strings<a, b, c>);
camelia niecza v24-79-gcb6f20b: OUTPUT«strings: ("a,", "b,", "c")␤True␤»
timotimo ^^ is logical xor, right?
masak yes.
but in chained form it's more similar to one() 23:23
rn: say 1 ^^ 2 ^^ 3
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…
..rakudo 49f111: OUTPUT«Nil␤»
masak r: say 0 ^^ 2 ^^ ""
camelia rakudo 49f111: OUTPUT«2␤»
timotimo t/spec/S06-signature/code.rakudo.jvm ......................... Failed 3/8 subtests (1 TODO test unexpectedly succeeded) 23:27
23:28 dagurval left
timotimo ah, probably the todo succeeding, but the test after it to make sure that it behaved the way it should have failign. 23:28
23:29 sjn left
sorear I think I found it 23:30
23:30 tomyan left
sorear xor was using a nonunique label 23:30
timotimo oh, so it jumped somewhere nonsensical? 23:31
sorear yeah
one xor_true label
jumped into the middle of the previous xor... :D
timotimo m)
jnthn Which fool wrote that bit of code-gen... :)
Nice find :) 23:32
colomon sorear: no make spectest target yet? 23:34
or did I simply forget to run ConfigureJVM.pl ? 23:35
timotimo the latter
also, you *may* have to change ./t/fudgeandrun and run the script that creates the runner helper
colomon colomon--
sorear jnthn: I'm taking some time to add checks to jast2bc to detect label misuse
23:35 dagurval joined
timotimo tools/build/create-jvm-runner.pl 23:35
colomon sorear++
23:37 sjn joined
timotimo gist.github.com/timo/8a50eb8a3360e32c4cb4 <- my results 23:37
ssutch r: sub foob(:@strings?) { say "strings: ", @strings.perl; }; say foob(); 23:40
camelia rakudo 49f111: OUTPUT«strings: Array.new()␤True␤»
timotimo r: sub foob(:@strings?) { say "strings: ", @strings.perl; say @strings.defined; }; say foob();
camelia rakudo 49f111: OUTPUT«strings: Array.new()␤True␤True␤»
sorear timotimo: you made reduce run?
timotimo but why? :/
sorear: i made reduce skip 23:41
all the rakudo todos i copied into rakudo.jvm skips ;)
ssutch submitted to rakudobug 23:45
timotimo sorear: are you going to commit the jump label fix? 23:49
oh, you were told to spectest before every push to nom, right?
dalek p: 3f69cff | sorear++ | src/vm/jvm/QAST/JASTNodes.nqp:
Preserve some tree structure in the JAST document
23:50
p: 419102f | sorear++ | src/vm/jvm/ (2 files):
Fix label mixup in nqp::xor and check in jast2bc that labels are used right
sorear timotimo: I stopped doing that
timotimo oh, you made a bit of extra code that will cath any similar errors in the future automatically? :) 23:53
ssutch did i see something like $a."$fieldname" or something 23:54
to get at an attribute named $fieldname
timotimo r: my $attr = "codes"; "foo"."$attr".say;
camelia rakudo 49f111: OUTPUT«===SORRY!===␤Quoted method name requires parenthesized arguments. If you meant to concatenate two strings, use '~'.␤at /tmp/PIRrCDCpRH:1␤------> my $attr = "codes"; "foo"."$attr"⏏.say;␤»
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…
timotimo r: my $attr = "codes"; "foo".{$attr}.say;
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…
timotimo there's a way to do it.
r: my $attr = "codes"; "foo".$attr.say;
camelia rakudo 49f111: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Str'␤ in block at /tmp/WBKWezZUYN:1␤␤»
timotimo oooh
i should have read more closely.
r: my $attr = "codes"; "foo"."$attr"().say;
camelia rakudo 49f111: OUTPUT«3␤»
timotimo there you go.
sorear timotimo: yes, yes I did. :D
ssutch "$attr"() ok 23:56
sorear likes being in the rakudo release announcment
ssutch :)
timotimo me, too :3 23:57
one day i'll do more than just low hanging fruit
masak what, like low-hanging vegetables? :P
timotimo yeah, perhaps even low-hanging nuts
jnthn ... 23:58
jnthn is glad to see sorear++ in the release announce :)
masak is glad to see the release announce :)