github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
01:03 squashable6 left 01:05 squashable6 joined 01:12 squashable6 left 01:14 squashable6 joined 01:36 vrurg joined 04:41 statisfiable6 left, bloatable6 left, unicodable6 left, releasable6 left, reportable6 left, benchable6 left, quotable6 left, greppable6 left, committable6 left, squashable6 left, coverable6 left, nativecallable6 left, shareable6 left, notable6 left 04:42 notable6 joined, committable6 joined, reportable6 joined 04:43 evalable6 joined, tellable6 joined, releasable6 joined, unicodable6 joined, greppable6 joined, quotable6 joined, nativecallable6 joined 04:44 benchable6 joined, shareable6 joined, squashable6 joined, statisfiable6 joined, coverable6 joined, bloatable6 joined 07:06 sena_kun joined 09:05 robertle_ joined 09:07 Altai-man_ joined 09:09 sena_kun left 10:06 patrickb joined 10:31 vesper11 joined 11:08 sena_kun joined 11:10 Altai-man_ left 13:07 Altai-man_ joined 13:09 sena_kun left 13:25 robertle_ left 13:26 robertle_ joined 14:03 AlexDaniel` joined 14:11 lucasb joined 15:08 sena_kun joined 15:09 Altai-man_ left 16:05 robertle_ left 16:38 patrickb left 17:07 Altai-man_ joined 17:09 sena_kun left 17:44 MasterDuke left
lucasb moar? :) 17:50
18:06 Altai-man_ left 18:10 sena_kun joined 18:11 sena_kun left 18:14 patrickb joined 18:29 sena_kun joined 18:31 sena_kun left 18:35 sena_kun joined 18:36 sena_kun left 18:43 vrurg left 18:44 vrurg joined 18:58 vrurg left, vrurg joined 19:23 squashable6 left 19:25 squashable6 joined 20:20 brrt joined
brrt \o 20:24
(this is an invitation to spam me with jitbreakage) 20:25
no jitbreakage? hmmm 20:29
20:42 MasterDuke joined
dogbert17 brrt: I'm not certain I have any atm 21:10
brrt hehe 21:11
that's good
MasterDuke but if you have any ideas of how to jit param_rn2_*... 21:15
brrt ok, I'll explain the difficulty there
- on the one side, they tend to be evidence that we weren't able to sufficiently spesh this method.... and it's (so far) proven more worthwhile to figure out why that is, than to JIT them. that's also because... 21:16
- they rely on the interpreters' somwehat arcane logic for making sure that when the callee expects a native int, it gets a native int, even if e.g. the caller passed a string 21:17
N years in, I'm not super convinced that was a good design choice. It's not a bad one per se, and it fits the perl community's preference for TIMTWTDI, but if we had, say, exposed only object passing to the compiler, and implemented native value passing strictly as a specialization, I wonder if we'd have a better, simpler system 21:19
dogbert17 brrt: is this function work in progress? github.com/MoarVM/MoarVM/blob/mast...ers.c#L387
brrt (either that, or if we had passed it to the caller's side, where I think it belongs logically)
MasterDuke hm. any idea what's blocking them being speshed then? 21:20
brrt dogbert17: idk, I didn't write them
dogbert17 aha
brrt MasterDuke: they return a struct that holds a union of the result value, and whether or not it was present, and that's then used to dispatch to either an exception or a branch (for the _op_, _on_ variants) 21:21
dogbert17 it seems to be timotimo
or possibly one of his cats :) 21:22
brrt and struct returning tends to differ a bit between compilers... or at least, it isn't as obviously well-specified as scalar
I think the common pattern is to have the lower bits on rax, and the upper bits in rcx 21:23
If I could find some evidence that this was actually what was specified and guaranteed, then I could move forward with implementing it. but I haven't found that evidence
MasterDuke huh 21:24
dogbert17 There are a few places in the codebase where the result of uv_mutex_init isn't checked. Couldn't that be a problem? 21:36
brrt I think it might. Can we handle the problem if it is? 21:38
(and if not, can we move the uv_mutex_init to a place where we can handle the problem?)
21:38 patrickb left
dogbert17 where the return value is checked we abort 21:38
brrt hmmm
that sucks
I think we should abort for internal errors only 21:39
dogbert17 aha, here's an example where we check: github.com/MoarVM/MoarVM/blob/mast...ueue.c#L27
brrt yeah, that seems correct
constructing an object is not an obvious place to throw, but it is definitely not outside the realm of the possible 21:40
and an adhoc exception can be caught
an abort() cannot
dogbert17 my bad, I shouldn't have written abort
here's an example of not checking: github.com/MoarVM/MoarVM/blob/mast...Unit.c#L28 21:41
brrt interestingly, we can't throw there 21:42
because it'd interfere with the temp-roots popping 21:43
22:24 Kaiepi left, Kaeipi joined 23:09 brrt left 23:51 lucasb left