Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes.
Set by lizmat on 24 May 2021.
MasterDuke interesting. with MVM_SPESH_DISABLE=1, `my int $sum = 0; for ^100_000_000 -> int $i { $sum += $i }; say now - INIT now; say $sum;` takes the same amount of time as with uint, ~12.5s 02:50
however, with MVM_JIT_DISABLE=1, `int` takes ~2s and `uint` takes ~6s 02:51
with nothing disabled, `int` takes ~0.6s and `uint` takes ~5.7s 02:52
so the big difference comes from spesh
heh. i just went through src/spesh/*.c and made a whole bunch of *_u additions. absolutely no change... 03:35
well, "whole bunch" might be an exaggeration, but i was hoping to see something... 03:36
hm. in a spesh log: 03:45
279977       # [002] expr bail: Cannot get template for: param_rp_u
279978       # [000] bailed argument spesh: expected arg flag 0 of type 2 to be uint or box a uint; type at position was null type tuple
279979       param_rp_u        r7(1), liti16(0)
type 2 is MVM_CALLSITE_ARG_INT
ugh, trying to find the difference between two spesh logs is not terribly easy 04:21
timo1: ^^^ seems like something you might have an intuition about 04:39
timo1 so we are trying to specialize this method to work with an int, but the code asks for a uint, and arg spesh isn't happy about that 09:29
in the case of "want uint, have int" we can probably generate a "get int" + "convert to uint" in argument spesh 09:30
ugexe MasterDuke: chatgpt is actually sort of useful for examples and querying some of this long path stuff fwiw -- gist.github.com/ugexe/bff0f9a20e3c...72c069bd86 15:50
nine MasterDuke: it's possible that we actually do need it, but I didn't come across a case that made this need clear. 21:21