github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
MasterDuke | timotimo: "VALGRIND_CREATE_BLOCK returns a "block handle", which is a C int value. You can pass this block handle to VALGRIND_DISCARD." we don't have any good/existing way of passing this around do we? | 00:02 | |
00:20
squashable6 left
00:25
squashable6 joined
|
|||
MasterDuke | dogbert17: around? | 00:27 | |
01:00
lizmat joined
01:02
lizmat left
01:24
lucasb left
|
|||
MasterDuke | dogbert17, timotimo: i've run dogbert17's shortened example in github.com/MoarVM/MoarVM/issues/1093 a bunch of times using my moarvm that i compiled for github.com/MoarVM/MoarVM/issues/1023 (i.e., with --valgrind, GC_DEBUG=2, and that VALGRIND_CREATE_BLOCK patch) and i don't get any problems at all. just `line 12: sleep 25 Timeout. Asking the process to stop Proc finished: exitcode=0 signal=1 Program finished` | 01:40 | |
05:08
robertle left
05:42
domidumont joined
05:46
domidumont left
06:10
domidumont joined
07:08
lizmat joined
07:11
lizmat left
07:21
patrickb joined
07:29
patrickb left
07:35
patrickb joined
07:51
zakharyas joined
10:27
domidumont left
11:31
zakharyas left
12:14
domidumont joined
|
|||
dogbert17 | MasterDuke: confirmed, when changing the nursery size and settin MVM_GC_DEBUG != 0 hides the bug | 12:52 | |
12:56
lucasb joined
12:59
zakharyas joined
13:29
patrickb left
13:35
zakharyas left
13:43
patrickb joined,
brrt joined
|
|||
brrt | \o | 13:43 | |
I've been thinking again.... | 13:50 | ||
I think I want to move to a linear IR in the 'expression' JIT | |||
Internally | |||
The external interface can still maintain the existing tree form | |||
The main advantage of a linear IR is that every operation gets an (explicit) location | 13:53 | ||
dogbert17 | hello brrt | 14:07 | |
are there any disadvantages to your new approach? | 14:08 | ||
14:27
zakharyas joined
14:43
brrt left
15:41
Geth left
15:42
Geth joined
15:55
zakharyas left
16:05
lucasb left
16:46
patrickb left
16:54
robertle joined
16:57
patrickb joined
17:20
sena_kun joined
17:28
brrt joined
17:37
brrt left
17:49
domidumont left
18:24
domidumont joined
18:32
domidumont left
19:14
brrt joined
|
|||
brrt | dogbert17: sure. One thing that is very cheep in the graph approach is to insert code in the tree (you can just append to the end of the buffer, then write the pointer) | 19:17 | |
... that doesn't have to be more expensive in the linear IR, but if you intend to use a single buffer, then you need to shift everything | 19:20 | ||
for instance, spesh uses a double-linked list | 19:21 | ||
that's not so bad, actually | 19:22 | ||
but it is quite expensive in memory, as I need a *lot* of opcodes to represent a simple thing | |||
e.g. a single add_i would expand to 5 or so nodes | 19:23 | ||
so that'd be 80 bytes just to maintain the double-linked list | |||
and, double-linked lists preclude the use of addresses as identifiers | 19:24 | ||
20:41
Geth left
20:44
Geth joined
|
|||
nine | but how long are these lists in practice? | 21:10 | |
21:27
Geth left
21:28
Geth joined
|
|||
brrt | nine: I want them to contain all the basic blocks eventually, so, longish | 22:13 | |
22:24
brrt left
22:47
lizmat joined
22:55
patrickb left
|