🦋 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.
00:02 reportable6 left 00:03 reportable6 joined 00:56 linkable6 joined 01:00 frost joined 04:02 sourceable6 left, bloatable6 left, benchable6 left, squashable6 left, committable6 left, releasable6 left, shareable6 left, quotable6 left, reportable6 left, unicodable6 left, coverable6 left, greppable6 left, linkable6 left, statisfiable6 left, nativecallable6 left 04:03 greppable6 joined 04:04 nativecallable6 joined, linkable6 joined, shareable6 joined, releasable6 joined 04:05 quotable6 joined, statisfiable6 joined, squashable6 joined 04:48 squashable6 left 04:56 evalable6 joined 05:04 benchable6 joined, bloatable6 joined, committable6 joined 05:10 Razetime joined 05:48 squashable6 joined 06:03 reportable6 joined 06:04 coverable6 joined, unicodable6 joined, sourceable6 joined 06:22 squashable6 left 08:28 |Tux| joined, Tux__ joined 08:32 Tux__ left
Geth nqp/new-disp: b07e568be4 | (Jonathan Worthington)++ | 4 files
Access register allocator via compiler instance

This saves a lot of dynamic variable lookups, which are relatively costly.
rakudo/new-disp: b14734fcde | (Jonathan Worthington)++ | src/vm/moar/Perl6/Ops.nqp
Use cheaper way to access register allocator
09:39 evalable6 left, linkable6 left 09:40 linkable6 joined 09:41 evalable6 joined 10:09 lizmat_ joined 10:10 TempIRCLogger left, TempIRCLogger joined 10:13 lizmat left 10:16 lizmat_ left, lizmat joined 10:22 sena_kun joined 10:24 squashable6 joined
|Tux| Rakudo v2021.08-22-gb451f89b6 (v6.d) on MoarVM 2021.08-9-g4b7ffe3af
csv-ip5xs0.850 - 0.850
csv-ip5xs-208.356 - 8.472
csv-parser26.847 - 27.170
csv-test-xs-200.370 - 0.373
test7.706 - 7.719
test-t1.968 - 1.991
test-t --race0.861 - 0.918
test-t-2033.573 - 34.965
test-t-20 --race9.756 - 10.005
Geth rakudo/new-disp: f63e88285f | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Ensure that CALL-ME always takes precedence

Even if we have a Raku Code object, mixing in a role to it that has a CALL-ME method should result in the latter being invoked.
11:50 TempIRCLogger left 11:51 TempIRCLogger joined 12:02 reportable6 left 12:05 reportable6 joined
lizmat notable6: weekly 12:07
notable6 lizmat, 1 note: 2021-09-03T17:57:46Z <lizmat>: news.perlfoundation.org/post/raku-...-tm-update
lizmat notable6: weekly reset
notable6 lizmat, Moved existing notes to “weekly_2021-09-06T12:07:28Z”
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2021/09/06/2021-...lean-disp/ 12:47
hmmm.. should qx<> also be exposed as a sub so that you could use it like "foo &qx( <echo bar> )" ? 12:52
sena_kun why not just `foo qx<echo bar>`? 12:54
13:05 linkable6 left, evalable6 left
Geth nqp/new-disp: c1cda088f7 | (Jonathan Worthington)++ | src/core/dispatchers.nqp
Avoid some deconting inside of dispatchers

Which may get us bogus behavior when we really do want to work with instances of Scalar and Proxy.
13:06 linkable6 joined 13:07 evalable6 joined 13:22 frost left
Geth rakudo/new-disp: 754ed7bf4b | (Jonathan Worthington)++ | 2 files
Lots of .HOW => nqp::how_nd in dispatchers/MOP

We need to be especially careful not to decont things during dispatch, otherwise we can create infinite recursion around code dealing with Proxy. This fixes Scalar::History (and possibly more) on new-disp.
nqp/new-disp: 475cff6317 | Altai-man++ (committed using GitHub Web editor) | tools/templates/MOAR_REVISION
rakudo/new-disp: bff3cf8e52 | Altai-man++ (committed using GitHub Web editor) | tools/templates/NQP_REVISION
rakudo/new-disp: 811bcc5820 | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Don't assume ever meta-object has a mro method
rakudo/new-disp: 3a351495bc | (Jonathan Worthington)++ | 2 files
Optimize method calls made on roles

We can pre-calculate and cache the pun in the callsite, rewriting the call capture in the dispatcher to include it. This means that calls to methods on a role (typically `.new`, which relies on punning) will now no longer need to slurp/flatten arguments, will avoid an extra level of invocation, and expose the target method in the pun for spesh linking and/or inlining.
14:22 evalable6 left, linkable6 left, linkable6 joined 14:24 evalable6 joined
Geth rakudo/new-disp: 2471aa1f08 | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Add a missing guard in multi deferral

The callsame guard only cared for the types of the arguments, but not the particular target multi. (Eventually this should be resolved by us arranging to attach the dispatch caches for `callsame` and friends a level up, but for now this gets us correct behavior.)
nqp/new-disp: b48073881c | (Jonathan Worthington)++ | src/core/dispatchers.nqp
Add a missing guard in type check dispatcher

We depend on the mode flags of the object too; failing to guard on that means we can end up mishandling the checks.
rakudo/new-disp: 26010a6a0c | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Complete NYI ambiguity handling in multi dispatch

Handling of the ambiguity marker was missing for a non-trivial dispatch.
17:25 Razetime left 17:33 sena_kun left 18:02 reportable6 left 18:13 codesections joined 19:04 reportable6 joined 19:38 TempIRCLogger left, TempIRCLogger joined 20:53 vrurg left 20:59 vrurg joined 21:05 vrurg left, vrurg joined
Geth nqp/new-disp: c230c2702b | (Jonathan Worthington)++ | 3 files
Switch most $*MAST_FRAME access away from dynamics

There's a couple that will need a more significant refactor rather than relatively mechanical replacement.
rakudo/new-disp: 233c337b39 | (Jonathan Worthington)++ | src/vm/moar/Perl6/Ops.nqp
Access current MAST::Frame via the compiler object

Which is a bit faster than the dynamic variable, since it's just an
  (easily inlined) attribute access.
21:33 |Tux| left 22:48 linkable6 left, evalable6 left 22:50 linkable6 joined 23:23 MasterDuke left 23:49 evalable6 joined