🦋 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.
Geth rakudo: gfldex++ created pull request #4469:
Positional hyperwhatever
07:42
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.
09:47
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.
10:10
nqp/new-disp: c9d6b86254 | (Jonathan Worthington)++ | src/core/NQPRoutine.nqp
Don't compile legacy multi dispatcher on MoarVM
10:16
rakudo/new-disp: 012725c047 | (Jonathan Worthington)++ | 2 files
Don't compile legacy dispatchers on MoarVM
10:25
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
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.
11:18
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.
11:56
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.
12:57
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.
14:24
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.
15:46
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:22
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)
20:48
rakudo: lizmat++ created pull request #4470:
Add Iterable cmp Iterable candidates
20:49
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
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