🦋 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.
lizmat Files=1353, Tests=117179, 292 wallclock secs (36.12 usr 9.80 sys + 4049.65 cusr 344.88 csys = 4440.45 CPU) 08:45
MasterDuke m: my $w = "abcde"; my @s = do for ^($w.chars + 1) { $w.substr(0, * - $_), $w.substr(* - $_, *) }; dd @s 10:12
camelia Array @s = [("abcde", ""), ("abcd", "e"), ("abc", "de"), ("ab", "cde"), ("a", "bcde"), ("", "abcde")]
MasterDuke i know strings can't be trivially be indexed to, but i gotta admit, i do like the look of the python version better: `w = "abcde"; s = [(w[:i], w[i:]) for i in range(len(w) + 1)]` 10:14
(and wow, totally mixed up my wording there, should have been "can't be trivially indexed into" or "can't trivially be indexed into", and i ended up with neither) 10:16
Geth rakudo/lizmat-cleanup-exit-handler: dafa657324 | (Elizabeth Mattijsen)++ | 12 files
Cleanup scope exit-handling

An optimization to handle a single LEAVEish phaser block, was broken. This meant that all block exits that had any phaser, would take the slow path.
Instead if a block contains *only* a single LEAVE phaser, a super fast ... (23 more lines)
10:22
rakudo: lizmat++ created pull request #4918:
Cleanup scope exit-handling
10:23
rakudo/lizmat-cleanup-exit-handler: 90f7a57957 | (Elizabeth Mattijsen)++ | 2 files
Tweaks spotted by MasterDuke++
10:32
Geth rakudo/lizmat-simplify-stdhandle-setup: 36bd8298ee | (Elizabeth Mattijsen)++ | 2 files
Simplify setting up standard handles

We don't have any thread-safety issues with setting up the standard handles, and we always use utf8-encoding for them. So we can set them up without thread-safety as they are all part of running the mainline.
This commit: ... (7 more lines)
12:15
rakudo: lizmat++ created pull request #4919:
Simplify setting up standard handles
[Coke] I suspect long term we will want the #? blocks to specifically declare which backends they are for, rather than, e.g. "!jvm" 12:44
(I saw one in recent pull request that was !jvm and suspect it probably isn't intended for JS. 12:45
lizmat [Coke]: did the PR just show that #? or was it added ? 12:46
MasterDuke lizmat: after your startup work, do you think there's any optimization potential in github.com/rakudo/rakudo/blob/mast...#L772-L836 ? it's currently 60% of the runtime of an implementation of peter norvigs spell checker
lizmat MasterDuke: have some code I could run to test things ? 12:47
[Coke] lizmat: already closed it; could have been just adjacent to a change you made 12:48
Sorry
lizmat MasterDuke: I guess the Pair handling could be put in a separate method to enhance the chance of inlining if not being fed Pairs 12:50
MasterDuke `say "big.txt".IO.slurp.lc.words.Bag.elems` is a golf of the slow bit, with the file coming from www.norvig.com/big.txt 14:25
[Tux] Rakudo v2022.04-33-ga84e16849 (v6.d) on MoarVM 2022.04-1-g4e2eab056
csv-ip5xs0.757 - 0.774
csv-ip5xs-204.822 - 5.312
csv-parser3.498 - 3.652
csv-test-xs-200.408 - 0.475
test6.510 - 6.786
test-t1.360 - 1.368
test-t --race0.827 - 0.839
test-t-2020.684 - 21.562
test-t-20 --race6.628 - 6.853
16:18
MasterDuke lizmat: fwiw, replacing github.com/rakudo/rakudo/blob/mast...#L782-L814 with just a single `nqp::say("pair")` doesn't change runtime at all (total or exclusive for ADD-PAIRS-TO-BAG)
[Coke] another 1.3 day, nice. 16:22
MasterDuke lizmat: gist.github.com/MasterDuke17/f6f0c...b1097a34f4 does seem to have helped very slightly though (and passed a spectest). will probably PR that later tonight 16:38
lizmat MasterDuke: hmmm... that actually gives me an idea 17:11
Geth rakudo/lizmat-cleanup-exit-handler: 847d2a0951 | (Elizabeth Mattijsen)++ | src/Perl6/bootstrap.c/BOOTSTRAP.nqp
Fix superfluous ) on JVM build

Spotted by bartolin++
17:18
lizmat meh, bad idea 17:23
Geth rakudo/lizmat-simplify-stdhandle-setup: 10bd742cbe | (Elizabeth Mattijsen)++ | src/core.c/io_operators.pm6
A bit more radical approach

  - copy the code that is going to be discarded anyway
  - no need to augment
  - just set up the standard handles
Note: the previous approach basically came from the time when the standard handles were being vivified lazily.
18:37
Geth rakudo/rakuast: 5e00fd98fa | (Stefan Seifert)++ | src/Raku/ast/resolver.rakumod
Fix leave-scope failing to pop attach targets

We were checking the type of the RakuAST::Resolver::Compile::Scope object instead of the AST node that may be an attach target.
20:43