00:00
sena_kun left
03:04
Voldenet_ joined
03:05
Voldenet left,
Voldenet_ is now known as Voldenet
10:49
sena_kun joined
18:43
MasterDuke joined
|
|||
MasterDuke | jnthn: what is the "offset approach" mentioned in this TODO? github.com/MoarVM/MoarVM/blob/main...ard.c#L505 | 18:45 | |
tellable6 | 2025-02-15T22:28:37Z #moarvm <jnthn> MasterDuke to be clear, MoarVM is already using the faster dominance algorithm | ||
hey MasterDuke, you have a message: gist.github.com/2fa0d6f36dd2616090...09f79a0966 | |||
MasterDuke | jnthn: thanks, good to know we don't need to spend time there | ||
timo: btw, where did we leave off with investigating how to reduce the number of get_attribute calls? | 18:48 | ||
timo | i seem to recall we weren't getting facts about the actual type of objects, so couldn't optimize? | 18:56 | |
MasterDuke | hm. any thoughts on how to get better facts? | 19:00 | |
bears eat beets. that's a nice fact, can we use that one? | 19:05 | ||
timo | interesting. i'll forward that to our research department | 19:08 | |
well, i've only looked at a few instances in the spesh log which unfortunately doesn't cross-reference trivially to counts of how often it's actually run | 19:09 | ||
MasterDuke | i'm getting some logs now | ||
timo | i mean we can see in the spesh log for how many frames we optimize the optimization doesn't trigger, but we can't see how often the resulting versions of the frames are called, nor how often the op in question is hit, for example if it's in a branch | 19:11 | |
but i think you said you had a count of how often the MVM_repr_get_attribute or similar function was being called in total? | |||
MasterDuke | yeah, trying to gist it now | 19:13 | |
i put an `MVM_dump_backtrace(tc)` in all the getattr_* ops in interp.c | 19:14 | ||
timo | ah, hehe. | ||
do you have something to count them up? | 19:15 | ||
i had a cool shell snippet for that but it fell off ot my history i think | |||
MasterDuke | a bash function call `sus` (for sort | uniq | sort) | ||
timo | sort allows you to use null instead of newline as line delimiter with -z | ||
MasterDuke | i modified dump_backtrace to only print the first line | 19:16 | |
timo | you would probably want something that takes only the first line of the stack trace | ||
MasterDuke | gist.github.com/MasterDuke17/6b46b...61dbbb0011 | 19:18 | |
timo | anyone have the link to the userscript i made once that makes links to rakudo and nqp source files? | 19:31 | |
ah! it's in my "starred" gists | |||
MasterDuke | oh! i don't have that yet on this laptop, can you link it? | 19:35 | |
timo | that needs updates to work with links like NQP:: and such | 19:38 | |
gist.github.com/timo/7cfe71a667bbd...0431da45a4 | 19:39 | ||
it also still links to "master" instead of "main" | 19:40 | ||
fascinating, see how there's 142712 hits for the `nqp::getattr($how, Perl6::Metamodel::ClassHOW, '$!archetypes')` in ClassHOW.nqp | 19:41 | ||
MasterDuke | yep | 19:45 | |
timo | 55403 at NQP::/home/dan/r/install/share/nqp/lib/MAST/Nodes.nqp:711 - this is a little bit odd though | 19:50 | |
MasterDuke | that's `$!bytecode := $current.bytecode;` in `end_subbuffer()` | 19:52 | |
timo | is that in a role? | 19:56 | |
MasterDuke | `class MAST::Frame is MAST::Node {` | 20:01 | |
timo | ok, it could be being called with a self that has something mixed in, which could cause this to not be optimized perhaps? | 20:04 | |
ok please find the new revision of the linkify script at the same address | 20:12 | ||
MasterDuke | hm, seems broken? | 20:16 | |
i get no links now | 20:17 | ||
timo | anything in the browser dev tools' log? | 20:21 | |
MasterDuke | Uncaught SyntaxError: missing name after . operator | 20:24 | |
Pt gist.github.com/timo/7cfe71a667bbd...1da45a4:10 | |||
m gist.github.com/timo/7cfe71a667bbd...1da45a4:21 | |||
c gist.github.com/timo/7cfe71a667bbd...1da45a4:24 | |||
send gist.github.com/timo/7cfe71a667bbd...1da45a4:24 | |||
oo gist.github.com/timo/7cfe71a667bbd...1da45a4:18 | |||
send gist.github.com/timo/7cfe71a667bbd...1da45a4:24 | |||
<anonymous> gist.github.com/timo/7cfe71a667bbd...1da45a4:87 | |||
_ gist.github.com/timo/7cfe71a667bbd...1da45a4:22 | |||
timo | must have done something wrong, maybe a copy-pasto? or something? so that it worked for me | 20:30 | |
oh | |||
did you put the url as the URL to install from? | |||
MasterDuke | no, i just copied the text | 20:31 | |
recopied, still same | 20:33 | ||
timo | gist.githubusercontent.com/timo/7c...Linkify.js please try installing using this URL? | 20:34 | |
meanwhile let me try to toss it out locally and re-install as well | |||
MasterDuke | nope, still same | 20:36 | |
timo | ok now i no errors but also no links. i'll look into what's wrong | 20:37 | |
violentmonkey doesn't show me the errors, but in the popup it does show that there is syntax errors apparently | 20:41 | ||
MasterDuke | Error: Line 376: Unexpected token ILLEGAL maybe | 20:44 | |
missing a backslash after 'vm'? | 20:45 | ||
timo | yes that sounds like a possible reason | 20:48 | |
i literally can't get a line number for the syntax error what a piece of trash %) | |||
ok let's try again | 20:50 | ||
MasterDuke | hooray, tons of links | 20:51 | |
github.com/raku/nqp/blob/main/NQP:...T.nqp#L170 isn't right | 20:56 | ||
timo | ah dang i fixed that directly in the editor in my browser but not in the file? | 20:57 | |
ah | |||
try now | 20:59 | ||
MasterDuke | looks good | 21:01 | |
guess i really should try to log the actual object and attribute name, that would help | 21:08 | ||
timo | ... i should get back to runcy_funcy_opts ... | 21:11 | |
21:35
MasterDuke left
|
|||
timo | hrm. there is no way to signal from a reprop's spesh function that the optimizer should re-run for the instruction again when it was changed | 22:01 | |
unless a change of the opcode is a good indicator maybe | |||
huh, i wonder if our current design can sometimes run off of a BB and into nothingness if an instruction is removed from the graph | 22:03 | ||
22:59
MasterDuke joined
|
|||
MasterDuke | gist.github.com/MasterDuke17/96035...188af3b573 has some more info | 22:59 | |
23:18
sena_kun left
|
|||
timo | oh, there's of course also the possibility that we have optimized the *attr op in the frame, but we deoptimized somewhere in the frame before reaching that point | 23:25 | |
MasterDuke | might have a trivial pr for nqp to remove a small amount of getattr_*s | 23:36 | |
23:42
MasterDuke left
|