Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:19 lizmat left 01:06 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix I think that's largely impossible though, isn't it? .count-only must be able to figure out the elems without advancing the iterator. Even if we assume an already-fully-reified and cached list as input, you'd be left with a problem that you'd be executing the &Callable more than expected number of times in constructs like .grep[*-1], because you'd be calling it first to get the count-only, and then to get 01:12
the actual elems later
timotimo oh, OK
01:17 Zoffix left
Geth roast: 2908259df2 | (Zoffix Znet)++ | S05-mass/rx.t
Remove trailing whitespace
01:24
roast: dc89c6ac4d | (Zoffix Znet)++ | S05-mass/rx.t
[v6.d REVIEW] improve fancy-digit backref test desc

Orig: github.com/perl6/roast/commit/2667e3edf
01:25
roast: c6ea815c72 | (Zoffix Znet)++ | S05-mass/rx.t
[v6.d REVIEW] Improve fancy-digit ** regex op test

  - Test we match correct portion of data
  - Test non-matching case too
Orig: github.com/perl6/roast/commit/876785a94
01:29
01:30 fake_space_whale joined 01:31 p6bannerbot sets mode: +v fake_space_whale
Geth roast: ee1fedaf94 | (Zoffix Znet)++ | S32-str/utf8-c8.t
Fix whitespace at end of file
01:34
roast: 03042d0584 | (Zoffix Znet)++ | S32-str/utf8-c8.t
[v6.d REVIEW] Use standard test file routines

Orig: github.com/perl6/roast/commit/65979128a
01:35
01:39 huggable joined, ChanServ sets mode: +v huggable, p6bannerbot sets mode: +v huggable
Geth roast: ea161c99bf | (Zoffix Znet)++ | S32-array/create.t
[v6.d REVIEW] Expand .Array on list writability tests

Test we actually get correct results Orig: github.com/perl6/roast/commit/890ca310e
01:49
01:58 fake_space_whale left
Geth roast: 884e75d976 | (Zoffix Znet)++ | S02-types/array-shapes.t
[v6.d REVIEW] Improve .= new shaped array test

Test we actually got right result.
  (tested with .perl's rather than is-deeply, because the latter
dies with partially dim. views NYI) Orig: github.com/perl6/roast/commit/1f05be281
02:02
roast: 596f4fe414 | (Zoffix Znet)++ | S02-types/num.t
[v6.d REVIEW] Clarify tests that use U+2212 minus

Document we use fancy minus, to care for fonts that render it the same as regular minus, making tests look duplicated. Orig: github.com/perl6/roast/commit/bbdbb0158
02:05
roast: db0c3d1fa7 | (Zoffix Znet)++ | S32-num/rat.t
[v6.d REVIEW] Improve Real cmp RatStr test

  - Test we get right results too
  - Test in reverse order as well
Orig: github.com/perl6/roast/commit/6bbfcc0ee
02:08
02:24 klapperl left 02:33 klapperl joined 02:34 p6bannerbot sets mode: +v klapperl 03:11 MasterDuke left 03:14 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke
Geth roast: c25b7343e8 | (Zoffix Znet)++ | S16-io/lines.t
[v6.d REVIEW] Use standard temp file routine

Orig: github.com/perl6/roast/commit/7b680fe5e
04:10
roast: f9574de418 | (Zoffix Znet)++ | S32-num/rat.t
[v6.d REVIEW] Improve Rational subclass test

Check the resultant types and num/den too Orig: github.com/perl6/roast/commit/a4290dfd6
04:28
6.d-prep: 97a61a3ee9 | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/README.md
Update Zoffix's review commit and note weak points of the review
04:33
roast: 50138a913f | (Zoffix Znet)++ | 2 files
[v6.d REVIEW] Move Supply:U.skip test to appendix

We might alter this behaviour, based on R#2100 results
  github.com/rakudo/rakudo/issues/2100
Orig: github.com/perl6/roast/commit/24af69c6c
04:41
synopsebot R#2100 [open]: github.com/rakudo/rakudo/issues/2100 [6.d review][@LARRY][audit entire codebase for such issues][consistency] Inconsistent behaviour with methods called on :Us
Geth rakudo: 741ae6f4ed | (Zoffix Znet)++ | t/spectest.data
Add APPENDICES/A02-some-day-maybe/concreteness.t to test files
04:42
roast: 07f252d974 | (Zoffix Znet)++ | S17-supply/skip.t
[v6.d REVIEW] Fix broken Supply.skip test

