[03:03] <[Coke]> there is an argument that none of the advent code snippets should be in roast. I think that's my fault from pre-xmas

[04:46] *** hurufu joined
[08:54] <[Tux]> Rakudo v2026.05-3-g216c855e3 (v6.d) on MoarVM 2026.05-3-g236fcdf7c

[08:54] <[Tux]> csv-test-xs         0.014 -  0.014

[08:54] <[Tux]> csv-test-xs-20      0.112 -  0.113

[08:54] <[Tux]> csv-ip5xs           0.262 -  0.271

[08:54] <[Tux]> test-t --race       0.293 -  0.300

[08:54] <[Tux]> test-t              0.453 -  0.458

[08:54] <[Tux]> csv-ip5xs-20        1.048 -  1.366

[08:54] <[Tux]> csv-parser          1.071 -  1.098

[08:54] <[Tux]> test-t-20 --race    1.383 -  1.416

[08:54] <[Tux]> test                1.775 -  1.785

[08:54] <[Tux]> test-t-20           5.875 -  5.922

[08:54] <[Tux]> https://tux.nl/Talks/CSV6/speed4-20.html / https://tux.nl/Talks/CSV6/speed4.html https://tux.nl/Talks/CSV6/speed.log

[10:08] *** ShimmerFairy left
[10:08] *** ShimmerFairy joined
[13:19] *** hurufu left
[14:13] *** finanalyst joined
[15:29] *** finanalyst left
[18:50] <Geth> ¦ rakudo/main: 883770dd7f | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.e/Formatter.rakumod

[18:50] <Geth> ¦ rakudo/main: Properly support %g in 6.e sprintf

[18:50] <Geth> ¦ rakudo/main: 

[18:50] <Geth> ¦ rakudo/main: The previous implementation had several errors *and* erroneously

[18:50] <Geth> ¦ rakudo/main: assumed that the precision indication was for number of digits

[18:50] <Geth> ¦ rakudo/main: after the period.  The "standard" requires that the precision

[18:50] <Geth> ¦ rakudo/main: is to be interpreted as "number of significant digits", a subtle

[18:50] <Geth> ¦ rakudo/main: difference!

[18:50] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/883770dd7f

[18:52] <Geth> ¦ roast: f5003f6cfc | (Elizabeth Mattijsen)++ | 2 files

[18:52] <Geth> ¦ roast: Update 6.e tests of sprintf %g formatting

[18:52] <Geth> ¦ roast: review: https://github.com/Raku/roast/commit/f5003f6cfc

[20:08] *** apogee_ntv left
[20:18] *** apogee_ntv joined
[22:06] *** ShimmerFairy left
[22:07] *** ShimmerFairy joined
[22:21] <Geth> ¦ rakudo/main: 300deefb40 | (Nick Logan)++ | 4 files

[22:21] <Geth> ¦ rakudo/main: RakuAST: fix compound metaop assignment Z+=, X+=, <<+=>>

[22:21] <Geth> ¦ rakudo/main: 

[22:21] <Geth> ¦ rakudo/main: These silently no-opped because codegen produced a lazy Seq that

[22:21] <Geth> ¦ rakudo/main: never got iterated in sink context. Emit the legacy element-wise

[22:21] <Geth> ¦ rakudo/main: METAOP_ZIP(METAOP_ASSIGN(+)) shape so per-element mutation fires

[22:21] <Geth> ¦ rakudo/main: during the call and native typed arrays survive.

[22:21] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/300deefb40

[22:21] <Geth> ¦ rakudo/main: 7309b8077e | (Nick Logan)++ (committed using GitHub Web editor) | 4 files

[22:21] <Geth> ¦ rakudo/main: Merge pull request #6188 from ugexe/ugexe/rakuast-compound-metaop-assign

[22:21] <Geth> ¦ rakudo/main: 

[22:21] <Geth> ¦ rakudo/main: RakuAST: fix compound metaop assignment Z+=, X+=, <<+=>>

