[10:04] *** lizmat left
[10:14] *** lizmat joined
[12:21] *** MasterDuke joined
[12:25] <MasterDuke> timo: it appears that even `raku -e ''` utf8 decodes the entire setting source code. https://gist.github.com/MasterDuke17/25c7e89df71b96212f02f3a670d31382 has some info after i added an `if (bytes == <large number>) abort();` to `MVM_string_utf8_decode` in src/strings/utf8.c

[12:27] <MasterDuke> 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

[12:29] <MasterDuke> oh, probably $?SOURCE or something like that?

[12:30] <timo> yeah

[12:30] <timo> do you have a timing for how long that decode takes?

[12:30] <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)

[12:31] <MasterDuke> not that one in particular. but we spend some (i think a decent amount of?) time utf8 decoding in general

[12:32] <timo> what does "[PAC]" mean I wonder?

[12:33] <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:34] <MasterDuke> https://stackoverflow.com/questions/78288651/arm-pointer-authentication-keys-a-and-b-on-apple-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?

[12:35] <MasterDuke> dunno

[12:36] <MasterDuke> 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

[12:37] <timo> like, ARM has the possibility to just put a condition on (almost?) any instruction

[12:37] <timo> maybe there's nothing that really corresponds to the if at all?

[12:37] <MasterDuke> well, i could break on the if, but then it fired every time the function was called

[12:38] <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

[12:40] <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] <timo> I barely know ARM machine code myself

[12:40] <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

[12:43] <timo> oh, a cruise? tbh not a fan of those

[12:44] <timo> 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

[12:44] <timo> i wish you a lot of fun!

[12:44] <MasterDuke> thanks, kids are going to have a blast

[12:45] <MasterDuke> oh, just noticed this open tab https://github.com/timo/moarperf/pull/19

[12:47] <timo> oh, do the links in the lower patch not need a file extension?

[12:47] <timo> the extension's already there maybe?

[12:47] <MasterDuke> i believe so

[12:49] <timo> merged, thanks!

[12:54] *** MasterDuke left
[14:14] *** librasteve_ joined
[15:24] <lizmat> perhaps $?SOURCE should be a blob to be decoded on access ?

[15:28] *** bisectable6 left
[15:45] *** greppable6 left
[15:45] *** evalable6 left
[15:45] *** shareable6 left
[15:45] *** bloatable6 left
[15:45] *** linkable6 left
[15:45] *** benchable6 left
[15:46] *** tellable6 left
[15:46] *** coverable6 left
[15:46] *** nativecallable6 left
[15:46] *** releasable6 left
[15:46] *** huggable6 left
[15:46] *** sourceable6 left
[15:48] *** evalable6 joined
[15:48] *** unicodable6__ joined
[15:48] *** benchable6 joined
[15:48] *** linkable6 joined
[15:48] *** quotable6 left
[15:48] *** notable6 left
[15:49] *** shareable6 joined
[15:49] *** sourceable6 joined
[15:49] *** unicodable6 left
[15:49] *** committable6 left
[15:49] *** greppable6 joined
[15:49] *** committable6 joined
[15:50] *** releasable6 joined
[15:50] *** bloatable6 joined
[15:50] *** bisectable6 joined
[15:50] *** coverable6 joined
[15:51] *** notable6 joined
[15:51] *** nativecallable6 joined
[15:51] *** tellable6 joined
[15:51] *** quotable6 joined
[15:52] *** huggable6 joined
[17:39] <japhb> lizmat: I'd think that would also cut down on memory footprint as well ....

[17:40] <lizmat> and perhaps $?SOURCE is new enough that we don't actually need to decode on access, but just keep it as a Blob

[19:53] *** lizmat left
[19:54] *** lizmat joined
[23:53] *** librasteve_ left
