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.
10:04 lizmat left 10:14 lizmat joined 12:21 MasterDuke joined
MasterDuke timo: it appears that even `raku -e ''` utf8 decodes the entire setting source code. gist.github.com/MasterDuke17/25c7e...a670d31382 has some info after i added an `if (bytes == <large number>) abort();` to `MVM_string_utf8_decode` in src/strings/utf8.c 12:25
is that (always) necessary? if not, can it easily be removed? and if so, can it be done lazily/only when absolutely required? 12:27
timo oh, so while doing SET_BLOCK_OUTER_CTX we iterate over context lexicals as a hash, which means we vivify the lexical that has the source in it
MasterDuke oh, probably $?SOURCE or something like that? 12:29
timo yeah 12:30
do you have a timing for how long that decode takes?
MasterDuke (unrelated to raku/moarvm, but an oddity i experienced while looking at this, gdb on this system is weird. i couldn't get it to break in the body of the if i added if i put a bunch of printfs. i had to put an abort() to get it to actually break inside the body and not at evaluating the conditional)
not that one in particular. but we spend some (i think a decent amount of?) time utf8 decoding in general 12:31
timo what does "[PAC]" mean I wonder? 12:32
MasterDuke "A Pointer Authentication Code ( PAC ) is generated from the value of a given pointer, and is used to verify pointers before using them." maybe 12:33
stackoverflow.com/questions/782886...-m1-and-m3 i am on an m2 12:34
timo are the instruction pointers that are stored on the stack authenticated or something like that?
MasterDuke dunno 12:35
that's the first time i've seen that. but i've never added an abort() to cause a break before either 12:36
timo i'm not sure why you were having no luck setting that breakpoint; could come down to how exactly the code is optimized into assembly
like, ARM has the possibility to just put a condition on (almost?) any instruction 12:37
maybe there's nothing that really corresponds to the if at all?
MasterDuke well, i could break on the if, but then it fired every time the function was called
timo ah, right 12:38
MasterDuke but i didn't look at the assembly at all. i also know arm assembly even less than i know x86
timo it'd surely be tricky to figure out what's going on in a highly optimized piece of assembly when you're not familiar with the instruction set already 12:40
I barely know ARM machine code myself
MasterDuke fyi i may be afk for a while quite soon, i just wanted to mention this before i forgot. boarding a cruise later this morning and i believe internet access is quite limited
timo oh, a cruise? tbh not a fan of those 12:43
the probability for everyone on a cruise to get everyone else's transmissible diseases tends towards 100% (this opinion was not influenced by the recent hantavirus thing) 12:44
MasterDuke never been before. in-laws are taking the whole family though, so can't really complain
timo i wish you a lot of fun!
MasterDuke thanks, kids are going to have a blast
oh, just noticed this open tab github.com/timo/moarperf/pull/19 12:45
timo oh, do the links in the lower patch not need a file extension? 12:47
the extension's already there maybe?
MasterDuke i believe so
timo merged, thanks! 12:49
12:54 MasterDuke left 14:14 librasteve_ joined
lizmat perhaps $?SOURCE should be a blob to be decoded on access ? 15:24
15:28 bisectable6 left 15:45 greppable6 left, evalable6 left, shareable6 left, bloatable6 left, linkable6 left, benchable6 left 15:46 tellable6 left, coverable6 left, nativecallable6 left, releasable6 left, huggable6 left, sourceable6 left 15:48 evalable6 joined, unicodable6__ joined, benchable6 joined, linkable6 joined, quotable6 left, notable6 left 15:49 shareable6 joined, sourceable6 joined, unicodable6 left, committable6 left, greppable6 joined, committable6 joined 15:50 releasable6 joined, bloatable6 joined, bisectable6 joined, coverable6 joined 15:51 notable6 joined, nativecallable6 joined, tellable6 joined, quotable6 joined 15:52 huggable6 joined
japhb lizmat: I'd think that would also cut down on memory footprint as well .... 17:39
lizmat and perhaps $?SOURCE is new enough that we don't actually need to decode on access, but just keep it as a Blob 17:40
19:53 lizmat left 19:54 lizmat joined 23:53 librasteve_ left