github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
00:06 patrickz left 00:41 MasterDuke left
Geth MoarVM/experimental-hllize-speshing: c026ae48d6 | (Timo Paulssen)++ | src/spesh/optimize.c
WIP further hllize speshializations. can't really test it, tho
01:08
07:39 zakharyas joined 07:42 MasterDuke joined 08:30 patrickb joined
MasterDuke looks like our libatomic_ops is kind of outdated. upstream is now at 7.6.10 (soon to 7.6.12 github.com/ivmai/libatomic_ops/blo...ChangeLog) and we're only at 7.6.2 08:34
08:36 Altai-man_ joined
MasterDuke it's odd, if `MVM_string_utf8_c8_encode_C_string` is in my list of allocating functions to check (even if it's the only one!) then the plugin reliably causes a segfault in gcc when compiling src/io/filewatchers.c 08:45
10:27 sena_kun joined 10:28 Altai-man_ left 10:49 MasterDuke left 11:20 zakharyas left
Kaiepi what are MVM_BC_get_I64 and MVM_BC_get_N64 for? 11:37
timotimo they grab an int64 or num64 literal out of the bytecode 11:51
Kaiepi when would they be used over .i64/.n64 in interp.c? 11:52
11:53 patrickb left 11:54 MasterDuke joined
timotimo you mean on GET_REG? 11:57
Kaiepi yeah 12:03
timotimo GET_REG reads a 16 bit integer from the bytecode at an offset and gives you a pointer to the register in the current frame's work area ("stack frame") selected by that integer value 12:04
Kaiepi ah 12:06
so that's probably not what i want
timotimo depends entirely upon what you want to do 12:07
Kaiepi i'm writing an op for a function that takes a couple MVMuint32, but these are user input 12:08
what i have atm is the op itself takes a couple uint64 and casts them to MVMuint32 to pass to the function, and on the rakudo side of things i use nqp::unbox_u and UInt to make sure the input is valid 12:09
but i'm not really sure if this is the right way to go
timotimo you will need a register, then 12:22
well, multiple 12:25
12:26 Altai-man_ joined 12:27 zakharyas joined 12:29 sena_kun left
MasterDuke is there ever a case when you're freeing a struct member (e.g., `MVM_free(foo->bar)`) that you shouldn't (or wouldn't want t) also set the member to `NULL` (i.e., use `MVM_free_null(foo->bar)`)? 12:31
jnthn If it will never be accessed again, setting it to NULL is a waste of time. 12:32
MasterDuke so if before an MVM_exception_throw_* it's unnecessary? 12:44
12:47 squashable6 left 12:49 squashable6 joined 12:54 domidumont joined 12:57 Kaiepi left 13:02 Kaiepi joined, Kaiepi left 13:03 Kaiepi joined 13:09 domidumont left
Geth MoarVM: MasterDuke17++ created pull request #1291:
Add gcc plugin to check for missing free before throw
13:19
14:27 sena_kun joined 14:29 Altai-man_ left 15:05 Kaeipi joined 15:09 Kaiepi left 15:27 Kaeipi is now known as Kaiepi 15:51 konvertex joined 16:26 Altai-man_ joined 16:28 sena_kun left 16:45 squashable6 left 16:48 squashable6 joined 17:55 squashable6 left 17:56 squashable6 joined 18:07 zakharyas left 18:27 sena_kun joined 18:28 lucasb joined 18:29 Altai-man_ left 19:30 zakharyas joined
nine MasterDuke: you can't say that in general. Exceptions can be caught and the free'd thing may be in a long lived data structure 20:21
20:26 Altai-man_ joined 20:29 sena_kun left 20:52 zakharyas left 22:27 sena_kun joined 22:29 Altai-man_ left
MasterDuke what about if you free the struct at the end? do you ever need to NULL the members after you free them? 22:37
23:33 lucasb left