Zoffix And I measured with a small patch to Test.pm6 to write into testing-times file: gist.github.com/zoffixznet/22ff73b...9be2b977d0 00:00
samcv yeah that may be possible 00:11
yoleaux 21 Jul 2017 23:57Z <Zoffix> samcv: is it easy to split up S15-normalization/nfc-* test further up; about in half each? The individual tests delay the entire stresstest runs because they run for ~80s each. At least with my 24-core box, the sweet spot would probably be around 30s per test file max. Here are the top 20 slowest test files: gist.github.com/zoffixznet/3e7c41a...692152cbd2
Zoffix That'd be sweet 00:12
samcv i'll look at it now
Zoffix I appreciate it.
samcv will split them in half 00:23
then zoffix can be happy :) 00:25
i'll put the concat tests in their own file. so should help out a lot
Zoffix, does roast compile everything before it starts running or how does it work? 00:29
Zoffix \o/
samcv it starts x jobs and waits for them to compile then runs them right?
so if it's just compiling it's waiting?
Zoffix samcv: no idea
Geth roast: 0976d07b90 | (Samantha McVey)++ | 21 files
Split S15-normalization/nfc tests into concat and non-concat tests

This should reduce the time for the tests and help with parallel roast test runs.
00:30
samcv Zoffix, it'd probably be much faster to compile if we included the unicode file in the tree and just read off of that 00:33
but splitting them up should help for now
Zoffix cool. maybe I'll break the 60s stresstest barrier tonight :) 00:34
samcv hah 00:35
Geth rakudo/nom: ce0b7b310c | (Samantha McVey)++ | t/spectest.data
Add nfc-concat-x.t tests to spectest.data

