github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 7 June 2013.
01:19 FROGGS joined 03:01 Jimmy__ joined
Jimmy__ diakopter: ping 03:02
diakopter plong 03:03
Jimmy__: ^
Jimmy__ diakopter: not not thread-safe
diakopter: irclog.perlgeek.de/moarvm/2013-06-09#i_7174629 03:04
diakopter but that's why stuff hangs off instance; b/c there could be more than 1 instance
Jimmy__ diakopter: so github.com/MoarVM/MoarVM/commit/30...8e#L7R1233 is not thread-safe also? 03:05
diakopter right 03:06
any in-process cache needs to hang off instance, unless it's non-managed memory such as the unicode names map
(and immutable) 03:07
Jimmy__ diakopter: ok, I'm not good at threads, but per irclog.perlgeek.de/moarvm/2013-06-09#i_7174629, and github.com/MoarVM/MoarVM/commit/15...4c4cc#L0R8 was written by jnthn++, I think we should discuss it with jnthn a bit 03:09
diakopter: :P
Jimmy__ didn't write any threads code...
diakopter okay yes, it's thread-safe assuming all the threads are of the same MVMInstance 03:10
but long-term, it would be nice to be multiple-instance-safe
for instance 03:11
a process that's embedding moarvm
such as perl
might start up thousands of instances one after another if that's what suits it
Jimmy__ diakopter: you're right. I think there should be tc->instance->mutexs->hllconfig_mutex or something?
diakopter right
no need to make a separate malloc'd table for mutexs-> there.. just make instance bigger 03:12
Jimmy__ diakopter: yes
diakopter afk 20 min & 03:14
Jimmy__: there are MANY opportunities for obvious small optimizations in any runtime code that does temporary malloc.. to cache the space 03:15
feels like 30 or so
afk for realz
Jimmy__ diakopter: ok, I think I understand you 03:16
by use fork, and with threads, it's not thread safe 03:17
Jimmy__ still not sure :P 03:20
but should be similar 03:21
03:22 benabik joined
Jimmy__ diakopter: I think some is multiple-instance-safe since they are run once and not use malloc 03:55
04:10 Jimmy__ joined
Jimmy__ hmm, may not sure 04:40
diakopter Jimmy__: malloc is okay 05:00
you just can't store MVMObject process wide
Jimmy__ diakopter: welcome back :P
diakopter or any malloc things that contains MVMObject pointers
or any malloc thing that contains pointers to memory managed by 6model reprs 05:01
Jimmy__ still doesn't know what's wrong when not MVMROOTed
diakopter changing the subject?
or are you asking if those are related?
Jimmy__ well, I feel a headache whenever I try to understand threads-related things. 05:03
diakopter: related 05:04
diakopter they're not related
Jimmy__ or not? 05:05
diakopter wrapping in MVMROOT adds the pointer pointer to a list of roots from which the GC starts as knowing are live 05:06
so it's just to ensure that if the GC runs somewhere within what you wrapped, that pointer gets updated if the GC moved that object 05:07
Jimmy__ diakopter: BTW, you have a changing to libuv doc? 05:11
diakopter yes; PM me a google ID and I'll add you to view it
I mean, they can be public really 05:12
well in a few days anyway
Jimmy__ PMed you 05:19
05:49 Jimmy__ joined
Jimmy__ diakopter: thanks, I'm sure I undertand MVMROOT part now. :P 05:49
06:41 birdwindupbird joined 07:58 eternaleye joined 08:03 lizmat joined 08:19 Jimmy__ joined
Jimmy__ diakopter: ping 08:19
08:26 Jimmy___ joined 08:37 Jimmy__ joined 09:17 eternaleye joined 10:21 cognominal joined 10:23 tomyan joined 10:28 tgt joined 10:38 tomyan joined 10:43 cognominal joined 10:46 cognominal joined 10:54 JimmyZ joined 11:15 JimmyZ joined 11:22 JimmyZ joined 11:24 JimmyZ joined 11:47 tomyan joined 11:59 tomyan joined 12:06 cognominal joined 13:12 cognominal joined 13:54 cognominal joined 13:59 birdwindupbird joined 15:02 cognominal joined 16:03 Ulti joined 17:10 lizmat joined