🦋 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.
00:06 reportable6 left 00:07 reportable6 joined 00:55 evalable6 joined 01:56 linkable6 joined 02:37 squashable6 left 02:38 frost joined 04:33 frost left 04:38 squashable6 joined 05:38 greppable6 left, bloatable6 left, committable6 left, tellable6 left, notable6 left, quotable6 left, benchable6 left, coverable6 left, releasable6 left, shareable6 left, nativecallable6 left, evalable6 left, statisfiable6 left, sourceable6 left, bisectable6 left, unicodable6 left, linkable6 left, reportable6 left, squashable6 left, bloatable6 joined, reportable6 joined 05:39 nativecallable6 joined, notable6 joined, evalable6 joined, quotable6 joined, bisectable6 joined 05:40 statisfiable6 joined 05:41 releasable6 joined, committable6 joined, greppable6 joined 06:07 reportable6 left 06:40 tellable6 joined, linkable6 joined 07:40 benchable6 joined 07:41 sourceable6 joined 08:38 shareable6 joined 08:39 squashable6 joined
[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
Note that this time I killed my browser and M$-Teams before running the timing
09:41 unicodable6 joined
[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:39 coverable6 joined
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
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.
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.
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:39 evalable6 left, linkable6 left, linkable6 joined
Geth rakudo: f807186eb6 | (Elizabeth Mattijsen)++ | src/core.c/Sequence.pm6
uintify Sequence.EXISTS/AT-POS

For future performance
13:08 reportable6 joined 13:40 evalable6 joined 14:02 discord-raku-bot left 14:03 discord-raku-bot joined 14:07 discord-raku-bot left, discord-raku-bot joined
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 ^^
14:40 frost joined
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
lizmat Array.shift potentially 20% faster now :-)
MasterDuke nice 14:45
btw, jdv++, glad to see another release 14:46
15:13 frost left 17:49 nebuchadnezzar left
Geth rakudo: 7c5595e225 | (Elizabeth Mattijsen)++ | src/core.c/List.pm6
uintify List
18:08 reportable6 left
Geth rakudo: codesections++ created pull request #4786:
Improve error msg for traits passed invalid args
roast: codesections++ created pull request #798:
Fix over-specific regression test
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 linkable6 left
Geth nqp: usev6++ created pull request #765:
[JVM] Add missing methods (bind|get)lex_u_si
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
rakudo: a965cdcb3f | (Elizabeth Mattijsen)++ | src/core.c/Range.pm6
uintify Range
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.
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.
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.
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
21:09 reportable6 joined 21:37 nebuchadnezzar joined 22:04 morayj joined 22:12 morayj left, morayj joined 22:19 morayj left 23:33 linkable6 joined 23:36 Altai-man joined 23:37 samcv left, discord-raku-bot left, discord-raku-bot joined 23:38 samcv joined 23:39 sena_kun left, CIAvash left 23:40 AlexDaniel left 23:43 discord-raku-bot left, discord-raku-bot joined 23:51 discord-raku-bot left, discord-raku-bot joined 23:52 CIAvash joined 23:56 AlexDaniel joined 23:59 samcv left