🦋 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:03 reportable6 left 00:04 reportable6 joined 00:35 jgaz joined 01:21 jgaz left 02:18 Kaiepi left, Kaipi joined 04:11 japhb left 04:14 japhb joined 05:14 sourceable6 left, bloatable6 left, greppable6 left, statisfiable6 left, unicodable6 left, reportable6 left, evalable6 left, tellable6 left, committable6 left, squashable6 left, linkable6 left, reportable6 joined 05:15 evalable6 joined, squashable6 joined, tellable6 joined, statisfiable6 joined, greppable6 joined 05:16 sourceable6 joined, linkable6 joined, unicodable6 joined, bloatable6 joined, committable6 joined 06:02 reportable6 left 06:04 reportable6 joined
Geth rakudo: gfldex++ created pull request #4469:
Positional hyperwhatever
08:10 patrickb joined 08:12 dogbert17 joined, dogbert11 left 08:35 squashable6 left 08:37 squashable6 joined
Geth nqp/new-disp: b6221b0e3c | (Jonathan Worthington)++ | 2 files
Tweak to enable rebootstraping NQP on new-disp

Our circularity saw is certainly a hack saw.
nqp/new-disp: 4489c4ee24 | (Jonathan Worthington)++ | 11 files
Rebootstrap NQP on MoarVM

In preparation for being able to start removing various bits that are being replaced by new-disp.
nqp/new-disp: c9d6b86254 | (Jonathan Worthington)++ | src/core/NQPRoutine.nqp
Don't compile legacy multi dispatcher on MoarVM
rakudo/new-disp: 012725c047 | (Jonathan Worthington)++ | 2 files
Don't compile legacy dispatchers on MoarVM
rakudo/new-disp: eceeb50837 | (Jonathan Worthington)++ | src/Perl6/bootstrap.c/BOOTSTRAP.nqp
Remove multi cache addition on MoarVM

We should eventually eliminate the whole dispatch algorithm here in favor of the MoarVM version, however for now it's still used in an introspective case.
releasable6 Next release in ≈3 days and ≈7 hours. 4 blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 11:00
11:08 sena_kun joined
Geth rakudo: 39ba888487 | (Elizabeth Mattijsen)++ | 2 files
Make Uni cmp Uni work

Also change the infix:<cmp>(@a,@b) candidate to infix:<cmp>(List:D,List:D) so that we can be assured that only actual Lists will take that candidate.
This also makes cmp work on native arrays, albeit through the long and slow way of making them Lists first. To be fixed in consecutive commits.
sena_kun releasable6, status 11:31
releasable6 sena_kun, Next release in ≈3 days and ≈7 hours. 4 blockers. Changelog for this release was not started yet
sena_kun, Details: gist.github.com/d6671d7a8a04dfe98d...23ce4c5fff
Geth rakudo: 76714ca4a7 | (Elizabeth Mattijsen)++ | 2 files
Add native array candidates for infix:<cmp>

This makes cmp-ing native arrays about 3.5x as fast (in the worst case for native arrays that are identical). Faster still for other cases.
12:02 reportable6 left 12:05 reportable6 joined 12:26 dogbert11 joined 12:28 dogbert17 left 12:53 MasterDuke joined
Geth rakudo: f3ff062120 | (Elizabeth Mattijsen)++ | 2 files
Add infix:<cmp> candidates for Iterator and Seq

The Iterator one being an implementation-detail, at least for now.
The reason this code resides in Order, is that it needs Order to be able to work. Earlier in the setting it either won't compile, or bail on the static optimization stage.
rakudo: 50bd1717c3 | (Elizabeth Mattijsen)++ | 2 files
Make List cmp List about 25% faster

Again, for the worst case of identical Lists. Moved the List logic to Order, to allow for this optimization.
nqp/new-disp: e2dc30dd09 | (Jonathan Worthington)++ | 4 files
Remove multicache[find|add] ops on MoarVM

The tests for it are moved into the JVM tests, since it is still used there.
16:36 patrickb left
Geth rakudo/remove-inv-prot: d4f32a6654 | (Jonathan Worthington)++ | 8 files
Attempt to remove InvocationProtocl on MoarVM

For merge once p6capturelex and other ops are expunged, since they turn out to depend on it.
17:52 sena_kun left 18:02 reportable6 left 18:05 reportable6 joined 19:49 japhb left 19:56 japhb joined
Geth rakudo/iterable-cmp: 342a442e60 | (Elizabeth Mattijsen)++ | src/core.c/Order.pm6
Add Iterable cmp Iterable candidates

If either side of an infix:<cmp> is an Iterable, then use the iterator on both sides to determine the result, rather than stringifying the Iterable(s). This is, I think, more correct, and much more memory friendly as there is not Str representation created of the argument.
... (8 more lines)
rakudo: lizmat++ created pull request #4470:
Add Iterable cmp Iterable candidates
lizmat m: my @a = ^10; my int @b = ^10; say @a eqv @b # somehow I expected that to be True ? 20:56
camelia False
gfldex lizmat: Comparing is hard. :-/ 21:10
m: say so (1,2,3) cmp (1..∞); 21:13
camelia True
gfldex m: say (1,2,3) cmp (1..∞);
camelia Less
gfldex m: say "1" cmp (1..∞);
camelia Less
gfldex m: say (2..∞) cmp (1..∞); 21:19
camelia More
raydiak m: say (my int @).^mro # beisdes the parameterization mismatch, it isn't even an Array
camelia ((array[int]) (array) (Any) (Mu))
gfldex lizmat: Infinite lists may need special treatment too. 21:20
22:33 evalable6 left, linkable6 left, evalable6 joined 22:34 linkable6 joined
timo lizmat: but eqv wants the type to be the same too, right? and array[Int] wouldn't match Array? 22:45
raydiak that's what I was getting at ^^^^ up there. here's some other things you might stumble over if you were trying to ignore the type and compare the values: 23:12
m: my @a = ^3; my int @b = ^3; dd @a.list; dd @b.list; dd @a[*]; dd @b[*]; dd @a.values; dd @b.values;
camelia Array @a = [0, 1, 2]
(0, 1, 2)
(0, 1, 2)
array[int].new(0, 1, 2)
(0, 1, 2).Seq
(0, 1, 2)
raydiak you could always explicitly cast to Array or List of course, but all of ^ that mismatch surprised me 23:15
23:54 evalable6 left, linkable6 left 23:55 linkable6 joined 23:57 evalable6 joined