🦋 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.
[Tux] Rakudo v2022.02-12-g72b9e1c28 (v6.d) on MoarVM 2022.02-1-g0539ead63
csv-ip5xs0.787 - 0.837
csv-ip5xs-204.912 - 5.033
csv-parser3.934 - 3.988
csv-test-xs-200.412 - 0.422
test6.642 - 6.820
test-t1.490 - 1.492
test-t --race0.850 - 0.880
test-t-2022.109 - 22.787
test-t-20 --race7.327 - 7.947
09:41
Note that this time I killed my browser and M$-Teams before running the timing
[Tux] 5 2022-02-04 13:53:25 test-t 1.498 09:44
4 2022-01-31 17:20:41 test-t 1.494
3 2022-01-31 17:22:22 test-t 1.493
2 2022-02-13 10:34:59 test-t 1.492
1 2022-02-13 10:36:39 test-t 1.490
lizmat Files=1351, Tests=117097, 289 wallclock secs (35.03 usr 9.75 sys + 4021.51 cusr 337.44 csys = 4403.73 CPU) 10:13
Geth rakudo: ce07254a85 | (Elizabeth Mattijsen)++ | src/Perl6/Optimizer.nqp
Optimize simple ^42 loops with uint rather than int

This won't make much of a difference now, but it will in the future when loops like for ^10 { ... @a[$_] } will be able to directly dispatch with inlineable uint candidates that do not need to check for index < 0.
10:30
Geth rakudo: e000840d65 | (Elizabeth Mattijsen)++ | src/core.c/Uni.pm6
uintify the Uni class

  - AT-POS int candidate -> uint
  - EXISTS-POS int candidate -> uint
  - Otherwise use uint instead of int to indicate intent
10:52
rakudo: 88386a0940 | (Elizabeth Mattijsen)++ | src/core.c/Array/Shaped1.pm6
uintify the Array::Shaped1 role

This is mostly about showing intent. The actual bounds checking is actually done inside of the shaped array machinery.
11:14
rakudo: 3e89b30aaa | (Elizabeth Mattijsen)++ | src/core.c/Array/Shaped2.pm6
uintify the Array::Shaped2 role

This is mostly about showing intent. The actual bounds checking is actually done inside of the shaped array machinery.
11:25
rakudo: 96cbc2be6f | (Elizabeth Mattijsen)++ | src/core.c/Array/Shaped3.pm6
uintify the Array::Shaped3 role

This is mostly about showing intent. The actual bounds checking is actually done inside of the shaped array machinery.
11:38
Geth rakudo: f807186eb6 | (Elizabeth Mattijsen)++ | src/core.c/Sequence.pm6
uintify Sequence.EXISTS/AT-POS

For future performance
11:51
MasterDuke m: sub a(uint $a) { say "$a" }; a(my int $b = 3)    # huh, wasn't sure this would work 14:14
camelia 3
lizmat m: sub a(uint $a) { say "$a" }; a(my int $b = -3) 14:37
camelia 18446744073709551613
lizmat m: multi a(uint $a) { dd }; multi a(Int:D) { dd }; a(my int $b = -3) 14:38
camelia sub a(Int:D)
lizmat m: multi a(uint $a) { dd }; multi a(Int:D) { dd }; a(my int $b = 3)
camelia sub a(Int:D)
lizmat MasterDuke ^^
Geth rakudo: de9eeeb2cb | (Elizabeth Mattijsen)++ | src/core.c/Array.pm6
uintify Array

  - Add uint candidates to xx-POS where appropriate
  - Mark places that should just re-dispatch in the future
  - Refactored "shift' so that it is now small enough to inline
  - Refactored "pop" so that it will inline earlier
14:44
lizmat Array.shift potentially 20% faster now :-)
MasterDuke nice 14:45
btw, jdv++, glad to see another release 14:46
Geth rakudo: 7c5595e225 | (Elizabeth Mattijsen)++ | src/core.c/List.pm6
uintify List
17:55
Geth rakudo: codesections++ created pull request #4786:
Improve error msg for traits passed invalid args
18:15
roast: codesections++ created pull request #798:
Fix over-specific regression test
18:22
roast: 622cd284d4 | (Daniel Sockwell)++ (committed using GitHub Web editor) | S12-attributes/instance.t
Fix over-specific regression test (#798)

Two S12-attribute regression tests checked the exact value of an error's $.declaring property (expecting it to be `n attribute`). This changes the matcher to test that $.declaring contains `attribute`, which seems more robust.
18:29
Geth nqp: usev6++ created pull request #765:
[JVM] Add missing methods (bind|get)lex_u_si
18:45
japhb [Tux]: Which CPU frequency governor are you using? I happened to read something last week that offhand mentioned workloads that interact badly with the heuristics of the powersave governor, and can be as much as 2x slower than under the performance governor. I'm curious if the change of governor would make any difference to your benchmarks. 18:48
Geth rakudo: codesections++ created pull request #4787:
Remove unneeded/confusing can('prec') checks
19:17
rakudo: a965cdcb3f | (Elizabeth Mattijsen)++ | src/core.c/Range.pm6
uintify Range
19:22
lizmat m: dd \(1,2,3).EXISTS-POS(-1) # oops, an oversight! 19:27
camelia Bool::True
lizmat m: Capture.new.Bool # boom 19:39
camelia elems requires a concrete object (got a VMNull type object instead)
in block <unit> at <tmp> line 1
codesections . 20:07
[Coke] (killed teams) teams is a BEAST, at least on windows. 20:08
Geth rakudo: 771655b0b5 | (Elizabeth Mattijsen)++ | src/core.c/Capture.pm6
uintify Capture

And some refactoring on some of the other methods, in light of current know-how regarding optimization and inlining.
20:10
rakudo: cc3ed94bd6 | (Vadim Belman)++ | 2 files
Turn junctions into value objects

This may serve many purposes like classification/categorization over junctions; or ensuring a junction we have is the one we expect.
20:35
rakudo: b67d38c4e9 | (Vadim Belman)++ (committed using GitHub Web editor) | 2 files
Merge pull request #4769 from vrurg/problem-solving-311

Turn junctions into value objects
rakudo: df09bef0b9 | (Vadim Belman)++ | src/core.c/Hash/Object.pm6
Fix a bug with gist over Junction keys

Autothreading over `Junction` caused a throw in `Rakudo::Sorting`
  `MERGESORT-REIFIED-LIST-AS` method. Since this only happens with
parameterized hashes, the fix is done via adding `:safe` named to
  `Hash::Object` sort method.
20:36
rakudo: c50f51f952 | (Vadim Belman)++ | 6 files
Fix classification and categorization over junctions

Potentially breaking change!
Previously `classify` and `categorize` methods were autothreading over junctions internally, resulting in confusing results. In particular, where same value generally must only appear in a single class, use of a ... (13 more lines)
rakudo: fafcca3159 | (Vadim Belman)++ (committed using GitHub Web editor) | 7 files
Merge pull request #4770 from vrurg/problem-solving-312

Correctly classify over junctions