Geth rakudo/main: 6fd3fde7f9 | (Nick Logan)++ (committed using GitHub Web editor) | tools/templates/NQP_REVISION
Bump NQP to check the object types declared on parameters (#6693)
00:28
rakudo: ugexe++ created pull request #6694:
RakuAST: enforce the parameter and return types node methods declare
00:40
ugexe i guess we need to do github.com/rakudo/rakudo/blob/b830...=1#L48-L50 as well 02:19
[Coke] with this blin run nearly done, no zef failures running with the latest version 03:14
github.com/rakudo/rakudo/commit/84...d3e5f80ec5 seems to have broken Terminal::UI 03:15
... which makes no sense, so maybe a flapper.
Doesn't seem to be a potential timer/race issue. 03:18
06:34 finanalyst joined 08:02 vrurg_ joined 08:04 vrurg left
Geth rakudo/main: a60447bb59 | (Elizabeth Mattijsen)++ | 2 files
RakUAST: streamline setting up native vars

The logic had become quite convoluted and unclear, with superfluous conditions and dead code. Replace if structure with simple lookups in constant lists using primspec as index.
This passes spectest ok, but broke an implementation test about the ... (5 more lines)
10:36
roast/6.c-errata: 2a35ab744a | (Elizabeth Mattijsen)++ | S03-operators/adverbial-modifiers.t
Change iffy test from "todo" to "skip"

Not sure what that syntax was meant to do, but in RakuAST it has become a syntax error, and thus was killin the whole test file
10:49
roast/6.c-errata: 738f220b5e | (Elizabeth Mattijsen)++ | S03-sequence/basic.t
Change some tests from "is" to "is-deeply"

The intent of the test was to check the behaviour of some (smart) sequences, *not* how they would be rendered as strings. To be more precise: in RakuAST the Rat <1/3> is rendered as "¹/₃", as opposed to "<1/3>", which was breaking these tests.
10:57
roast/6.c-errata: 3bda2bd926 | (Elizabeth Mattijsen)++ | S04-exceptions/fail.t
Fix test that was failing because of a "useless use"

Not entirely sure why this wasn't a problem before, but in RakUAST the useless use was already seen at compilation time, and thus crashed the whole file wrt testing.
11:02
roast/6.c-errata: 11652f99de | (Elizabeth Mattijsen)++ | S04-declarations/state.t
Skip test using :Perl5 regex adverb

This is no longer supported in any language version
11:04
roast/6.c-errata: 0d39e8bc55 | (Elizabeth Mattijsen)++ | S04-declarations/constant.t
Adjust tests for errors in constants

1. constant %h = 42 used to fail in 6.c with a typecheck error, it now fails with odd number of argume ts. Since the original test most likely predated the GLR, and I think the new error is actually more informative, change the test to just check for throwing an error instead of checking for a specific error.
2. using a constant as a type constraint never worked. In RakuAST it became a compile time error, so change the test from "todo" to
  "skip"
12:51
lizmat bisectable6: old=2026.08 multi x(int $x is rw) { dd }; multi x(Int $x) { dd }; x my int $ = 42 13:03
bisectable6 lizmat, On both starting points (old=2026.08 new=a60447b) the exit code is 0 and the output is identical as well
lizmat, Output on both points: «sub x(Int $x)␤»
lizmat bisectable6: old=2026.01 multi x(int $x is rw) { dd }; multi x(Int $x) { dd }; x my int $ = 42
bisectable6 lizmat, On both starting points (old=2026.01 new=a60447b) the exit code is 0 and the output is identical as well
lizmat, Output on both points: «sub x(Int $x)␤»
lizmat bisectable6: old=2025.01 multi x(int $x is rw) { dd }; multi x(Int $x) { dd }; x my int $ = 42 13:04
bisectable6 lizmat, On both starting points (old=2025.01 new=a60447b) the exit code is 0 and the output is identical as well
lizmat, Output on both points: «sub x(Int $x)␤»
lizmat bisectable6: old=2025.01 use v6.c; multi x(int $x is rw) { dd }; multi x(Int $x) { dd }; x my int $ = 42 13:05
bisectable6 lizmat, On both starting points (old=2025.01 new=a60447b) the exit code is 0 and the output is identical as well
lizmat, Output on both points: «sub x(Int $x)␤»
lizmat so why do we have a test in 6.c-errata that expects the "int $x is rw" candidate to be called
?
bisectable6: multi x(int $x is rw) { dd }; multi x(Int $x) { dd }; x my int $ = 42 13:09
bisectable6 lizmat, Will bisect the whole range automagically because no endpoints were provided, hang tight
lizmat, Output on all releases: gist.github.com/5894e4456fd8d8826f...ee87e43c9f 13:10
lizmat, Bisecting by output (old=2017.07 new=2017.08) because on both starting points the exit code is 0
lizmat, bisect log: gist.github.com/d7cecb747249dcecaf...89fa626677
lizmat, (2017-07-29) github.com/rakudo/rakudo/commit/6d...4b7d04be0f
lizmat, Output on all releases and bisected commits: gist.github.com/931db032d77fb525c9...88ab56a989
lizmat right, so this never worked 13:11
[Coke]: could it be that the 6.c-errata branch was never clean?
anyways, feels like this *should* always select the int $c is rw candidate 13:12
because if *does* do that if that candidate is changed to "int $x is raw" 13:13
[Coke] the 6.c errata branch is run *every release* 13:26
We can track in rakudo/tools/releaseable (sp?) when that was added, but it's been there since I started working on releases again 13:27
any time there's a failure, we fix it immediately or I open a ticket on roast to call it out 13:28
lizmat and the 6.c-errata branch is supposed to be clean, right?
ok
[Coke] Yes.
lizmat hmmm... weird 13:29
m: my $_ = 42; .say
camelia Potential difficulties:
Redeclaration of symbol '$_'.
at <tmp>:1
------> my $_<HERE> = 42; .say
42
lizmat m: Q|my $_ = 42; .say|.AST.EVAL 13:30
camelia Potential difficulties:
Redeclaration of symbol '$_'.
at /home/camelia/EVAL_0:1
------> my $_<HERE> = 42; .say
42
lizmat so far, so good
m: { my $_ = 42; .say }
camelia Potential difficulties:
Redeclaration of symbol '$_'.
at <tmp>:1
------> { my $_<HERE> = 42; .say }
42
lizmat m: Q|{ my $_ = 42; .say }|.AST.EVAL
camelia ===SORRY!===
Lexical '$_' already declared
lizmat meh
[Coke] fwiw, last 1/2 releases have been done on ubuntu 26.04 - last dozen before that on some version of ubuntu that I don't have around to check.
lizmat I don't think these cases would depend on the OS being used 13:31
bisectable6: my $_ 13:39
bisectable6 lizmat, Will bisect the whole range automagically because no endpoints were provided, hang tight
lizmat, Output on all releases: gist.github.com/848dc4ad36610a7093...9c476fbcf2 13:40
lizmat, Bisecting by output (old=2024.10 new=2024.12) because on both starting points the exit code is 0
lizmat, bisect log: gist.github.com/56f3f20ed3bab49104...49bab59f2e
lizmat, (2024-11-22) github.com/rakudo/rakudo/commit/a9...b4dced35bc
lizmat, Bisecting by output (old=2020.06 new=2020.07) because on both starting points the exit code is 0
lizmat, bisect log: gist.github.com/4183586d58d3661212...f775c90851 13:41
lizmat, (2020-07-05) github.com/rakudo/rakudo/commit/3f...4d7e503eb6
lizmat, Bisecting by output (old=2016.08.1 new=2016.09) because on both starting points the exit code is 0
lizmat, bisect log: gist.github.com/d71c9cfe23523a5215...744b82a787
lizmat, (2016-08-30) github.com/rakudo/rakudo/commit/76...ccfef298af
lizmat, ⚠ New output detected, please review the results manually
lizmat, Output on all releases and bisected commits: gist.github.com/d8dbcc9ba583a71b3f...48cca275a6
lizmat meh, the "Lexical '$_' already declared" is from the MAST stage, looks like RakuAST isn't catching that earlier 13:45
leaving this one for ugexe, as they may have a quicker graps on where to fix this 13:50
ugexe i mean it is already declared though 13:56
lizmat yeah, but the error occurs at the MAST stage, leaving no information on where the "my $_" actually occured 13:57
[Coke] github.com/coke/raku-blin-release-...ailures.md is updated with the latest blin run through 7a3abc5aba (formatting is wonky for some reason) 14:00
linkable6 (2026-09-18) github.com/rakudo/rakudo/commit/7a3abc5aba RakuAST: make my num $a initialize to NaN in 6.c
Geth rakudo/main: 6 commits pushed by (Nick Logan)++ 14:01
roast/6.c-errata: 1eff537303 | (Elizabeth Mattijsen)++ | S12-class/augment-supersede.t
Make class syntactically correct

In RakuAST, the 'class F is ::F' was *first* seen as an incomplete class specification *before* it could see that it inheriting from itself.
Fix this by make the 'class F is ::F { }' definition complete.
14:03
[Coke] note that the monthly testing of any roast has always only been on LEGACY 14:14
lizmat understood
Geth roast/6.c-errata: d610a795df | (Elizabeth Mattijsen)++ | S12-attributes/smiley.t
Make smiley tests less specific

In the legacy grammar, many of these tests were testing for runtime exceptions. In RakuAST many of these types of errors with attribute initializations have become compile-time errors, with their own execution error object.
So change these "throws-like" tests to "dies-ok" tests with the original code wrapped in an EVAL.
14:16
14:51 [Coke]_ joined 14:53 [Coke] left 15:33 finanalyst left
[Coke]_ ugexe: zef 1.1.4 does seem to have fixed my blin issues. 15:44
15:44 [Coke]_ is now known as [Coke]
Geth rakudo/main: 14d9205996 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/LegacyPodify.rakumod
RakuAST: Fix C<> format code legacy rendering

In pod apparently it is supposed to be without leading whitespace
16:01
roast/6.c-errata: 4466bd6bfc | (Elizabeth Mattijsen)++ | S26-documentation/wacky.t
Skip 2 shaky declarator docs behaviour tests

The behaviour has become much more sane in RakuAST
16:05
roast/6.c-errata: 6a6c3db963 | (Elizabeth Mattijsen)++ | S32-num/stringify.t
Skip <1/3> rendeing test

As it has changed to ¹/₃ in RakuAST
16:11
roast/6.c-errata: f71c28e352 | (Elizabeth Mattijsen)++ | S32-str/comb.t
Skip test involving :Perl5 regex adverb

As in RakuAST this is not supported anymore in any language level
16:12
ugexe huh? we reduce the plan count for skips?
that seems broken since non rakudo compilers will never pass now 16:13
like github.com/Raku/roast/commit/6a6c3db963 skips one test on rakudo only and changes the plan count to be -3 for all compilers 16:16
seems like the plan should never change, and even if it did need to change that it would be -1
Geth roast/6.c-errata: 041efdd546 | (Elizabeth Mattijsen)++ | integration/advent2009-day14.t
Skip some more Rat rendering tests
ugexe i guess that single test is multiple tests, but even then it looks like its more than 3 github.com/Raku/roast/blob/6a6c3db....t#L43-L53 16:17
Geth roast/6.c-errata: 2a2f994a8d | (Elizabeth Mattijsen)++ | S32-str/split.t
Remove tests using :Perl5 regex adverb

As they will not be supported in any language level
16:20
ugexe lizmat: a bunch of tests us :P5 adverb as well 16:21
Geth roast/6.c-errata: cf6919c6ee | (Elizabeth Mattijsen)++ | integration/advent2011-day11.t
Fix variable specification in test

Apparently in legacy the validity of the method name was checked
  *before* seeing that the invocant was not a defined variable.
Fix by specifying the correct variable name.
16:25
lizmat ugexe: in the case of github.com/Raku/roast/commit/f71c28e352 it's actually running fewer tests 16:38
ugexe: github.com/Raku/roast/commit/6a6c3db963 is indeed more questionable, will re-examin
e
Geth roast/6.c-errata: 03db853635 | (Elizabeth Mattijsen)++ | integration/rule-in-class-Str.t
Skip all tests, as they all use :P5 regex adverb

Which will not be supported in any language level
16:43
ugexe lizmat: before you change too much :P5 :Perl5 stuff, im suggesting we remove it altogether 16:44
it should be a compile time error like any other invalid adverb
but it cant be if tests are expecting the use of :P5 to error at runtime instead
lizmat so you want to check to see whether it is a compile time error ?
ugexe they should just be removed altogether. we can't reasonably do anything with :P5 or :Perl5 in these tests if they are compile errors 16:46
lizmat that would be fine with me
do we do the same with macro ?
ugexe github.com/Raku/roast/blob/dd85d3c...5.t#L7-L10
thats a better example of the problem^
those tests are also mentioned as blocking github.com/rakudo/rakudo/pull/6534 16:47
i dont know what we do with macros... i don't recall ever looking at anything related to them
lizmat there are now 12 roast files in 6.c-errata that are now failing 16:49
because of macro
ugexe i'd probably just delete any macro tests 16:50
16:54 finanalyst joined
Geth roast/6.c-errata: c6eb798f4e | (Elizabeth Mattijsen)++ | S32-exceptions/misc.t
Tweak many exception tests

1. Perl 5 variables are no longer handled in a special way 2. inheritance recursion is checked at compose time 3. Useless use messages are no longer prefixed with "WARNINGS"
17:06
roast/6.c-errata: 966205785f | (Elizabeth Mattijsen)++ | S32-num/stringify.t
Mark Rat rendering test as todo if they differ

It's is bit backward, but this will at least keep the number of tests unchanged from the original before 6a6c3db
17:14
lizmat [Coke]: remaining 6.c-errata issues: gist.github.com/lizmat/b98184b96ae...7ab315efb7 17:24
ugexe it feels like you should be using #?rakudo skip with `#?rakudo.moar emit plan 37;` instead of doing that weird todo thing 17:26
replacing 37 with whatever number
lizmat feels like using "emit" is even weirder ? at leas to me :-) 17:31
ab5tract TIL about #?rakudo .. I just added "compiler directives" (for lack of knowing a better term) to RIP last night
ugexe todo is certainly worse as it suggests the behavior should be something else
ab5tract I'll have to double check that these would be parsed properly.
I had always read 'todo' as "this is the behavior it should be, but isn't now" 17:32
lizmat well, I welcome any changes, for today I have been looking enough at 6.c-errata
ab5tract lizmat: fair and well me :) 17:33
*well met
ugexe todo leaves other implementations open to implement the wrong thing
and say they did it correct 17:34
alternatively just use done-testing() in that file and lose the plan
ab5tract that's an interesting side effect indeed
Geth roast/6.c-errata: f796fbf3f8 | (Elizabeth Mattijsen)++ | S32-num/stringify.t
Revert "Mark Rat rendering test as todo if they differ"

