02:36 apogee_ntv left 02:37 apogee_ntv joined 05:16 hurufu joined 06:34 hurufu left 08:01 hurufu joined 08:11 apogee_ntv left
Geth rakudo/main: 43dda3c412 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: allow `= Nil` as initializer on a typed attribute

  `RakuAST::VarDeclaration::Simple.PERFORM-CHECK` runs a compile-time
type check on attribute defaults to catch declarations like `has Int
  $.x = "oops"`. It also rejected `has IO::Handle $.x = Nil`, which
legacy accepts because assigning `Nil` to a Scalar resets it to the container's default value rather than storing `Nil` itself. ... (8 more lines)
09:02
rakudo/main: 512094e22d | (Nick Logan)++ (committed using GitHub Web editor) | 3 files
RakuAST: tighten double-closure check and silence `xx` sink warning

Two issues surfaced by `zef install HTTP::HPACK`.
  `RakuAST::Code.IMPL-CHECK-DOUBLE-CLOSURE` walked the whole subtree of
a `where` block looking for any curried expression. A WhateverCode nested inside a method call argument (e.g. `where @x.map(* ~~ Int)`) ... (12 more lines)
09:05
rakudo/main: cb6863ab5a | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: emit empty concat for modifier-only alternation branch

When an internal regex modifier (`:i`, `:m`, `:r`, `:s`) appears alone as a top-level branch of a `|` or `||` alternation, its IMPL-REGEX-QAST returns Nil. `RakuAST::Regex::Branching` was pushing that Nil into the QAST::Regex alt, and the NFA builder then died with `elems requires a concrete object` while inspecting the branch. ... (12 more lines)
09:06
rakudo/main: cb2627944e | (Nick Logan)++ | 3 files
RakuAST: propagate custom-args for sub signatures at BEGIN time