The test was passing for the wrong reason: death was due to Supply.new call and not the erroneous .skip call. Fix by using more precise test. Orig: github.com/perl6/roast/commit/24af69c6c
04:46
roast: e0cdd5deef | (Zoffix Znet)++ | S32-list/batch.t
[v6.d REVIEW] Precisify .batch tests

Test the actual types and their structure instead of the stringified shadow (e.g, the tests would not detect Arrays being returned instead of Seqs and the 20 batch test would not detect lack of batching instead of a single batch being returned)
Orig: github.com/perl6/roast/commit/ca42a3750
04:52
roast: fc96f8a711 | (Zoffix Znet)++ | S12-class/attributes.t
[v6.d REVIEW] Improve :: class in attr init test

Actually test the resultant attribute has correct type Orig: github.com/perl6/roast/commit/afe080a02
04:59
06:18 lizmat joined 06:19 p6bannerbot sets mode: +v lizmat 06:47 lizmat left 07:46 klapperl_ joined 07:47 p6bannerbot sets mode: +v klapperl_ 07:49 klapperl left 08:22 MasterDuke left
Geth rakudo: 3b61d4f230 | (Elizabeth Mattijsen)++ | src/core/Iterator.pm6
Update internal doc of Iterator.count-only/bool-only
08:41
rakudo: 6977973dec | (Elizabeth Mattijsen)++ | src/core/Map.pm6
Simplify the Map.kv iterator

Using the now existing roles/classes/iterators
08:53 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel
Geth rakudo: 64ddacab8f | (Elizabeth Mattijsen)++ | src/core/Str.pm6
Make sure Str.Lines iterator has correct bool-only semantics
09:05
rakudo: 9738dfbf21 | (Elizabeth Mattijsen)++ | src/core/Shaped1Array.pm6
Correct 1dim shaped array iterator count-only/bool-only semantics
09:23
09:33 robertle joined 09:34 p6bannerbot sets mode: +v robertle
Geth rakudo: d1e80dfe28 | (Elizabeth Mattijsen)++ | src/core/Str.pm6
Correct Str.comb.count-only/bool-only semantics
09:36
rakudo: 9ff1736761 | (Elizabeth Mattijsen)++ | src/core/Str.pm6
Disable Str.comb(N).count-only/bool-only semantics for now

This Iterator needs an overhaul.
09:44
09:52 donaldh left 10:30 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Make sure Str.Lines iterator has correct bool-only semantics' 10:30
travis-ci.org/rakudo/rakudo/builds/426044584 github.com/rakudo/rakudo/compare/6...ddacab8f8e
10:30 travis-ci left
buggable [travis build above] ☠ Did not recognize some failures. Check results manually. 10:31
10:50 cognominal-p6 joined 10:51 p6bannerbot sets mode: +v cognominal-p6
[Tux] Rakudo version 2018.08-54-g9ff173676 - MoarVM version 2018.08-38-g477ec445f
csv-ip5xs0.939 - 0.954
csv-ip5xs-207.570 - 7.704
csv-parser24.822 - 25.170
csv-test-xs-200.427 - 0.450
test8.091 - 9.441
test-t2.160 - 2.165
test-t --race0.941 - 1.007
test-t-2038.216 - 40.236
test-t-20 --race13.374 - 13.810
10:54
Geth roast/moaaar-iterator-cover: 09f561314f | (Zoffix Znet)++ | MISC/bug-coverage.t
Cover more iterator opt tests

Covers bugs fixed by
  github.com/rakudo/rakudo/commit/64ddacab8f
  github.com/rakudo/rakudo/commit/9738dfbf21
  github.com/rakudo/rakudo/commit/d1e80dfe28
  github.com/rakudo/rakudo/commit/9ff1736761
Merge blocked by R#2075 github.com/rakudo/rakudo/issues/2075 as some of the opt methods return incorrect values after IterationEnd
11:30
synopsebot R#2075 [open]: github.com/rakudo/rakudo/issues/2075 [6.d review][@LARRY] Meaning of `.bool-only`/`.count-only` after receiving IterationEnd ?
6.d-prep: 5b4e388811 | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/FEATURES.md
List another roast commit that hangs on .bool-only/.count-only meaning

