01:17 Kaiepi joined 02:26 Kaiepi joined 02:57 ilbot3 joined 04:16 unicodable6 joined 06:44 brrt joined 06:46 domidumont joined 06:54 domidumont joined
brrt good * #moarvm 07:02
some things i noticed about the (dot rendering of) the broken graph; there's top-level LOAD nodes that go unreferenced
which is *weird*
shouldn't happen
nwc10 good *, brrt 07:18
brrt ohai nwc10 07:19
07:19 domidumont joined 07:46 brrt joined
samcv good * brrt 07:57
brrt good * samcv
so, i've now traced one correct version of the code, now the second correct version
08:28 AlexDaniel joined 08:59 robertle joined
jnthn Hurrah, Praha finally has some snow that is sticking! 09:58
yoleaux 01:07Z <timotimo> jnthn: a heapsnapshot on hypergrepping for .is-prime gives me a frame count that grows exponentially ... we might want to change something about that :)
01:17Z <timotimo> jnthn: here's the framecounts for getting the 20_000th prime: hack.p6c.org/~timo/exponential_framecounts.png
01:18Z <timotimo> jnthn: actually can't use https on hack, so: hack.p6c.org/~timo/exponential_framecounts.png
01:37Z <timotimo> jnthn: also, here's the "top frames by count": gist.github.com/timo/3ef8b2c702fe4...83ad274834
02:08Z <japhb> jnthn: Is there a version of your Brno talk slides with the speaker notes? Several slides ask questions that you seem to have answered and/or discussed live.
brrt all the while AMS has become so warmed-up i've come to work in a shirt 10:01
jnthn You can keep the warm, I want the snow I waited all winter for to last a bit :P
.tell japhb No, I'm afraid not (I generally don't do speaker notes for talks only I'll deliver, since I can't comfortably look at them while speaking anyway; it hadn't occurred to me that writing such things could be useful to people not at the talk :)) If there's any particular questions, feel free to ask. 10:05
yoleaux jnthn: I'll pass your message to japhb.
nwc10 jnthn: you and your short commute, not caring about the snow :-) 10:08
10:36 zakharyas joined
AlexDaniel jnthn: gahā€¦ we had snow here for so long I think I forgot the feeling of walking on the actual ground 10:53
yoleaux 5 Mar 2018 22:36Z <Zoffix> AlexDaniel: RE bug or not: docs.perl6.org/type/Signature#Type_Constraints "The code in where clauses has some limitations: anything that produces side-effects (e.g. printing output, pulling from an iterator, or increasing a state variable) is not supported and may produce surprising results if used. Also, the code of the where clause may run more than once for a single typecheck in some
5 Mar 2018 22:46Z <Zoffix> AlexDaniel: FWIW, also: m: my &foo = { use nqp; $/ := nqp::atkey((nqp::ctxcaller nqp::ctxcaller nqp::ctxcaller nqp::ctxcaller nqp::ctxcaller nqp::ctxcaller nqp::ctx), '$/'); m/(.)/ }; sub a($a where &foo) { say $/ }; a ā€˜Xā€™
jnthn AlexDaniel: Maybe it eventually gets tiresome...there's been so little of it here this year, I've missed it :) 11:06
brrt hey, i need a reality check for a second 11:54
with the JIT bisect I can find out which basic block miscompiles 11:55
can I, should I, how insane would it be, to have an interpreter interpet the machine code (along with emulating memory), and figuring out where the difference starts to exist between two compiles 11:56
I can, that's for sure
jnthn That sounds...pretty involved :) 11:57
timotimo how about you use gdb to single-step instructions and xi to dump the heap contents + registers every step of the way?
brrt whats xi? 11:58
gdb crashes if i insert a breakpoint in the code (because it tries to lookup the instruction it believes should've been there instead)
timotimo "examine" or something 12:00
in that case, just put a proper C call to a real function and breakpoint on that in gdb :)
brrt true
yeah, i could do that as well 12:01
alternatively, presumably less involved, maybe still crazy
what if I had a wrapper program that compiled and executed a specific tree 12:02
the point being, I want smaller, simpler tests (proofs) of correctness for parts of the JIT 12:05
traced the second, correct, frame 12:58
[Coke] (warm) it was -1C on the way in today 13:16
timotimo i could do with a lot less flu, tbh 13:40
14:07 shareable6 joined 14:08 shareable6 joined 14:12 shareable6 joined 14:13 brrt joined 14:20 shareable6 joined 14:22 shareable6 joined 14:30 shareable6 joined 14:34 shareable6 joined 14:48 nativecallable6 joined, committable6 joined, releasable6 joined, notable6 joined, quotable6 joined, bisectable6 joined, bloatable6 joined, reportable6 joined, coverable6 joined, benchable6 joined, evalable6 joined, statisfiable6 joined 14:49 unicodable6 joined, greppable6 joined, squashable6 joined, shareable6 joined 14:50 shareable6 joined 14:51 shareable6 joined 15:02 zakharyas joined
japhb timotimo: I think most of the world's population would agree with you at this point. It's been a brutal year. 15:37
yoleaux 10:05Z <jnthn> japhb: No, I'm afraid not (I generally don't do speaker notes for talks only I'll deliver, since I can't comfortably look at them while speaking anyway; it hadn't occurred to me that writing such things could be useful to people not at the talk :)) If there's any particular questions, feel free to ask.
japhb Thanks, jnthn 15:38
15:43 shareable6 joined 16:11 zakharyas joined, brrt joined 16:23 lizmat joined
brrt so, aside from a *bunch* of very weird double spills, the closest thing I can see, when I change the order of the write barrier and the store, is that we overwrite the spill position of the object we require as a value, with an object that we would need to assign to 16:34
oh, aha
*ahem* 16:35
lizmat
.oO( rubberducking )
brrt so, here's the theory 16:37
we retire spilled values in order to reclaim their memory storage positions 16:39
we do this retiring whenever we've reached the tile that represents the last possible use for that value
however
when we spill live range to memory, we actually work backwards from it's first definition to its last use
that first definition may well be before the last use of the live range that we retired 16:41
so we allow the compiler to reclaim storage space 'backwards' where it wasn't free at all
ok, i can fix that 16:43
16:53 domidumont joined
brrt ok, different error this time 16:55
so we're having some effect at least...
but an earlier error, even :$ 16:57
17:02 robertle joined 17:26 shareable6 joined 17:27 lizmat joined 17:40 Kaiepi joined
timotimo i don't understand the usage of the Lock::Async inside the implementation of interval 17:54
it doesn't seem to be shared with anything
oh
yes it totally is shared
never mind
jnthn Also, back pressure
timotimo i'm trying to make signal supplies cancellable 17:57
i just cargo-culted a Tappable :) 17:58
jnthn I think it also will need something in MoarVM doing in signal.c 17:59
Home time, bbl
18:00 Kaiepi joined
timotimo yup, i built that part first 18:01
cool, it works 18:06
18:06 lizmat_ joined
timotimo stresstest while i buy groceries 18:06
Geth MoarVM: 723fc7511c | (Timo Paulssen)++ | src/io/signals.c
make signal handlers cancellable
18:42
18:43 zakharyas joined 18:49 Kaiepi joined 18:51 Kaiepi joined 18:58 shareable6 joined 18:59 shareable6 joined
timotimo hm, actually, the rakudo change ought to work without the moarvm change, so i can just push it right now 19:03
indeed!
19:06 shareable6 joined
Geth MoarVM: 9c4b3891c3 | (Timo Paulssen)++ | src/io/signals.c
remove stray debug output
19:07
19:53 Geth joined 20:12 zakharyas joined 20:19 shareable6 joined, Kaiepi joined 20:36 zakharyas joined 20:40 zakharyas joined 20:53 shareable6 joined 21:07 releasable6 joined 21:13 shareable6 joined 21:14 Kaiepi joined 22:16 shareable6 joined 23:00 geekosaur joined