The nfc tests were split up so each one did not take as long.
00:37
Zoffix ZOFVM: Files=1276, Tests=161266, 132 wallclock secs (22.70 usr 3.44 sys + 2724.94 cusr 168.10 csys = 2919.18 CPU) 00:54
alas 00:55
AlexDaniel ZofBot,hi 00:59
ZofBot AlexDaniel, ) There's one additional constructor: "now"
Zoffix Unless the boost patch I'm soon to commit magically shaves off those 32s :) 01:00
Looks like some nfc concat tests still go to 74s gist.github.com/zoffixznet/6fd67b6...c5a678dabc 01:01
But much better than before :)
samcv Zoffix, well i can remove many of these tests ugh. i hate this thing. test-gen.p6 01:12
Zoffix, what's a good way to generate reproducable pseudorandom numbers 01:14
Zoffix samcv: set srand?
m: srand 42; say rand xx 10
camelia (0.274518332367711 0.566730513997923 0.959893313273106 0.153383078967721 0.583510247834594 0.217869139534002 0.639877365542633 0.804548145790971 0.260736759819595 0.00660734292484104)
Zoffix m: srand 42; say rand xx 10
camelia (0.274518332367711 0.566730513997923 0.959893313273106 0.153383078967721 0.583510247834594 0.217869139534002 0.639877365542633 0.804548145790971 0.260736759819595 0.00660734292484104)
samcv oh great 01:15
i want to generate numbers betwen 0 and the arrays last element. and have it be the same on every run 01:16
so that should prolly work
timotimo ought to work, yeah
samcv m: my @list = 1..99; srand 42; say @list.elems.rand xx 10
camelia (27.1773149044034 56.1063208857944 95.0294380140375 15.1849248178044 57.7675145356248 21.5690448138662 63.3478591887207 79.6502664333062 25.8129392221399 0.654126949559263)
AlexDaniel m: srand 42; say ((^50).pick for ^10)
camelia (35 30 41 14 25 29 12 31 8 38)
AlexDaniel m: srand 42; say ((^50).pick for ^10)
camelia (35 30 41 14 25 29 12 31 8 38)
samcv m: my @list = 1..99; srand 42; say @list.elems.rand.Int xx 10
camelia (27 56 95 15 57 21 63 79 25 0)
AlexDaniel pick seems to be sranded too 01:17
samcv: do we have a list of unicode properties we don't support somewhere? 01:21
like:
m: ‘!’.uniprop(‘vo’).say
camelia 0
AlexDaniel m: ‘!’.uniprop(‘Vertical_Orientation’).say 01:22
camelia 0
samcv AlexDaniel, it's in a roast ticket 01:26
AlexDaniel oh
github.com/perl6/roast/issues/195
right
thanks!
samcv np :)
AlexDaniel vo is not there though 01:27
travis-ci Rakudo build passed. Samantha McVey 'Add nfc-concat-x.t tests to spectest.data
travis-ci.org/rakudo/rakudo/builds/256268708 github.com/rakudo/rakudo/compare/3...0b7b310c1e
samcv Zoffix, turns out most of those concat tests were crap anyway. so i'm going to make them actually noncrap 01:38
it was testing concat of single codepoints. XD
so turns out there are not enough tests that don't just have single codepoints in the unicode tests. so i'm going to create my own i think
also. what's the best way to take two arrays and append one to another without getting arrays of arrays 01:40
i tried append but it doesn't seem to be doing that. i get [["0x330A"], ["0x330B"]]
Zoffix m: my @a = <a b c>; my @b = <d e f>; @a.append: |@b; say @a 01:41
camelia [a b c d e f]
samcv yay
nope not working here 01:44
m: my $list = my $list = [["0xAC4F"], ["0xAC50"], ["0xAC51"],]; say |$list 01:47
camelia Potential difficulties:
Redeclaration of symbol '$list'
at <tmp>:1
------> 3my $list = my $list7⏏5 = [["0xAC4F"], ["0xAC50"], ["0xAC51"],]
[0xAC4F][0xAC50][0xAC51]
samcv m: my $list = [["0xAC4F"], ["0xAC50"], ["0xAC51"],]; say |$list
camelia [0xAC4F][0xAC50][0xAC51]
samcv m: my $list = [["0xAC4F"], ["0xAC50"], ["0xAC51"],]; my @things; @things.append: |$list; say @things.perl
camelia [["0xAC4F"], ["0xAC50"], ["0xAC51"]]
Zoffix m: my $list = [["0xAC4F"], ["0xAC50"], ["0xAC51"],]; my @things; @things.append: |$list».List; say @things.perl
camelia [("0xAC4F",), ("0xAC50",), ("0xAC51",)]
Zoffix m: my $list = [["0xAC4F"], ["0xAC50"], ["0xAC51"],]; my @things; @things.append: $list».List.flat; say @things.perl
camelia ["0xAC4F", "0xAC50", "0xAC51"]
samcv bisectable6, my @list; my @result; @list = 0x2F94C, 0x2F94D, 0x2F94E, 0x2F94F; @result = 0x4096, 0x2541D, 0x784E, 0x2F94F; use Test; ok all(((Uni.new(@list[0..($_ - 1)]) ~ Uni.new(@list[$_..*])).NFC.list ~~ @result for 1..(@list-1))) 01:53
bisectable6 samcv, Bisecting by exit signal (old=2015.12 new=ce0b7b3). Old exit signal: 11 (SIGSEGV)
samcv hah 01:54
bisectable6 samcv, bisect log: gist.github.com/977aeb442b4d1b1343...dd8d7aa92f
samcv, (2016-03-09) github.com/rakudo/rakudo/commit/e1...8dbc8531e9
samcv n-not what i wanted
bisectable6: 2016.04..nom my @list; my @result; @list = 0x2F94C, 0x2F94D, 0x2F94E, 0x2F94F; @result = 0x4096, 0x2541D, 0x784E, 0x2F94F; use Test; ok all(((Uni.new(@list[0..($_ - 1)]) ~ Uni.new(@list[$_..*])).NFC.list ~~ @result for 1..(@list-1)))
bisectable6 samcv, On both starting points (old=2015.12 new=ce0b7b3) the exit code is 1 and the output is identical as well
samcv, Output on both points: «04===SORRY!04=== Error while compiling /tmp/2Jciq3nMxE␤Undeclared routine:␤ nom used at line 1. Did you mean 'not', 'nok'?␤»
samcv bisectable6: 2016.04 my @list; my @result; @list = 0x2F94C, 0x2F94D, 0x2F94E, 0x2F94F; @result = 0x4096, 0x2541D, 0x784E, 0x2F94F; use Test; ok all(((Uni.new(@list[0..($_ - 1)]) ~ Uni.new(@list[$_..*])).NFC.list ~~ @result for 1..(@list-1))) 01:55
bisectable6 samcv, On both starting points (old=2015.12 new=ce0b7b3) the exit code is 1 and the output is identical as well
samcv, gist.github.com/70e7c0a1d43f0db181...f90af69e20
MasterDuke samcv: old=foo new=bar
samcv bisectable6: old=2016.04 new=nom my @list; my @result; @list = 0x2F94C, 0x2F94D, 0x2F94E, 0x2F94F; @result = 0x4096, 0x2541D, 0x784E, 0x2F94F; use Test; ok all(((Uni.new(@list[0..($_ - 1)]) ~ Uni.new(@list[$_..*])).NFC.list ~~ @result for 1..(@list-1)))
MasterDuke or one or the other
bisectable6 samcv, On both starting points (old=2016.04 new=nom) the exit code is 1 and the output is identical as well
samcv, Output on both points: «not ok 1 - ␤␤# Failed test at /tmp/3DIIczt9V9 line 1»
MasterDuke bisectable6: old=2016.04 my @list; my @result; @list = 0x2F94C, 0x2F94D, 0x2F94E, 0x2F94F; @result = 0x4096, 0x2541D, 0x784E, 0x2F94F; use Test; ok all(((Uni.new(@list[0..($_ - 1)]) ~ Uni.new(@list[$_..*])).NFC.list ~~ @result for 1..(@list-1))) 01:56
bisectable6 MasterDuke, On both starting points (old=2016.04 new=ce0b7b3) the exit code is 1 and the output is identical as well
MasterDuke, Output on both points: «not ok 1 - ␤␤# Failed test at /tmp/3DJNPp1M6N line 1»
samcv cool. it should fail everywhere i hope 01:57
MasterDuke committable6: all my @list; my @result; @list = 0x2F94C, 0x2F94D, 0x2F94E, 0x2F94F; @result = 0x4096, 0x2541D, 0x784E, 0x2F94F; use Test; ok all(((Uni.new(@list[0..($_ - 1)]) ~ Uni.new(@list[$_..*])).NFC.list ~~ @result for 1..(@list-1))) 01:58
committable6 MasterDuke, gist.github.com/d271d91822dd30bcfa...c74b3be28e 01:59
samcv hmm. This type cannot unbox to a native integer: P6opaque, Failure 02:03
Zoffix m: my int $ = +"foos" 02:06
camelia This type cannot unbox to a native integer: P6opaque, Failure
in block <unit> at <tmp> line 1
Zoffix man, tests flop like crazy 02:07
Oh wait, my goal is sub 100s stresstests, not sub 60s :) 02:13
At least for now
ZOFVM: Files=1276, Tests=161277, 130 wallclock secs (21.55 usr 3.50 sys + 2666.69 cusr 161.43 csys = 2853.17 CPU) 02:16
can't really see my cool improvements to Test.pm6 :(
Zoffix tries regular spectest
m: say 161277-143197 02:18
camelia 18080
Zoffix I guess some of the new slowness is due to there being 18,080 more tests now
:( 02:30
Geth rakudo/nom: d46f837100 | (Zoffix Znet)++ | lib/Test.pm6
Make Test::proclaim 6.5x faster

That seems to look good on paper, but doesn't seem to decrease stresstest/spectest runtime at all. Is that just some long-running tests masking the improvements or should this commit be reverted as the decreased readability just ain't worth it.
02:32
Zoffix .ask lizmat should I revert this commit? It made the sub used by all tests 6.5x faster, but I'm hardpressed to find any practical benefits from that. Is that new nqp code a nightmare? Should we revert this commit for sake of better readability? github.com/rakudo/rakudo/commit/d46f837100 02:33
yoleaux Zoffix: I'll pass your message to lizmat.
Zoffix calls it a day 02:34
yeah, don't get it. My subtest TODO fix appeared to have slowed down the stresstest run by like 10s and profile does show proclaim like 30% of that piece. Would've thought I'd see at least something from making proclaim faster, but I guess the slowage wasn't actually from subtest todo fix. ¯\_(ツ)_/¯ 02:41
.tell lizmat like I see this code got 4.3x faster, but spectest time doesn't look to be affected, so.. is it worth it ¯\_(ツ)_/¯ time ./perl6 -Ilib -MTest -e '$*OUT = "/dev/null/".IO.open: :w; $*ERR = "/dev/null".IO.open: :w; for ^1000_0 { ok 1; ok 0 }' 02:47
yoleaux Zoffix: I'll pass your message to lizmat.
samcv Zoffix, ready for me to remove 8 nfc-concat tests :P 03:13
seems to take me 27 seconds to run this test
MasterDuke Zoffix: fwiw, i get 35% spent in src/core/CallFrame.pm:55, with proclaim, ok, _diag the next three 03:18
Geth roast: 64e385faf9 | (Samantha McVey)++ | 11 files
Only test NFC concat if there's more than one codepoint

Previously it was uselessly testing concat with single codepoints, which is very useless. Filter it out and only test the ones with multiple codepoints under concatation.
03:19
samcv Zoffix, now you should be even happier :)
now you have 1 instead of 9 concat tests :p 03:20
japhb Zoffix: Is the compilation of the .t files being counted in those measurements? I wonder if, for (runtime) fast test files, if process startup and .t file compilation dominate wall clock time. 03:21
Geth roast: 9f304b0702 | (Samantha McVey)++ | S15-normalization/test-gen.p6
Commit the changes to the normalization test-gen.p6
rakudo/nom: d151d8adfb | (Samantha McVey)++ | t/spectest.data
Remove nfc-concat-x.t and add nfc-concat.t