[22:21] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/7309b8077e

[22:22] <Geth> ¦ rakudo/main: 0fb07e5ced | (Nick Logan)++ | 2 files

[22:22] <Geth> ¦ rakudo/main: RakuAST: fix BEGIN/CHECK-time compilation of inner thunks

[22:22] <Geth> ¦ rakudo/main: 

[22:22] <Geth> ¦ rakudo/main: Two coupled defects in RakuAST::Code::IMPL-COMPILE-DYNAMICALLY caused

[22:22] <Geth> ¦ rakudo/main: BEGIN- and CHECK-time compiled wrappers to fail across both frontends.

[22:22] <Geth> ¦ rakudo/main: 

[22:22] <Geth> ¦ rakudo/main: 1. Hardcoded `:from<qast>` broke EVAL of any BEGIN-wrapped AST under the

[22:22] <Geth> ¦ rakudo/main:    legacy Perl6 frontend, which registers an `optimize` stage instead of

[22:22] <Geth> ¦ rakudo/main: <…commit message has 40 more lines…>

[22:22] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/0fb07e5ced

[22:22] <Geth> ¦ rakudo/main: e6683add7b | (Nick Logan)++ | 2 files

[22:22] <Geth> ¦ rakudo/main: RakuAST: drop obsolete BEGIN-thunk VMNull workarounds in tests

[22:22] <Geth> ¦ rakudo/main: 

[22:22] <Geth> ¦ rakudo/main: The previous commit fixes the underlying VMNull crash for setting-symbol

[22:22] <Geth> ¦ rakudo/main: lookups inside BEGIN-compiled wrappers, so the `todo` marker in

[22:22] <Geth> ¦ rakudo/main: t/12-rakuast/var.rakutest and the CATCH/skip block in

[22:22] <Geth> ¦ rakudo/main: t/12-rakuast/statement-phaser.rakutest no longer mask any failure.  Both

[22:22] <Geth> ¦ rakudo/main: subtests now pass cleanly in both legacy and RakuAST modes.

[22:22] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/e6683add7b

[22:22] <Geth> ¦ rakudo/main: e0a7c54222 | (Nick Logan)++ (committed using GitHub Web editor) | 4 files

[22:22] <Geth> ¦ rakudo/main: Merge pull request #6189 from ugexe/ugexe/rakuast-begin-enum

[22:22] <Geth> ¦ rakudo/main: 

[22:22] <Geth> ¦ rakudo/main: RakuAST: fix BEGIN/CHECK enum declarations

[22:22] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/e0a7c54222

[22:22] <Geth> ¦ rakudo/main: 09e68b907e | (Nick Logan)++ | src/core.c/RakuAST/Literalize.rakumod

[22:23] <Geth> ¦ rakudo/main: RakuAST: propagate CannotLiteralize sentinel through every literalize multi

[22:23] <Geth> ¦ rakudo/main: 

