🦋 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/new-disp: 02480f3efb | (Jonathan Worthington)++ | 2 files
Remove unused attributes in Routine

  * `$!dispatcher_cache` seems entirely unused anywhere at all (now?)
  * `$!dispatch_cache` is unused on MoarVM
10:24
Geth rakudo/new-disp: 14b160060d | (Jonathan Worthington)++ | 3 files
Incorporate $!onlystar into Routine $!flags

It was a separate attribute before because the legacy multi-dispatch caching strategy needed that. Now that is gone, and it can go into flags, saving another 8 bytes off every Routine (and clone of one).
10:39
patrickb o/ 10:43
Geth rakudo/new-disp: 1499e64261 | (Jonathan Worthington)++ | 13 files
Remove Scalar containers caller side when possible

Add a bit field to Signature that indicates which arguments are readonly. Use it in the dispatcher in order to remove values from Scalar containers on the caller side, rather than leaving it to the callee. See the large comment inside the commit explaining the multiple advantages this provides.
There cost of doing this is that we run the risk of .VAR getting unwrapped both by this *and* in the callee. To avoid this, have .VAR do the wrapping inside of a special ScalarVAR.
14:06
Geth rakudo: vrurg++ created pull request #4532:
Clarify some edge cases of using nominalizables
15:33
Geth nqp/new-disp: 6d1a3fbbdf | (Jonathan Worthington)++ | 2 files
Use `my constant` somewhat in QAST compiler

These are a bit quicker to access, and serialized so they don't need any setup work at startup.
17:06
nqp/new-disp: 18d0d227c0 | (Jonathan Worthington)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp
Avoid lots of dispatch program creation at startup

The QAST operations setup previously made a method call for every single op. This resulted in producing a dispatch program that was only used once ever. For most simple mappings, we can instead use a constant table of them and add them in a loop. This knocks a few percent off startup time, plus avoids the wasted memory of a bunch of single-use dispatch programs and callsites.
Geth rakudo/new-disp: 11 commits pushed by (Elizabeth Mattijsen)++
review: github.com/rakudo/rakudo/compare/1...caf34c4a8e
18:54
Geth rakudo/new-disp: 8 commits pushed by (Elizabeth Mattijsen)++ 21:27
Geth rakudo/disp_drop_multiple_args_at_once: daecc1a431 | (Timo Paulssen)++ | src/vm/moar/dispatchers.nqp
Use new dispatcher-drop-n-args syscall

Can reduce allocations of temporary MVMCapture and MVMCallsite objects.
21:40
rakudo: timo++ created pull request #4533:
Use new dispatcher-drop-n-args syscall
Geth nqp/disp_drop_multiple_args_at_once: fda44c5974 | (Timo Paulssen)++ | 2 files
use dispatcher-drop-n-args syscall in nqp dispatchers
22:09
nqp: timo++ created pull request #739:
use dispatcher-drop-n-args syscall in nqp dispatchers
22:10