Now there is only one nfc-concat test. Change it from spectest since the sanity of these operations is pretty important.
03:23
Zoffix japhb: no, it used now - INIT now 03:29
Gonna try samcv++'s modifications some other time; already turned off my VM 03:30
japhb Zoffix: So if the code is fast to run, then (now - INIT now) may not really be representative of wall and/or processor time used
Zoffix japhb: right 03:31
ugexe next toaster run is going to have some new explosions 04:03
Zoffix Why?
ugexe irclog.perlgeek.de/perl6-toolchain...i_14906429 04:04
in short :ver() was doing The Wrong Thing, and not in a way that its useful just in a way that coincidently worked 04:05
Zoffix ah 04:06
ugexe sent PRs for JSON::Class and JSON::Marshall, the two we already found 04:20
Geth rakudo: ugexe++ created pull request #1120:
Centralize CURI search logic
05:55
nine I'm not sure I really like commit 247fc6499d. I do see the issue it tries to resolve, yet it changes semantics in an arguably surprising way. 07:44
yoleaux 21 Jul 2017 21:36Z <Zoffix> nine: would you take a last look at github.com/rakudo/rakudo/pull/1107/files and merge the PR if it's OK I see a change in one of CompUnit stugf and no idea if it's good or not
samcv ugexe, there's an issue where i have a system perl 6 which has modules installed in ~/.perl6 and i have by perl 6 i use mots of the time in ~/perl6 and zef detects both of them. and it thinks that i have them all installed even though the running perl 6 can only access its own modules 07:48
which causes tons of dependency issues
nine samcv: all your perl6 should be able to use modules installed into ~/.perl6 07:49
samcv yeah but 07:52
let me see something 07:53
Geth rakudo/nom: 9 commits pushed by gerd++, (Gerd Pokorra)++, niner++ 07:54
nine Darn....those commits should have been sqashed first :/
Well anyway, thanks Zoffix++ for reminding me about that PR 07:55
I need to be off now as I'm at my parents and supposed to help my dad sealing the cistern :) Feel free to .tell or /msg me any issues with sharing modules between perl6 installations. 08:06
samcv: ^^^
samcv ok thanks :) 08:07
travis-ci Rakudo build failed. niner 'Merge pull request #1107 from gerd/nom 08:47
travis-ci.org/rakudo/rakudo/builds/256314328 github.com/rakudo/rakudo/compare/d...d65ac90b36
buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
lizmat Files=1216, Tests=65578, 224 wallclock secs (13.43 usr 5.09 sys + 1338.17 cusr 141.36 csys = 1498.05 CPU) 10:03
yoleaux 02:33Z <Zoffix> lizmat: should I revert this commit? It made the sub used by all tests 6.5x faster, but I'm hardpressed to find any practical benefits from that. Is that new nqp code a nightmare? Should we revert this commit for sake of better readability? github.com/rakudo/rakudo/commit/d46f837100
02:47Z <Zoffix> lizmat: like I see this code got 4.3x faster, but spectest time doesn't look to be affected, so.. is it worth it ¯\_(ツ)_/¯ time ./perl6 -Ilib -MTest -e '$*OUT = "/dev/null/".IO.open: :w; $*ERR = "/dev/null".IO.open: :w; for ^1000_0 { ok 1; ok 0 }'
lizmat .tell Zoffix I'm the wrong person to ask whether nqp code is a nightmare :-) 10:05
yoleaux lizmat: I'll pass your message to Zoffix.
lizmat .tell FWIW, I see Test.pm mostly as user land code, so readability is slightly more important to me there 10:07
yoleaux lizmat: What kind of a name is "FWIW,"?!
lizmat .tell Zoffix FWIW, I see Test.pm mostly as user land code, so readability is slightly more important to me there
yoleaux lizmat: I'll pass your message to Zoffix.
Geth rakudo/nom: 875b08439e | (Elizabeth Mattijsen)++ | lib/Test.pm6
Revert "Make Test::proclaim 6.5x faster"

