github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
MasterDuke jnthn, samcv, etc: forums.swift.org/t/string-s-abi-and-utf-8/17676 some interesting info about changes to how swift handles string 02:44
samcv thanks, will check it out 03:55
nwc10 They write of UTF-8 (particularly in reverse) "But, this isn’t really an issue: on modern CPUs this increase in encoding complexity is more than offset by the decrease in model complexity by having a unified storage representation." 09:17
but I wonder how much of that "faster" is comparision with "ASCII or UTF-16" (where the latter is still variable width) 09:18
and how much their benchmarks (and use cases) are about linearly acessing strings, not index-based lookups which I *think* are needed by regex engines
nine Why is the information about which of an op's arguments need to be deconted an argument to the add_core_moarop_mapping method? It's a static property of the op. Wouldn't that belong in oplist instead? Same for $ret which is information about which argument will be written to. 10:30
And an even more heretical question: why do we type registers? In memory, a register can hold anything. It's really the interpretation by the ops that turns anything into something. So why can't we have a register holding an int and later on an object when it's not needed anymore for the int? 11:18
timotimo because the GC has to go through a frame and add only object and string registers to worklists 12:38
otherwise an integer or num will cause segfaults if it lives in an object or string register
and which arguments want to have a decont applied to them is, to me, more an nqp language thing 12:39
nine Ah, ok, the GC explains that of course. 12:47
The point of the decont question is really: if we move that information to oplist, I can generate better tailored code for qast to mbc compilation of every op that goes through moarop_mapper 12:49
timotimo interesting 12:50
nine A different approach would be to generate and compile a QAST tree for those mapper functions instead of having update_ops.pl6 generate the source code
timotimo do we perhaps want an attribute trait "is not_serialized" so that we can make an NFA's list version of itself turn to null when it's deserialized? 17:18
statelist* 17:19
not for end users, of course
it's an exquisite footgun for sure 17:21
dogbert11 Bytecode validation error at offset 74, instruction 13: operand type 48 does not match register type 160 # hmm 17:33
when trying to build nqp b8ecfa43. Building newer versions lead to the entire build process hanging (on 32 bit). 17:34
timotimo the last time someone had something like that, something like nuking the install folder helped 17:36