Parameter sub signature destructure crashed under RAKUDO_RAKUAST=1 when the owning routine was compiled at BEGIN. This is what happens when a trait_mod multi is applied to an attribute declaration.
  `multi sub trait_mod:<is> (Attribute $a, :@spec! (Int $x, Int $y)) { };
... (30 more lines)
09:08
rakudo/main: 886a459dee | (Nick Logan)++ | 6 files
RakuAST: evaluate non compile-time role parameterization args at BEGIN

A parametric role with a non compile-time argument crashed under RAKUDO_RAKUAST=1 in RakuAST::Type::Parameterized::PRODUCE-META-OBJECT with `Cannot do compile time parameterization with these args`. The minimal trigger is an inline array literal:
... (49 more lines)
rakudo/main: 3ac484efe5 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 8 files
Merge pull request #6217 from ugexe/ugexe/rakuast-parameter-subsignature

RakuAST: fix sub signature parameter and parametric role compile crashes
rakudo/main: f7576048dd | (Nick Logan)++ (committed using GitHub Web editor) | 8 files
RakuAST: allow anonymous declarations across all package kinds

Anonymous package declarations under RAKUDO_RAKUAST=1 had three bugs.
  `subset :: of Str where /42/` crashed in
RakuAST::Type::Subset.PERFORM-BEGIN's IMPL-INSTALL-PACKAGE call. This broke JSON::Unmarshal whose t/070-parameterised uses ... (39 more lines)
09:09
09:48 librasteve_ joined 13:54 hurufu left 14:10 hurufu joined 15:09 librasteve_ left 16:03 vrurg_ joined, vrurg left
Geth rakudo/lizmat-10: 7efdf7996e | (Elizabeth Mattijsen)++ | 2 files
RakuAST: synthetically build accessors *and* POPULATE

This commit removes the use of compiler services to create class accessors, but instead builds synthetic RakuAST trees that are added as methods.
It also builds the POPULATE logic using the same logic iterating ... (7 more lines)
16:11
rakudo: lizmat++ created pull request #6221:
RakuAST: synthetically build accessors *and* POPULATE
16:12
16:20 librasteve_ joined
ab5tract lizmat++ && ugexe++ 16:35
17:12 lizmat left, lizmat joined
lizmat . 17:45
Geth rakudo/lizmat-10: 7f4051873a | (Elizabeth Mattijsen)++ | src/Raku/ast/package.rakumod
RakuAST: make accessor / POPULATE building work

This commit actually makes the whole logic work, at least for the simple cases that I've checked so far.
This also:
  - updates resolver to know about the package scope (ugexe++)
  - removes the RakuAST::CompilerServices class completely
  - cleans up accessor building
  - makes sure POPULATE is only made if there is no method already
18:06
18:29 librasteve_ left
Geth rakudo/lizmat-10: 485287a425 | (Elizabeth Mattijsen)++ | src/Raku/ast/package.rakumod
RakuAST: be a bit smarter finding out native type

Apparently this broke in the RakuAST bootstrap
18:41
rakudo/lizmat-10: c3f3173084 | (Elizabeth Mattijsen)++ | src/Raku/ast/package.rakumod
RakuAST: eradicate some more Compiler::Services stuff

The attribute for keeping QAST is no longer needed, so remove it
20:05
lizmat ugexe: t/12-rakuast/terms.rakutest fails with: 20:08
Cannot find method 'push-scope' on object of type NQPMu 20:09
in any PRODUCE-META-OBJECT at src/Raku/ast/package.rakumod line 830
which is caused by apparently not getting a resolver
and that's apparently because the CompUnit doesn't have a resolver in $!resolver 20:28
ugexe lizmat: you're going to need to fix stuff like this github.com/lizmat/path-utils/blob/...od#L16-L31 20:30
lizmat Serialization Error: missing static code ref for closure '' (src/Raku/ast/code.rakumod:140) you mean ? 20:32
ugexe yes, but more specifically the way you are accessing private attributes and using them 20:33
lizmat not sure what I would need to do differently? perhaps it would be better to create a Block.WhateverCode coercer ? 20:35
in core?
20:37 hurufu left
ugexe in this case you are holding references from compstuff and dragging compile time captures into the serializer 20:37
and im not convinced the cost of doing the book keeping in rakudo to clear that internal attribute for these type of instances are worth it 20:38
lizmat yeah, I think you're right, will remove that hack 20:41
ugexe re POPULATE 20:42
yeah i guess $!resolver has been cleared by the time you need it. maybe try to build the POPULATE method earlier, maybe in in RakuAST::Class.PERFORM-CHECK when the resolver should still be live. then stash the produced meta object on the ast
lizmat ok, will try that 20:43
path-utils updated 20:48
yup, that fixes it 20:58
Geth rakudo/lizmat-10: fe76f6e8a8 | (Elizabeth Mattijsen)++ | src/Raku/ast/package.rakumod
RakuAST: move accessor / POPULATE creation to CHECK time

This appeases the RakuAST tests in "make test", suggested by
  ugexe++
20:59
lizmat afk for a bit&
Geth rakudo/lizmat-10: 3edca1a1ff | (Elizabeth Mattijsen)++ | src/Raku/ast/package.rakumod
RakuAST: make sure resolver is always restored

When there was already a POPULATE method, the resolver was not properly restored to its previous state
22:18
rakudo: ugexe++ created pull request #6223:
RakuAST: declare the anonymous state variable for assign meta-operators
22:23
rakudo: ugexe++ created pull request #6224:
RakuAST: clean up orphan IMPL-STUB-CODE freshcoderefs at end of compile
22:24
rakudo: ugexe++ created pull request #6225:
RakuAST: silent-replace prior `package` declarator under multi-part names
22:37
ugexe someone should fix json::fast under rakuast sometime. basically just replacing some ++$pod instances passed to is rw parameters need to be replaced with the nqp ops it uses to increment elsewhere 22:39
s/$pod/$pos/ 22:40
22:44 lizmat_ joined, lizmat left
japhb ugexe: I suspect I might have similar stuff in CBOR::Simple (and maybe BSON::Simple). Do those work for you, or do I need to work up some fixes in those? 22:56
japhb has been slowly bisecting something that broke his use of Red sometime in the 2026.05 dev cycle ... god this is slow on a laptop. 22:57
ugexe I just tried CBOR::Simple and it appears that RakuAST returns Hash[Mu, Mu] for my %h{Mu} where legacy returns Hash[Any, Mu] 23:58