🦋 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:08 reportable6 left 00:11 reportable6 joined 00:35 Skarsnik left 00:43 squashable6 joined 01:18 frost joined 02:18 evalable6 left, linkable6 left 02:20 linkable6 joined 03:13 discord-raku-bot left, discord-raku-bot joined 05:20 evalable6 joined 06:08 reportable6 left 06:11 reportable6 joined 06:14 japhb left 06:21 japhb joined 07:07 MasterDuke left 08:39 MasterDuke joined
lizmat Files=1351, Tests=117094, 320 wallclock secs (35.45 usr 9.61 sys + 4450.81 cusr 359.51 csys = 4855.38 CPU) 09:05
Geth rakudo: 59ea71f7ed | (Elizabeth Mattijsen)++ | src/core.c/Rational.pm6
Bring Rational.floor/ceiling/round/Int below inlining limit

The error handling for divide-by-zero (which is an uncommon path to take) made the methods too large to inline. By moving this into a separate private method, the common path becomes small enough to not prevent inlining.
Did not benchmark, but it should have a positive effect on many uses of these methods.
09:57
rakudo: daeb991508 | (Elizabeth Mattijsen)++ | src/core.c/Array/Typed.pm6
Reduce bytecode size of Array[TR].BIND-POS

From 830 to 572, unfortunately still above the inlining limit. But when the native unsigned int work is merged, there will be more possible :-)
10:48
nine lizmat: I'm curious. How will unsigned fixes help there? 11:55
lizmat because then we could dispatch on uint and get rid of the check for < 0 in the code
and thus reduce bytecode further ? 11:56
nine oh, yes, indeed
12:06 reportable6 left 12:20 frost73 joined
Geth rakudo: 30f1fba3c8 | (Elizabeth Mattijsen)++ | 2 files
Make adverbless @a[iterable] about 2.5x as fast

By making sure the hot path can be inlined.
12:22
12:23 frost left 12:24 frost73 is now known as frost
Geth rakudo: ba72309936 | (Elizabeth Mattijsen)++ | src/core.c/array_slice.pm6
No need to use nqp::ifs, use ternaries instead

No functional changes from 30f1fba3c8
12:32
12:46 frost left 13:02 sjn_ is now known as sjn
Geth rakudo: 8ac55c57ed | (Elizabeth Mattijsen)++ | 2 files
Make adverbless @a[*] about 20% faster

By reducing the bytecode size to under the inlining limit
13:17
rakudo: 21829c33f6 | (Elizabeth Mattijsen)++ | 2 files
Make the adverbless zen-slice (@a[]) a few percent faster

By making it inline because it no longer needs to take a closure
13:36
15:07 reportable6 joined
Geth rakudo: 6c765609cb | (Elizabeth Mattijsen)++ | src/core.c/Rat.pm6
Remove two dummy parameters from (Fat)Rat coercer

These appear to have been added with c33f355a5440ea6b26db in 2011, and basically rendered useless a little later in 2011. Removal is spectest clean, so I see no reason to keep them.
16:35
ugexe gist.github.com/ugexe/4f6ec70c0edb...075dfb7cae 16:44
is this suggesting $*DISTRO is not thread safe?
m: (1..1000000).hyper.map: { die unless $*DISTRO } 16:49
camelia ( no output )
ugexe on osx that gives the same error as my gist 16:50
❯ raku -I. -e '(1..1000000).hyper.map: { die unless $*DISTRO }'
[1] 15401 segmentation fault raku -I. -e '(1..1000000).hyper.map: { die unless $*DISTRO }'
slightly different error on a different run
lizmat I guess $*DISTRO initialization may indeed be racey 16:52
well, Distro.new I guess 16:53
Geth rakudo: 2fe1bb85b9 | (Elizabeth Mattijsen)++ | src/core.c/Rat.pm6
Make FatRat.Rat coercion about 6x as fast

Not that that will happen too often I guess, but there's no need to do numerator / denominator normalization again on something that's already a correct FatRat (and in range of Rat values).
16:56
DateTime-Format: Xliff++ created pull request #17:
- Updated authors in README.md
17:00
DateTime-Format: 451589490e | Xliff++ | README.md
- Updated authors in README.md
17:01
DateTime-Format: b39882242f | Xliff++ (committed using GitHub Web editor) | README.md
Merge pull request #17 from Xliff/master

  - Updated authors in README.md
17:06 Guest7 joined 17:07 Guest7 left 17:08 [Coke] left 17:14 [Coke] joined 18:06 reportable6 left
Geth rakudo: 38648b4f8f | (Elizabeth Mattijsen)++ | src/core.c/native_array.pm6
Bring down bytecode size of nativearray.splice helper

From 1136 to 430, sadly still too large to inline. Hopefully later optimizations will bring it down enough.
18:36
18:48 linkable6 left 19:07 reportable6 joined
Geth rakudo: 4d78bc6ace | (Elizabeth Mattijsen)++ | src/core.c/Int.pm6
Re-arrange Int.base a bit

So it'll always inline. With a few percent performance gain.
19:33
19:50 linkable6 joined 19:54 Altai-man left, sena_kun joined 21:05 qorg11 left 21:06 qorg11 joined
Geth rakudo/ugexe-patch-3: 9e3ff604bc | (Nick Logan)++ (committed using GitHub Web editor) | src/core.c/Distro.pm6
Make $*DISTRO more thread safe

This prevents concurrent write attempts to `PROCESS::<$DISTRO>` when registering `$*DISTRO`. It also avoids duplicated work in said situations, such as shell calls to `lsb_release -a`.
Fixes #4714
22:27
rakudo: ugexe++ created pull request #4715:
Make $*DISTRO more thread safe
22:27 discord-raku-bot left 22:28 discord-raku-bot joined 22:56 discord-raku-bot left, discord-raku-bot joined