| IRC logs at
Set by AlexDaniel on 12 June 2018.
00:55 Kaeipi joined 00:56 Kaeipi left 01:38 lucasb left 01:44 leont_ left 04:26 Kaiepi joined 06:33 sena_kun joined 08:11 Altai-man joined 08:13 sena_kun left
Geth MoarVM: b8653caec1 | (Stefan Seifert)++ | 3 files
Turn gen2 default allocation off on (de)serialization failures

This allows for a more graceful recovery of serialization errors.
MoarVM: a6118ff229 | (Stefan Seifert)++ | src/strings/utf8.c
New debug helper: MVM_dump_string

A debug build now contains the MVM_dump_string(tc, string) function which prints the given MVMString to STDERR. Useful e.g. in gdb sessions.
nine got fed up of typing MVM_string_utf8_maybe_encode_C_string 09:42
Geth MoarVM/precomp-singleprocess-endgame: f530a56aba | (Stefan Seifert)++ | 14 files
09:47 MasterDuke joined
MasterDuke . 09:50
tellable6 2020-11-27T22:14:22Z #moarvm <jnthn> MasterDuke But you can defer the alignment and just make it work at all first; it won't be a big change
hey MasterDuke, you have a message:
MasterDuke hm, it seems to work for a trivial example 09:52
oh, but a slightly better example segvs 10:13
nine MasterDuke: as it must 10:48
sa->d is uninitialized, yet you dereference it in sa->d.s[0] = ... 10:49
MasterDuke yeah. so i'm not sure how to alloc this construct (struct of members plus dynamic array at end) as one piece 10:51
but afk for a bit&
nine the allocation is correct, usage is not
Anyway I think what jnthn meant was more in the lines of: struct h { int b; int c }; struct a { struct h h; union { char *s; int i; } d; }; struct a *sa = malloc(sizeof(struct h) + 2 * sizeof(char *)); 10:57
11:05 domidumont joined 11:16 domidumont1 joined 11:18 domidumont left 12:12 sena_kun joined 12:14 Altai-man left 12:25 raku-bridge joined, raku-bridge left, raku-bridge joined 12:41 leont_ joined
MasterDuke nine: did that too, same result 12:58
nine 13:03
MasterDuke ah, thanks 13:04
nine++ oO(he hasn't evolved to a ten yet?) 13:05
.oO(Forever nine! I want to be, forever nine)
timotimo he's just a nine out of nine 13:19
MasterDuke any benefit to putting the metadata (three MVMuint64s) in a struct vs leaving them as is? 13:34
timotimo makes code to access it a little less annoying? 13:41
13:46 lucasb joined
MasterDuke there's another level then. `body->ssize` vs `body->meta.ssize`, right? 13:49
timotimo isn't there a syntax in one of the newer C standards that lets you put a variable-size array at the end of a struct? 14:02
MasterDuke i think just `foo[]` for the member 14:05
but i wasn't sure how to do that with our union
Geth MoarVM/master: 20 commits pushed by (Nicholas Clark)++
timotimo i would assume you can array the union, perhaps array each entry
Geth MoarVM/hash-bits-in-metadata: 24 commits pushed by (Nicholas Clark)++
14:52 leont_ is now known as leont 15:00 domidumont joined 15:03 domidumont1 left 15:16 domidumont1 joined, domidumont left 15:37 leont left 15:39 leont joined 15:49 leont left 15:52 leont joined 16:00 leont left 16:03 leont joined 16:11 Altai-man joined 16:13 sena_kun left 16:48 leont left 17:05 leont joined 17:22 leont left 17:32 leont joined 17:40 leont left, leont joined 18:21 leont left, leont_ joined 18:46 zakharyas joined 18:49 domidumont1 left 19:01 leont_ left 19:02 leont_ joined 19:05 leont_ left, leont_ joined
MasterDuke why is `value->i64 = (MVMint64)*(&(body->slots.i8) + body->start + real_index);` ok, but `value->n64 = (MVMnum64)*(&(body->slots.n64) + body->start + real_index);` gives 'error: pointer value used where a floating-point was expected'? 19:49
nwc10 I think that the first one is compiling without warning because you are actually casting from a pointer to an integer 19:51
and the seond one is casting from a pointer to floating point
and I think that you have missed a * in each
I think you wanted something more like 19:52
value->i64 = *(MVMint64 *)(&(body->slots.i8) + body->start + real_index);
value->n64 = *(MVMnum64 *)(&(body->slots.n64) + body->start + real_index);
but I question why the firstis slots.i8 19:53
but the secnod slots.n64
when you're deferencing as something different in the first
MasterDuke that bit (*->64 = *.i8) is unchanged from the original code 19:54
but thanks, you've fixed it for me 19:55
20:12 sena_kun joined 20:14 Altai-man left 20:45 patrickb joined 22:44 zakharyas left 22:55 ChanServ left 23:01 ChanServ joined, sets mode: +o ChanServ 23:32 patrickb left 23:54 sena_kun left, sena_kun joined 23:58 sena_kun left