00:00 greppable6 joined, squashable6 joined, committable6 joined
Geth MoarVM: MasterDuke17++ created pull request #802:
Fix typos in comments
00:42
MoarVM: 0db0645f54 | MasterDuke17++ (committed using GitHub Web editor) | src/io/syncfile.c
Fix typos in comments
00:51
MoarVM: 3a100179cd | (Aleks-Daniel Jakimenko-Aleksejev)++ (committed using GitHub Web editor) | src/io/syncfile.c
Merge pull request #802 from MasterDuke17/patch-1

Fix typos in comments
02:57 ilbot3 joined 03:50 Kaiepi joined 06:16 AlexDaniel joined 06:42 brrt joined 07:27 releasable6 joined 07:41 brrt joined
brrt good * 07:41
yoleaux 13 Feb 2018 23:09Z <jnthn> brrt: Don't suppose a data breakpoint on the thing we're overwriting could help at al?
brrt i kind of know where we're overwriting from, so there's that
or i have a very good suspicion, i should say 07:42
08:05 brrt joined 08:23 Voldenet joined
brrt so, i have a hypothesis 08:26
nwc10 good *, brrt
more nuanced than "it's software" or "because it hates me" ?
brrt a bit more than that 08:28
i don't have a hypothesis wrt the getlexstatic_o failure, though 08:29
but that's another matter
see, the GC fails because it expects to mark an object in the args buffer
of the frame
that location in fact contains a small integer (1) 08:31
clearly, that doesn't work
so, how did a small integer get into the args buffer, you ask 08:32
well...
there is something i call a 'hack'
which is the istrue_o hack
iirc, for if_o, the VM allocates a bit of memory to hold the return argument if the istrue is a method call 08:34
and, long story short, we don't
(the JIT does not)
so what we use instead is use the args buffer to keep our boolean return value 08:51
and sometimes, that args buffer should really have held an object rather than a number 08:52
my guess is, the reason we don't get away with that, is that the expr JIT allocates more registers
and we compute a fixed register offset for our purposes 08:53
(for the istrue hack)
so these things are just incompatible
luckily, we currently have a mechanism to allocate a new register in the JIT 08:54
and mark it an integer, no less
09:12 zakharyas joined 09:37 zakharyas joined
brrt well, i confirmed one hypothesis, which is that in broken version, we have two spilled registers, and in the correct version, we have none 10:02
nine progress! 10:16
Kaiepi what are you working on? 10:18
brrt i'm working on an evil bug 11:02
that looked like a miscompile but wasn't
Kaiepi damn those aren't fun 11:04
brrt :-) 11:05
well,
it's also a nice bit of detective works
*work
11:19 Kaiepi joined
brrt hmm, annoyingly, the spill memory thing i was planning to use isn't a thing at that point in the program 11:47
because it only exists for the compiler
which isn't initialized during graph building
this would not be a problem if we just did one-pass compilation 11:48
11:56 Kaiepi joined
timotimo maybe now that this huge leak has been removed we'll want to consider an earlier rakudo star re-release this time 12:22
12:43 brrt joined
brrt i have my doubts about the MVM_spesh_get_temp_reg bit 12:48
specifically about the in_use
because it only works if you are processing the thing in a specific order 12:52
which is no good for me as i'm processing the graph long after spesh has processed it 13:03
so i'm thinking of allocating-and-caching a special istrue field in the jit graph structure
13:27 zakharyas joined 13:30 zakharyas joined 13:38 lizmat joined 13:48 Voldenet joined 14:29 zakharyas joined, unicodable6 joined 14:54 evalable6 joined 15:01 AlexDaniel joined
dogbert11 does MVM_JIT_DISABLE also turn off the expr jit? 15:02
timotimo yes, you can't have exprjit without the template jit 15:05
dogbert11 timotimo, thx 15:06
timotimo: one more q, does the jit run if MVM_SPESH_DISABLE=1 ? 15:08
timotimo it does not 15:10
we could make it possible with a bit of work
dogbert11 aha, plating around a bit with the JIT bug, noticed that MVM_SPESH_DISABLE=1 made it disappear 15:11
*playing
as did MVM_SPESH_NODELAY=1
timotimo yeah, spesh disable will kick out everything 15:15
15:16 bisectable6 joined
dogbert11 wonders what the env vars MVM_JIT_EXPR_LAST_FRAME and MVM_JIT_EXPR_LAST_BB does 15:33
15:46 zakharyas joined 16:21 brrt joined
brrt which JIT bug? 16:21
MVM_JIT_EXPR_LAST_FRAME and MVM_JIT_EXPR_LAST_BB restrict the expression JIT to a subset of compiled frames and basic-blocks within those frames 16:22
dogbert11 brrt: github.com/rakudo/rakudo/issues/1483 16:27
brrt yeah, i know about that one
i'm working on a fix :-) 16:28
dogbert11 I noticed that it disappeared if MVM_JIT_EXPR_LAST_FRAME <= 40 but crashed for values > 40, so I became curious
brrt uhuh 16:29
i use it for bisecting miscompiles
i.e. i can set MVM_JIT_EXPR_LAST_FRAME to increasing (doubling) values
and then use binary search when i find a broken frame
eh, a broken compile
same for MVM_JIT_EXPR_LAST_BB
but, note that it needs MVM_SPESH_BLOCKING to work correctly 16:30
dogbert11 aha
that changes the numbers a bit, I get 16:32
MVM_SPESH_BLOCKING=1 MVM_JIT_EXPR_LAST_FRAME=51 ./perl6 -e 'for 1..1000 { $^i %% $_ && put "$_ " for ^$i }' # works
MVM_SPESH_BLOCKING=1 MVM_JIT_EXPR_LAST_FRAME=52 ./perl6 -e 'for 1..1000 { $^i %% $_ && put "$_ " for ^$i }' # fails
brrt uhuh 16:44
it's block 52 frame 6 (on linux), (51 frame 6 on os x, for me)
i know where it's going wrong :-)
anyway, the toolsjit-bisect.pl program does all that automatically 16:45
tools/jit-bisect.pl
including checking if the issue is bisectable in this way
17:21 zakharyas joined 17:31 zakharyas joined
dogbert11 brrt++ 17:33
17:47 zakharyas joined 18:15 zakharyas joined 18:46 brrt joined, AlexDaniel joined
brrt .ask jnthn if he'd object that i move the if_o / istrue hack upwards to spesh graph processing 18:48
yoleaux brrt: I'll pass your message to jnthn.
19:00 Ven`` joined 19:03 Ven` joined 19:05 Ven` joined
japhb jnthn: Why does MoarVM commit 004680a03a0 refer to tc->cur_frame in the middle of the new return line rather than just cur_frame? 19:13
19:22 Ven`` joined 20:15 Ven`` joined 20:44 zakharyas joined
jnthn .tell brrt I think we already rewrite that op when we can there anyway, so it probably will work out OK 20:44
yoleaux 18:48Z <brrt> jnthn: if he'd object that i move the if_o / istrue hack upwards to spesh graph processing
jnthn: I'll pass your message to brrt.
jnthn shareable6: 004680a03a0 20:45
shareable6 jnthn, whateverable.6lang.org/004680a03a0
jnthn hm, that's a 404
AlexDaniel: Is shareable6 for turning a sha1 into a link to where it lives, or did I misunderstand? :)
ingy hi jnthn :) 20:46
jnthn japhb: looks like I forgot to update that
o/ ingy
AlexDaniel` jnthn: yes, but then it also serves these files 20:54
AlexDaniel but at this moment it does not perform any checks 20:55
is that a moarvm commit?
whateverable.6lang.org/004680a03a0?type=moarvm
jnthn: ā†‘
jnthn oh, right, I was just hoping for a github link :P 20:56
Is there a bot that does that? :) 20:57
AlexDaniel github.com/perl6/whateverable/issues/289
Hah, not yet. There was supposed to be a bot for that
guessable
but NYI :)
jnthn Ah...I wrongly guessed that's what shareable might do :-) 20:58
timotimo i'd also enjoy a commandline tool that just searches all my perl6 repos for a sha1 20:59
AlexDaniel jnthn: well, the main goal for shareable is to make it easier for contributors to run these bots. Now you don't have to build hundreds of different rakudo versions, you just start the bot and if some build is not found it's just pulled from the server
jnthn oh, neat :)
AlexDaniel and that already works actually
timotimo *neat* 21:00
jnthn Yeah, it's very cool. Just not the thing I happened to need this time :) 21:01
walk, bbiab
21:05 zakharyas joined 21:06 zakharyas joined 21:31 Ven`` joined 21:51 Ven`` joined
samcv good * 22:04
22:05 Ven`` joined
dogbert11 hello samcv 22:08
22:09 brrt joined
brrt ohai samcv 22:10
yoleaux 20:44Z <jnthn> brrt: I think we already rewrite that op when we can there anyway, so it probably will work out OK
brrt ok got it, then that's what i'll attempt to do 22:11
AlexDaniel samcv: o/ 22:18
samcv: up for the release this weekend, right?
samcv did we get the JIT bug resolved yet?
AlexDaniel github.com/rakudo/rakudo/issues/1483 22:19
(has some discussion on that)
samcv imo if it can be fixed within a shortish period of time we should delay the release 22:23
22:23 Kaiepi joined 22:25 Kaiepi joined 22:26 MasterDuke joined
timotimo well, we can throw out istrue from the exprjit and it won't have the problem any more, right? or even if it needs to be kicked out of the template jit, not such a gigantic problem 22:28
though i might be misunderstanding something
22:50 Kaiepi joined