github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
03:52
lucasb left
05:10
Kaiepi left
05:41
MasterDuke left
06:37
nebuchadnezzar joined
07:35
Altai-man joined
07:56
Altai-man left,
Altai-man joined
08:08
sena_kun joined
08:10
Altai-man left
09:22
zakharyas joined
09:58
domidumont joined
10:33
Geth joined
11:34
Kaiepi joined
11:35
Kaiepi left
11:37
Kaiepi joined
|
|||
nine | So, I've decided to abandon the existing attempts to get interning of parametrics to work. There's just not enough duct tape in the world to hold resolve_param_interns together. It will inevitable run into problems where objects created during the process keep pointing to non-interned parametrics. | 11:38 | |
The second attempt did not fare better either. Instead of resolving parametric interns during MVM_serialization_deserialize I've tried to make it more recursive by plugging it into deserialize_stable and deserialize_object instead, i.e. when we actually deserialize those objects. | 11:40 | ||
The theory was that this way we can actually traverse the tree of objects and stables in correct order to have all necessary interning done when trying to resolve an intern (i.e. all it's parameters and the types they point at are resolved already). | 11:41 | ||
This attempt died as well because deserialization is not really done recursively either but with a work loop and queues for objects and stables. So when I try to resolve an interned object, it's possible that the parametric type's stable is actually not yet resolved but still in that queue. | 11:42 | ||
The reason for this being an iterative process with stubs instead of a simpler recursive implementation is that we actually can have loops, and indeed the simplest example is type objects themselves. They point at their STable and the STable has a WHAT pointer which points back at the type object. | 11:44 | ||
11:46
Kaiepi left
11:47
Kaiepi joined
11:48
Kaiepi left
11:55
zakharyas left
12:07
Altai-man joined
12:08
Kaiepi joined
12:10
sena_kun left
|
|||
Altai-man | nine++ # very brave and admirable efforts | 12:50 | |
lizmat | nine: sorry to hear abandoning after so much effort | 14:08 | |
lizmat knows how that feels | |||
nine: so are you saying that deserialization should be a recursive process ? | |||
timotimo | i think the conclusion was that it can't be done without implementing something just like what we have now to get around the reference loop trouble? | 14:10 | |
15:19
domidumont left
|
|||
nine | How on earth has this copy pasta survived for 6 years?! github.com/MoarVM/MoarVM/blob/mast...on.c#L2338 | 15:36 | |
timotimo | huh, was that an actual bug? | 15:47 | |
nine | absolutely | 15:48 | |
Should read MVMint32 orig_contexts_data_offset = reader->contexts_data_offset; | |||
16:08
sena_kun joined
16:10
Altai-man left
|
|||
lizmat | he... my record for finding a bug in production code is 10+ years :-) | 16:27 | |
it was an off-by-one | |||
16:36
Kaiepi left
16:37
sena_kun left
18:29
patrickb joined
|
|||
nwc10 | .tell brrt blog.pyston.org/2020/10/28/pyston-...er-python/ | 19:35 | |
tellable6 | nwc10, I'll pass your message to brrt | ||
nine | Btw. rr finally works on Ryzen! github.com/mozilla/rr/wiki/Zen | 20:01 | |
nwc10 | Woohoo! | 20:02 | |
or is that !oohoW | |||
\o/ | |||
ooh, I can't type backwards. | |||
20:02
vesper left
20:21
vesper11 joined
20:27
vesper joined
20:30
vesper11 left
20:31
MasterDuke joined
20:48
vesper11 joined,
vesper left
|
|||
[Coke] | ¡ooɥooM | 21:12 | |
21:59
timotimo left,
sivoais joined,
timotimo joined
|
|||
nine | All tests successful. | 22:01 | |
And ===> Testing [OK] for MagickWand:ver<0.1.0>:auth<github:azawawi> | |||
So this is it! The recursive attempt actually wasn't that bad after all. I just plugged into the wrong layer. That and of course the countless smaller mistakes I tend to make when working on something like this. | 22:02 | ||
japhb | nine: Wait, so you actually have parametric interning fully fixed now (at least locally)? | 22:10 | |
Or do you mean you just made another step forward | |||
? | |||
nine | ===> Testing [OK] for PDF::Tags:ver<0.0.3>:auth<github:pdf-raku>:api<PDF.1.7> | 22:11 | |
===> Testing [OK] for Uzu:ver<0.3.6> | 22:12 | ||
I dare say it's fixed for good :) Those are the 3 modules that my previous implementation (of which is almost nothing left) broke | 22:13 | ||
Will PR the fix tomorrow | 22:14 | ||
22:23
patrickb left
|
|||
timotimo | absolute wow, my friend | 22:27 | |
japhb | Yeah, huge nine++, that was some serious dedication! | 23:16 | |
23:17
Kaiepi joined
23:32
Kaiepi left
|