»ö« 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>TruePB::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 testnot 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 testnot 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 testnot ok 2 - option array @variable sanity testnot ok 3 - option array .@attribute sanity testnot 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 TrueTrue» | ||
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 21 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 testok 2 - option array @variable sanity testnot 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 testok 2 - option array @variable sanity testnot 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 rowat /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«NilNilNil» | ||
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«123» | ||
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 declaredat /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.definedUnhandled 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«TrueFalse» | ||
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«TrueFalse» | ||
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 statementat /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: [].listTrue» | ||
ssutch | n: sub foob(Array[Str] :@strings?) { say "strings: ", @strings.perl; }; say foob(); | 23:17 | |
camelia | niecza v24-79-gcb6f20b: OUTPUT«strings: [].listTrue» | ||
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()TrueTrue» | ||
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 :) |