Needs resolution to R#2075 github.com/rakudo/rakudo/issues/2075
11:32
synopsebot R#2075 [open]: github.com/rakudo/rakudo/issues/2075 [6.d review][@LARRY] Meaning of `.bool-only`/`.count-only` after receiving IterationEnd ?
cognominal-p6 notes that both in the doc and specs repository, sigiless and sigiled sometimes written with two l, sometimes with one. For sake of grepping, we should choose only one of the two spellings. 11:34
11:41 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke 11:56 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Disable Str.comb(N).count-only/bool-only semantics for now 11:56
travis-ci.org/rakudo/rakudo/builds/426052368 github.com/rakudo/rakudo/compare/d...f173676126
11:56 travis-ci left 12:01 cognominal-p6 left
MasterDuke are [Tux]'s most recent numbers a bit slower? or am i imagining that? 12:22
m: my Int $a := 50_000_000; Nil for ^$a; say now - INIT now 13:19
camelia 4.1872836
MasterDuke m: use nqp; my Int $a := 50_000_000; my Int $b := -1; my Int $c := nqp::clone($a); nqp::while(nqp::isle_I(nqp::bind($b,nqp::add_I($b,1,Int)),$c),Nil); say now - INIT now 13:20
camelia 3.6378301
MasterDuke timotimo: ^^^ something like that for the non-native/literal/constant for-range -> while conversion? 13:22
lizmat, et al.: any thoughts either? 13:24
13:27 ExtraCrispy joined 13:28 p6bannerbot sets mode: +v ExtraCrispy 13:33 cognominal-p6 joined 13:34 p6bannerbot sets mode: +v cognominal-p6 13:48 diakopter joined, p6bannerbot sets mode: +v diakopter 13:49 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix MasterDuke: that's not a constant tho 13:49
m: my Int $b := -1; $b := 42; say $b
camelia 42
MasterDuke heh, that should have been "non-(native/literal/constant)" 13:50
i.e., we currently only do the conversion/optimization for natives/literals/constants, i'm trying to see if it can be done for other things 13:52
Zoffix Ah, right, I thought it'd be breakable, but it ain't 13:54
m: my Int $a := 5; for ^2 { .say for ^$a; $a := 10 };
camelia 0
1
2
3
4
0
1
2
3
4
5
6
7
8
9
Zoffix like with this case, but the optimized version does handle it (tho it got an off-by-one error)
but... 13:55
Zoffix tries to break it
13:57 cognominal-p6 left 13:58 cognominal-p6 joined, p6bannerbot sets mode: +v cognominal-p6
Zoffix m: EVAL 'use MONKEY; augment class Range { multi method new (0, 10) { ^3 } }'; my Int $a := 5; for ^2 { .say for ^$a; $a := 10 }; 13:59
camelia 0
1
2
3
4
0
1
2
Zoffix DIHWIDT? :)
That probably applies to native case too
yup 14:00
$ perl6 -e 'm: EVAL 「use MONKEY; augment class Range { multi method new (0, 10) { ^3 } }」; .print for ^10'
0123456789
$ perl6 --optimize=off -e 'm: EVAL 「use MONKEY; augment class Range { multi method new (0, 10) { ^3 } }」; .print for ^10'
012
Zoffix votes DIHWIDT 14:01
MasterDuke goes afk for a bit, but hope the comments keep coming
14:02 Zoffix left 14:21 cognominal-p6 left 14:26 cognominal-p6 joined 14:27 p6bannerbot sets mode: +v cognominal-p6
AlexDaniel cognominal-p6: please file a ticket 14:37
cognominal-p6: pretty sure it will be fixed very quickly in the doc repo
15:19 cognominal-p6 left 15:31 cognominal-p6 joined 15:32 p6bannerbot sets mode: +v cognominal-p6 15:35 cognominal-p6 left, cognominal-p6 joined 15:36 p6bannerbot sets mode: +v cognominal-p6 15:59 cognominal-p6 left 16:14 diakopter left 17:03 diakopter joined, p6bannerbot sets mode: +v diakopter 18:11 cognominal-p6 joined 18:12 p6bannerbot sets mode: +v cognominal-p6
MasterDuke if nqp::objprimspec($a) == 0, that means it's an object, right? 18:12
18:13 Kaiepi left
timotimo that's right 18:13
18:14 Kaiepi joined
MasterDuke thanks 18:14
18:15 p6bannerbot sets mode: +v Kaiepi
timotimo i got a little shout-out by jnthn for my profiler frontend work during an SPW2018 lightning talk <3 18:15
MasterDuke nice 18:16
18:25 cognominal-p6 left, cognominal-p6 joined 18:26 p6bannerbot sets mode: +v cognominal-p6 18:31 diakopter left 18:35 diakopter joined, p6bannerbot sets mode: +v diakopter 18:51 cognominal-p6 left 18:57 Kaiepi left 19:03 Kaiepi joined, p6bannerbot sets mode: +v Kaiepi
MasterDuke hm, why would `my $vname := $!symbols.find_lexical_symbol($node.name);` die with `Cannot look up attributes in a VMNull type object`? fwiw, `$node.name` is '$max' 19:07
19:10 cognominal-p6 joined 19:11 p6bannerbot sets mode: +v cognominal-p6 19:22 cognominal-p6 left, cognominal-p6 joined 19:23 p6bannerbot sets mode: +v cognominal-p6 19:37 cognominal-p6 left
Geth nqp/master: 4 commits pushed by (Stefan Seifert)++, (Paweł Murias)++ 20:06
rakudo/master: 5 commits pushed by (Stefan Seifert)++ 20:07
20:25 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci NQP build failed. Paweł Murias '[jvm] Implement nqp::hllbool and nqp::hllboolfor' 20:25
travis-ci.org/perl6/nqp/builds/426181532 github.com/perl6/nqp/compare/715ae...40e8d75f07
20:25 travis-ci left 20:36 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci Rakudo build failed. Stefan Seifert 'Remove obsolete p6settypes extop 20:36
travis-ci.org/rakudo/rakudo/builds/426181691 github.com/rakudo/rakudo/compare/9...4e82259be3
20:36 travis-ci left
buggable [travis build above] ☠ Did not recognize some failures. Check results manually. 20:36
MasterDuke nine: just got a segv in stage parse 20:41
nine: gist.github.com/MasterDuke17/52aac...c09f8282b4 20:46
same segv with expr jit disabled, but seems to be ok with regular jit disabled 20:48
21:29 user___ joined 21:30 diakopter left, user___ left
MasterDuke no segv under valgrind so far 21:30
21:32 user___ joined, user___ left 21:33 diakopter joined, p6bannerbot sets mode: +v diakopter
timotimo looks like there's a small performance win in json::fast by putting the parse stuff into methods in a class and having $!pos and $!text instead of passing them around as arguments 22:30
22:32 cognominal-p6 joined 22:33 p6bannerbot sets mode: +v cognominal-p6
MasterDuke timotimo: did you see my question about $!symbols.find_lexical_symbol? any idea? 22:37
22:39 cognominal-p6 left, cognominal-p6 joined 22:40 p6bannerbot sets mode: +v cognominal-p6
timotimo oh? i must have missed it 22:41
oh, there it is
did you get a breakpoint in gdb to stop there?
MasterDuke i haven't yet 22:42
timotimo m: say 3.47 / 3.72
camelia 0.932796
timotimo about 7% less time spent when using attributes
MasterDuke nice 22:43
timotimo that shall add up since so many things use JSON::Fast 22:44
m: say 3.18 / 3.36 22:48
camelia 0.946429
timotimo only 5% with postrelease-opts
but that may not land in the next release after the next one, so ...
MasterDuke i breaked at that MVM_exception_throw_adhoc 22:49
timotimo OK, can you find the right spot in the bytecode? call MVM_dump_bytecode(tc)? 22:50
MasterDuke 00220 getattr_o loc_24_obj, loc_22_obj, loc_3_obj, '$!symbols', 0 22:51
...
00228 findmeth loc_22_obj, loc_23_obj, 'find_lexical_symbol'
timotimo is there a --> anywhere?
MasterDuke 00217 -> getlex_no loc_22_obj, 'self' 22:52
should i gist this whole section?
timotimo ok, that's probably just the cur_op being incremented after finishing the getattr or something
it sounds like your self may be null
22:54 cognominal-p6 left
MasterDuke i've made some edits, but i'm essentially in here github.com/rakudo/rakudo/blob/mast...1048-L1057 22:54
timotimo aha 22:58
you're inside a sub, yeah?
that makes it difficult to use $!foo :)
MasterDuke: does that give you a way forward? 23:04
MasterDuke oh, ha 23:06
timotimo++ 23:09
timotimo sorry it took like four hours :( 23:10
MasterDuke no worries, there was dinner and gdbing the new segv in that time 23:11
23:14 epony left
MasterDuke heh, just turning the sub into a method won't work 23:20
timotimo i hope you also put a self. in front of every time it's used? 23:22
otherwise it'll look a bit like this
nqp-m: foo()
camelia Cannot invoke this object (REPR: Null; VMNull)
at <tmp>:1 (<ephemeral file>:<mainline>)
from gen/moar/stage2/NQPHLL.nqp:1567 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/NQPHLL.moarvm:eval)
from gen/moar/stage2/NQPHLL.nqp:1806 (/home/camelia/rakudo…
MasterDuke yeah, but `Cannot call method 'get_bound' on a null object` 23:23
i.e., i did put self
timotimo from a method? :) 23:25
MasterDuke nope, it's in the mainline of the class 23:26
timotimo that's not going to work, then
at that point, no instance exists 23:27
MasterDuke yep 23:28
timotimo i'm not entirely sure why you'd call the method from the mainline of the class anyway 23:38
23:43 fake_space_whale joined
MasterDuke get_bound is used to populate %range_bounds 23:43
github.com/rakudo/rakudo/blob/mast...1062-L1087
23:44 p6bannerbot sets mode: +v fake_space_whale
timotimo well, it'll be extremely difficult to get at %!symbols in that case 23:44
so maybe pass %!symbols as an argument whenever it's potentially needed
then get_bounds can become a sub again
MasterDuke yeah, that might be easier overall 23:45
23:47 Kaiepi left
Geth nqp: db0f1175ad | (Zoffix Znet)++ | tools/build/MOAR_REVISION
[MoarVM Bump] Brings 17 commits

MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...5-gef47433 ef47433 Teach the lego JIT to compile hllbool, too c1c2b7e JIT compile hllboolfor 756a97d JIT compile hllbool 7c5740f Teach spesh to replace hllboolfor by the result for known values ... (13 more lines)
23:50
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...5-gef47433
rakudo: 3272207ae5 | (Zoffix Znet)++ | tools/build/NQP_REVISION
[NQP Bump] Brings 11 commits

NQP bump brought: github.com/perl6/nqp/compare/2018....6-gdb0f117 db0f117 [MoarVM Bump] Brings 17 commits a640e8d [jvm] Implement nqp::hllbool and nqp::hllboolfor 92f2ba0 [js] Implement nqp::hllbool and nqp::hllboolfor 3651131 Add tests for nqp::hllboolfor and nqp::hllbool ... (26 more lines)
¦ rakudo: version bump brought these changes: github.com/perl6/nqp/compare/2018....6-gdb0f117
23:52 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix MasterDuke: ^ try with those bumps. I don't get no segvs 23:54
ZOFVM: Files=1305, Tests=153123, 152 wallclock secs (21.77 usr 3.28 sys + 3244.31 cusr 172.21 csys = 3441.57 CPU)
nine++ # don't know if it's real or if google is giving more juice to my VM, but I'm seeing an 11% improvement in stresstest run 23:55
(actually, I forgot how many days ago I ran last stresstest, so it might be lizmat++'s perf improvements too :)) 23:57
MasterDuke Zoffix: same segv (i was on HEAD of all three repos before, so not surprising the bumps didn't change anything) 23:58
Zoffix ZOFFLOP: t/spec/S17-promise/lock-async-stress2.t SEGV + "MoarVM panic: Corrupt multi dispatch cache: cur_node != 0, re-check == (nil)" on another un 23:59
timotimo bit the hllbool merge was very new, wasn't it?
MasterDuke i had rebuilt immediately after it landed
timotimo OK
rakudo fully rebuilt?