02:18 guifa joined 06:17 sivoais left 06:31 sivoais joined
[Tux] Rakudo v2026.09-214-g2982e56ef2 (v6.d) on MoarVM 2026.09-38-g597c5351b
csv-ip5xs0.348 - 0.364
csv-ip5xs-201.225 - 1.304
csv-parser1.155 - 1.168
csv-test-xs-200.117 - 0.120
test1.953 - 1.971
test-t0.568 - 0.571
test-t --race0.354 - 0.369
test-t-207.372 - 7.556
test-t-20 --race1.679 - 1.701
06:56
csv-test-xs 0.015 - 0.018
tux.nl/Talks/CSV6/speed4-20.html / tux.nl/Talks/CSV6/speed4.html tux.nl/Talks/CSV6/speed.log
Geth rakudo/lizmat-102: 9adf0621d9 | (Elizabeth Mattijsen)++ | src/core.c/Match.rakumod
(At least) preliminary fix for #6879

It turned out that the $!regexsub attribute is not set (whereas in legacy it was). However, in legacy, it appears to have contained the original regex.
Looking at the QAST differences, it definitely looks like RakuAST ... (8 more lines)
11:18
rakudo: lizmat++ created pull request #6889:
(At least) preliminary fix for #6879
11:19
linkable6 RAKUDO#6879 [open]: github.com/rakudo/rakudo/issues/6879 [BLOCKER][RAKUDO_RAKUAST=1] Regression (2026.09): m:g + :ratchet + capture group → lang-call cannot invoke object of type 'VMNull'
lizmat [Coke]: intend to merge github.com/rakudo/rakudo/pull/6889 if it is green in CI, and would like to see a blin run after that 11:22
[Coke] Sure - I can also do a blin run while it's still in the branch if you like. 13:05
lizmat nah, it's green
Geth rakudo/main: 5ccfdc2370 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/Match.rakumod
(At least) preliminary fix for #6879 (#6889)

It turned out that the $!regexsub attribute is not set (whereas in legacy it was). However, in legacy, it appears to have contained the original regex.
Looking at the QAST differences, it definitely looks like RakuAST ... (8 more lines)
lizmat so yes :)
[Coke] c: 5ccfdc2370 e 13:07
committable6 [Coke], ¦5ccfdc2: «Cannot find this revision (did you mean “004fd13”?)»
lizmat patience :-)
[Coke] c: 5ccfdc2370 e 14:20
committable6 [Coke], ¦5ccfdc2: «»
[Coke] started 15:01
16:46 lizmat left 16:47 lizmat joined 18:15 finanalyst_ joined, finanalyst left 18:20 finanalyst__ joined 18:22 finanalyst_ left
lizmat Coke: after having looked at github.com/rakudo/rakudo/issues/6857 for most of today, I'm getting to the conclusion (at least for now) to remove the Blocker label 18:39
since I'm not 100% sure whether checking for existence of a native library at module precomp time makes sense 18:41
and further, whether this is actually solvable in RakuAST
[Coke]: thoughts? 18:42
19:28 finanalyst_ joined, finanalyst__ left
[Coke] I dislike "behavior changed" but I'm not sure about this particular case. 19:42
wait, LibraryCheck isn't core? 19:44
also, the module tests and installs fine on 2026.09 20:11
So you're not saying "don't fix", just "remove blocker"? 20:16
lizmat I'm saying: I don't see a quick fix for this particular use of LibraryCheck, there *is* a workaround (don't precomp), so "remove blocker" 21:23
also: using LibraryCheck in precomp is questionable, as native libraries could come and go after precomp 21:24
guifa i'm probably forgetting 21:40
lizmat ? 21:41
guifa but how can multidispatch with fixed values of named args
multi sub foo(1) # easy
lizmat make them obligatory ?
guifa multi sub foo( :$bar where $bar == 1 ) # only way I can seem to get this effect
lizmat m: multi a(:$foo!) { dd }; multi a(:$bar!) { dd }; dd a :foo
camelia sub a(:$foo!)
Nil = Nil
lizmat ah... 21:42
m: enum FOO <zip zop>; multi a(zip :$foo!) { dd }; multi a(zop :$foo) { dd }; a :a(zip) 21:43
camelia Cannot resolve caller a(:a(zip)); none of these signatures matches:
(FOO :$foo! where { ... })
(FOO :$foo where { ... })
in block <unit> at <tmp> line 1
lizmat meh
m: enum FOO <zip zop>; multi a(zip :$foo) { dd }; multi a(zop :$foo) { dd }; a :a(zip)
camelia Cannot resolve caller a(:a(zip)); none of these signatures matches:
(FOO :$foo where { ... })
(FOO :$foo where { ... })
in block <unit> at <tmp> line 1
lizmat m: subset Zip of Int where * == 1; multi a(Zip :$foo) { dd }; multi a(zop :$foo) { dd }; a :a(zZip) 21:44
camelia ===SORRY!=== Error while compiling <tmp>
Invalid typename 'zop' in parameter declaration.
at <tmp>:1
------> ; multi a(Zip :$foo) { dd }; multi a(zop<HERE> :$foo) { dd }; a :a(zZip)
lizmat m: subset Zip of Int where * == 1; multi a(Zip :$foo) { dd }; multi a(:$foo) { dd }; a :a(zZip)
camelia ===SORRY!=== Error while compiling <tmp>
Undeclared routine:
zZip used at line 1. Did you mean 'zip'?
lizmat m: subset Zip of Int where * == 1; multi a(Zip :$foo) { dd }; multi a(:$foo) { dd }; a :a(Zip)
camelia Cannot resolve caller a(:a((Zip))); none of these signatures matches:
(Int :$foo where { ... })
(:$foo)
in block <unit> at <tmp> line 1
lizmat meh
guifa okay so it's not just me not being able to remember 21:46
lizmat well, you can also do: where * == 1 :-) 21:47
m: role A[$value] { }; class B does A[1]; class C does A[2]; multi a(B :$foo) { dd }; multi a(C: :$foo) { dd }; a :foo(A) 21:49
camelia ===SORRY!=== Error while compiling <tmp>
Too late for unit-scoped class definition;
Please use the block form.
at <tmp>:1
------> role A[$value] { }; class B does A[1];<HERE> class C does A[2]; multi a(B :$foo) {
lizmat m: role A[$value] { }; class B does A[1] { }; class C does A[2] { }; multi a(B :$foo) { dd }; multi a(C: :$foo) { dd }; a :foo(A)
camelia ===SORRY!=== Error while compiling <tmp>
Can only use the : invocant marker in the signature for a method
at <tmp>:1
------> ulti a(B :$foo) { dd }; multi a(C: :$foo<HERE>) { dd }; a :foo(A)
expecting any of:
constraint
lizmat m: role A[$value] { }; class B does A[1] { }; class C does A[2] { }; multi a(B :$foo) { dd }; multi a(C :$foo) { dd }; a :foo(A)
camelia Cannot resolve caller a(:foo(A)); none of these signatures matches:
(B :$foo)
(C :$foo)
in block <unit> at <tmp> line 1
guifa yeah, but iirc the * == 1 adds an extra callable layer
lizmat possibly, but might get opted away ? 21:50
afk again& 21:51