Geth rakudo/main: 0a90592a5e | ab5tract++ | src/Perl6/Metamodel/ParametricRoleHOW.nqp
Add an istype check on the role group

This addresses R#5317, which had the following test case:
   role R {}
   role S does R {}
   my R $v = role V does S {}
... (21 more lines)
08:31
linkable6 R#5317 [open]: github.com/rakudo/rakudo/issues/5317 [roles][Will be addressed in RakuAST] role-constrained variable does not accept derived role defined inline
rakudo/main: bb4e88a28b | ab5tract++ | 2 files
RakuAST/v6.e - Fix subset type defaults in containers

The proper place for maybe-nominalization (which in turn also involves maybe-definite-ization, for versions < v6.e.
Only RakuAST needs to be fixed here, thankfully, as I have had way too high a does of metamodel internals for the moment. ... (14 more lines)
08:32
rakudo/main: 3e9f252723 | ab5tract++ | src/Raku/ast/type.rakumod
Why were coercions excluded?
09:51 melezhik joined
[Tux] Rakudo v2025.11-29-g3e9f25272 (v6.d) on MoarVM 2025.11-3-g17b39b0c9
csv-ip5xs0.268 - 0.269
csv-ip5xs-201.099 - 1.121
csv-parser1.126 - 1.144
csv-test-xs-200.114 - 0.115
test1.833 - 1.848
test-t0.457 - 0.462
test-t --race0.285 - 0.297
test-t-205.891 - 5.896
test-t-20 --race1.409 - 1.423
10:32
csv-test-xs 0.014 - 0.014
tux.nl/Talks/CSV6/speed4-20.html / tux.nl/Talks/CSV6/speed4.html tux.nl/Talks/CSV6/speed.log
11:45 ds7832 joined
ab5tract what on earth is the purpose for allowing paremeterization for Mix? 12:35
m: my %x is Mix[Int] # why??
camelia ( no output )
ab5tract this one feels like implementor torture without a purpose 12:36
lizmat m: my %x is Mix[Date()] = "2025-11-23" => 42; dd %x # that makes sense ? 12:44
camelia Real = Mix[Date(Any)].new-from-pairs("2025-11-23"=>42)
lizmat perhaps better: 12:45
m: my %x is Mix[Date] = "2025-11-23".Date => 42; dd %x.keys
camelia (Date.new(2025,11,23),).Seq
lizmat in any case, I think that shares the implementation with Bag 12:56
m: my %x{Int()} = "42" => 666; dd %x.keys # this coerces 12:58
camelia (42,).Seq
lizmat m: my %x is Mix[Int()] = "42" => 666; dd %x.keys # this does not, which feels like a bug
camelia ("42",).Seq
lizmat m: my %x is Bag[Int()] = "42" => 666; dd %x.keys # shared with Bag 12:59
camelia ("42",).Seq
lizmat m: my %x is Set[Int()] = "42" => 666; dd %x.keys # and Set
camelia ("42",).Seq
lizmat makes an issue
github.com/rakudo/rakudo/issues/6031 13:02
ab5tract oh, so it *is* about the key type after all 13:10
I maybe have that working
I thought it was about the value, which would make much much less sense
been seeing some unfortunately formatted `dd` ourtput. looks like it needs a bit of corner case magic 13:16
Int(Any) = (my Int(Any) %{Mu} = 1 => 1, 2 => 1, 3 => 1)
some behaviors of quanthashes seem to be only available for my %h is Mix[...], that is, there is no way to assign a parameterized mix into a scalar 13:27
m: my Mix[Int()] $x = <1 2 3> X=> 2.2 ==> dd()
camelia Type check failed in assignment to $x; expected Mix[Int(Any)] but got List. You have to pass an explicitly
typed hash, not one that just might happen to contain elements of the
correct type.
in block <unit> at <tmp> line 1
ab5tract m: my Mix[Int()] $x: = <1 2 3> X=> 2.2 ==> dd()
camelia ===SORRY!=== Error while compiling <tmp>
Confused
at <tmp>:1
------> my Mix[Int()] $x:<HERE> = <1 2 3> X=> 2.2 ==> dd()
expecting any of:
colon pair
ab5tract m: my Mix[Int()] $x : = <1 2 3> X=> 2.2 ==> dd()
camelia ===SORRY!=== Error while compiling <tmp>
Confused
at <tmp>:1
------> my Mix[Int()] $x :<HERE> = <1 2 3> X=> 2.2 ==> dd()
expecting any of:
colon pair
ab5tract m: my %x i Mix[Int()] = <1 2 3> X=> 2.2 ==> dd() 13:28
camelia ===SORRY!=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> my %x<HERE> i Mix[Int()] = <1 2 3> X=> 2.2 ==> dd
expecting any of:
infix
infix stopper
statement end
statement modifi…
ab5tract m: my %x is Mix[Int()] = <1 2 3> X=> 2.2 ==> dd()
camelia Real = Mix[Int(Any)].new-from-pairs(IntStr.new(3, "3")=>2.2,IntStr.new(2, "2")=>2.2,IntStr.new(1, "1")=>2.2)
ab5tract :( (frowny-face at Int() producing IntStr)
13:34 ds7832 left 13:49 ds7832 joined
ab5tract lizmat: does `t/spec/S02-types/bag.t`pass for you locally with RAKUDO_RAKUAST=1? 14:25
nevermind, I think I've got it 14:28
m: Q| my %h := bag <a b>; dd %h.keyof |.AST.EVAL; my %x := bag <a b>; dd %x.keyof 14:32
camelia Mu
Mu
ab5tract m: Q| my $h := bag <a b>; dd $h.keyof |.AST.EVAL; my $x := bag <a b>; dd $x.keyof
camelia Mu
Mu
14:32 ds7832 left 14:33 ds7832 joined
ab5tract I think there are tests that believe this should be Int? 14:34
I guess I must be reading the tests wrong
a bunch of TODOs are passing :D 14:35
but there's still something wrong with the quanthash tests
14:40 melezhik left
ab5tract gist.github.com/ab5tract/6a1ea4e8c...e65832b678 14:42
m: Q| my $h = bag <a b>; dd $h.keyof |.AST.EVAL; my $x = bag <a b>; dd $x.keyof 14:43
camelia Mu
Mu
ab5tract m: Q| my %h is Bag[Int()] = <1 2>; dd %h.keyof |.AST.EVAL; my %x is Bag[Int()] = <1 2>; dd %x.keyof 14:45
camelia Int(Any)
Int(Any)
ab5tract okay, so it is something still wrong with my patch
14:48 melezhik joined 15:37 ds7832 left
ab5tract ooo, checkout all these passing todos! gist.github.com/ab5tract/a65018c9f...0b0f4d5572 16:03
16:03 melezhik_ joined
melezhik_ . 16:03
[Coke] ab5tract would you guys like to run brownie round ? 16:04
16:18 melezhik_ left
Geth rakudo/r5970-generic-finale: 507bbf5b5c | ab5tract++ | .gitignore
Ignore .idea/ in git
16:24
rakudo/r5970-generic-finale: eaf6419c89 | ab5tract++ | src/Raku/ast/variable-declaration.rakumod
Fix parameterizations of types in `is` trait

Considering
   role R[::T] { has @.a is Array[T] }
   my $r = R[Int].new: :a(1,2,3)
   # Illegal binding exception, "expected `T` and got `Int`"
... (17 more lines)
rakudo: ab5tract++ created pull request #6032:
Fix parameterizations of types in `is` trait
16:26
16:38 melezhik_ joined
melezhik_ . 16:38
ab5tract hey melezhik_ I can do a run 16:41
melezhik_ cool 16:42
lets do this
Geth rakudo/r5970-generic-finale: d77b3e1bcb | ab5tract++ | src/Raku/ast/variable-declaration.rakumod
[RakuAST] Fix parameterizations of types in `is` trait

Considering
   role R[::T] { has @.a is Array[T] }
   my $r = R[Int].new: :a(1,2,3)
   # Illegal binding exception, "expected `T` and got `Int`"
... (17 more lines)
melezhik_ 1000 modules is it ok? 16:43
ab5tract sure :) 16:48
16:54 melezhik_ left, melezhik_ joined 17:10 melezhik left 17:14 ds7832 joined
melezhik_ I run 010r for 1000 modules, rakudo 2025.11, tap your agent in, anytime ... 17:14
17:21 melezhik_ left 17:22 melezhik_ joined 17:45 melezhik_ left, melezhik_ joined 18:01 melezhik_ left, melezhik_ joined 18:07 melezhik_ left, melezhik_ joined 18:24 melezhik_ left, melezhik_ joined 18:25 melezhik_ left 20:34 ds7832 left 21:47 ds7832 joined
ab5tract just started the agent 22:47
[Coke] The way it's setup right now, does the agent need to be running on a particular OS? 23:47
can you repoint me at the signup instructions?
[Coke] finds github.com/melezhik/brownie/blob/m.../README.md 23:48
which gets me to the agent page 23:50
23:59 ds7832 left
[Coke] .tell melezhik - agent instructions say to use 127.0.0.1 in the browser, but here that fails and I need literal 'localhost' 23:59
tellable6 [Coke], I'll pass your message to melezhik_