🦋 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: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm
Set by lizmat on 8 June 2022.
00:06 reportable6 left 00:07 reportable6 joined 01:29 [Coke] left 01:34 [Coke] joined 01:36 Kaipei left 01:40 Kaiepi joined 02:17 discord-raku-bot left, discord-raku-bot joined 02:36 Kaiepi left 03:36 bloatable6 left, linkable6 left, reportable6 left, releasable6 left, committable6 left, statisfiable6 left, quotable6 left, bisectable6 left, notable6 left, sourceable6 left, evalable6 left, tellable6 left, nativecallable6 left, shareable6 left, coverable6 left, benchable6 left, greppable6 left, unicodable6 left, statisfiable6 joined, sourceable6 joined, greppable6 joined, unicodable6 joined 03:37 bisectable6 joined, bloatable6 joined, coverable6 joined 03:38 tellable6 joined, reportable6 joined, notable6 joined, nativecallable6 joined, evalable6 joined, benchable6 joined, shareable6 joined, linkable6 joined, quotable6 joined, committable6 joined 03:39 releasable6 joined 04:43 Kaiepi joined 05:46 sjn left 06:00 sjn joined 06:06 reportable6 left 06:10 reportable6 joined
Geth rakudo/rakuast: a8de4bb672 | (Stefan Seifert)++ | src/Raku/ast/package.rakumod
Make $?ROLE, $?MODULE and $?CLASS available
07:15
rakudo/rakuast: 24a66ea055 | (Stefan Seifert)++ | 2 files
Properly support access to role attributes from role methods

When a role's method tries to access the role's attribute, we need to generate a runtime lookup for $?CLASS, as attributes will be found on the concrete class instead of the role's type, i.e. nqp::getattr(self, $?CLASS, '$!attr') instead of nqp::getattr(self, MyRole, '$!attr')
rakudo/rakuast: 8ef48b0390 | (Stefan Seifert)++ | 3 files
Fix $?CLASS et al leaking outside the package's scope

In addition to adding generated lexicals for $?CLASS, ::?ROLE, etc. to a package's block, we need to declare those lexicals at BEGIN time, so they are available to traits, signatures, the parser etc. However doing so in PERFORM-BEGIN would get them added to the surrounding scope, thus making them still visible after the class body was finished. ... (8 more lines)
nine A good day begins with pushed fixes 07:23
That last one was hard earned though...took me almost a day :/ 07:24
09:09 coverable6 left, nativecallable6 left, releasable6 left, committable6 left, notable6 left, statisfiable6 left, benchable6 left, shareable6 left, quotable6 left, greppable6 left, reportable6 left, bloatable6 left, linkable6 left, evalable6 left, unicodable6 left, bisectable6 left, sourceable6 left, tellable6 left, bloatable6 joined, benchable6 joined, notable6 joined, committable6 joined 09:10 nativecallable6 joined, statisfiable6 joined 09:11 sourceable6 joined, quotable6 joined, unicodable6 joined, evalable6 joined, linkable6 joined, greppable6 joined, shareable6 joined, tellable6 joined, coverable6 joined, bisectable6 joined, reportable6 joined 09:12 releasable6 joined
Geth rakudo: 5a8aa66bc2 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/Perl6/Metamodel/CoercionHOW.nqp
Make coercions up to 1.6x as fast

  - calling method named after type, e.g. Int() -> .Int: 1.6x as fast
  - calling .COERCE: 4% faster
  - calling .new: 3% faster
This has been achieved by breaking up the large "coerce" method into ... (15 more lines)
10:21
rakudo: d7d8e9d0f4 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/IO/Socket/INET.pm6
Make unsuccessful connect fail rather than die

Spotted in stackoverflow.com/questions/726398...socketinet
There is no documentation or tests covering the behaviour of a failed connect. It is actually the nqp::connect that throws (which turns out also to be not documented BTW).
Having it return a Failure feels more natural indeed.
10:22
10:32 sena_kun left 10:34 sena_kun joined
Xliff use NativeCall; my \mallocParams = :(size_t --> Pointer); mallocParams.say; sub a (&c:(|mallocParams), Int() $s) { my size_t $ss = $s; &c($ss).say; }; sub malloc (size_t --> Pointer) is native {*}; malloc(20).say; a(&malloc, 20);' 11:26
m: use NativeCall; my \mallocParams = :(size_t --> Pointer); mallocParams.say; sub a (&c:(|mallocParams), Int() $s) { my size_t $ss = $s; &c($ss).say; }; sub malloc (size_t --> Pointer) is native {*}; malloc(20).say; a(&malloc, 20);'
camelia ===SORRY!=== Error while compiling <tmp>
Unable to parse expression in single quotes; couldn't find final "'" (corresponding starter was at line 1)
at <tmp>:1
------> ve {*}; malloc(20).say; a(&malloc, 20);'⏏<EOL>
expecting …
Xliff m: use NativeCall; my \mallocParams = :(size_t --> Pointer); mallocParams.say; sub a (&c:(|mallocParams), Int() $s) { my size_t $ss = $s; &c($ss).say; }; sub malloc (size_t --> Pointer) is native {*}; malloc(20).say; a(&malloc, 20);
camelia (NativeCall::Types::size_t --> NativeCall::Types::Pointer)
Cannot resolve caller protect(Lock:U: Block:D); none of these signatures matches:
(Lock:D: &code, *%_)
in method setup at /home/camelia/rakudo-m-inst-2/share/perl6/core/sources/871…
Xliff Hmmm... I get "Signature constraint check failed in binding to parameter '&c'; expected :(|mallocParams) but got :(NativeCall::Types:..." 11:27
That almost looks like a way to attach function pointers to a symbol, which I desperately need. What kind of changes would it take to make it work? 11:28
^^ lizmat vrurg jnthn MasterDuke
lizmat Xliff: that's really outside of my mindset atm, MasterDuke is moving house and only online occasionally, and jnthn is not on this channel anymore 11:29
so maybe ask it on #moarvm
11:34 linkable6 left, evalable6 left 11:35 linkable6 joined, evalable6 joined
Xliff lizmat: Thanks. 11:54
12:07 reportable6 left 12:09 reportable6 joined 13:48 discord-raku-bot left, discord-raku-bot joined 13:53 discord-raku-bot left, discord-raku-bot joined 14:20 sena_kun left 14:21 sena_kun joined 16:02 crystalfrost[m] left 18:07 reportable6 left 18:08 reportable6 joined 20:23 discord-raku-bot left, discord-raku-bot joined 20:24 gfldex left 20:26 gfldex joined 20:28 discord-raku-bot left, discord-raku-bot joined 20:59 discord-raku-bot left, discord-raku-bot joined
Geth rakudo/lizmat-optimize-native-substr: 714eb6e832 | (Elizabeth Mattijsen)++ | src/core.c/Str.pm6
Add native candidates for sub substr

This makes:
   my str $a = "foo bar baz";
   my int $f = 4;
   my int $c = 2;
   say substr $a, $f; # bar baz
   say substr $a, $f, $c; # ba
about 2.8x as fast.
21:13
rakudo: lizmat++ created pull request #4965:
Add native candidates for sub substr, making it 2.8x as fast
21:26 discord-raku-bot left, discord-raku-bot joined 22:26 evalable6 left, linkable6 left 22:27 evalable6 joined 22:28 linkable6 joined