00:15 lizmat joined
Geth rakudo/main: 6f5479cb74 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 4 files
RakuAST: use nqp::ifnull where possible (#6790)

In a lot of cases, a rather elaborate structure was built to provide a value if the given value was nqp::null. Exactly for that purpose, nqp::ifnull was created. So use that instead, resulting in fewer variables and smaller bytecode footprint.
Appears to take off about .2 seconds on stage qast when building the core setting (for yours truly).
00:20
rakudo/lizmat-53: 6f5479cb74 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 4 files
RakuAST: use nqp::ifnull where possible (#6790)

In a lot of cases, a rather elaborate structure was built to provide a value if the given value was nqp::null. Exactly for that purpose, nqp::ifnull was created. So use that instead, resulting in fewer variables and smaller bytecode footprint.
Appears to take off about .2 seconds on stage qast when building the core setting (for yours truly).
00:21
rakudo/lizmat-53: 7542697ebe | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 4 files
Merge branch 'main' into lizmat-53
04:29 Guest93 joined
Guest93 m: say 3; 04:30
camelia 3
Guest93 m: constant &MAIN = sub { }
camelia ( no output )
Guest93 that last one results in: 04:31
No such method 'meta-object' for invocant of type
'RakuAST::VarDeclaration::Constant'. Did you mean
'IMPL-DOC-META-OBJECT'?
(for me on windows)
lizmat confirmed, Guest93 please make an issue for it 09:47
c: HEAD constant &foo = sub { }
committable6 lizmat, ¦HEAD(6f5479c): «»
lizmat c: HEAD constant &MAIN = sub { } 09:48
committable6 lizmat, ¦HEAD(6f5479c): «===SORRY!===␤No such method 'meta-object' for invocant of type␤'RakuAST::VarDeclaration::Constant'. Did you mean␤'IMPL-DOC-META-OBJECT'?␤ «exit code = 1»»
Geth rakudo/main: 59eafee5f3 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 9 files
RakuAST: normalize "while !x" and "if !x" structures (#6791)

Using "until" or "unless" as appropriate, or re-arrange the reverse the if/else structure, sometimes allowing for a scope level to be lost
10:16
lizmat Guest93: github.com/rakudo/rakudo/issues/6794 10:31
Guest93 My apologies for not responding / opening ticket.Ā  I'm in the Pacific time zone.Ā  Leaving chat now but will be watching the ticket.Ā  Thanks 11:53
lizmat Guest93: no worries, thanks for reporting! 11:54
11:54 Guest93 left
Geth rakudo/lizmat-54: 3e1acebd01 | (Elizabeth Mattijsen)++ | 23 files
RakuAST: introduce ::Type::Simple.from-identifier(-parts)

It was observed that most of the calls to RakuAST::Type::Simple.new followed the same pattern, so it made sense to avoid repetition and possible coding errors, *and* provide a nicer API for those of us wanting to create RakuAST trees synthetically.
So use this in the bootstrap. Also adapt RakuAST::Name and RakuAST::Type::Simple's raku methods, and all of the tests. Which resulted in about 250 less lines of code to parse.
13:19
rakudo: lizmat++ created pull request #6795:
RakuAST: introduce ::Type::Simple.from-identifier(-parts)
rakudo/lizmat-54: bba58aa0b5 | (Elizabeth Mattijsen)++ | src/Raku/Actions.nqp
RakuAST: fix one straggler in Actions
14:02
ugexe more conflicts, lovely 15:32
im going to ask that we stop with these normalize and restructuring commits 15:39
i have a huge branch and the time it takes me to review each commit and benchmark them takes so much time that by the time i finish there are new conflicts 15:40
[Coke] 6f5479cb74 - blin clean except for Injector again. 16:10
linkable6 (2026-10-04) github.com/rakudo/rakudo/commit/6f5479cb74 RakuAST: use nqp::ifnull where possible (#6790)
lizmat ugexe: are you referring to github.com/rakudo/rakudo/commit/34a7d51698 , or some other commits, or more generally as to what I'm doing ? 16:22
fwiw, since I have no idea on which of the many branches you're working on, I can haz no idea if I would be creating conflicts for you 16:23
ugexe: anyways, I will refrain from merge github.com/rakudo/rakudo/pull/6795 or any other PR I'll make, until you say it's ok to merge, or you merge them 16:44
ugexe thanks 17:16
Geth rakudo: ugexe++ created pull request #6796:
RakuAST: make thunked code compile and close over the right frames
17:18
lizmat Seeing a: 17:28
RakuAST::Var::Lexical::Setting.new(
:desigilname(RakuAST::Name.from-identifier('IterationEnd'))
),
shouldn't that be a:
RakuAST::Type::Setting.from-identifier('IterationEnd'), ???
ugexe ^^ 17:29
ah, no, it's an instance of Mu, *not* a type, duh
Geth rakudo/main: 16 commits pushed by (Nick Logan)++
review: github.com/rakudo/rakudo/compare/5...672d8bd578
18:00
ugexe and with that, feel free to return to your scheduled hacking
[Coke]: probably need a new blin run
Geth rakudo/lizmat-54: 0389af94fb | (Elizabeth Mattijsen)++ | 20 files
RakUAST: rince, repeat s/::Simple/::Setting

Plus some additional streamlining in PRODUCE-IMPLICIT-LOOKUPS methods, to make them more consistent.
18:02
[Coke] ugexe, already running one through NEW=59eafee5f3 18:08
Geth rakudo: ugexe++ created pull request #6797:
RakuAST: look up &MAIN at run time when calling RUN-MAIN
18:34
lizmat ugexe: looks like line 2 and 3 of this snippet are no longer needed, correct ? 19:03
method new(RakuAST::Type :$base-type!, RakuAST::ArgList :$args) {
nqp::die('need a base-type, not ' ~ $base-type.dump)
unless nqp::istype($base-type, RakuAST::Type);
ugexe correct 19:04
lizmat nice 19:05
Geth rakudo/main: 8b1593eaf4 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 36 files
RakuAST: introduce ::Type::(Simple|Setting).from-identifier(-parts)

It was observed that most of the calls to RakuAST::Type::(Simple|Setting).new followed the same pattern, so it made sense to avoid repetition and possible coding errors, *and* provide a nicer API for those of us wanting to create RakuAST trees synthetically.
... (6 more lines)
19:11
rakudo/main: 654da2dc97 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: look up &MAIN at run time when calling RUN-MAIN (#6797)

Previously the call to `RUN-MAIN` passed the meta-object of the `&MAIN` declaration as a compile time value. A constant has no meta-object, so
  `constant &MAIN = sub { }` died at compile time with "No such method
  'meta-object' for invocant of type 'RakuAST::VarDeclaration::Constant'".
A variable that only gets its sub when the mainline runs gave the ... (9 more lines)
19:27
rakudo/lizmat-55: 5f37130280 | (Elizabeth Mattijsen)++ | 7 files
RakuAST: add ::Type::Capture.from-identifier

For the same reason ::Type::Simple had that. Apply to bootstrap and tests. Also remove some dead code an fix some stragglers.
19:43
rakudo: lizmat++ created pull request #6798:
RakuAST: add ::Type::Capture.from-identifier
rakudo/lizmat-55: 4c4674ef30 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Raku.rakumod
RakuAST: make ::Type::Capture.raku do .from-identifier

If at all possible / applicable of course
19:53
rakudo/main: 501af82c50 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 8 files
RakuAST: add ::Type::Capture.from-identifier (#6798)

For the same reason ::Type::Simple had that. Apply to bootstrap and tests. Also remove some dead code an fix some stragglers.
21:35