github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
05:29
farcas1982regreg left
05:42
farcas1982regreg joined
05:50
farcas1982regreg left
07:00
sena_kun joined
07:07
Geth left,
Geth joined
|
|||
MasterDuke | huh. i created a template for sp_getcurhllsym, but it isn't getting called (i added a call to MVM_dump_backtrace in the template and it isn't happening). i've never seen this happen before, anybody have an idea? | 07:10 | |
no surprise the opcode is never seen here github.com/MoarVM/MoarVM/blob/mast...xpr.c#L788 but now to figure out why... | 07:21 | ||
so i guess the tree build happens before spesh re-writes getcurhllsym into sp_getcurhllsym. is there a way to trigger a rebuild? and is that desired? | 07:23 | ||
08:07
evalable6 left,
linkable6 left,
evalable6 joined
08:10
linkable6 joined
|
|||
MasterDuke | gist.github.com/MasterDuke17/958a9...619190cf4c my current patch (minus the big diff from running update_ops.p6) if anyone is curious | 08:16 | |
08:22
robertle joined
08:39
robertle left
08:47
robertle joined
08:56
Altai-man_ joined
08:59
sena_kun left
09:04
robertle left
09:05
robertle joined
|
|||
MasterDuke | huh, running some other code i see sp_getcurhllsym at github.com/MoarVM/MoarVM/blob/mast...pr.c#L788, but the template still still isn't being run?! | 09:19 | |
10:13
robertle left
10:39
robertle joined
10:56
robertle left
10:58
sena_kun joined
10:59
Altai-man_ left
|
|||
timotimo | MasterDuke: well, what does the speshlog say? | 10:59 | |
11:55
pamplemousse joined
11:57
robertle joined
12:06
robertle left
|
|||
MasterDuke | in BB 14: `getcurhllsym r12(2), r6(6)`, then after, in BB 7: `sp_getcurhllsym r12(2), r6(6), sslot(3) # [000] specialized from getcurhllsym`. those are the only mentions of getcurhllsym | 12:47 | |
12:56
Altai-man_ joined
12:59
sena_kun left
|
|||
timotimo | MasterDuke: and what of the exprjit comments? | 13:01 | |
MasterDuke | the beginning of BB 7 has `[010] start of exprjit tree with sp_p6oget_s`, then there's`[012] JIT: not devirtualized (type unknown)`, then the start of BB 8 has `[013] expr bail: Cannot get template for: sp_getlex_o` | 13:02 | |
oh oops. two ops before the sp_getcurhllsym is `[011] expr bail: Cannot get template for: sp_bindlex_os` | 13:03 | ||
timotimo | well, yeah, then there's no surprise that sp_getcurhllsym never shows up in the exprjit | ||
MasterDuke | heh, can't believe i just now noticed that | 13:04 | |
hm, what else uses getcurhllsym. even just `say ` in a loop has that `expr bail: Cannot get template for: sp_bindlex_os` right before it | 13:06 | ||
ugh. even just calling `nqp::getcurhllsym(q|$COMPILER_CONFIG|)` in a loop has `expr bail: Cannot get template for: sp_getlex_o` a couple instructions before in the BB | 13:12 | ||
timotimo | if we can't test the exprjit template, better to just leave it out; if it never gets hit anyway, it'll only very rarely cause the exprjit to actually bail out because of it | 13:14 | |
MasterDuke | it's a pretty simple template though, seems correct to me | 13:24 | |
timotimo | i've said that a couple of times about my own templates as well :D | 13:32 | |
Geth | MoarVM: MasterDuke17++ created pull request #1281: Spesh and JIT getcurhllsym |
14:09 | |
14:22
robertle joined
|
|||
AlexDaniel | okay | 14:55 | |
I expected this to be more explosive | |||
m: my $b = ‘a’ x 66666; say ‘a’ ~ $b | |||
camelia | Iteration past end of grapheme iterator in block <unit> at <tmp> line 1 |
||
AlexDaniel | m: my $b = ‘a’ x 66666; say ‘b’ ~ $b | ||
camelia | baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa… | ||
AlexDaniel | github.com/MoarVM/MoarVM/blob/3d8f...ops.c#L813 | 14:56 | |
uint16 lol | |||
14:57
sena_kun joined
|
|||
AlexDaniel | R#3660 | 14:58 | |
linkable6 | R#3660 [open]: github.com/rakudo/rakudo/issues/3660 [MoarVM] Iteration past end of grapheme iterator (my $b = ‘a’ x 99999; say ‘b’ ~ $b) | ||
14:59
Altai-man_ left
|
|||
AlexDaniel | my dream is to create a string with negative length :) | 15:02 | |
I already know how to do that with arrays | 15:03 | ||
m: my int @x[-2**63]; say +@x | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Name must begin with alphabetic character at <tmp>:1 ------> 3my int @7⏏5x[-2**63]; say +@x expecting any of: constraint infix infix stopper … |
||
AlexDaniel | m: my int @x[-2**63]; say +@x | ||
camelia | -9223372036854775808 | ||
AlexDaniel | that's github.com/Raku/old-issue-tracker/issues/6470 | ||
timotimo | brilliant | 15:06 | |
signed numbers were a mistake | |||
AlexDaniel | it's an old bug | 15:08 | |
though back then most of my 99999 tickets were considered DIHWIDT | 15:09 | ||
15:09
pamplemousse left
|
|||
AlexDaniel | but strings seem to have some protections | 15:10 | |
though I'm not sure what's going on with final_strand_match_with_repetition_count | |||
because it definitely overflows | |||
so we'll end up with a shorter string but that doesn't cause any fun unfortunately | 15:11 | ||
MVM_STRING_MAX_STRANDS 64 | 15:13 | ||
too low to overflow anything | |||
MasterDuke | final_strand_match_with_repetition_count should definitely return an MVMuint32, that's what repetitions is | 15:15 | |
but changing that doesn't fix the error | |||
AlexDaniel | MasterDuke: did you also change the variable? | 15:16 | |
where it saves the result of final_strand_match_with_repetition_count | |||
MasterDuke | whoops, yeah, that fixed it | 15:17 | |
AlexDaniel | commit it then | ||
Maybe I can overflow this: github.com/MoarVM/MoarVM/blob/3d8f...ps.c#L1985 | 15:18 | ||
m: say 2¹⁶ ÷ 64 | |||
camelia | 1024 | ||
Geth | MoarVM: 8b109c68b1 | (Daniel Green)++ | src/strings/ops.c Repetitions are actually MVMuint32 Fixes github.com/rakudo/rakudo/issues/3660 |
||
AlexDaniel | soo need to join that many strings | ||
waaaaait | 15:24 | ||
m: my @a; @a.push: (‘a’..‘z’).pick x 2 for ^100000; say @a.join(‘-’ x 2).elems | |||
camelia | 1 | ||
AlexDaniel | hahaha | ||
well, it does something! | |||
ah damn, I'm looking at .elems not .chars -_- | 15:25 | ||
nevermind, time to sleep | |||
15:36
robertle left
15:40
AlexDaniel left
16:01
robertle joined
16:20
robertle left
16:56
Altai-man_ joined
16:59
sena_kun left
|
|||
MasterDuke | huh. perf says `say(1) for ^2_000_000` spends 16.6% in MVM_spesh_frame_walker_get_lex (most expensive) and 5.6% in MVM_frame_find_dynamic_using_frame_walker (3rd most expensive) | 17:12 | |
17:18
farcas1982regreg joined
|
|||
MasterDuke | 26000001 calls for '$*OUT', 26000143 for '$*PROMISE' | 17:24 | |
17:33
pamplemousse joined
17:53
Kaiepi left
17:56
Kaiepi joined
|
|||
MasterDuke | this is the sort of thing the versioned hash jnthn mentioned would be used for, right? | 18:25 | |
18:35
farcas1982regreg left
18:57
sena_kun joined
18:59
Altai-man_ left
20:56
Altai-man_ joined
20:59
sena_kun left
22:41
Altai-man_ left
22:44
Kaiepi left,
Kaiepi joined
|