This reverts commit d46f8371006ae9d79e05d58e5dd07d97be55be9b.
The overhead of things being tested, dwarves any gain in proclaim performance itself. So let's go for readability in this case.
10:11
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Revert "Make Test::proclaim 6.5x faster" 11:03
travis-ci.org/rakudo/rakudo/builds/256335388 github.com/rakudo/rakudo/compare/e...5b08439e05
buggable [travis build above] ☠ Did not recognize some failures. Check results manually. 11:04
Geth rakudo/nom: 752a32656b | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
Make Baggy.roll(N) about 1.5x faster

  - based on a ^100 elem Bag with N=100
  - also applies to .roll(*) and .roll(Inf)
  - much more memory friendly
  - also has optimized skip-one, count-only and bool-only
  - no need for !ROLLPICKGRABN anymore
11:45
timotimo moritz: i wonder if you should point out in the "perl6 fundamentals ready for purchase" post that knowledge of perl 5 is also not required? 12:20
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make Baggy.roll(N) about 1.5x faster 12:44
travis-ci.org/rakudo/rakudo/builds/256350705 github.com/rakudo/rakudo/compare/8...2a32656b68
moritz timotimo: yes, thanks for pointing that out 12:55
updated the blog post. 12:58
Geth roast: dogbert17++ created pull request #287:
Add test for RT #131018
13:42
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131018
Zoffix . 13:53
yoleaux 10:05Z <lizmat> Zoffix: I'm the wrong person to ask whether nqp code is a nightmare :-)
10:07Z <lizmat> Zoffix: FWIW, I see Test.pm mostly as user land code, so readability is slightly more important to me there
Zoffix lizmat++ cool. Thanks for revert. 13:54
lizmat Zoffix: you don't want to know how much nqp-ified code I've thrown away :-) 13:59
Geth roast: 1923cace86 | (Jan-Olof Hendig)++ | S32-list/rotor.t
Add test for RT #131018
roast: 2d34d3283e | (Zoffix Znet)++ (committed using GitHub Web editor) | S32-list/rotor.t
Merge pull request #287 from dogbert17/test-rt-131018