[22:23] <Geth> ¦ rakudo/main: Warnings started showing up after c1d292bbc ("RakuAST: literalizing

[22:23] <Geth> ¦ rakudo/main: subroutine calls will never work"), which added a Call.literalize multi

[22:23] <Geth> ¦ rakudo/main: that always calls alas.  The proto's CATCH then converts that to the

[22:23] <Geth> ¦ rakudo/main: CannotLiteralize sentinel return (introduced earlier in 5e353bcdf).

[22:23] <Geth> ¦ rakudo/main: Bootstrap now routes more nodes through that sentinel path because

[22:23] <Geth> ¦ rakudo/main: <…commit message has 21 more lines…>

[22:23] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/09e68b907e

[22:23] <Geth> ¦ rakudo/main: dfe8a85d0c | (Nick Logan)++ (committed using GitHub Web editor) | src/core.c/RakuAST/Literalize.rakumod

[22:23] <Geth> ¦ rakudo/main: Merge pull request #6191 from ugexe/ugexe/rakuast-literalize-cannot-sentinel

[22:23] <Geth> ¦ rakudo/main: 

[22:23] <Geth> ¦ rakudo/main: RakuAST: propagate CannotLiteralize sentinel through every literalize multi

[22:23] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/dfe8a85d0c

[22:23] <Geth> ¦ rakudo/main: 79251365e2 | (Nick Logan)++ | src/Raku/ast/regex.rakumod

[22:23] <Geth> ¦ rakudo/main: RakuAST: skip the lexical &name lookup for non-capturing <.name>

[22:23] <Geth> ¦ rakudo/main: 

[22:23] <Geth> ¦ rakudo/main: Mirror the legacy frontend, which gates the same lookup on whether the

[22:23] <Geth> ¦ rakudo/main: preceding source character is a `.` (see assertion:sym<name> in

[22:23] <Geth> ¦ rakudo/main: Perl6/Actions.nqp).  RakuAST has the same information available

[22:23] <Geth> ¦ rakudo/main: structurally via $!capturing, so use that instead of a source-character

[22:23] <Geth> ¦ rakudo/main: lookbehind.

[22:23] <Geth> ¦ rakudo/main: <…commit message has 8 more lines…>

[22:23] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/79251365e2

[22:23] <Geth> ¦ rakudo/main: 668786987a | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/ast/regex.rakumod

[22:23] <Geth> ¦ rakudo/main: Merge pull request #6192 from ugexe/ugexe/rakuast-fix-dot-lexical-token-regex

[22:23] <Geth> ¦ rakudo/main: 

[22:23] <Geth> ¦ rakudo/main: RakuAST: skip the lexical &name lookup for non-capturing <.name>

[22:23] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/668786987a

[22:23] <Geth> ¦ rakudo/main: b7d25b8853 | (Nick Logan)++ | 2 files

[22:24] <Geth> ¦ rakudo/main: RakuAST: stop using non-method packages as implicit invocant types

[22:24] <Geth> ¦ rakudo/main: 

[22:24] <Geth> ¦ rakudo/main: The implicit invocant type for a Methodish declaration in a package

[22:24] <Geth> ¦ rakudo/main: context came from `$!method-package.stubbed-meta-object`, regardless of

[22:24] <Geth> ¦ rakudo/main: whether that package was actually method-capable.  When the enclosing

[22:24] <Geth> ¦ rakudo/main: package is a plain `package` or `module` (not class/role/grammar), the

[22:24] <Geth> ¦ rakudo/main: resulting type fails `X::Parameter::BadType` ("Package 'P' is

[22:24] <Geth> ¦ rakudo/main: <…commit message has 27 more lines…>

[22:24] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/b7d25b8853

[22:24] <Geth> ¦ rakudo/main: 7deef18973 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files

[22:24] <Geth> ¦ rakudo/main: Merge pull request #6193 from ugexe/ugexe/rakuast-fix-qualified-regex-assertion

[22:24] <Geth> ¦ rakudo/main: 

[22:24] <Geth> ¦ rakudo/main: RakuAST: stop using non-method packages as implicit invocant types

[22:24] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/7deef18973

[22:24] <Geth> ¦ rakudo/main: 07642cdce7 | (Nick Logan)++ | 2 files

[22:24] <Geth> ¦ rakudo/main: RakuAST: apply :D/:U smiley outside the parameterization wrapper

[22:24] <Geth> ¦ rakudo/main: 

[22:24] <Geth> ¦ rakudo/main: For `Foo:D[Int]` the actions built `Parameterized(Definedness(Foo), [Int])`,

[22:24] <Geth> ¦ rakudo/main: which lost the Definedness wrapper at PRODUCE-META-OBJECT time because

[22:24] <Geth> ¦ rakudo/main: `Type::Parameterized` uses `IMPL-BASE-TYPE` to fetch the type to

[22:24] <Geth> ¦ rakudo/main: parameterize, and that recursively unwraps Derived wrappers down to the

[22:24] <Geth> ¦ rakudo/main: underlying `Type::Simple`.  The result was that `my Positional:D[Int] $x`

[22:24] <Geth> ¦ rakudo/main: <…commit message has 24 more lines…>

[22:24] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/07642cdce7

[22:24] <Geth> ¦ rakudo/main: f4b2566c6c | (Nick Logan)++ (committed using GitHub Web editor) | 2 files

[22:24] <Geth> ¦ rakudo/main: Merge pull request #6194 from ugexe/ugexe/rakuast-fix-definite-smiley-on-parameterized

[22:24] <Geth> ¦ rakudo/main: 

[22:24] <Geth> ¦ rakudo/main: RakuAST: apply :D/:U smiley outside the parameterization wrapper

[22:24] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/f4b2566c6c

[22:24] <Geth> ¦ rakudo/main: 907a23acfa | (Nick Logan)++ | src/Raku/ast/code.rakumod

[22:25] <Geth> ¦ rakudo/main: RakuAST: detect duplicate `our multi method` declarations

[22:25] <Geth> ¦ rakudo/main: 

[22:25] <Geth> ¦ rakudo/main: `class C { our multi method m(Int) {}; our multi method m(Str) {} }`

[22:25] <Geth> ¦ rakudo/main: silently compiled in RakuAST, leaving the second method unreachable.

[22:25] <Geth> ¦ rakudo/main: Two existing duplicate-detection paths skip the case:

[22:25] <Geth> ¦ rakudo/main: 

[22:25] <Geth> ¦ rakudo/main:   - Routine.PERFORM-BEGIN's package-stash install is gated on

[22:25] <Geth> ¦ rakudo/main: <…commit message has 36 more lines…>

[22:25] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/907a23acfa

[22:25] <Geth> ¦ rakudo/main: 61f6f85598 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/ast/code.rakumod

[22:25] <Geth> ¦ rakudo/main: Merge pull request #6195 from ugexe/ugexe/rakuast-fix-our-multi-method-redeclaration

[22:25] <Geth> ¦ rakudo/main: 

[22:25] <Geth> ¦ rakudo/main: RakuAST: detect duplicate `our multi method` declarations

[22:25] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/61f6f85598

[22:25] <Geth> ¦ rakudo/main: c08667c4f0 | (Nick Logan)++ | 3 files

[22:25] <Geth> ¦ rakudo/main: Fix infinite recursion in Hash::Typed/Object INSTANTIATE-GENERIC

[22:25] <Geth> ¦ rakudo/main: 

[22:25] <Geth> ¦ rakudo/main: Composing a parametric role whose body declared a typed-hash attribute

[22:25] <Geth> ¦ rakudo/main: with a generic type-capture as the value type hung the compiler:

[22:25] <Geth> ¦ rakudo/main: 

[22:25] <Geth> ¦ rakudo/main:     role A[::T = Int] { has T %h }; class B does A {}   # spins forever

[22:25] <Geth> ¦ rakudo/main:     role R[::T] { has %h{Int} of T }; class C does R[Str] {}   # ditto

[22:25] <Geth> ¦ rakudo/main: <…commit message has 18 more lines…>

[22:25] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/c08667c4f0

[22:25] <Geth> ¦ rakudo/main: d845850a94 | (Nick Logan)++ | 2 files

[22:25] <Geth> ¦ rakudo/main: Break self-resolution loop in GenericHOW.instantiate_generic

[22:25] <Geth> ¦ rakudo/main: 

[22:25] <Geth> ¦ rakudo/main: A parametric role whose type-capture name collides with a core role's

[22:25] <Geth> ¦ rakudo/main: internal capture name (e.g. user `role R[::TValue]` versus

[22:25] <Geth> ¦ rakudo/main: `Array::Typed[::TValue]` or `Hash::Typed[..., ::TValue, ...]`) spun

[22:26] <Geth> ¦ rakudo/main: the compiler forever:

[22:26] <Geth> ¦ rakudo/main: 

[22:26] <Geth> ¦ rakudo/main: <…commit message has 28 more lines…>

[22:26] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/d845850a94

[22:26] <Geth> ¦ rakudo/main: 427f1f1db9 | (Nick Logan)++ (committed using GitHub Web editor) | 4 files

[22:26] <Geth> ¦ rakudo/main: Merge pull request #6198 from ugexe/ugexe/fix-role-typed-hash-attr-hang

[22:26] <Geth> ¦ rakudo/main: 

[22:26] <Geth> ¦ rakudo/main: Fix two compiler hangs composing parametric roles with typed attrs

[22:26] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/427f1f1db9

[22:26] <Geth> ¦ rakudo/main: 3abd2ae3fc | (Nick Logan)++ | 2 files

[22:26] <Geth> ¦ rakudo/main: RakuAST: emit proper SORRY exceptions for invalid feed-operator stages

[22:26] <Geth> ¦ rakudo/main: 

[22:26] <Geth> ¦ rakudo/main: `RakuAST::Feed.IMPL-LIST-INFIX-QAST` validated each non-source stage

[22:26] <Geth> ¦ rakudo/main: against the legal QAST shapes and fell through to an error path that

[22:26] <Geth> ¦ rakudo/main: called `$_.PRECURSOR.panic($error)`.  That line was lifted from

[22:26] <Geth> ¦ rakudo/main: `make_feed` in `src/Perl6/Actions.nqp` where `$_` is a Match (which

[22:26] <Geth> ¦ rakudo/main: has `PRECURSOR`); in RakuAST `$_` is a QAST node, which doesn't, so

[22:26] <Geth> ¦ rakudo/main: <…commit message has 14 more lines…>

[22:26] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/3abd2ae3fc

[22:26] <Geth> ¦ rakudo/main: da62ae237d | (Nick Logan)++ (committed using GitHub Web editor) | 2 files

[22:26] <Geth> ¦ rakudo/main: Merge pull request #6201 from ugexe/ugexe/rakuast-fix-feed-validation

[22:26] <Geth> ¦ rakudo/main: 

[22:26] <Geth> ¦ rakudo/main: RakuAST: emit proper SORRY exceptions for invalid feed-operator stages

[22:26] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/da62ae237d

[22:26] <Geth> ¦ rakudo/main: 4 commits pushed by (Nick Logan)++

[22:26] <Geth> ¦ rakudo/main: c4f0c766e3 | RakuAST: initialize $*PACKAGE at compunit scope

[22:26] <Geth> ¦ rakudo/main: 23cc9ccf58 | RakuAST: sync quote-lang braid from $*PACKAGE, not cursor.package

[22:26] <Geth> ¦ rakudo/main: 6a2f89fd35 | RakuAST: don't cache heredoc quote-langs

[22:26] <Geth> ¦ rakudo/main: 7aa98f7bb4 | Merge pull request #6155 from ugexe/ugexe/investigate-braid-issue

[22:26] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/compare/da62ae237dee...7aa98f7bb4e2

[22:31] <ugexe> alright we're at the point where we need to find rakuast issues from the ecosystem itself. i'm not sure we can do Blin yet... probably need to manually install more upstream dependencies to work out any issues with those first

[22:36] <japhb> ugexe++  # Wow

[22:38] <japhb> ugexe: What kind of ecosystem testing would be useful?  I own a number of modules, so I can test whether they `zef install` and work ...

[22:39] <japhb> What do I need to do so that zef uses RakuAST codepaths when installing?

[22:40] <ugexe> i think `RAKUDO_RAKUAST=1 zef install Foo` should mostly be sufficient. I'm not sure when it would matter if rakudo itself was also built with RAKUDO_RAKUAST=1

[22:40] <ugexe> JSON::Fast does have an issue

[22:42] <ugexe> but basically if i know of test cases that fail (preferably with as much test output as possible) i can try to find the root cause for them and potentially fix them

