🦋 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.
00:35 kjp left 00:37 kjp joined 06:16 [Coke] left 06:21 [Coke] joined 10:11 [Tux] left 10:17 [Tux] joined 10:22 finanalyst joined
Geth rakudo/main: 17fe51b867 | (Elizabeth Mattijsen)++ | src/core.c/Range.rakumod
Allow native arrays to be endpoints for Ranges

This is a (hopefully) temporary workaround for #5760. The problem is caused by dispatch / coercion not selecting the correct Range.new candidate, causing it to go to the default candidates, which would then just plunk the native arrays as endpoints in the Range object. Which then later causes several types of issues when wanting to iterate over the Range.
This will at least be enough for the 2025.01 release, and unbreak testing on e.g. the IRC::Log::Colabti module
12:36
13:45 sjn left
[Coke] lizmat: any feedback on the REPL PROMPT? Happy to make any changes needed. Wonder if we could move the subs/method into 6.e as augments 14:21
14:37 sjn joined 18:23 TempIRCLogger joined, TempIRCLogger left
tonyo patrickb: i need to run a script to fix it, it's on there though just missing from the meta 19:27
lizmat looks like we have a discrepancy here: 19:56
m: use nqp; my str @a; say nqp::istype(@a,Cool); say @a ~~ Cool
camelia 0
True
lizmat #5760 19:58
R#5760
linkable6 R#5760 [open]: github.com/rakudo/rakudo/issues/5760 Real(Cool) coercion doesn't work with native arrays
lizmat m: use nqp; my str @a = <a b c>; say @a.Real # the coercion works, so it's just in the typing 19:59
camelia 3
timo hm. 20:05
m: say array[str].new() ~~ Cool; say array[str] ~~ Cool 20:06
camelia False
False
timo m: my str @a; @a.WHAT.say; @a.^name.say; say @a ~~ Cool
camelia (array[str])
array[str]
True
timo m: my str @a; @a.WHAT.say; @a.^name.say; say @a ~~ Cool; say array[str] ~~ Cool; say array[str].new ~~ Cool
camelia (array[str])
array[str]
True
False
False
lizmat intriguing, no?
timo odd, yeah
lizmat possibly related 20:07
timo what was the parameter for mro or so to really give everything? or was that for .^methods that i was thinking of?
lizmat m: my str @a = <a b c>; dd @a.^mro
camelia Invocant of method 'raku' must be an object instance of type
'array::strarray', not a type object of type 'array[str]'. Did you
forget a '.new'?
in block <unit> at <tmp> line 1
lizmat however: 20:08
m: my str @a = <a b c>;use nqp; dd nqp::isconcrete(@a)
camelia 1
timo yeah, we're calling .raku on the type object in the mro list
that's what's exploding 20:09
lizmat ah, yes
timo m: my str @a; @a.WHAT.raku.say
camelia Invocant of method 'raku' must be an object instance of type
'array::strarray', not a type object of type 'array[str]'. Did you
forget a '.new'?
in block <unit> at <tmp> line 1
timo m: my @a; @a.WHAT.raku.say
camelia Array
lizmat m: my str @a = <a b c>; say @a.^mro
camelia ((array[str]) (array) (Any) (Mu))
timo just not implemented
lizmat yeah, ok
so that's why native arrays aren't cool
I wonder if that's intentional ? 20:10
timo is that why?
lizmat m: my str @a = <a b c>; say @a.^roles
camelia ((strarray[str]) (Positional[str]) (Positional) (Iterable))
lizmat yeah
timo oh, yeah, Cool isn't in there, but why do we get True anyway when asking "my str @a" for matching Cool? does it get listified somehow?
lizmat no idea.. 20:11
perhaps it's using the List.ACCEPTS ?
timo i don't think that's it 20:12
it should be doing Cool.ACCEPTS
dinner's about to happen. maybe the moar remote debugger can help you figure it out tho while i'm afk
btw ... steppable? :)
lizmat thanks for looking
steppable? as a bot ? 20:13
timo yeah 20:14
if not "the_hotsteppa"
lizmat interesting idea
would get very noisy on a channel ?
timo oh it wouldn't be interactiv1e
it would just make a big gist i guess
lizmat ah, ok, feels like a good idea 20:15
actually, looks like the fix is as easy as adding "is Cool" at the right place 20:27
Geth rakudo/main: 8f38af87cd | (Elizabeth Mattijsen)++ | 2 files
Make native arrays Cool

This was the underlying issue with #5760.
This commit also rolls back the temporary fix of 17fe51b867
20:42
rakudo/main: c0c2e01f4b | (Elizabeth Mattijsen)++ | src/core.c/native_array.rakumod
Make sure strarray.raku doesn't die

It was defined as a method, probably to prevent dispatch ambiguity with the array:D: candidate. Better to make it a multi and make it the default on dispatch ambiguity.
Found while looking at #5760
21:04
roast: 1c37c7882e | (Elizabeth Mattijsen)++ | 2 files
Add tests for #5760
21:14
roast: 097b734e60 | (Elizabeth Mattijsen)++ | S06-other/main.t
Add tests for #5759
21:38
21:39 sena_kun joined
lizmat [Coke]: I'll look at REPL_PROMPT tomorrow, when I'm fresh :-) 21:53
afk& 21:54
22:33 sena_kun left
timo argh, the fix for the multiple packages including the same precomp files issue seems to not have been correct ... or maybe we need to also rebuild the other package that is part of the conflict and not just the one we did rebuild 23:34
my head is a little bit too fried to figure that out right now i think 23:36
lucky, all it takes is a rebuild of raku-test-meta based on the newer version of raku-license-spdx 23:49