dalek | kudo/nom: 94df18c | (Zoffix Znet)++ | src/core/IO/Path.pm: Remove IO::Path.chdir on account of it being a footgun Per irclog.perlgeek.de/perl6-dev/2016-...i_13815088 |
00:56 | |
samcv | looks like it just does return ai < bi ? -1 : 1 | 00:59 | |
and checks graphemes | |||
dalek | kudo/nom: ea67ce9 | (Zoffix Znet)++ | tools/autounfudge.pl: Make script executable |
01:09 | |
[Coke] | ... I am surprised that wasn't already the case. huh. | 01:14 | |
notviki | how is it supposed to work? | 01:15 | |
tells me: Processing file 't/spec/S15-unicode-information/uniprop.t' | |||
File 't/spec/S15-unicode-information/uniprop.t' doesn't even pass in its current state | |||
[Coke] | I don't have a working dev env at the moment, but: it finds fudge directives in files, and tries to remove them one at a time, and see if removing it allows the test to still pass. | 01:16 | |
It was MUCH more useful tool when we had multiple backends and new features were being implemented on the regular. | 01:17 | ||
(but we had a ton of old tests lying around from pugs) | |||
I assume from your question that that file is passing? | |||
dalek | ast: 4c7f8f0 | (Zoffix Znet)++ | S15-unicode-information/uniname.t: Revert "Unfudge now passing tests" This reverts commit e8b9f7ea3c4170b3d1c8130ef9a97212a8b2d82c. As the PR that made these work was reverted in github.com/rakudo/rakudo/commit/d3...3865a037da |
01:18 | |
notviki | [Coke]: yes | ||
t/spec/S15-unicode-information/uniprop.rakudo.moar (Wstat: 0 Tests: 152 Failed: 0) | |||
TODO passed: 143, 146, 148-149 | |||
Files=1, Tests=152, 1 wallclock secs ( 0.05 usr 0.00 sys + 0.85 cusr 0.06 csys = 0.96 CPU) | |||
Result: PASS | |||
zoffix@VirtualBox:~/CPANPRC/Standard-Rakudo$ /usr/bin/perl tools/autounfudge.pl --moar --unskip --untodo t/spec/S15-unicode-information/uniprop.t | |||
Processing file 't/spec/S15-unicode-information/uniprop.t' | |||
File 't/spec/S15-unicode-information/uniprop.t' doesn't even pass in its current state | |||
[Coke] | perhaps the TODO passed is not "clean" for that one. | 01:19 | |
s/one/utility/ | |||
dalek | ast: b4859f9 | (Zoffix Znet)++ | S15-unicode-information/uniprop.t: Unfude now-passing TODOs |
01:22 | |
notviki did it by hand | |||
.tell nine 6.c-errata t/spec/S10-packages/precompilation.t also seems to fail one test: the not ok 22 - Twisty maze of dependencies, all different | 01:25 | ||
yoleaux2 | notviki: I'll pass your message to nine. | ||
[Coke] realizes how dumb his statement was. | 01:31 | ||
I mean, it *could* be that broken, but that'd be crazy. | 01:32 | ||
dalek | ast: d88c444 | (Zoffix Znet)++ | S32-str/lines.t: Remove trailing whitespace |
02:00 | |
notviki | Files=1159, Tests=54449, 314 wallclock secs ( 8.11 usr 2.02 sys + 1012.81 cusr 128.65 csys = 1151.59 CPU) | 02:06 | |
Pie seconds! | |||
And all tests pass | |||
notviki feels happy | |||
TimToady | m: my @a = 1,2,3; ++«@a; say @a | 02:10 | |
camelia | rakudo-moar ea67ce: OUTPUT«[2 3 4]» | ||
notviki | m: my @a = 1,2,3; @a»++; say @a | 02:27 | |
camelia | rakudo-moar ea67ce: OUTPUT«[2 3 4]» | ||
notviki | m: my @a = 1,2,3; say @a»++; say @a | 02:28 | |
camelia | rakudo-moar ea67ce: OUTPUT«[1 2 3][2 3 4]» | ||
dalek | rakudo/nom: 19df358 | (Zoffix Znet)++ | src/core/ (4 files): | 02:43 | |
rakudo/nom: Quintuple .lines() bug squash; AlexDaniel++ for discovery | 02:46 | ||
rakudo/nom: | |||
rakudo/nom: 1) Fix $*ARGFILES.lines going up to $limit, even if we reached end of data | |||
rakudo/nom: 2) Fix Str.lines going up to $limit, even if we reached end of data | |||
rakudo/nom: 3) Fix IO::Handle.lines going up to $limit, even if we reached end of data | |||
rakudo/nom: 4) Fix IO::Handle.lines($limit) not forwarding :$close to its other multi | |||
rakudo/nom: 5) Fix IO::Path.lines missing candidate that can handle $limit | |||
rakudo/nom: 6) ??? | |||
rakudo/nom: 7) Profit! | |||
rakudo/nom: | |||
rakudo/nom: Fixes RT#130430: rt.perl.org/Ticket/Display.html?id=130430 | |||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130430 | ||
notviki | (•_•) ( •_•)>⌐■-■ (⌐■_■) | ||
github.com/rakudo/rakudo/commit/19...0f9ca4b793 | |||
dalek | ast: 0f53a2d | (Zoffix Znet)++ | S (3 files): Test .lines($limit) RT#130430: rt.perl.org/Ticket/Display.html?id=130430 Rakudo fix: github.com/rakudo/rakudo/commit/19...e68269f719 |
||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130430 | ||
samcv | well i'm going to start working on that sorting bug notviki | ||
if i can. well since regenerating the database messes things up. will see if i can add a collation order property and not have it mess up. though maybe could just script rebuilding it and then testing… | |||
and eventually it will pass? | |||
as long as it doesn't sort keys | |||
AlexDaniel | night | 02:52 | |
MasterDuke | notviki++, AlexDaniel++ | 02:55 | |
hey, at least i made $*ARGFILES.lines consistent! | 02:56 | ||
AlexDaniel | xDDD | 02:57 | |
by the way, feel free to reject some of my latest tickets if you have a good reason (but please write tests anyway) | 03:27 | ||
I'm going through a lot of stuff right now so chances are some of my tickets will be stupid | |||
geekosaur vaguely recalls the array one being a bug fix a couple months back? | 03:29 | ||
(where it was leaking Mu-s) | 03:30 | ||
samcv | woo! if this actually returns the right value, i added collation order property | 03:31 | |
since there's no, register integer properties, i just used the binary one and set a higher bit width. so maybe will work | 03:32 | ||
AlexDaniel | MasterDuke: if you're here… perhaps you can also comment on this? | 04:00 | |
commit: 2015.12,HEAD say lines.elems; say lines[0] | |||
committable6 | AlexDaniel, ¦«2015.12»: 10Nil¦«HEAD»: 10No such method 'pull-one' for invocant of type 'Any' in block <unit> at /tmp/jI7GCjpjRx line 1 «exit code = 1» | ||
AlexDaniel | MasterDuke: this changed after your commit also | 04:01 | |
I'm not sure which behavior makes more sense. Maybe you have some idea? | |||
alright… and with about ⅙ done, now I have to get some sleep | 04:09 | ||
MasterDuke | AlexDaniel: hmm, i'll take a look | 04:10 | |
samcv | m: say "a" cmp "a\x[308]"; | 08:26 | |
camelia | rakudo-moar 19df35: OUTPUT«Less» | ||
samcv | j: say "a" cmp "a\x[308]"; | ||
camelia | rakudo-jvm 8ca367: OUTPUT«Less» | ||
samcv | j: say "b" cmp "a\x[308]"; | ||
camelia | rakudo-jvm 8ca367: OUTPUT«More» | ||
samcv | m: say "b" cmp "a\x[308]"; | ||
camelia | rakudo-moar 19df35: OUTPUT«Less» | ||
samcv | m: say "û" cmp "w" | 08:27 | |
camelia | rakudo-moar 19df35: OUTPUT«More» | ||
samcv | j: say "û" cmp "w" | ||
camelia | rakudo-jvm 8ca367: OUTPUT«More» | ||
samcv | j: say "û" cmp "z" | ||
camelia | rakudo-jvm 8ca367: OUTPUT«More» | ||
[Tux] | This is Rakudo version 2016.12-131-g19df3584e built on MoarVM version 2016.12-23-g3c5253c6 | 08:56 | |
csv-ip5xs 3.271 | |||
test 14.068 | |||
test-t 5.282 | |||
csv-parser 14.375 | |||
lizmat | :-) | ||
nine | :/ this means that I have to speed up csv-ip5xs by 0.6 seconds to stay at 50 % of test-t's runtime. Where on earth should I find those? | 09:46 | |
yoleaux2 | 28 Dec 2016 02:04Z <notviki> nine: 6.c-errata version of t/spec/S11-modules/nested.t now fails on HEAD. with "No appropriate parametric role variant available for RoleB". What do we do? | ||
01:25Z <notviki> nine: 6.c-errata t/spec/S10-packages/precompilation.t also seems to fail one test: the not ok 22 - Twisty maze of dependencies, all different | |||
nine | .tell notviki they ah, probably need to port fixes from master to 6.c-errata | ||
yoleaux2 | nine: I'll pass your message to notviki. | ||
[Tux] would still be very interested to see the results of NativeCall with libcsv3 (which I did not manage to get working) | 09:53 | ||
notviki | :( | 11:07 | |
yoleaux2 | 09:46Z <nine> notviki: they ah, probably need to port fixes from master to 6.c-errata | ||
notviki sees a problem with github.com/rakudo/rakudo/blob/nom/...o-branches | 11:55 | ||
Say the bot is building commit A, while I commit commit B and another user commits commit C, with bug fixes to nom, along with tests for them into roast. Bot goes in to build commit B, fetches roast to test stuff, but since roast now also has a test for commit C, testing of commit B fails and the bot no longer proceeds. | 11:57 | ||
Or another (and more "made up") scenario: user A breaks the build; the bot that updates the stable branch now sits and waits for a fix, while user A isn't that much in a hurry 'cause we got a stable branch and all that | 11:58 | ||
Feels like the multi-branch stuff creates more trouble and I see little benefit from it, since regulars will likely see right away which commit broke something. | 12:00 | ||
Seems like we should just stick with the same single-branch approach we currently do, except run a full stresstest + module testing, say nightly. | |||
notviki relocates | |||
damn heavy snow fall :/ | 12:05 | ||
I wonder if anyone would notice if I don't show up to work today :o | |||
samcv | oh i think i know why it was failing | 12:10 | |
when we have a negative value it fails as out of bounds | 12:11 | ||
and we need to compare based on that pseudocodepoint | |||
\o/ nqp is compiling | 12:12 | ||
notviki | fuck it... #YOLO | ||
samcv | uh is there a way i can generate a new nqp from the stages? | 12:15 | |
cause that's where it's failnig but my own nqp and rakudo work fine | |||
not sure wtf is going on | |||
ok actually was able to run nqp spectests | 12:19 | ||
got some failing | |||
at least can debug now | |||
looks like jnthn thinks it should be its own op. will do that | 12:21 | ||
he knows better than I | |||
notviki | .tell [Coke] I see you rejected RT#124818 but there are fudges for it in t/spec/S32-num/int.t; Those should be removed, right? | 12:47 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124818 | ||
yoleaux2 | notviki: I'll pass your message to [Coke]. | ||
notviki | My nqp-foo isn't strong enough for RT#130431 | 13:09 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130431 | ||
notviki | Can't figure out how to get the cake and eat it too, I can either make it create a new self.WHAT object OR handle huge values like 2⁶⁴ correctly | ||
Other than doing something stupid, like coercing it to Str and then using nqp::fromstr_I | |||
dalek | ast: 99f7d69 | (Zoffix Znet)++ | S32-num/rat.t: Test Rat.Range excludes endpoints RT#130427: rt.perl.org/Ticket/Display.html?id...et-history Rakudo fix: github.com/rakudo/rakudo/commit/34...214198a700 |
13:27 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130427 | ||
samcv | added an op to nqp <samcv> Unhandled exception: Bytecode validation error at offset 20, instruction 4: | 13:33 | |
anybody know the magic i need to use to fix this | |||
is it caused by precomp or stage 0? | |||
nine | samcv: did you add your op at the end of oplist but before the spesh ops? | 13:47 | |
samcv | yeah i just did it now | 13:48 | |
nine | samcv: rakudo adds its own ops. After adding ops to moarvm you need to clean and recompile rakudo | ||
samcv | need to add to QAST? | ||
oh | 13:49 | ||
just interp.c | |||
does the order in interp.c matter? | 13:50 | ||
wooo it's compiling | 13:51 | ||
:)) | 13:52 | ||
lizmat | whee! :-) | ||
samcv | now building rakudo | 13:53 | |
dammit Arg count 2 doesn't equal required operand count 5 for op 'unicmp_s' | 13:56 | ||
the others aren't required tho | |||
NYI currently anyway | |||
hm | 13:58 | ||
[Coke] | notviki: you added the tests six months after I rejected the ticket, yes, they shouldn't have gone in. | 14:22 | |
yoleaux2 | 12:47Z <notviki> [Coke]: I see you rejected RT#124818 but there are fudges for it in t/spec/S32-num/int.t; Those should be removed, right? | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124818 | ||
MasterDuke | m: use nqp; my int $a = 2; if nqp::isint($a) { say($a) } | ||
camelia | ( no output ) | ||
MasterDuke | nqp: my int $a = 2; if nqp::isint($a) { say($a) } | 14:23 | |
camelia | nqp-moarvm: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 2, near " 2; if nqp" at gen/moar/stage2/NQPHLL.nqp:765 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/NQPHLL.moarvm:panic) from <unknown>:1 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/nqp.moa…» | ||
MasterDuke | nqp: my int $a := 2; if nqp::isint($a) { say($a) } | ||
camelia | nqp-moarvm: OUTPUT«2» | ||
[Coke] | So there's a Perl 6 book which now, which claims to support version 6.0.0 of the spec. | ||
Hopefully that's just on the landing page and not in the book proper. | |||
MasterDuke | j: use nqp; my int $a = 2; if nqp::isint($a) { say($a) } | 14:24 | |
camelia | ( no output ) | ||
MasterDuke | what am i missing about nqp::isint()? | 14:25 | |
[Coke] | you're running it moar in nqp, and java in rakudo? | 14:26 | |
geekosaur | nqp-j: my int $a := 2; if nqp::isint($a) { say($a) } | 14:27 | |
hm, no such? | |||
oh | 14:28 | ||
nqp-jvm: my int $a := 2; if nqp::isint($a) { say($a) } | |||
camelia | nqp-jvm: OUTPUT«[thread 139808105064192 also had an error]## There is insufficient memory for the Java Runtime Environment to continue.# pthread_getattr_np# An error report file with more information is saved as:# /home/camelia/hs_err_pid30222.log[thread 1398081029…» | ||
geekosaur | bleh | ||
(nqp-j could be nqp-jvm or nqp-js, apparently) | |||
notviki | [Coke]: no I didn't. moritz did in 2009 | ||
MasterDuke | [Coke]: not sure what you mean. i tried both rakudo-[moar,jvm] and nqp-moar | 14:29 | |
j: use nqp; my num $a = 2e0; if nqp::isnum($a) { say($a) } | 14:30 | ||
camelia | ( no output ) | ||
MasterDuke | m: use nqp; my num $a = 2e0; if nqp::isnum($a) { say($a) } | ||
camelia | ( no output ) | ||
MasterDuke | p6: use nqp; my Mu $a = 2; if nqp::isint($a) { say("int $a") }; if nqp::isnum($a) { say("num $a") }; | 14:33 | |
camelia | ( no output ) | ||
MasterDuke | j: use nqp; my Mu $a = 2; if nqp::isint($a) { say("int $a") }; if nqp::isnum($a) { say("num $a") }; | ||
camelia | ( no output ) | ||
[Coke] | notviki: ah. I didn't click through to the commit, just basing that on your comment, obv. Apologies. | 14:34 | |
MasterDuke | so not sure how these lines would work: github.com/rakudo/rakudo/blob/nom/...pm#L58-L62 | ||
bisect: use nqp; my int $a = 2; if nqp::isint($a) { say($a) } | 14:36 | ||
bisectable6 | MasterDuke, On both starting points (old=2015.12 new=19df358) the exit code is 0 and the output is identical as well | ||
MasterDuke, Output on both points: | |||
samcv | payload: don't change grammar in the setting, please! | 14:37 | |
MasterDuke | commit: all use nqp; my int $a = 2; if nqp::isint($a) { say($a) } | ||
samcv | sorry rakudo :( | ||
committable6 | MasterDuke, gist.github.com/fb1c1c1153e8c705e8...6c0e80f336 | ||
samcv | how do i fix :( | 14:38 | |
MasterDuke | m: use nqp; if nqp::isint(2) { say('int!') } | 14:40 | |
camelia | ( no output ) | ||
[Coke] | nqp: my $a := 3; nqp::say($a); nqp::say(nqp::isint($a)); | 14:42 | |
camelia | nqp-moarvm: OUTPUT«31» | ||
MasterDuke | nqp: my $a := 2; if nqp::isint($a) { say($a) } | 14:43 | |
camelia | nqp-moarvm: OUTPUT«2» | ||
MasterDuke | nqp: my int $a := 2; if nqp::isint($a) { say($a) } | ||
camelia | nqp-moarvm: OUTPUT«2» | ||
MasterDuke | !!! | ||
[Coke] | nqp types ain't necessarily p6 types. | ||
what are you trying to do here? why not use ~~ Int ? | 14:44 | ||
samcv | [Coke], know why i get that | ||
<samcv> payload: don't change grammar in the setting, please! | |||
MasterDuke | [Coke]: i want something faster than a smartmatch | ||
[Coke] | samcv: why you get what? | ||
samcv | ^^ | ||
[Coke] | MasterDuke: are you trying to speed up something in core? | 14:45 | |
samcv: what's the context? what are you doing? where are you getting it? is it an IRC response? it looks like it's coming from you. | |||
samcv | adding a thingy | ||
no compiling | |||
rakudo | |||
[Coke] | ... that isn't context. | ||
samcv | added an infix sub | ||
to Str.pm | 14:46 | ||
[Coke] | Oh. you have a local patch to rakudo that causes it not to compile? | ||
show the patch. | |||
samcv | k | ||
gist.github.com/samcv/76e8377e88f5...r-pm-L2750 | 14:47 | ||
250-254 | |||
not sure if i want this name but wanted to test and 'compare' if you will | 14:48 | ||
[Coke] | ... that's not a patch. :| | ||
samcv | yes | ||
it's 4 lines though | |||
i can actualy make an actual patch tho :P | |||
[Coke] | ... what's 2750? | ||
dalek | ast: b4da789 | (Zoffix Znet)++ | S32-num/int.t: Toss fudge for rejected ticket |
14:49 | |
samcv | i linked to the line | ||
[Coke] | (which is highlighted in the original URL? anything?) | ||
"the line" which line? | |||
the one causing the error? | |||
er, s/causing the/reported by/ ? | |||
samcv | Stage parse : Error while compiling, type X::Comp::AdHoc | ||
payload: don't change grammar in the setting, please! | |||
at line 16358, near "(|) { * }\n" | |||
2750 the line i linked is what it errors on | 14:50 | ||
[Coke] | lines 250 to 254 are ) ) ) } | ||
geekosaur | the link points to line 2750 of the file, which is the added line which leads to the error | ||
[Coke] | So, I am super confused about what you're talking about. | ||
geekosaur | evidently | ||
samcv | uh | ||
2750 | |||
2_750 | |||
[Coke] | clarity definitely helps in bug reporting. :| | ||
samcv | sorry. i am tired :\ | 14:51 | |
need to pass out shortly | |||
gist.github.com/bc500628a39aa16844...07e2e6806b | 14:52 | ||
diff | |||
[Coke] | samcv: note that there are no other proto sub infix:<>s in that file. | 14:54 | |
MasterDuke | [Coke]: yeah, Cursor.MATCH | ||
[Coke] | (all the other protos are not operators.) | ||
samcv | ah ok thanks [Coke] | ||
:D | 14:55 | ||
[Coke] | I would remove the proto and see if that fixes it. :) | ||
gotta run. good luck. | |||
samcv | m: say 'i' cmp 'ı' | 14:58 | |
camelia | rakudo-moar 19df35: OUTPUT«Less» | ||
samcv | m: say 'u' cmp 'ū' | 14:59 | |
camelia | rakudo-moar 19df35: OUTPUT«Less» | ||
samcv | m: say 'ₐ' cmp 'a' | 15:01 | |
camelia | rakudo-moar 19df35: OUTPUT«More» | ||
samcv | m: say 'ₐ' cmp 'z' | ||
camelia | rakudo-moar 19df35: OUTPUT«More» | ||
samcv | cool :) working | ||
time to make spectest | |||
j: say 'ₐ' cmp 'z' | 15:03 | ||
camelia | rakudo-jvm 8ca367: OUTPUT«More» | ||
samcv | the jvm seems inconsistant with how it compares them | 15:04 | |
unless it's just the random times when MVM is comparing an internal negative integer hm | 15:05 | ||
well, will know more after spectest | |||
samcv gets confused | 15:09 | ||
# expected: anything except '"Bag|Str|a(1) Str|b(1) Str|c(1)"' | |||
# got: '"Bag|Str|a(1) Str|b(1) Str|c(1)"' | |||
oh | 15:10 | ||
misread that. it is late | |||
hm | |||
faulty WHICH creation | |||
interesting | 15:11 | ||
# Failed test 'Method .Bag works on List-2' | |||
# at t/spec/S02-types/bag.t line 413 | |||
# expected: 'Now:1 Paradise:1 a:1 b:2 cross-handed:1 set:1 the:2 was:1 way:1' | |||
# got: 'a:1 b:2 cross-handed:1 Now:1 Paradise:1 set:1 the:2 was:1 way:1' | |||
bad test | 15:12 | ||
is showkv(@a.Bag), "Now:1 Paradise:1 cross-handed:1 set:1 the:2 was:1 way:1", "Method .Bag works on Array-2"; | |||
since the order isn't guaranteed for that right | 15:13 | ||
m: my @a = <Now the cross-handed set was the Paradise way>; showkv(@a.Bag).say | 15:14 | ||
camelia | rakudo-moar 19df35: OUTPUT«===SORRY!=== Error while compiling <tmp>Undeclared routine: showkv used at line 1» | ||
samcv | oh i see | 15:15 | |
they just wrote a showkv function or whatever | |||
and test the result as a string. lame | |||
i like the sorting of the second one better | 15:16 | ||
it's actually alphabetic | |||
m: say <z z A c d e f>.sort | 15:18 | ||
camelia | rakudo-moar 19df35: OUTPUT«(A c d e f z z)» | ||
samcv | m: say <z Z a c d e f>.sort | ||
camelia | rakudo-moar 19df35: OUTPUT«(Z a c d e f z)» | ||
samcv | yeah i don't like that | ||
if we wanted to actually do it by codepoint may make more sense to do <=>. atm that only works on numbers | 15:21 | ||
here is the Spectest btw gist.github.com/b480f2bf2f099c5471...559903e874 | 15:41 | ||
suprised it failed only a few which from what i have seen mostly test unordered datatypes against a stringified version | |||
notviki | the lines, argfiles and combination failures are 'cause you don't have the latest and gratest rakudo | 15:44 | |
samcv | ah k | 15:45 | |
so we are basically not faliing anything testing cmp specifically | |||
gonna go through some other more files | |||
notviki | and t/spec/S32-num/rat.rakudo.moar too most likely due to too-old rakudo | ||
samcv | kk | 15:46 | |
dalek | ast: 39a7433 | samcv++ | S02-types/bag.t: change bag.t to not rely on sorting of Upper vs Lower chars We had a sub inside the test file to get the keys and the values of the Bag and then test a stringified version. Change the uppercase letters to lowercase. |
15:47 | |
samcv | this change passes on both the cmp change and without | ||
what about t/spec/S32-list/combinations.t .................................... Dubious, test returned 3 | 15:49 | ||
notviki | "notviki │ the lines, argfiles and combination failures".... | ||
samcv | i think i need some caffeine | 15:52 | |
notviki | !\ | ||
Good idea! | |||
nine | mmmh caffeine | ||
samcv | uhm i'm failing a 2010 advent test... | 15:53 | |
sort by word length, then default the test says | 15:54 | ||
notviki | samcv: but the 6.c spec will still fail? | 15:55 | |
The bag.t I mean | |||
samcv | oh | ||
let me check | |||
how do i best test 6.c spec | |||
notviki | checkout 6.c-errata in the roast repo | ||
samcv | yes | 15:56 | |
how to fudge all? | |||
notviki doesn't understand the question | |||
samcv | so i have it checked out. how do i run it locally | ||
instead of having it pull the repo itself | 15:57 | ||
i have 6.c-errata checked out in ../roast | |||
notviki | make spectest | ||
samcv | uhm | ||
notviki | check it out in t/spec | ||
samcv | ok | ||
notviki | and run make spectest | ||
or make stresstest | |||
samcv | thanks :) | 15:58 | |
notviki | samcv: you do know about TEST_JOBS thing right? | ||
samcv goes and gets coffee | |||
nope :) | |||
ENV var? | |||
dogbert2 | lizmat: are you around? | ||
notviki | samcv: it tells `make spectest`/`make stresstest` how many jobs to run simultaneously. The sweetspot IME is (numberofcores * 1.3).Int | 15:59 | |
makes it run much faster. | |||
samcv | cores or threads? | ||
notviki | cores on your processor | 16:00 | |
samcv has 4 threads ond 2 cores | |||
k | |||
notviki | threads I guess then | ||
samcv | hm | ||
notviki | Try different values, see what makes it faster | ||
samcv | what do you get for `nproc` in terminal? | ||
notviki | 24 | 16:01 | |
and TEST_JOBS=30 | 16:02 | ||
samcv | nice | ||
i wish i had that many cores :\ | 16:03 | ||
this is way faster. great | |||
samcv goes and gets some caffeine | 16:04 | ||
notviki | mproc=4/TESTS_JOBS=7 on my home box | 16:05 | |
samcv | awesomely none of the unicode stuff was failing | 16:06 | |
remember before when i added properties and things it screwed it all up :) | |||
and the script to generate the database now has a sub to generate int properties | |||
i think that may be what made it work fine. because the enum code is buggy | |||
notviki, passed a bench of todo's | 16:20 | ||
uhm. looks like some may not have run | |||
hmm ok | 16:21 | ||
notviki | that likely means they crashed while parsing | ||
samcv | mostly alright i think but i am going to look at each one | ||
notviki | failed to compile I mean | ||
samcv | Parse errors: No plan found in TAP output | 16:22 | |
notviki | yup | ||
plan is printed at the start of runtime, so if it fails to compile no plan is printed | |||
$ type 6p | |||
6p is aliased to `prove -e './perl6' -vlr ' | |||
I just run 6p t/spec/file.t (or file.rak[TAB]) on those | 16:23 | ||
To get detailed info | |||
I think there's another way to do that simpler with t/fudgeandrun or something | |||
samcv | hmm | 16:24 | |
# Failed test 'Twisty maze of dependencies, all different' | |||
# at t/spec/S10-packages/precompilation.rakudo.moar line 60 | |||
# expected: $["C", "D", "E", "F", "H", "K", "N", "P", "R", "S"] | |||
# got: $["C", "F", "K", "P"] | |||
use Example2::T; | 16:25 | ||
use Example2::G; | |||
use Example2::F; | |||
use Example2::A; | |||
use Example2::U; | |||
does that pass for you? | |||
t/spec/S10-packages/basic.rakudo.moar .. | 16:28 | ||
===SORRY!=== Error while compiling /home/samantha/git/rakudo/t/spec/S10-packages/basic.rakudo.moar | |||
Undeclared name: | |||
Foo used at line 257 | |||
are these related to the changes with modules and scope? | |||
or is something weird happening | |||
notviki | samcv: oh, right forgot about those. The Twisty mase is fine | 16:30 | |
samcv | kk | ||
notviki | and t/spec/S10-packages/basic.r... ummm | ||
notviki checks | |||
samcv | fine? as in | ||
fine that it failed or the test is fine | |||
notviki | Well, it sucks that it failed, but it's not due to your changes | 16:31 | |
notviki waits for compile to be done to test t/spec/S10-packages/basic.t | |||
t/spec/S11-modules/nested.t is also "fine" | |||
damn, how did we accumulate so many 6.c-errata failures -_- | 16:32 | ||
May as well merge abstract's set PR | |||
I didn't want to merge because we'd have to.... basically improve... a test file and hide a bug | 16:33 | ||
But if all this stuff is failing, who am I kidding :/ | |||
samcv | i need more caffeine. my drink is out. | 16:34 | |
AlexDaniel | this is roughly 1/6 of the tickets I'm about to submit. If anybody has any objections to what I'm doing, please speak up now :) | ||
samcv | which one | ||
the module one? | |||
AlexDaniel | I mean this: rt.perl.org/ | 16:35 | |
notviki | oh god... .splice :o | ||
AlexDaniel | notviki: yea… I know :| | ||
notviki | m: [].^lookup('splice').candidates.elems.say | ||
camelia | rakudo-moar 19df35: OUTPUT«31» | ||
samcv | notviki, that's the only test i failed | ||
well | |||
AlexDaniel | notviki: well, it conveniently prints all candidates when you pass a range! | ||
samcv | precompilation and nested.t | ||
all the others are fine and i passed a ton of todo's | 16:36 | ||
notviki | samcv: yeah, t/spec/S11-modules/nested.t fails for me too :( | ||
samcv | ton = 18 | ||
dunno if we were passing those before | |||
notviki is having an existential crisis | 16:37 | ||
samcv | does precomp fail? | ||
well sometimes tests are written badly :P | |||
and sometimes. idk | |||
it's ok to freak out | |||
notviki | AlexDaniel finding a ton of tickets, 6.c-errata has failures for the first time since I came in, I've seen the horrors of our IO stuff.... | ||
notviki weeps | |||
samcv: they likely fail due to new module loading system | 16:38 | ||
AlexDaniel | come on, it's not so bad! Look at our performance graph! | ||
notviki: performance | |||
oops | |||
buggable: performance | |||
buggable | AlexDaniel, ▅▅▆▅▅▆▆▄▅▅▅▄▅▅▅▅▅█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▃▃▃▂▂▂▂▂▂▂▁▁▁▁▂▁ data for 2016-12-07–2016-12-29; variance: 5.137s–7.592s | ||
AlexDaniel | look! | ||
samcv | ^ | ||
and we will have proper sorting soon! | |||
AlexDaniel | proper sorting? | 16:39 | |
samcv | yeah | ||
m: say <a Z y b c d R>.sort | |||
camelia | rakudo-moar 19df35: OUTPUT«(R Z a b c d y)» | ||
samcv | not alphabetical | ||
and totally gets screwed with diacritics | |||
nine will have a look at those failing 6.c-errata tests when he's home | |||
samcv | i already have it implemented for moarvm and nqp op | ||
notviki | AlexDaniel: it's still order(s) of magnitude worse than our competitors, so you're not cheering me up there. | 16:40 | |
samcv | just have to make sure we can pass all the tests. looks like 6.c is fine | ||
and the ones in master we're failing are mostly due to poor writen tests | |||
like sorting a hash and then testing the stringified value | |||
notviki | samcv: I don't get how it's passing, considering 6.c-errata has the same test you had to tweak in master: github.com/perl6/roast/blob/6.c-er...#L406-L413 | 16:42 | |
samcv | oh it does | 16:43 | |
yes, sorry was still going through the errors hadn't gotten to the bottom | |||
or wherever | |||
notviki | AlexDaniel: hahaha | 16:47 | |
AlexDaniel: "the amount of candidates printed is insane" | |||
AlexDaniel: the fix for Cool would probably need like 9 more candidates or something | |||
AlexDaniel | shit xDDD | ||
notviki | m: say <Whatever Int Cool Callable>.combinations(2)*2+1 | 16:48 | |
camelia | rakudo-moar 19df35: OUTPUT«13» | ||
AlexDaniel | notviki: how did it work previously? | ||
notviki | hmmm | ||
m: say <Whatever Int Cool Callable>.combinations(2) | |||
camelia | rakudo-moar 19df35: OUTPUT«((Whatever Int) (Whatever Cool) (Whatever Callable) (Int Cool) (Int Callable) (Cool Callable))» | ||
samcv | can i do | ||
notviki | oh | ||
m: say ([X] <Whatever Int Cool Callable>)*2+1 | 16:49 | ||
camelia | rakudo-moar 19df35: OUTPUT«3» | ||
notviki | -_- | ||
m: say [X] <Whatever Int Cool Callable> | |||
camelia | rakudo-moar 19df35: OUTPUT«((Whatever Int Cool Callable))» | ||
samcv | m: use Test; is <a b a>.Bag, a=>2, b=>1 | ||
camelia | rakudo-moar 19df35: OUTPUT«Cannot resolve caller is(Bag, :a(Int), :b(Int)); none of these signatures match: (Mu $got, Mu:U $expected, $desc = "") (Mu $got, Mu:D $expected, $desc = "") in block <unit> at <tmp> line 1» | ||
notviki | m: say [X] <Whatever Int Cool Callable> xx 2 | ||
camelia | rakudo-moar 19df35: OUTPUT«((Whatever Whatever) (Whatever Int) (Whatever Cool) (Whatever Callable) (Int Whatever) (Int Int) (Int Cool) (Int Callable) (Cool Whatever) (Cool Int) (Cool Cool) (Cool Callable) (Callable Whatever) (Callable Int) (Callable Cool) (Callable Callable))» | ||
notviki | m: say ([X] <Whatever Int Cool Callable> xx 2)*2+1 | ||
camelia | rakudo-moar 19df35: OUTPUT«33» | ||
notviki | m: [].^lookup('splice').candidates.elems.say | ||
camelia | rakudo-moar 19df35: OUTPUT«31» | ||
samcv | m: use Test; is <a b a>.Bag, :a(2), :b(1) | ||
camelia | rakudo-moar 19df35: OUTPUT«Cannot resolve caller is(Bag, :a(Int), :b(Int)); none of these signatures match: (Mu $got, Mu:U $expected, $desc = "") (Mu $got, Mu:D $expected, $desc = "") in block <unit> at <tmp> line 1» | ||
samcv | oh duh | 16:50 | |
m: use Test; is <a b a>.Bag.Hash, (:a(2), :b(1)) | |||
camelia | rakudo-moar 19df35: OUTPUT«not ok 1 - # Failed test at <tmp> line 1# expected: $(:a(2), :b(1))# got: (my Any %{Any} = :a(2), :b(1))» | ||
notviki | m: my @vars = <Whatever Int Callable>; say ([X] @vars)*3 + 1 | 16:51 | |
camelia | rakudo-moar 19df35: OUTPUT«4» | ||
notviki | m: my @vars = <Whatever Int Callable>; say ([X] @vars xx 2)*3 + 1 | 16:52 | |
camelia | rakudo-moar 19df35: OUTPUT«28» | ||
notviki | m: my @vars = <Whatever Int Callable>; say ([X] @vars xx 2)*3 + 1 + @vars | ||
camelia | rakudo-moar 19df35: OUTPUT«31» | ||
notviki | there | ||
m: my @vars = <Whatever Int Cool Callable>; say ([X] @vars xx 2)*3 + 1 + @vars | |||
camelia | rakudo-moar 19df35: OUTPUT«53» | ||
notviki | m: say 53 - 31 | ||
camelia | rakudo-moar 19df35: OUTPUT«22» | ||
notviki | AlexDaniel: 22 new candidates :) | ||
How it worked in the past? Slow. | |||
AlexDaniel | cool, bring them on! XD | ||
notviki | heh | ||
AlexDaniel | 53 is not much worse than 31 :D | 16:53 | |
samcv | m: is (a => 100000).BagHash), :a(100000), "(a => 100000).BagHash is bag a:100000"; | ||
camelia | rakudo-moar 19df35: OUTPUT«===SORRY!=== Error while compiling <tmp>Unexpected closing bracketat <tmp>:1------> is (a => 100000).BagHash⏏), :a(100000), "(a => 100000).BagHash is» | ||
AlexDaniel | perhaps I can add the number of splice candidates to statisfiable | ||
samcv | m: is (a => 100000).BagHash, :a(100000), "(a => 100000).BagHash is bag a:100000"; | ||
camelia | rakudo-moar 19df35: OUTPUT«===SORRY!=== Error while compiling <tmp>Undeclared routine: is used at line 1» | ||
samcv | m: use Test is (a => 100000).BagHash, :a(100000), "(a => 100000).BagHash is bag a:100000"; | ||
camelia | rakudo-moar 19df35: OUTPUT«===SORRY!=== Error while compiling <tmp>Undeclared routine: is used at line 1» | ||
samcv | m: use Test; is (a => 100000).BagHash, :a(100000), "(a => 100000).BagHash is bag a:100000"; | 16:54 | |
camelia | rakudo-moar 19df35: OUTPUT«Unexpected named argument 'a' passed in sub is at /home/camelia/rakudo-m-inst-2/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219E (Test) line 128 in block <unit> at <tmp> line 1» | ||
samcv | m: use Test; is ('a' => 100000).BagHash, :a(100000), "(a => 100000).BagHash is bag a:100000"; | ||
camelia | rakudo-moar 19df35: OUTPUT«Unexpected named argument 'a' passed in sub is at /home/camelia/rakudo-m-inst-2/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219E (Test) line 128 in block <unit> at <tmp> line 1» | ||
samcv | bleh | ||
AlexDaniel | By the way, thanks to everyone who writes proper commit messages. You made my life so much easier | 16:57 | |
notviki | \o/ | ||
samcv | git commit -m "fix it" | 16:58 | |
^ all anybody will ever need | |||
:^) | |||
AlexDaniel | a good example: github.com/rakudo/rakudo/commit/e0...d6474be0d4 | ||
not only it tells what was changed, but it gives a good enough justification on why it was done | |||
samcv | notviki++ | 16:59 | |
AlexDaniel | actually, most rakudo commits are like this, so everyone++ | ||
I just wanted to stress how useful it is sometimes | |||
samcv | yeah i agree | 17:04 | |
i think our commits are pretty good compared to some other projects | |||
github.com/MoarVM/MoarVM/pull/474/...73372a279a i think this is a clear commit yes? | 17:05 | ||
i'm rebasing and explaining before i get this merged into moar | |||
does not change any existing things in nqp or rakudo, adds a new op | |||
i should probbaly add to that, that currently the last three arguments are NYI | 17:06 | ||
nine | might be helpful, yes :) | ||
samcv | and maybe explain that the _example_ is for Latin. that's not default. default is language insensitive | ||
well you can pass them. it just won't do anything | 17:07 | ||
so far only primary is implemented anyway, and if primary matches we match by codepoint. which actually does the proper thing for most Latin script cases of Case differences | |||
well probably ALL | |||
other languages may be a little different. but none of the changes is worse than before | 17:08 | ||
since we fallback to codepoint comparing if they are the same primary | |||
and similar happens with diacritic as well so that isn't _perfect_ but primary is most important | 17:10 | ||
and secondary and ternary properties are already implemented, just we don't use them in moarvm | |||
but you can look at the properties with uniprop('MVM_COLLATION_PRIMARY') or SECONDARY or TERNARY | |||
oh btw. if we do switch over Rakudo to use this for cmp | 17:12 | ||
you can always do $a.ords cmp $b.ords | |||
if you really do want to compare the codepoints | |||
or NFC or NFD etc whatever you want | |||
but i think as the user by default it should sort without you having to think about unicode things | 17:13 | ||
because the codepoints really shouldn't matter, or we should try to make it not matter | |||
unless you want that | |||
like with regex | |||
theoretically we should be able to throw out unicode and put something else in and have it still work the same with cmp. because the codepoint numbers are becoming less and less useful | 17:17 | ||
i mean that was already the case like years and years ago | |||
dalek | ast/6.c-errata: d5b2620 | samcv++ | S02-types/bag.t: sort using $^a.ords cmp $^b.ords to ensure order never changes We are testing an unordered data structure, so let's make sure that any changes to collation order don't ruin the test. The test results are just strings to tests the values of the Bag, and assume that uppercase A will sort before lowercase z for example. |
17:22 | |
ast/6.c-errata: 8afc2fe | samcv++ | S02-types/baghash.t: Also use sort({$^a.ords cmp $^b.ords}) for baghash.t |
17:26 | ||
samcv | running spectest again | ||
gonna just gist it automatically now # make spectest >&2 | pee 'sponge | gist' | 17:30 | ||
pee is a really useful command, and so is sponge | 17:31 | ||
pee is like tee, but instead of thing | tee file.txt | whatever | |||
thing | pee 'first command to pipe to' 'second command to pipe to' | |||
and if you don't specify a 2nd thing it just goes to stdout | |||
geekosaur | or there's zsh with multios :p | 17:32 | |
samcv | multios? | 17:33 | |
pee and tee are in moreutils btw | |||
all distros have it, but usually not installed by default. part of the GNU project | |||
jmerelo | hi, people | 17:35 | |
notviki | Not all of use are people! | 17:36 | |
jmerelo | Hi, people and bots that have committed themselves to Asimov's 4 laws of robotics | 17:37 | |
geekosaur | samcv, it's a zsh option, gives it extra redirection syntaxes zsh.sourceforge.net/Doc/Release/Red...ml#Multios | ||
jmerelo | Sentient plants, magic rocks, pixies and Skynet's twice removed cousin. | ||
geekosaur | although did you really want >&2 there, or 2>&1? | ||
notviki | Dude! Spoiler alert! | ||
jmerelo | Ah, and @notviki! | 17:38 | |
Thing is | |||
I have added a bunch of constants to Perl6 | |||
All of them unneeded in pretty much the same way as tau | |||
notviki | -_- | ||
jmerelo | Worth the while to do the pull request? I have checked out pi in roast and I can reproduce it for the rest of the constants, no big deal. Maybe call it constants.t | 17:39 | |
But I guess it's first rakudo and then roast, right? | |||
Anyway | |||
While I was at it I found a kind-of but when defining constants there. If you use an expression, like | 17:40 | ||
notviki | You want to submit a pull request for a bunch of... and I quote... "unneeded" constants? :/ | ||
jmerelo | That's absolutely correct. | ||
notviki | jmerelo: are you brrt? | 17:41 | |
jmerelo | Not really. | ||
Right now we have tau, pi and e in core. | |||
So every time that shows up, people say 2 things | |||
first, what is tau | |||
notviki | hm... are you twitter.com/jjmerelo ? | ||
jmerelo | Yep, that me | ||
second, why not phi? | |||
So I have added phi, and Planck's constant, and 3 or 4 more. | 17:42 | ||
notviki | Are you the author? perl6advent.wordpress.com/2016/12/...-compiler/ | ||
jmerelo | not that JJ | ||
that's probably JJ Allen | |||
I'm the one with the Git Hooks. Same day, I think. | 17:43 | ||
notviki | Is that you? en.gravatar.com/jjmerelo | ||
jmerelo | yep. This JJ perladvent.org/2016/2016-12-07.html | 17:44 | |
Different advent calendar, different day | |||
notviki | For some reason I thought that pic was brrt, when I saw that article it showed up on it | ||
But maybe it was in the "likes" at the bottom that I see it show up | |||
Well, never mind... | |||
jmerelo | yes, that was probably me. | ||
dalek | ast/6.c-errata: a941180 | niner++ | S1 (3 files): Fixup tests for lexical module loading We now need to explicitly use modules if we want to use their symbols and can no longer rely on them being loaded by one of our dependencies. |
||
nine | notviki: 6.c-errata passes again :) | ||
jmerelo | So, it's not worth the while, right? | ||
AlexDaniel | jmerelo: this actually does not sound so bad | 17:46 | |
notviki shakes head | |||
AlexDaniel | jmerelo: maybe create an RFC ticket first? | ||
notviki | jmerelo: well, what's the usecase? I rather not add "useless" stuff with the justification that we already have some "useless" stuff | ||
AlexDaniel | perhaps one or two of these constants are actually common or useful | 17:47 | |
jmerelo | Just pushed it here github.com/JJ/rakudo/commit/97b276...d7a17d3237 | ||
notviki fails to find what constains are being added in backlog | |||
jmerelo | @AlexDaniel could do that. Where? @notviki I can think of usecases and add them to that ticket. | 17:48 | |
nine | Why not put them into some Math module? | ||
AlexDaniel | “plancks-reduced-h” looks awful, φ and phi maybe ok | 17:49 | |
that's a good question also | |||
notviki | jmerelo: I'm -1 on it. | ||
jmerelo: especially the G... | |||
no idea what phi even used for | 17:50 | ||
AlexDaniel | huggable: rakudobug | ||
huggable | AlexDaniel, [email@hidden.address] or use perl6 query on rt.perl.org ; see github.com/rakudo/rakudo/#reporting-bugs | ||
AlexDaniel | jmerelo: ↑ there | ||
jmerelo | h, g and C go toghether. You can build a whole lot of Physics with them. | ||
AlexDaniel | jmerelo: or, as nine said, create a module first | ||
jmerelo | OK, I can do that. | ||
Anyway, I think I found a kind-of bug while I was testing this. | |||
notviki | and C | ||
*c | |||
AlexDaniel | the thing with pi is that it is so fundamental that you don't really want to include a module just to get it | 17:51 | |
notviki | jmerelo: well, right *physics* | ||
samcv | heer's an example of the collation level values: | ||
> "aA".uniprops('mvmcollationprimary') # (7239 7239) | |||
> "aA".uniprops('mvmcollationsecondary') # (32 32) | |||
> "aA".uniprops('mvmcollationtertiary') # (2 8) | |||
moritz | isn't c = 1 anyway? | ||
notviki | moritz++ | ||
Right, the second thing is you're lacking units | |||
So it's useless to include them like that | |||
jmerelo | That's a good one. c is 1 in Planck's units | ||
AlexDaniel | and tau is just another pi. When we added tau there was already a module for it, by the way. | 17:52 | |
moritz | phyiscal constants certainly don't belong in core | ||
samcv | first one that gets checked is primary and you can't ignore that one. well eventually WE will be able to do it | ||
jmerelo | Well, OK. Just forget it. Phi can be computed via (1+sqrt(5))/2 too. | ||
samcv | to only compare different characters based on caseing | ||
jmerelo | And while I'm at that | ||
samcv | for whatever reason | ||
notviki | AlexDaniel: "we already have crap" isn't a justification for more crap. | ||
samcv | cause why not | ||
AlexDaniel | jmerelo: no-no, a module will be nice | ||
samcv | at least the moarvm op will exist | 17:53 | |
AlexDaniel | notviki: not sure how it relates to whatever I've just said :) | ||
samcv | should probably implement tertiary quickly | ||
notviki | ok | ||
samcv | though it really doesn't matter for most cases | ||
jmerelo | Have you ever tried to define a constant like so: my constant this-is-constant = (1+sqrt(5))/2? | 17:54 | |
notviki | nope | ||
m: my constant this-is-constant = (1+sqrt(5))/2 | |||
camelia | ( no output ) | ||
jmerelo | It starts to increase the memory in the "parse" phase of compilation and eventually fills up the whole memory | ||
notviki | m: my constant this-is-constant = (1+sqrt(5))/2; say this-is-constant | ||
camelia | rakudo-moar 19df35: OUTPUT«1.61803398874989» | ||
jmerelo | just a second, I'll try to reproduce it. | ||
notviki | m: constant this-is-constant = (1+sqrt(5))/2; say this-is-constant | ||
camelia | rakudo-moar 19df35: OUTPUT«1.61803398874989» | ||
notviki | Maybe it was because of where in setting it was defined and it was infinilooping trying to find those math ops before they were fully added? | 17:56 | |
jmerelo | right, I got it. Where can I upload an image? | ||
notviki | imgur.com | ||
AlexDaniel | gist.github.com | ||
notviki | wtf it can take images? | ||
notviki sees no button for that | |||
jmerelo | imgur.com/a/B1dPJ | 17:57 | |
I just added my constant other-phi = (1+sqrt(5))/2; to Num.pm | |||
@notviki might be. | 17:59 | ||
notviki | well right and sqrt is part of Num.pm: github.com/rakudo/rakudo/blob/nom/...um.pm#L122 | ||
though... then it'd say function not found | |||
But I'd guess that's why | |||
AlexDaniel | notviki: you just dragndrop it I think | ||
notviki | "that" being it doesn't have all of the math ops/types at that point yet | ||
AlexDaniel | ah no, doesn't work :O | 18:00 | |
so it can only take svgs I think | |||
okay, sorry | |||
jmerelo | I would say sqrt is not to blame. Even simple operations hang it up and blow memory up. No error produced. It was increasing around 100K per second | ||
notviki | other ops are also in that file github.com/rakudo/rakudo/blob/nom/...um.pm#L339 | 18:01 | |
jmerelo | It's failing also with simply * | 18:04 | |
Check this out imgur.com/a/a4RiM | 18:05 | ||
It was up to 2G already. Usually it does not take more than 1 gigabyte or so. | |||
Defining a constant via an operation hangs moar, I guess. So the bug is in moar, right? | 18:06 | ||
notviki | There's no bug. | ||
jnthn | If you're adding stuff to CORE.setting, you *must* account for the fact that various things don't exist yet. | 18:07 | |
For example, if a coercion method you rely on isn't yet declared at the time of the constant, it's easily possible to hit the case in Mu/Any and infinitely recurse | |||
jmerelo | OK | ||
jnthn | Types like Int/Num are stubbed early, but they don't get methods added until later on | ||
And constant happens at BEGIN time | 18:08 | ||
jmerelo | OK | ||
jnthn | Putting the thing you're adding at the end of Num.pm could make a difference, for example. | ||
jmerelo | right, * is defined further down the file, in line 340 | 18:09 | |
jnthn | Also, various exception classes are defined later on, though in most cases we cope decently well with that by now rather than going off to recursion land. | ||
If Moar can do anything here, it's suppose setting a recursion limit. | |||
*to support | 18:10 | ||
jmerelo | Worth the while to file a bug report? | ||
Or is it something well known? | |||
jnthn | That you need to be careful about definition order when adding to things to CORE.setting is, at least here, well known. :) | 18:11 | |
jmerelo | @notviki @jnthm thanks for the clarification. | ||
That should be @jnthn :-) | |||
jnthn | That we don't have any mechanism to set some kind of stack limit otoh would be a reasonable request | ||
nine | Everyone working on the setting gets hit by that sooner or later :) | 18:12 | |
jnthn | (Since it would stop runaway programs eating all the memory creating stack frames) | ||
notviki | we have that now in user-space too | ||
m: Numeric * Numeric | |||
camelia | rakudo-moar 19df35: OUTPUT«WARNINGS for <tmp>:Useless use of "*" in expression "Numeric * Numeric" in sink context (line 1)Use of uninitialized value of type Numeric in numeric context in block <unit> at <tmp> line 1Use of uninitialized value of type Numeric in numeric …» | ||
jnthn | But once you add that you need a way to control the limit, and then the whole question of units comes up :) | 18:13 | |
notviki | m: say Numeric.new * Numeric.new | ||
camelia | rakudo-moar 19df35: OUTPUT«MoarVM panic: Memory allocation failed; could not allocate 131072 bytes» | ||
jmerelo | OK, I'll raise the issue in MoarVM then. Thanks, @jnthn, @notviki, @nine, @AlexDaniel, you're great! | 18:14 | |
AlexDaniel | m: 'hello' [&say] 'world' | ||
camelia | rakudo-moar 19df35: OUTPUT«WARNINGS for <tmp>:Useless use of &say in sink context (line 1)helloworld» | ||
AlexDaniel | is it a useless warning or the user is not supposed to do something like this? | ||
jnthn | Well, note that then such a feature in MoarVM would also need adding some kind of controlling pragma in Perl 6 land, so it'd be relevant here also :) | 18:15 | |
AlexDaniel | TimToady: ↑ ? | ||
jnthn | m: 'hello' [||] die 'oops' | 18:16 | |
camelia | ( no output ) | ||
geekosaur | AlexDaniel, looks to me like it thinks &say is a value instead of being invoked, so it's an incorrect warning (but possibly one that is hard to fix?) | ||
jnthn | m: 'hello' [+] die 'oops' | ||
camelia | rakudo-moar 19df35: OUTPUT«WARNINGS for <tmp>:Useless use of "[+]" in expression "'hello' [+] die 'oops'" in sink context (line 1)oops in block <unit> at <tmp> line 1» | ||
geekosaur | ... or maybe it's backwards | ||
jnthn | m: 'hello' [&infix:<+>] die 'oops' | ||
camelia | rakudo-moar 19df35: OUTPUT«WARNINGS for <tmp>:Useless use of &infix:<+> in sink context (line 1)oops in block <unit> at <tmp> line 1» | ||
jnthn | m: 'hello' [&infix:<||>] die 'oops' | ||
camelia | rakudo-moar 19df35: OUTPUT«WARNINGS for <tmp>:Useless use of &infix:<||> in sink context (line 1)oops in block <unit> at <tmp> line 1» | ||
jnthn | It seems to afflict all the function forms | 18:17 | |
AlexDaniel | bisect: 'hello' [&say] 'world' | ||
nine | Considering how trivial it is to add a recursion counter to my code thanks to dynamic scope, I wonder if it'd be worth the trouble. | ||
bisectable6 | AlexDaniel, Bisecting by output (old=2015.12 new=19df358) because on both starting points the exit code is 0 | ||
AlexDaniel, bisect log: gist.github.com/2dcfd5f9cbea76b706...d8ffd40752 | |||
AlexDaniel, (2016-12-15) github.com/rakudo/rakudo/commit/ac...e2a71d851a | |||
jnthn | nine: If we want to do it at VM level it'd be - for Moar at least - far better to have it expressed in bytes also. | ||
(Bytes of space allowed to be used for the call stack) | |||
Moar doesn't cheaply know how many user-level frames deep it is. | 18:18 | ||
AlexDaniel | m: eager ‘hello’ [&say] ‘world’ | ||
camelia | rakudo-moar 19df35: OUTPUT«helloworld» | ||
nine | Which is something a plain ordinary Perl 6 developer won't even have a chance at guessing right. | ||
jnthn | (Because inlining) | ||
JVM folks cope. :) | |||
(The stack size is expressed as a startup parameter to the JVM) | 18:19 | ||
jnthn wanders off to cook | 18:24 | ||
notviki guesses it's another clothing item... | 18:27 | ||
You Europeans and your strange cusine! | 18:28 | ||
samcv | jnthn, can you review my pull? | 18:33 | |
if there's anything that i didn't explain properly ni the commit messages and such or anything looking amiss | 18:34 | ||
it passes spectests changing rakudo's cmp to use the new op. so it's ready to go unless you see any issues. | 18:35 | ||
then we can start the bikeshedding about switching MVM cmp or not :P | 18:36 | ||
mst | jnthn: at the very least it might be neat to add -some- sort of recursion -warning- for moar-in-test-mode or so | 18:44 | |
jnthn: I love a love/hate relationship with perl5's deep recursion warnings | |||
samcv | jnthn, just updated the pull request message and title | 18:50 | |
ugh merge conflicts | |||
sweet conflicts resolvede | 18:55 | ||
notviki | m: my @cycle = 1, 2, 3; given (@cycle xx *).iterator -> $i { $i.pull-one.say for ^100 } | 19:10 | |
camelia | rakudo-moar 19df35: OUTPUT«[1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3][1 2 3…» | ||
notviki | ^ so that would keep all of $!reified stuff, right? | ||
So on long running rotored supplies we'd keep using more and more memory for stuff we don't care about? github.com/rakudo/rakudo/blob/nom/...ly.pm#L771 | 19:11 | ||
m: my @cycle = 1, 2, 3; given (@cycle xx *).flat.cache.iterator -> $i { $i.pull-one.say for ^100 } | 19:14 | ||
camelia | rakudo-moar 19df35: OUTPUT«1231231231231231231231231231231231231231231231231231231231231231…» | ||
notviki | that I meant, with .cache on it | ||
samcv | not sure but i can see that could happen | 19:42 | |
so with cmp using the new op, argfiles.t, combinations.t and rat.t and lines.t fail | 19:43 | ||
everything else is fine | |||
MasterDuke | m: use nqp; my %b := nqp::hash("a", 1, "b", 2e0, "c", 3); for %b { my $a := nqp::iterval($_); if nqp::isint($a) { say("int $a") } elsif nqp::isnum($a) { say("num $a") } } | 19:47 | |
camelia | rakudo-moar 19df35: OUTPUT«Type check failed in binding; expected Associative but got Hash (${:a(1), :b(2e0), :c(3)}) in block <unit> at <tmp> line 1» | ||
MasterDuke | m: use nqp; my %b = nqp::hash("a", 1, "b", 2e0, "c", 3); for %b { my $a := nqp::iterval($_); if nqp::isint($a) { say("int $a") } elsif nqp::isnum($a) { say("num $a") } } | ||
camelia | rakudo-moar 19df35: OUTPUT«This is not an iterator, it's a P6opaque (Pair) in block <unit> at <tmp> line 1» | ||
MasterDuke | m: use nqp; my $b := nqp::hash("a", 1, "b", 2e0, "c", 3); for $b { my $a := nqp::iterval($_); if nqp::isint($a) { say("int $a") } elsif nqp::isnum($a) { say("num $a") } } | ||
camelia | rakudo-moar 19df35: OUTPUT«Cannot find method 'map': no method cache and no .^find_method in block <unit> at <tmp> line 1» | ||
MasterDuke | m: use nqp; my $b = nqp::hash("a", 1, "b", 2e0, "c", 3); for $b { my $a := nqp::iterval($_); if nqp::isint($a) { say("int $a") } elsif nqp::isnum($a) { say("num $a") } } | 19:48 | |
camelia | rakudo-moar 19df35: OUTPUT«Cannot find method 'map': no method cache and no .^find_method in block <unit> at <tmp> line 1» | ||
ugexe | im not sure how you guys can mentally process the backlogs that happen here anymore :( | ||
MasterDuke | what am i doing wrong? | 19:49 | |
[Coke] | ugexe: we can't. | ||
notviki | ugexe: I don't | ||
[Coke] | esp. not with all the camelia churn. | ||
notviki | ugexe: I started keeping up with just #perl6-dev, but samcv made that a challenge too :) | 19:50 | |
(that's a good thing) | |||
samcv | :) | ||
geekosaur vaguely surfs for things that stand out... | |||
notviki | MasterDuke: I'd guess using the Perl 6 for loop with nqp's hash | 19:52 | |
run that with nqp: trigger | |||
MasterDuke | notviki: heh, but it's (what i'm actually going to end up with) going to be run by rakudo | 19:54 | |
notviki | try using nqp::for then? | 19:56 | |
MasterDuke | let me back up. i'm trying to isolate these lines github.com/rakudo/rakudo/blob/nom/...pm#L58-L65 | 19:57 | |
so i can test which is faster | 19:58 | ||
dalek | kudo/nom: dc7b688 | lizmat++ | src/core/ShapedArray.pm: Fix RT #130440 The Pair.value wasn't created with a .whence container, AlexDaniel++ for the spot. |
20:32 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130440 | ||
kudo/nom: aa35065 | lizmat++ | src/core/native_array.pm: Fix RT #130443 Another case of a Failure disappearing, spotted by AlexDaniel++ Rewritten using nqp:: ops, which gives a 3% speed increase as a bonus. |
21:11 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130443 | ||
AlexDaniel | lizmat: hey | 21:48 | |
m: say WHAT "Hey there!".encode('UTF-8').list | |||
camelia | rakudo-moar aa3506: OUTPUT«(Seq)» | ||
AlexDaniel | is it supposed to be Seq? | ||
this is the commit: github.com/rakudo/rakudo/commit/f2...cffbe9c3be | |||
lizmat | .list is supposed to return something listy | 21:50 | |
AlexDaniel | and Seq is considered listy enough? | 21:54 | |
ok then | |||
lizmat | AlexDaniel: yeah, I think so ? | 22:00 | |
notviki | m: my int @a; @a.splice: 1...*; | 22:08 | |
camelia | rakudo-moar aa3506: OUTPUT«This type cannot unbox to a native integer: P6opaque, Failure in block <unit> at <tmp> line 1» | ||
notviki | I couldn't find where it tries to unbox it | 22:09 | |
lucasb | any other .list methods returning Seq? | 22:16 | |
for the record, it's not possible to bind a Seq to a Positional variable | 22:17 | ||
notviki wants to make a map of routines of Perl 6 | |||
lucasb | and it feels strange that '$str.encode.list' is a differente object than '$str.encode.list.list' | ||
notviki notes that .list is not .List | 22:18 | ||
samcv | i think i covered everything with the pull request description for this collation stuff… | 22:20 | |
github.com/MoarVM/MoarVM/pull/474 | |||
added more details on the country codes and languages and stability of those values | |||
i guess the only thing i *could* add is saying which ranges of the language codes are reserved for private use and we could use those for custom ones, but i don't quite like that. though it's a possibility | 22:22 | ||
we're not restricted to 3chars anyway | |||
lizmat, can you proof it and see if there are any implementation details i may not have specified or not clear enough | 22:23 | ||
lucasb | m: say 'abc'.encode.List.WHAT | 22:24 | |
camelia | rakudo-moar aa3506: OUTPUT«(Seq)» | ||
lizmat | samcv: I am just proofing something else, and am about to stop proofing because I'm getting too tired | ||
samcv | no problem | ||
that feel | 22:25 | ||
lizmat | :-) | ||
samcv | can i change commit messages even after i've done a merge? | 22:26 | |
if the commit was before. i could always just revert before the merge and do it again i guess | |||
lizmat | yeah, that would have to be the way, I think | ||
and definitely *before* you push anything :-) | |||
samcv | yeah | ||
dalek | nqp: e73c94f | usev6++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/JASTCompiler.java: | 22:27 | |
nqp: [JVM] Avoid constant pool entries for large ints | |||
nqp: | |||
nqp: Rakudo does not build on the JVM backend currently, because | |||
nqp: the limit for constant pool entries (65535) is reached. | |||
nqp: | |||
nqp: We have a lot of integers > 32677 (max value for type Short) | |||
nqp: in the constant pool. Most (if not all) of them are added | |||
nqp: when nodes of type QAST::WVal are processed in method 'as_jast' | |||
nqp: (in src/vm/jvm/QAST/Compiler.nqp) and nqp::scgetobjidx returns | |||
nqp: those large indices. | |||
nqp: | |||
bartolin | ^^ github.com/perl6/nqp/commit/e73c94...9b3db43e1b | 22:28 | |
with that it should be possible to build r-j again | 22:29 | ||
lizmat | bartolin++ | 22:34 | |
good night, #perl6-dev! | |||
bartolin | o/ | ||
notviki | night | ||
samcv | night lizmat ! | 22:37 | |
nice bartolin !!! | 22:38 | ||
bartolin is not really sure about that patch (it feels dirty) -- but since no one else came up with a better patch ... | 22:41 | ||
samcv | what are these poor entries though | ||
and do you need all of them | |||
well i sorta see what the do but, why are so many needed. or are they | 22:42 | ||
j: say 'test' | 22:43 | ||
camelia | rakudo-jvm 8ca367: OUTPUT«test» | ||
bartolin | I don't think we need any of them in the constant pool. AFAIU using a constant pool entry is a common way to add integers > 2^15 to the stack | ||
samcv | that is kind of what I was thinking but i don't know that much about JAST/MAST etc :P | 22:44 | |
could have been totally wrong | |||
samcv can now compare jvm and moarvm rakudo implementation of strings and unicode operations | |||
bartolin | well, maybe jnthn or psch or arnsholt or ... can shed some light the other day | 22:45 | |
notviki | samcv: FWIW, camelia is using commit from November for JVM | 22:46 | |
github.com/rakudo/rakudo/commit/8ca367 | |||
samcv | kk | ||
bartolin | btw, there might still be an issue that rakudo-j does not find BOOTSTRAP.jar. I haven't looked into it, yet. | 22:47 | |
cmp. irclog.perlgeek.de/perl6-dev/2016-1...i_13788946 | |||
samcv | thanks for the link | 22:50 | |
JVM's compare_To documentation for strings is too vague. but i think i get what it tries to mean but | 23:00 | ||
herString) | |||
Compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings. The character sequence represented by this String object is compared lexicographically to the character sequence represented by the argument string. The result is a negative integer if this String object lexicographically precedes the argument string. | |||
though maybe it is implied if i read the documentation on unicode strings | 23:01 | ||
bartolin | r: use nqp; say nqp::backendconfig<prefix>; say nqp::getcomp("perl6").config<prefix> | 23:32 | |
camelia | rakudo-moar aa3506: OUTPUT«/home/camelia/rakudo-m-inst-2/home/camelia/rakudo-m-inst-2» | ||
..rakudo-jvm 8ca367: OUTPUT«/home/camelia/rakudo-j-inst-2(Any)» |