00:03 MasterDuke joined
Geth MoarVM: 6466cd639a | (Timo Paulssen)++ | src/io/asyncsocketudp.c
expose both hostname and port of received datagrams
00:18
MoarVM: 4085554569 | (Timo Paulssen)++ | src/io/asyncsocketudp.c
ignore libuv-caused "fake" empty datagrams
00:33 travis-ci joined
travis-ci MoarVM build errored. Timo Paulssen 'ignore libuv-caused "fake" empty datagrams' 00:33
travis-ci.org/MoarVM/MoarVM/builds/350092886 github.com/MoarVM/MoarVM/compare/9...8555456951
00:33 travis-ci left 01:00 lizmat joined 02:10 releasable6 joined 02:56 ilbot3 joined 03:10 scovit joined 03:34 shareable6 joined 05:58 dogbert21 joined 06:18 domidumont joined 06:25 domidumont joined 07:21 domidumont joined 07:27 brrt joined 07:32 robertle joined 07:46 domidumont joined
Geth MoarVM: dffe6f94d8 | (Bart Wiegmans)++ | src/jit/expr.c
We already have a MVM_spesh_get_lex_type

No need to have another hacky version of it
07:55
MoarVM: e639691a77 | (Bart Wiegmans)++ | src/jit/linear_scan.c
[JIT] Release only spill slots without active overlap

When a value spilled to memory has ceased to be useful, its memory slot can be reused. However, it is possible that there exists an active live range that starts before the end of the spilled values' active range. If the memory slot is released it might then be possible that this overlapping live range might need to be spilled itself and ... (7 more lines)
07:59 AlexDaniel joined 08:12 AlexDaniel joined 08:23 brrt joined
brrt this fixes the issues we saw when changing the order of the store and the write barrier 08:23
08:39 brrt joined 08:46 brrt joined 09:00 zakharyas joined 09:15 Util joined
brrt do we we ever need a write barrier without a store? 09:24
09:31 zakharyas joined 09:36 zakharyas joined 10:54 brrt joined 11:45 lizmat joined 12:00 shareable6 joined 12:19 lizmat_ joined 12:49 domidumont joined 13:15 Ven`` joined 13:50 domidumont joined
Geth MoarVM: 535cc2b6cc | (Bart Wiegmans)++ | 2 files
Create store_write_barrier macro

This orders the STORE node before the write-barrier, so that we don't need to spill the computed address over the conditional call to MVM_gc_write_barrier_hit. It is not necessary to do the write barrier prior to the actual assignment (its purpose is to register the root object as a cross-generation root if the root is old and the value ... (11 more lines)
14:08
14:32 shareable6 joined, zakharyas joined
brrt nicest thing would be to define MVM_JIT_STORE_WRITE_BARRIER, and have an MVM_jit_expr_apply_macro(tc, tree, macro_name, operands[]) 14:34
14:41 buggable joined 14:59 brrt joined 15:03 brrt joined 16:00 AlexDaniel joined 16:10 brrt joined
brrt or maybe MVM_JIT_MACRO_STORE_WRITE_BARRIER, but I'm not too picky 16:12
oh, but I really should be fixing the bug about removing successors twice 16:14
16:20 releasable6 joined 16:21 buggable joined 16:22 ZofBot joined 16:24 brrt joined 16:25 zakharyas joined, huggable joined
brrt anybody any idea how to add a new fact on on an newly created value? 16:35
timotimo "a new fact"? don't you just |= the flag into its flags? 16:40
17:37 Kaiepi joined
timotimo if we jit if_s, EXPR could be jitted ... 17:45
unless there's something after that that would also bail it
btw, EXPR is humongous %) 17:46
!cursor_pass wants unless_s, btw 17:51
after i put getuniprop_* into the jit, numish now fails with nqp::inf, and another numish fails with ... backendconfig %) 18:04
it checks if backendconfig has a key "moarlib" 18:05
maybe jvm doesn't support <:No+:Nl>
18:06 zakharyas joined 18:11 Kaiepi joined 18:23 robertle joined 18:29 Kaypie joined 18:32 domidumont joined 18:41 Kaiepi joined 19:51 dogbert2 joined 19:59 brrt joined
dogbert17 o/ 20:02
brrt \o 20:03
timotimo o/
dogbert17 brrt: if a JIT log states 'Cannot get template for: ctxlexpad', does that mean that some template has not yet been implemented
brrt timotimo: yeah, you're rigt, i figured it out
timotimo that's right dogbert17
brrt correct
dogbert17 looking at one of my project euler solutions
brrt i also figured out that i want to majorly refactor the optimize_iffy things 20:04
dogbert17 it complains about ctxlexpad, unless_s, captureposarg and sp_getlex_o 20:05
and if_s 20:06
brrt i din't implement unless_s and if_s
dogbert17 interesting 20:07
the implication being that atm 'if' statements can't be jit'ed ? 20:09
timotimo only for native strings 20:10
the op doesn't map 1:1 to if statements either
dogbert17 sounds complicated 20:11
brrt they can be jitted, but they won't be jitted by the expression JIT 20:12
dogbert17 ok, I understand 20:14
brrt - optimize_istrue_isfalse should be, approximately, as clever as optimize_iffy 20:34
I see it as three steps 20:35
- break if_o in istrue + if_i
- lower istrue into a const (if known value) or (isconcrete/unbox_i/etc) 20:36
- if the operand of if_i is a constant, remove the conditional
20:55 Kaypie joined 21:00 zakharyas joined 21:11 shareable6 joined 21:21 brrt joined
brrt i'm not sure why optimize_istrue_isfalse wants to use a temp register for the negation 21:22
timotimo me neither, and i wrote the thing :P
21:22 bisectable6 joined, shareable6 joined
brrt hmm, i have a theory 21:23
if we .\\\\\\\
if we keep using the same register, the writer part of the facts would be wrong 21:24
so we'd need a new version of that register (rather than a new register per se) 21:25
also,there can't possibly be anything after if_s in a basic block :-) 21:26
it's branching after all
21:31 shareable6 joined 21:32 shareable6 joined 21:39 MasterDuke joined
MasterDuke brrt: i've sort of lost track of what you're working on. you're recent jit fixes are not related to why my ishash template isn't working, correct? 21:41
brrt correct 21:43
i'll look at that later
MasterDuke cool, just wanted to make sure i was following what was going on correctly 21:44
brrt :-) 21:45
21:49 committable6 joined
MasterDuke .ask brrt would a jit bisect with my ishash template be useful? 22:11
yoleaux MasterDuke: I'll pass your message to brrt.