🦋 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: ba15173fdd | (Elizabeth Mattijsen)++ | src/Perl6/Compiler.nqp
De-unicodify Raku(do)

It was causing too many issues on systems with unicode challenged situations or improperly rendering fonts. Kept the ™ as such, as that does seem to render ok everywhere.
09:14
Geth nqp/new-disp: 74faf02e17 | (Jonathan Worthington)++ | src/core/dispatchers.nqp
Add megamorphic handler for nqp-find-meth

There are various places that use nqp::can and are megamorphic. Add a megamorphic handler for this situation, which guards only on type and then installs a lookup table of methods.
11:57
Geth rakudo/new-disp: b3bf2d5eda | (Jonathan Worthington)++ | src/vm/moar/Perl6/Ops.nqp
Cope if p6sink is somehow used non-void

This is rare, but apparently can happen now that we use it in place of a sink method call.
12:18
rakudo/new-disp: 4ebc6bba08 | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Expose more constants in raku-invoke dispatcher

When the code object we're invoking is a known constant in the dispatch
  - typically because we got it out of the methods table - we don't need
the dispatch program to look up the $!do dynamically. We can instead just look it up directly and expose it to the VM as a constant. This results in shorter dispatch programs and lets spesh avoid inserting lots of static frame guards.
13:01
Geth rakudo/new-disp: 01321782d0 | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Restructure handling of wrapping

Previously, we would handle wrapping in `raku-invoke`. This included the situation where a `proto` was wrapped. This resulted in:
  * Wrong semantics: if we did a `callwith` in the wrapper, we failed to
   honor its change of arguments from the original ones given to the
... (10 more lines)
14:59
Geth nqp/new-disp: 91406c9a52 | (Jonathan Worthington)++ | 2 files
Expose getlexstatic as a literal to dispatch

While for the sake of VM safety we don't rely on the literal flag for objects, it does means that Rakudo's dispatchers will be able to avoid adding some guards.
15:32
rakudo/new-disp: bae8a2d6cc | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Don't guard dispatchees on a literal proto

When the optimizer produces a callstatic op, the literal flag is set on the callee in the capture. Take advantage of this to avoid adding any guards on the dispatchees list in this case.
15:42
lizmat ugexe tonyo I notice that in the META of 360.zef.pm, any non-zero API value is *not* encoded in the "dist" 19:37
is that intentional, or an oversight ?
case in point: github.com/p6steve/raku-Math-Polyg...META6.json 19:40
lizmat "dist":"Math::Polygons:ver\u003c0.0.4\u003e:auth\u003czef:p6steve\u003e" instead of expected 19:49
"dist":"Math::Polygons:ver\u003c0.0.4\u003e:auth\u003czef:p6steve\u003e\u003capi:1\u003e" 19:50
in the JSON
ugexe i dont think anything actually uses that 20:09
although yeah it probably should be included ignoring that
lizmat yet, anyway? 20:10
I mean, technically it's possible to have a distribution with the same version, but with a different API ?
or will fez stop you uploading that ?
ugexe i imagine it works fine. i wouldnt assume too much intent from a field 20:14
s/a/that/
id guess it was a mechanism to increase parsing speed by bypassing json-ifying all meta data of every module to create a list of available namespaces. but that would only work for distribution names, and modules actually provide many namespaces through provides 20:16