🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | log inspection situation still under development | For MoarVM see #moarvm
Set by lizmat on 22 May 2021.
Geth rakudo: vrurg++ created pull request #4396:
Compile-time micro-optimization
01:38
Geth nqp: b3536580a9 | (Daniel Green)++ | src/NQP/Optimizer.nqp
Simplify loop in optimizer's incorporate_inner

I don't know why this splice was originally commented out and not used, but it works.
09:19
nqp: 668f3f23fe | MasterDuke17++ (committed using GitHub Web editor) | src/NQP/Optimizer.nqp
Merge pull request #725 from MasterDuke17/simplify_loop_in_optimizer_method_incorporate_inner

Simplify loop in optimizer's incorporate_inner
nqp: c765d51c8d | (Daniel Green)++ | src/core/Hash.nqp
Micro-optimize the sift_down sub in sorted_keys

Exit early if there are 0 to 2 keys to sort, also pull some variable declarations out of a loop to reduce the number of BOOTInts allocated.
nqp: b58cff0253 | MasterDuke17++ (committed using GitHub Web editor) | src/core/Hash.nqp
Merge pull request #726 from MasterDuke17/micro_optimize_sift_down

Micro-optimize the sift_down sub in sorted_keys
MasterDuke34 what causes indirect name lookups? 13:34
vrurg MasterDuke34: like self."$method"()? 13:36
MasterDuke34 hm, that's the same as ::()? 13:37
vrurg No, it only traverses MRO.
MasterDuke34 github.com/rakudo/rakudo/blob/mast...#L216-L279 is what i'm curious about 13:38
vrurg But then I don't really get your question.
vrurg I see it used in Actions and Ops. Gimme a sec... 13:39
term:sym<name> is using it. Doc phaser. require. Likely more, if you search by make_indirect_lookup method references. 13:42
MasterDuke34 gitlab.com/jjatria/raku-game-entit...ng-loops.t causes 22k calls to INDIRECT_NAME_LOOKUP 13:43
oh, ^name() perhaps 13:44
vrurg I'd rather suspect @components. .^name should only result in a method lookup. 13:47
jjatria is very interested in this 13:48
MasterDuke34 jjatria: do you need the gather/takes? those are pretty slow 13:49
btw, profiles show your short test file causing 850k deoptimizations, and the long one causing 300k deopts 13:51
jjatria No, I can do away with them. I wasn't aware they'd be a bottleneck
vrurg Last note and back to the main job. I think the most likely cause is token variable -> Actions method variable. 13:52
jjatria My optimisation game in Raku is weak, I was mostly focused on getting it to run, and then to get it to run fast enough. But if it can be faster, I'm very keen
Geth nqp: 8ae2bfb646 | (Elizabeth Mattijsen)++ | tools/templates/MOAR_REVISION
Bump MoarVM to get the latest fixes and performance improvements
19:04
rakudo: faec80449d | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION
Bump NQP to get latest NQP / MoarVM goodies
19:31
rakudo: 3b7fef2e7d | (Stefan Seifert)++ | 2 files
Speed up setup of NativeCall subs and reduce memory usage

When replacing a native sub's stub body with a generated one, we need to remove the scheduled fixups, lest they undo our replacement. The easiest way to do this is to just run the compiler thunk, which takes care of this after dynamic compilation. This however is a very expensive operation as it not only compiles that body but has to create setup code for the lexical scope. This makes ... (6 more lines)
19:33
rakudo: 9433d0f937 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 2 files
Merge pull request #4393 from rakudo/speed_up_native_call_setup

Speed up setup of NativeCall subs and reduce memory usage
lizmat hmmm.. make spectest failed on 2 files, but these run fine by themselves 21:22
[Coke] we don't have modules.raku.org setup here with Geth, I guess. 21:28
vrurg lizmat: I think they're flappers after all. 22:06
lizmat can't remember having these flap, though :-(
didn't flap when I bumped NQP either
vrurg It's just my experience. Most of the time if something fails when is ran in a bunch but not individually – try it 50+ times and it eventually reveal a problem. 22:11
vrurg I just've pulled the master, t/spec/S17-supply/syntax-nonblocking-await.t fails under spectest. Trying it in a loop. 22:19
lizmat I've just reverted 3b7fef2e7de6bb915da0 locally, then will start a spectest run and look at the result tomorrow& 22:20