github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
01:09 konvertex left
nwc10 good *, #moarvm 05:44
06:42 domidumont joined 07:42 zakharyas joined 08:06 sena_kun joined
MasterDuke news.ycombinator.com/item?id=23212620 the actual article, comments, and other papers/articles referenced are all very interesting 08:21
but i don't know how much time moarvm spends sorting things
08:26 Altai-man_ joined 08:28 sena_kun left 08:51 konvertex joined 09:18 Prince213 joined 09:19 Prince213 left
jnthn morning o/ 09:30
lizmat jnthn o/ 09:38
nwc10 \o 09:39
jnthn: I had a question. MVM_6model_add_container_config does MVM_gc_root_add_permanent_desc (twice) whereas the seemingly analogus MVM_load_bytecode() does nothing. 09:40
so is the former doing unneeded work, or the latter missing one?
("twice" seems to be a separate thing - I don't think that entry->name is ever read again 09:41
but I've not checked that carefully)
jnthn nwc10: I guess you're referring to the loaded_compunits hash; this is walked in src/gc/roots.c. By contrast, container_registry is not. 10:18
Monday morning admin done...time to hack. 10:21
nwc10 jnthn: and that is what I missed
(thanks) 10:22
10:26 sena_kun joined 10:28 Altai-man_ left
jnthn OK, good, so make test in Rakudo is clear with JIT/OSR/inline disabled (and spesh blocking enabled), and then has assorted explosions with inline enabled, giving me a good set of candidates to figure out what is going on. 10:33
nine Good hunting! 10:35
tellable6 2020-05-17T01:43:49Z #raku-dev <Xliff> nine Was close, but recent changes in PrecompilationStore necessitated another solution.
10:43 Kaeipi joined, Kaiepi left
jnthn heh, it's seemingly putting us in a totally bogus place after deopt... 10:45
D'oh, that was silly... 11:10
Geth MoarVM/new-disp: 4b3f914c21 | (Jonathan Worthington)++ | src/spesh/deopt.c
Remove a now-unused argument to uninline
MoarVM/new-disp: 5495b1b6d9 | (Jonathan Worthington)++ | src/core/frame.c
Null out spesh_cand when making a deopt frame

There are some things we can get away with leaving as junk in a frame. This is not one of them.
nine Oh boy.... when looking at github.com/MoarVM/MoarVM/commit/af...201736840a I was wondering whether initializing only a few select fields was a bit fragile and if it wasn't better to memset it at first and narrow it down once you have a stable base 11:17
But of course I didn't say any of this loud 11:18
jnthn Was mostly going on "what do we normally get away with", but missed that bit. 11:20
nwc10 "This is not one of them" :-) 11:21
11:27 zakharyas left 11:30 Prince213 joined 11:53 Prince213 left, Prince213 joined, Prince213 left
jnthn Some lunch later... 11:57
Spectest seems to look about the same with inlining or without 11:58
Still got some kind of deopt-related trouble, I think 'cus I removed a terrible workaround...
Next question is what state the JIT is in. 11:59
MasterDuke denial? Massachusetts? solid? 12:00
12:00 Prince213 joined
jnthn In theory it should be fine. :) 12:00
It's made it to CORE.setting build so far
So through all of NQP and NQP tests
In theory OSR doesn't need updating, but I need to check that also 12:01
Didn't spectest, but JIT does the rakudo build and make test. 12:03
Will spectest with OSR thrown into the mix too
12:06 Prince213 left
jnthn OK, seems we're no worse with JIT and OSR. 12:11
Yup, so...bug hunting wise, "just" that deopt thing to hunt, though I may defer that and get back to the dispatcher stuff that caused me to go and do all of this callstack refactoring for a bit... :) 12:16
12:17 konvertex left 12:26 Altai-man_ joined, Prince213 joined, Prince213 left 12:28 sena_kun left 13:14 konvertex joined 13:20 zakharyas joined 14:09 jjatria left, jjatria joined 14:11 jjatria left 14:27 sena_kun joined 14:28 Altai-man_ left 16:26 Altai-man_ joined 16:28 sena_kun left
Geth MoarVM/new-disp: b924234023 | (Jonathan Worthington)++ | src/core/interp.c
Make sure to set return address on dispatch
16:43
MoarVM/new-disp: 1ac55d4de6 | (Jonathan Worthington)++ | src/gc/debug.h
Make GC debug macro more robust
MoarVM/new-disp: ac9b65ea7a | (Jonathan Worthington)++ | 15 files
First steps towards dispatch programs

With this, the built-in `boot-value` and `boot-constant` dispatchers can now be invoked, and will produce a result. This does not yet result in the construction of a dispatch program to optimize the dispatch, so the slow-path `dispatch` is called every time. However, the various hooks to do that are now in place.
For the moment, however, only very boring dispatch programs can be recorded, so it's probably rather more interesting to make some more possibilities there first.
jnthn To be continued, most probably on Wednesday :) 17:16
Altai-man_ yay 17:17
17:32 jjatria joined 17:40 domidumont left
timotimo .but what can someone do in the mean time to make it easier for you when you come back to it? :3 17:55
i see some // XXX TODO comments
17:57 lucasb joined
timotimo i assume in disp_program_record_result_constant the "record the result action" that currently just finds the topmost recording and stashes the value, it'd want to put more info in there? it currently only stores "outcome", and the only other thing it could be writing into that struct is the args capture thingie 17:58
disp_program_record_end currently only has DISP_OUTCOME_VALUE, maybe that's a good spot to add a little bit? like a "set up invocation and continue" piece for OUTCOME_BYTECODE 18:01
"compile program" in record_end is literally about writing a bit of mvm bytecode and a corresponding frame to hold it? 18:02
not sure if we can add frames to a compunit that's already loaded or if we have to have a compilation unit for each frame we compile 18:03
18:03 brrt joined
brrt \o 18:04
lizmat brrt o/
do we have a quick way to find out if MoarVM is running on a big-endian or a little-endian system ?
timotimo we've got a #define i think? 18:05
brrt ohai lizmat
yeah, I'm sure we have a define 18:06
lizmat but how is that exposed in Raku ?
timotimo hm. nqp::backendconfig?
brrt '#define MVM_BIGENDIAN 0'
I don't think we export the endianness (endianity?) using the backendconfig 18:09
judging from the implementation in config.c 18:10
lizmat m: dd $*VM.config<be>
camelia "0"
lizmat could that be it ?
timotimo .o( it could "be" )
18:14 Kaeipi left 18:17 Kaiepi joined 18:26 sena_kun joined 18:28 Altai-man_ left
brrt hmm 18:31
yes, it is 18:34
but I'm not sure how it's set
lizmat m: dd Kernel.endian # apparently I've asked this question before :-)
camelia Endian::LittleEndian
brrt lizmat: it comes from perl's $Config{byteorder} during configuration 18:36
nwc10 brrt: o/ 19:07
brrt ohai nwc10 19:15
19:37 brrt left 19:55 zakharyas left
jnthn timotimo: (what can people do) one that may not be so bad is to fix up continuation profiling, 'cus for now it just has a "fix me" panic 20:09
timotimo that's a fun area in general 20:22
20:26 Altai-man_ joined 20:28 sena_kun left 21:56 raku-bridge2 joined, raku-bridge2 left, raku-bridge2 joined, raku-bridge left 21:57 raku-bridge2 is now known as raku-bridge 22:06 Kaiepi left, Kaiepi joined 22:25 Altai-man_ left