github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
nwc10 jnthn: forgot to say - our cellar is somewahat chaoatic. Yesterday I discovered that some plonker had left an empty crate of beer bottles blocking the beer fridge. How silly. 10:15
jnthn Oh deer 10:23
*dear
hah
I read it as "a crate of empty beer bottles"
Apparently my brain auto-corrects for pessimism... 10:24
nwc10 acually, your brain corrected it to what I meant to type to be clear
the crate had all slots full with empty beer bottles
to be clear, the good news was that once removed, the beer fridge could be opened and was *not* itself emptya
and also, there is another crate which has some beer in it still, with which to restock the fridge 10:25
It is good that today is Friday, because I appear to be in need of a weekend
jnthn :) 10:26
Here we order groceries online, and they will take away empty beer bottles (at least, the redeemable ones) and credit the account for it with the next shopping
This is convenient
Kaiepi when do you need to use MVMROOT? i have a feeling async sockets don't entirely use it properly after reading that slew of commits related to MVMROOT from a while ago, but i can't really say i know anything about how it's used besides how it takes MVMObject-based structs 12:10
timotimo i can explain 12:11
moarvm's GC relies on a set of roots to find every live object; one effect of not having an MVMROOT when it's needed is that an object can be freed erroneously while some C code is still working with it
it also uses marking to find all references both to find more live objects, and to have the pointers that need updating 12:12
so another effect of an MVMROOT being missing is that the pointer you're not rooting will point at the previous location where an object lived
so you'll have to MVMROOT all pointers that you'll be using in the future, and they have to be rooted at the moment a GC run could happen, which is everywhere something gets allocated or when a GC_SYNC_POINT is explicitly put into the code 12:13
Kaiepi perfect, so what i had written before i thought to ask about it was right 12:23
i knew the pointers to gced could move after reading those commits, but not really the details as to why 12:25
thanks
timotimo YW 12:46
Guest15407 hmm, ==95035== Conditional jump or move depends on uninitialised value(s) 15:00
==95035== at 0x50662D5: MVM_hll_map (hll.c:196)
brrt \o 21:07
.tell pamplemousse I found something interesting (I think); it's possible to define the 'main' in a shared library 21:08
tellable6 brrt, I'll pass your message to pamplemousse
brrt so it's possible to create a, say, libmoarstarter.so, which we'd link to the ELF-ppacked file, and which would know to load the CU from memory 21:10
jnthn How, does that work in a cross-platform manner? 22:03