github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
brrt \o 08:46
nine Oh boy....I think there's a race condition in spesh plugin guard resolution 09:40
That's the only explanation I can find for the ps pointer in resolve_using_guards to become outdated (0x7f2428467550 vs. 0x7f2428467500 in tc->cur_frame->static_info->body.spesh->body->plugin_state) 09:43
I don't think I can fix this without invoking the jnthn++ 09:44
Of course, I could simply add a lock, but I also think that's precisely what jnthn wanted to avoid. And I know too little about possible alternatives. 09:46
moritz
.oO( now you have two problems. )
10:40
dogbert17 nine: have you found any more bugs? 10:43
nine dogbert17: make test is still working through the 02-rakudo tests. Got 3 core dumps so far. One is the *item_ptr != item->sc_forward_u.forwarder assertion for which I suspect that it's not really an issue in multi threaded programs. One's the race condition in spesh plugin guard resolution I mentioned. 10:49
dogbert17 very cool, there seems to be quite a few gremlins hiding in the codebase 10:55
nine Yeah. Unfortunately runtimes measured in hours make it impractical to test stuff. So all I can do is look at data in gdb and read code 10:57
timotimo: I'm pretty sure you need to MVMROOT log_obj there: github.com/MoarVM/MoarVM/blob/mast...rker.c#L46 11:15
timotimo oh, good call 11:45
MasterDuke huh. a profile of `my $a; $a = $_.starts-with("1").Int for ^1_000_000; say now - INIT now; say $a;` shows that `starts-with` isn't being jitted at all. but it doesn't have any 'bailed completely' in a spesh log 11:50
timotimo explicitly casting $_.Str.starts-with makes it a whole lot faster 12:11
find_best_dispatchee is doing a whole lot of work
also, add_to_cache is called a million times 12:12
so what exactly goes into the multi cache there ... 12:13
the callsite that's being used isn't interned, which makes it not add the result to the cache 12:16
it's just a two-flag callsite with the two flags being 1 12:18
which is just "two objects" 12:19
MasterDuke why wouldn't it be interned? 12:36
this seems like a bug (in the sense that performance is not what it should be) 12:37
timotimo i'll have to trrace the callsite back to where it's allocated and see why it isn't attempted to be interne 12:56
Geth MoarVM/master: 5 commits pushed by (Bart Wiegmans)++ 13:33
MoarVM/expr-jit-devirtualize: 5 commits pushed by (Bart Wiegmans)++ 13:36
dogbert17 \o 16:22
it seems as if one of the latest commits have introduced a bug which shows up when running with a small nursery 16:23
Thread 1 "moar" received signal SIGSEGV, Segmentation fault. 16:24
0x00007ffff74e3b72 in MVM_multi_cache_find_callsite_args (tc=0x604ac0, cache_obj=0x2aa5b40, cs=0x7ffff7c874e0 <two_args_callsite>, args=0x3c04b10) at src/6model/reprs/MVMMultiCache.c:417
it could in fact be one of brrt's recent commits 16:26