Geth rakudo: ugexe++ created pull request #6178:
RakuAST: retry .& resolution at check time to handle forward references
02:21
rakudo: ugexe++ created pull request #6179:
RakuAST: add meta-object to RakuAST::Declaration::Import
02:25
rakudo: ugexe++ created pull request #6180:
RakuAST: evaluate non-trivial package colonpair values once, cached
02:26
rakudo: ugexe++ created pull request #6181:
RakuAST: strip colonpairs from subset/enum meta-object names
02:27
ugexe zef installs with those 4 PRs
03:03 huggable6 left, quotable6 left, releasable6 left, tellable6 left, coverable6 left, Geth left
japhb Oooh, that's a huge step. Go ugexe++! 03:12
ugexe CI tests are not green. Seems like the printf stuff? 03:46
lizmat checks 07:34
lizmat concurs :-( 07:48
08:15 Geth joined
Geth rakudo/main: 36e9e03257 | (Elizabeth Mattijsen)++ | src/core.e/Formatter.rakumod
Remove unnecessary references to dynvar, spotted by ugexe++

The accesses to @*COERCIONS is done by index always anyways, so there's no off-by-one issue.
But somehow this unexpectedly broke t/spec/S32-str/format.t .
... (5 more lines)
08:37
09:18 [Tux] left 09:24 [Tux] joined
librasteve_ hmmm tried `zef install Air && raku -I. raku.org/air-serve.raku` this morning on 2026.04 for the first time - fails with `Cannot modify an immutable Str ()` 09:38
i am on m1 so had to build my own with `rakubrew build moar-202.04`
lizmat could you gist a --ll-exception backtrace ? 09:39
librasteve_ sure rebuilding now to make sure all clean
same thing works fine on 2026.03 ofc 09:40
— this is the —ll-exception output usercontent.irccloud-cdn.com/file/uINQgHRE/lle 09:50
enjoy
09:56 ShimmerFairy left 09:57 ShimmerFairy joined
librasteve_ btw this is a blocker for pushing anything to main on raku.org (since the CI pulls rakudo:latest) 09:58
lizmat librasteve_: where does Air::Base live ? 10:09
disbot4 <librasteve> Air 10:10
<librasteve> github.com/librasteve/Air 10:11
lizmat m: class A { has Str $.foo = "bar"; method a() { $.foo = "foo" } }; A.new.a 10:14
evalable6 (exit code 1) Cannot modify an immutable Str (bar)
in method a at /tmp/qw_Xi6Gufc line 1
in block <unit> at /tmp/qw_Xi6Gufc line 1
lizmat m: class A { has Str $.foo is rw = "bar"; method a() { $.foo = "foo" } }; A.new.a
evalable6
lizmat the attribute in Air/Base/Elements is not marked as "is rw", which means the accessor is built to decontainerize 10:15
m: class A { has Str $.foo = "bar"; method a() { $!foo = "foo" } }; A.new.a
evalable6
lizmat either use the attribute in the assignment, or mark the attribute as "is rw"
not sure why that worked in 2026.03
bisectable6: old=2026.03 class A { has Str $.foo = "bar"; method a() { $.foo = "foo" } }; A.new.a 10:16
bisectable6 lizmat, Bisecting by exit code (old=2026.03 new=36e9e03). Old exit code: 0
lizmat, bisect log: gist.github.com/b7896f6e4b002a2da9...681afa521b
lizmat, (2026-04-20) github.com/rakudo/rakudo/commit/00...fc97f303de
lizmat librasteve_: I guess some code checking is needed... and a new version of Air 10:18
in any case, it didn't die in 2026.03, but it didn't to the right thing either
disbot4 <librasteve> ok - redface - thanks! 10:19
12:28 librasteve_ left 13:55 librasteve_ joined
Geth rakudo/main: 456781a518 | (Elizabeth Mattijsen)++ | src/core.e/Format.rakumod
Properly fix t/spec/S32-str/format.t error

It appeared that Format.new was actually creating the @*DIRECTIVES dynvar, but not the new @COERCIONS dynvar. I probably did that as a premature optimization, but it leaked Formatter class internals.
Fixed by removing the creation of the dynvar, and let Formatter itself always deal with that.
14:28
ugexe it probably isn't a great idea to have raku.org pull rakudo:latest 15:09
oh wait i misunderstood, i thought that meant blead. nevermind me 15:11
lizmat offline for an update& 15:28
15:29 lizmat left 15:40 lizmat joined
lizmat that wasn't too bad :-) 15:43
Geth rakudo/main: 767a89dea7 | (Elizabeth Mattijsen)++ | src/core.e/Formatter.rakumod
Make 6.e sprintf %d format compatible with C

The %d format is special, as it supports the " " and "+" flags
17:29
lizmat meh, this broke %x and %b, at least in tests 17:34
Geth roast: 24234dc2ab | (Elizabeth Mattijsen)++ | 2 files
Update 6.e tests of sprintf %d formatting

A lot of tests were just simply not adhering to the sprintf C standard. They now are.
roast: 3308a0cb96 | (Elizabeth Mattijsen)++ | spectest.data
Remove 6.e testing of sprintf %b and %x for now

Fixes to %d broke these. This should inhibit CI turning red because of these
17:45
ugexe lizmat: if you push your roast changes before your code changes the CI tests wouldn't fail as much 18:01
lizmat I knows :-(
sorry
ugexe you can also click the red X on the list of commits, click "Details" next to one of the failing entries, then in the upper right click the Re-run checks drop down then click "Re-run failed checks". presumably that would fetch the roast from HEAD 18:13
Geth rakudo/main: 842b8d2d08 | (Elizabeth Mattijsen)++ | src/core.e/Formatter.rakumod
Fix 6.e sprintf %x and %b tests

Had forgotten to take into account the "#" flag for these formats in the rebuilding of the %d logic
18:38
roast: e020348cad | (Elizabeth Mattijsen)++ | spectest.data
Revert "Remove 6.e testing of sprintf %b and %x for now"

This reverts commit 3308a0cb96401a8dc4dad56b85fae666193f367b.
lizmat this should make everything green again 19:00
m: sub a(int() $a) { $a }; say a 42 19:40
evalable6 (exit code 1) Impossible coercion from 'Int' into 'int': method int returned an instance of BOOTInt
in sub a at /tmp/3whnDTtfqJ line 1
in block <unit> at /tmp/3whnDTtfqJ line 1
lizmat I wonder where we should add a COERCE method to make that work
ugexe the problem is this 20:21
m: use nqp; say nqp::istype(42.int, int)
evalable6 0
lizmat m: use nqp; say nqp::istype((my int $ = 42),int) 20:22
evalable6 0
lizmat hmmm
m: say (my int $ = 42).WHAT 20:23
evalable6 (Int)
lizmat isn't that the underlying issue, that it gets upgraded?
ugexe github.com/ugexe/rakudo/blob/4fb9c...W.nqp#L152 20:24
Geth rakudo/main: 8c5157ae05 | (Elizabeth Mattijsen)++ | src/core.e/Formatter.rakumod
Make 6.e sprintf %s format compatible with C

Apparently, the "0" flag was not supported yet (nor is it in the legacy implementation)
20:36
roast: 6315751daa | (Elizabeth Mattijsen)++ | 2 files
Update 6.e tests of sprintf %s formatting
20:48 lizmat_ joined, lizmat left 21:46 lizmat_ left, lizmat joined