🦋 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: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm
Set by lizmat on 8 June 2022.
japhb Digest's tests are failing, but it *appears* unrelated -- something about invalid TAP output 00:02
Geth rakudo: 191964c5a8 | (Christian Bartolomäus)++ | src/Perl6/World.nqp
Reuse $v-how instead of calling HOW again

This won't make much of a difference, but I stumbled upon the repeated call to HOW. To me reusing the already computed variable $v-how looks a bit more consistent.
07:11
rakudo: usev6++ created pull request #5075:
Fix argument for call to archetypes
rakudo: c915b07c94 | (Christian Bartolomäus)++ | src/Perl6/Metamodel/CurriedRoleHOW.nqp
Fix argument for call to archetypes

This buglet sneaked in with 71de22321d where an optional positional parameter for archetypes was introduced. Similar to other methods of the metamodel API the first argument should be the object that HOW was invoked upon.
07:27
rakudo: 3b36d55417 | niner++ (committed using GitHub Web editor) | src/Perl6/Metamodel/CurriedRoleHOW.nqp
Merge pull request #5075 from usev6/CurriedRoleHow_small_fix

Fix argument for call to archetypes
Geth rakudo: 792418b05e | (Elizabeth Mattijsen)++ | src/core.c/Buf.pm6
Revert "Make Blob concatenation always return the left-hand type"

This reverts commit 02a28de5bd7dfdd4b9e56f6934b7f40a86f9c152.
Reverting because there appears to be significant ecosystem fallout in upstream modules such as BSON and HTTP::UserAgent. Sadly, making this fix opt-in with a 6.e version, is tricky until we can dispatch on language version.
10:22
lizmat japhb ^^
it was not an error in the tests 10:23
it showed in the tests, yes, at least with HTTP::UserAgent 10:24
Geth rakudo: e826dbdcb5 | (Elizabeth Mattijsen)++ | 2 files
Move the iterator logic of Str.comb(N) to RI::Ngrams

And also make the logic a bit more general, to allow for additional uses, such as creating ngrams of a string
No functional changes, unmeasurable performance change on Str.comb(N)
13:08
Geth rakudo: d12461b097 | (Elizabeth Mattijsen)++ | src/core.c/Rakudo/Iterator.pm6
Fix issue with steps / partial
17:39
Geth rakudo/lizmat-comb-rotor: 7fa6311ea4 | (Elizabeth Mattijsen)++ | 2 files
Add rotor-like capability to Str.comb

By specifying a Pair with size and step, similar to List.rotor. E.g., to generate trigrams of a string, use .comb(3 => -2):
   say "abcdef".comb(3 => -2); # abc bcd cde def
Takes an optional :partial flag to also generate partial substrings
  (less than the specified size):
   say "abcde".comb(3 => -2, :partial); # abc bcd cde de e
17:54
rakudo: lizmat++ created pull request #5076:
Add rotor-like capability to Str.comb
bartolin_ lizmat: it looks like your changes from int to uint from yesterday caused some fallout for the JVM backend :( One prominent example would be 'my str @arr = "a".."z"' which now explodes with "java.lang.ClassCastException: class java.lang.Long cannot be cast to class org.raku.nqp.sixmodel.SixModelObject" 18:12
From running with --ll-exceptions it hits the uint candidate of AT-POS: github.com/rakudo/rakudo/blob/d124...y.pm6#L460
And then !AT_POS_SLOW is called: github.com/rakudo/rakudo/blob/d124...y.pm6#L487 18:13
lizmat bartolin_: that feels... weird ?
bartolin_ And the signatures don't look right: !AT_POS_SLOW wants an int, but gets an uint. (I think that is the problem.) 18:14
m: 'use nqp; my class Foo { method bar(uint $pos) { self.foo($pos) }; method foo(int $pos) { 42 } }; my int $foo = 42; say Foo.new.bar($foo)'
camelia WARNINGS for <tmp>:
Useless use of constant string "use nqp; my class Foo { method bar(uint $pos) { self.foo($pos) }; method foo(int $pos) { 42 } }; my int $foo = 42; say Foo.new.bar($foo)" in sink context (line 1)
bartolin_ m: use nqp; my class Foo { method bar(uint $pos) { self.foo($pos) }; method foo(int $pos) { 42 } }; my int $foo = 42; say Foo.new.bar($foo)
camelia 42
bartolin_ This leads to the same error I see with 'my str @arr = "a".."z"'
m: 'my sub bar(uint $pos) { foo($pos) }; my sub foo(int $pos) { 42 }; say bar(42)' 18:15
camelia WARNINGS for <tmp>:
Useless use of constant string "my sub bar(uint $pos) { foo($pos) }; my sub foo(int $pos) { 42 }; say bar(42)" in sink context (line 1)
bartolin_ It doesn't seem to work with subs.
(on moar, I mean)
m: my sub bar(uint $pos) { foo($pos) }; my sub foo(int $pos) { 42 }; say bar(42)
camelia ===SORRY!=== Error while compiling <tmp>
Calling foo(uint) will never work with declared signature (int $pos)
at <tmp>:1
------> my sub bar(uint $pos) { ⏏foo($pos) }; my sub foo(int $pos) { 42 }
bartolin_ I think I'll create one or two issues about the problem. Just wanted to note it here in advance. 18:17
lizmat I' going to revert those changes, will revisit after a release
Geth rakudo: f35759beeb | (Elizabeth Mattijsen)++ | 2 files
Revert "Use uint comparisons in native infix:<cmp>"

This reverts commit b75545d3b835d537291f7b93be420a0e1b785da4.
Causing issues on JVM backend, backing out for now
18:18
rakudo: 82d4c17c07 | (Elizabeth Mattijsen)++ | 2 files
Revert "Apply unsigned int comparisons on native arrays"

This reverts commit 32af3dbeafb5cfc106cf048fe9b5e5ffd7f88f3d.
Causing issues on JVM backend, backing out for now
lizmat bartolin_: sorry for the noise
25c76aed00e3be97228be0171487ec9d490b26de is going to stay, as that actually solved a problem 18:19
bartolin_ lizmat: thanks, that was quick. I don't want to slow down progress with reports of explosions from the JVM backend, but in this case I'm glad to get the old, working version back :) 18:22
bartolin_ is going to trigger a build and spectest run on current HEAD 18:25
lizmat: I just saw, that the same error could be triggered without your changes with the following code. That also reaches !AT_POS_SLOW -- which expectes an int. 18:37
m: my uint $foo = 1; my @arr = ^Inf; say @arr.AT-POS($foo)
camelia 1