|
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
|
|||