Add test for RT #131018
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131018
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131018
Zoffix :) 14:02
Geth rakudo/nom: fb7ecb60f0 | (Elizabeth Mattijsen)++ | 6 files
Baggy no longer uses HLL hash internally

Until now, Baggies contained a HLL Hash, which in turn contained a low-level IterationSet. Now, Baggies directly have the IterationSet without the intervening HLL Hash. This means one less object to create an allocate for each Baggy created. This also reduces the number of calls to Baggy.RAW-HASH, as we can now directly refer to the underlying IterationSet.
14:25
dogbert17 commit: gcc1ba30 multi f(UInt:D $) { "ok" } 14:26
committable6 dogbert17, ¦gcc1ba30: «Cannot find this revision (did you mean “cc1ba30”?)»
dogbert17 commit: cc1ba30 multi f(UInt:D $) { "ok" } 14:27
committable6 dogbert17, ¦cc1ba30: «»
dogbert17 commit: cc1ba30 multi f(UInt:D $) { "ok" }; f(1)
committable6 dogbert17, ¦cc1ba30: «===SORRY!===␤Invocant requires an instance of type Int, but a type object was passed. Did you forget a .new? «exit code = 1»»
Geth roast: dogbert17++ created pull request #288:
Add test for RT #126642
14:31
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126642
Geth roast: 84e5309567 | (Jan-Olof Hendig)++ | S12-subset/subtypes.t
Add test for RT #126642
14:37
roast: dec07641f6 | (Aleks-Daniel Jakimenko-Aleksejev)++ (committed using GitHub Web editor) | S12-subset/subtypes.t
Merge pull request #288 from dogbert17/test-rt-126642

