🦋 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:00 reportable6 left 00:02 reportable6 joined 00:42 leont left, leont joined 01:23 Geth left 02:23 benchable6 left, quotable6 left, squashable6 left, tellable6 left, committable6 left, sourceable6 left, unicodable6 left, notable6 left, nativecallable6 left, releasable6 left, greppable6 left, statisfiable6 left, bisectable6 left, linkable6 left, evalable6 left, bloatable6 left, coverable6 left, shareable6 left, reportable6 left, notable6 joined, nativecallable6 joined, tellable6 joined 02:24 shareable6 joined, linkable6 joined, unicodable6 joined, sourceable6 joined, bisectable6 joined, reportable6 joined, benchable6 joined, greppable6 joined, evalable6 joined, statisfiable6 joined 02:25 coverable6 joined, bloatable6 joined, committable6 joined, squashable6 joined 02:26 quotable6 joined, releasable6 joined 04:36 unicodable6 left, reportable6 left, nativecallable6 left, greppable6 left, sourceable6 left, statisfiable6 left, tellable6 left, committable6 left, evalable6 left, quotable6 left, notable6 left, coverable6 left, bloatable6 left, squashable6 left, releasable6 left, bisectable6 left, linkable6 left, shareable6 left, benchable6 left, bisectable6 joined 04:37 coverable6 joined, notable6 joined, statisfiable6 joined, nativecallable6 joined, tellable6 joined, releasable6 joined, sourceable6 joined, quotable6 joined 04:38 reportable6 joined, bloatable6 joined, benchable6 joined, unicodable6 joined 04:39 committable6 joined, squashable6 joined, evalable6 joined, linkable6 joined, shareable6 joined, greppable6 joined 05:39 nativecallable6 left, coverable6 left, evalable6 left, bloatable6 left, benchable6 left, committable6 left, linkable6 left, notable6 left, shareable6 left, squashable6 left, sourceable6 left, reportable6 left, releasable6 left, tellable6 left, unicodable6 left, greppable6 left, quotable6 left, bisectable6 left, statisfiable6 left 05:40 sourceable6 joined, benchable6 joined, squashable6 joined, bisectable6 joined, linkable6 joined, committable6 joined, unicodable6 joined 05:41 bloatable6 joined, nativecallable6 joined, statisfiable6 joined, evalable6 joined, greppable6 joined, releasable6 joined 05:42 coverable6 joined, quotable6 joined, tellable6 joined, shareable6 joined, notable6 joined, reportable6 joined 06:00 reportable6 left 06:02 reportable6 joined 06:11 jgaz left 06:13 jgaz joined 07:28 rba left, rba_ joined, rba_ is now known as rba 07:47 Geth joined 07:56 Geth left, Geth joined 08:24 finanalyst joined 08:53 squashable6 left 08:54 squashable6 joined 10:29 tellable6 left, notable6 left, squashable6 left, quotable6 left, benchable6 left, shareable6 left, evalable6 left, unicodable6 left, committable6 left, statisfiable6 left, bisectable6 left, coverable6 left, linkable6 left, sourceable6 left, reportable6 left, bloatable6 left, greppable6 left, nativecallable6 left, releasable6 left, quotable6 joined, coverable6 joined 10:30 bloatable6 joined, releasable6 joined, squashable6 joined 10:31 bisectable6 joined, sourceable6 joined, evalable6 joined, committable6 joined, notable6 joined, shareable6 joined, linkable6 joined 10:32 benchable6 joined, greppable6 joined, reportable6 joined, statisfiable6 joined, tellable6 joined, nativecallable6 joined, unicodable6 joined 10:45 guifa left 11:59 finanalyst left 12:00 reportable6 left, reportable6 joined 12:01 tonyo left, tonyo joined
gfldex m: my &foo = BEGIN 'proto sub foo(|) {*}'.EVAL; multi sub foo($i) { }; foo(42); 13:00
camelia ===SORRY!=== Error while compiling <tmp>
Redeclaration of routine 'foo'. Did you mean to declare a multi-sub?
at <tmp>:1
------> foo(|) {*}'.EVAL; multi sub foo($i) { }⏏; foo(42);
expecting any of:
horizontal whi…
gfldex m: constant &foo = BEGIN 'proto sub foo(|) {*}'.EVAL; multi sub foo($i) { }; foo(42);
camelia ( no output )
gfldex m: constant &foo = BEGIN 'proto sub foo(|) { nextwith() }'.EVAL; multi sub foo($i) { }; foo(42);
camelia nextwith is not in the dynamic scope of a dispatcher
in sub foo at EVAL_0 line 1
in block <unit> at <tmp> line 1
gfldex Is there any way to make that work? 13:01
This is an urgent question. A blogpost depends on it! :->
lizmat what should the nextwith dispatch to? 13:02
gfldex m: constant &foo = BEGIN 'proto sub foo(|) { nextwith(42) }'.EVAL; multi sub foo($i) { }; foo(42); 13:03
camelia nextwith is not in the dynamic scope of a dispatcher
in sub foo at EVAL_0 line 1
in block <unit> at <tmp> line 1
gfldex Call the next candidate.
This is golfed and as such makes little sense. 13:04
lizmat but you're calling it in the proto? That's generally where the buck ends ?
gfldex ungolfed: gist.github.com/gfldex/10c78c78482...f15326279d 13:05
Then I may not understand proto (what is likely).
lizmat without optimizations, the proto sub foo is the sub that gets called whenever you do "foo()" 13:07
that will then look at the given args and decide which of its candidates to actually run
(which is basically what {*} does) 13:08
proto foo(|) {*}
is just short for:
gfldex I want to modify args in the proto before the dispatch continues.
lizmat proto sub foo(|) { {*} }
samewith ? 13:09
gfldex samewith gives at least a different error message. 13:11
vrurg And yet it'd be better to have a special candidate which modifies and re-dispatches to the final one. 13:14
Or use a `my proto` in the lexical scope of your non-multi quasi-enum. 13:18
gfldex m: constant &foo = BEGIN 'multi sub foo(|) { samewith(42) }'.EVAL; multi sub foo($i) { }; foo(42); 13:23
camelia ===SORRY!=== Error while compiling <tmp>
Redeclaration of routine 'foo'. Did you mean to declare a multi-sub?
at <tmp>:1
------> ewith(42) }'.EVAL; multi sub foo($i) { }⏏; foo(42);
expecting any of:
horizontal whi…
gfldex I don't get that problem with a proto.
vrurg Onlystar is the only way to start looking for candidates. 13:33
lizmat A trick I've used in some of the P5 modules is: 13:37
BEGIN my &old-foo = &foo;
proto sub foo(|c) { if dispatch-new { {*} } else { old-foo(|c) } 13:38
Geth rakudo/main: 04ec9234cb | (Elizabeth Mattijsen)++ | src/Raku/Actions.nqp
RakuAST: streamline handling of deprecated charnames
14:09
14:11 Geth left 14:12 Geth joined
Geth rakudo/main: cfcf9fb3e9 | (Elizabeth Mattijsen)++ | 2 files
RakuAST: Streamline slang nibbling

  - dynvars should be uppercase, so @*NIBBLES instead of @*nibbles
  - use native ints where possible
  - collect nibbles in lexical array, publish to dynvar at end
  - other shortcuts to dynvars added
14:53
14:56 SmokeMachine left 14:57 leont left, zostay left, tbrowder__ left, kawaii left 14:59 zostay joined, tbrowder__ joined, SmokeMachine joined 15:00 leont joined, kawaii joined
[Tux] Rakudo v2023.08-217-gcfcf9fb3e (v6.d) on MoarVM 2023.08-3-g2f8234c22
csv-ip5xs0.905 - 1.001
csv-ip5xs-205.418 - 5.989
csv-parser3.868 - 4.462
csv-test-xs-200.344 - 0.398
test7.435 - 7.459
test-t1.513 - 1.575
test-t --race0.907 - 1.228
test-t-2021.498 - 22.615
test-t-20 --race6.787 - 7.587
15:11
[Coke] wonders if any of that csv testing can be done with rakuast. Guessing not yet! 17:01
nifty: news.perlfoundation.org/post/maint...ugust_2023 17:08
(perl not raku but nice to see some insight into core hacking on something else)
18:00 reportable6 left 18:01 reportable6 joined 18:40 finanalyst joined 19:51 |Tux| left, |Tux| joined 21:26 linkable6 left, evalable6 left 21:27 linkable6 joined 21:28 evalable6 joined 22:28 notable6 left, unicodable6 left, quotable6 left, statisfiable6 left, bloatable6 left, greppable6 left, bisectable6 left, squashable6 left, shareable6 left, committable6 left, evalable6 left, coverable6 left, sourceable6 left, releasable6 left, nativecallable6 left, benchable6 left, reportable6 left, tellable6 left, linkable6 left, shareable6 joined, reportable6 joined 22:29 releasable6 joined, greppable6 joined, quotable6 joined, statisfiable6 joined, unicodable6 joined, tellable6 joined, bisectable6 joined 22:30 coverable6 joined, linkable6 joined, squashable6 joined, bloatable6 joined, notable6 joined, sourceable6 joined, committable6 joined 22:31 nativecallable6 joined, benchable6 joined, evalable6 joined 23:23 ilogger2 left 23:25 ilogger2 joined