This reverts commit 966205785fe3187427dd4288da85bd2766e63f30.
As it gives the wrong impression
lizmat afk for a few hours& 17:35
ab5tract lizmat: you should give the latest version of RIP another try. It's finally at a point where I can say that hacking on the core is not only comfortable but actually pretty freaking great
beta.13 has ctrl+click jump to definition for all core classes 19:23
and ctrl+click on a method will shou a list of usages in the core 19:33
ugexe: what editor/IDE do you use to hack on core directly? 19:36
ugexe vscode 19:37
Geth rakudo: ugexe++ created pull request #6695:
RakuAST: let a declaration name the lexical its scope already declares
19:52
ab5tract can the LSP provide the features above? 19:58
ugexe nah, the lsp doesnt work with the core at all 20:02
ab5tract II'm almost to the point where known bugs are fully squashed and I can move on to features like RakuDoc support and an AST browser/debugger 20:43
Geth rakudo/main: 7ded5ff7de | (Elizabeth Mattijsen)++ | src/core.c/Rat.rakumod
Only use new Rat.raku rendering in 6.e+

This was the intent originally, but Raku.legacy in that respect does *not* cut it. So 1/3 will only render as "¹/₃" in 6.e and higher, and "<1/3>" in 6.c/d.
21:03
roast/6.c-errata: db902bff93 | (Elizabeth Mattijsen)++ | 3 files
Revert most Rat.raku rendering tests

The old <1/3> formatting should be used for 6.c/d, the new formatting should only be used for 6.e+.
   github.com/rakudo/rakudo/commit/7ded5ff7de
fixed this in Rakudo
21:11
roast/6.d-errata: a2d7f340fa | (Elizabeth Mattijsen)++ | S03-operators/adverbial-modifiers.t
Change iffy test from "todo" to "skip"

Not sure what that syntax was meant to do, but in RakuAST it has become a syntax error, and thus was killin the whole test file
21:22
roast/6.d-errata: 5668106579 | (Elizabeth Mattijsen)++ | S04-exceptions/fail.t
Fix test that was failing because of a "useless use"

Not entirely sure why this wasn't a problem before, but in RakUAST the useless use was already seen at compilation time, and thus crashed the whole file wrt testing.
21:33