| 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
|
|||