Add test for RT #126642
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126642
ugexe nine: I think the current behavior is surprising, and the behavior in that commit is what I think most people would expect 14:43
combined with #1118 it works even better 14:49
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Baggy no longer uses HLL hash internally 15:22
travis-ci.org/rakudo/rakudo/builds/256377981 github.com/rakudo/rakudo/compare/7...7ecb60f006
buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
Geth rakudo/nom: b147217ed8 | (Elizabeth Mattijsen)++ | 2 files
Make List.roll(*) about 1.5x faster

  - also eliminate R:I.Roller: there are no clients for that anymore
17:41
lizmat m: use nqp; class A { has $.foo is default(42) }; my $a := nqp::create(A); use nqp; dd nqp::getattr($a,A,q/$!foo/).VAR.default; dd nqp::getattr($a,A,q/$!foo/) 17:48
camelia 42
Any $!foo = Any
lizmat does anybody have anyi idea where the Any is actually put in the attribute ? 17:49
note, this is using nqp to create the object, so it's not Mu.BUILDALL
m: use nqp; class A { has $!foo is default(42) }; my $a := nqp::create(A); use nqp; dd nqp::getattr($a,A,q/$!foo/).VAR.default; dd nqp::getattr($a,A,q/$!foo/) 17:50
camelia 42
Any $!foo = Any
lizmat ^^ same for private attribute
MasterDuke coverable6: HEAD use nqp; class A { has $.foo is default(42) }; my $a := nqp::create(A); 17:59
coverable6 MasterDuke, gist.github.com/9d7de0f51b59f0ebc8...68e376d346 18:00
lizmat MasterDuke: ;e 18:01
MasterDuke: pretty sure that's basically most of standard startup you see there 18:02
MasterDuke lizmat: i've thought about an option to exclude the lines seen from `perl6 -e ''`, but if those lines also get run from your code then they'll get dropped 18:17
lizmat MasterDuke: do you have an order in which the lines are executed ? 18:18
MasterDuke and there's a default filter of 'SETTING' applied, which you can change with a `grep=<foo>` option
lizmat then I would exclude anything until the first INIT block is executed
MasterDuke no, i believe it's lost when they're consolidated to ranges
timotimo the coverage code tries its best to not output the same line hit twice 18:19
because every little report costs a bit of time and disk space
and we run through a whole lot of lines
MasterDuke timotimo: is lizmat's suggestion possible?
timotimo i haven't actually measured. you could just comment out a single line from moarvm and see what difference it makes, though
it would be possible to build an op that gives a "start measuring now" point, though 18:20
MasterDuke oh, interesting!
timotimo should be easy to find by grepping for HIT 18:24
bbl
MasterDuke timotimo: allowing multiple counts might be interesting. would make it possible to subtract `perl6 -e ''`. run it, store its results (in a Bag?) and then just subtract that from the given code's results
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make List.roll(*) about 1.5x faster 18:42
travis-ci.org/rakudo/rakudo/builds/256415582 github.com/rakudo/rakudo/compare/f...47217ed80c
dogbert17 m: say (4,5,6).tail(-9999999999999999999) 19:03
camelia Cannot unbox 64 bit wide bigint into native integer? in block <unit> at <tmp> line 1??
dogbert17 hmm
AlexDaniel m? 19:05
dogbert17 RT #130285 19:06
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130285
AlexDaniel dogbert17: I count that as fixed 19:09
m: say (4,5,6).head(-9999999999999999999)
camelia ()?
AlexDaniel ah wait, was it changed recently? 19:10
m: say (4,5,6).head(-9999999999999999999999999999999999999999999999999999999999999999999999999999999)
camelia ()?
AlexDaniel m: say (4,5,6).tail(-9999999999999999999)
camelia Cannot unbox 64 bit wide bigint into native integer? in block <unit> at <tmp> line 1??
AlexDaniel o_o
ugexe github.com/rakudo/rakudo/blob/8574...tor.pm#L78 19:11
only has `int` candidate
m: sub skip-at-least(int $toskip) { }; skip-at-least(-9999999999999999999) 19:12
camelia Cannot unbox 64 bit wide bigint into native integer? in sub skip-at-least at <tmp> line 1? in block <unit> at <tmp> line 1??
ugexe m: say "xxx".match(/./, :th(9999999999999999999)); # another spot it shows up 19:17
camelia Cannot unbox 64 bit wide bigint into native integer? in block <unit> at <tmp> line 1??
dogbert17 bisect: NEW=HEAD OLD=93b0ffae5292791bf14b0d say (4,5,6).tail(-9999999999999999999) 19:19
bisectable6 dogbert17, Bisecting by exit code (old=93b0ffa new=b147217). Old exit code: 0
dogbert17, bisect log: gist.github.com/dc0e91dfb019e48c83...a57218c0cd
dogbert17, (2017-03-27) github.com/rakudo/rakudo/commit/66...ac225ab260
Geth rakudo: ugexe++ created pull request #1121:
Cache compunits by id instead of spec str
19:38
AlexDaniel ugexe: so is it broken or not? 19:42
BenGoldberg m: multi small(int) { True }; multi small(Int) { False }; say small 99999; 19:43
camelia True?
BenGoldberg m: multi small(int) { True }; multi small(Int) { False }; say small 9999999999999999999999999;
camelia False?
AlexDaniel m: say (4,5,6).tail(2**63) 19:44
camelia (4 5 6)?
AlexDaniel dogbert17: sorry, it is still broken
ah wait 19:45
AlexDaniel is blind
BenGoldberg Personally, I think that "Cannot unbox 64 bit wide bigint ..." is a LTA error message.
ugexe the error is from a low level iterator method, so i'd imagine there are performance reasons its not just a multi 19:47
AlexDaniel BenGoldberg: well, this error message is a huge improvement of what we had previously 19:53
from* rather 19:54
lizmat m: $ 6 'use nqp; my $l := nqp::list; dd nqp::atpos($l,9999999999999999999) # the underlying issue 19:55
camelia 5===SORRY!5=== Error while compiling <tmp>?Two terms in a row?at <tmp>:1?------> 3$7?5 6 'use nqp; my $l := nqp::list; dd nqp:? expecting any of:? infix? infix stopper? statement end? statement mod…
lizmat m: use nqp; my $l := nqp::list; dd nqp::atpos($l,9999999999999999999) # the underlying issue
camelia Cannot unbox 64 bit wide bigint into native integer? in block <unit> at <tmp> line 1??
lizmat aka, nqp itself doesn't know how to handle bigints in native lists 19:56
timotimo MasterDuke: have you tried letting it count every line multiple times? 20:00
MasterDuke timotimo: yeah. before: `perl6 -e ''` resulted in a 5347 line file (3950 unique), after it resulted in a 142637 line file (4254 unique) 20:02
haven't yet played with coverable to see what its output would be 20:03
jnthn I think we're a way off having enough memory that you need a bigint to index your array... :) 20:05
MasterDuke timotimo: but would nqp::(start|stop)coverage be a better idea? 20:06
timotimo i'd prefer a single op, like nqp::coveragecontrol 20:19
with a 1 or 0
MasterDuke sure 20:26
would there be a new MVM_* env variable? MVM_COVERAGE_CONTROLLED=1 means only actually write to MVM_COVERAGE_LOG's value once a nqp::coveragecontrol(1) has happened? 20:32
timotimo oh 20:41
i didn't think of that
MasterDuke i.e., MVM_COVERAGE_LOG=cover.log means write everything (and nqp::coveragecontrol is a noop), adding MVM_COVERAGE_CONTROLLED=1 means nqp::coveragecontrol does something 20:46
timotimo yeah
it'd have to be like that
BenGoldberg I think it would make more sense if the error message was "Cannot unbox bigint into 64 bit native integer" ... or even leave out the '64 bit' entirely. 21:02
AlexDaniel m: say (4,5,6).tail(-2**63+4) 21:12
camelia ()?
AlexDaniel m: say (4,5,6).tail(-2**63+3)
camelia Cannot unbox 64 bit wide bigint into native integer? in block <unit> at <tmp> line 1??
AlexDaniel why is it like this?
m: say (4,5,6,7).tail(-2**63+3)
camelia Cannot unbox 64 bit wide bigint into native integer? in block <unit> at <tmp> line 1??
AlexDaniel m: say (4,5,6,7).tail(-2**63+4)
camelia Cannot unbox 64 bit wide bigint into native integer? in block <unit> at <tmp> line 1??
AlexDaniel ah… ok, so there's our length
I can't get any “useful” overflow out of this, any ideas? 21:13
samcv good * 21:36
MasterDuke s: Array, Slip 22:44
SourceBaby MasterDuke, Something's wrong: ?ERR: Cannot resolve caller sourcery(Array, Slip); none of these signatures match:? ($thing, Str:D $method, Capture $c)? ($thing, Str:D $method)? (&code)? (&code, Capture $c)? in block <unit> at -e line 6?? 22:45
MasterDuke s: Array, Slip, \()
SourceBaby MasterDuke, Something's wrong: ?ERR: Cannot resolve caller sourcery(Array, Slip, Capture); none of these signatures match:? ($thing, Str:D $method, Capture $c)? ($thing, Str:D $method)? (&code)? (&code, Capture $c)? in block <unit> at -e line 6??
MasterDuke s: Array, 'Slip'
SourceBaby MasterDuke, Something's wrong: ?ERR: Type check failed in binding to parameter '&code'; expected Callable but got Method+{<anon|73243776>} (Method+{<anon|7324377...)? in sub do-sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 42? in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 33? in blo
MasterDuke s: Array, 'Slip', \()
SourceBaby MasterDuke, Sauce is at github.com/rakudo/rakudo/blob/b147...Any.pm#L65
MasterDuke s: Array, 'list', \() 22:47
SourceBaby MasterDuke, Sauce is at github.com/rakudo/rakudo/blob/b147...Any.pm#L52
MasterDuke s: Array, 'infix:<,>', \() 22:48
SourceBaby MasterDuke, Something's wrong: ?ERR: Could not find candidate that can do \()? in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 29? in block <unit> at -e line 6??
MasterDuke s: Array, '&infix:<,>', \()
SourceBaby MasterDuke, Something's wrong: ?ERR: Could not find candidate that can do \()? in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 29? in block <unit> at -e line 6??
MasterDuke s: Slip,'from-iterator' 23:45
SourceBaby MasterDuke, Sauce is at github.com/rakudo/rakudo/blob/b147...st.pm#L182