Geth rakudo/main: 6f843f5349 | (Nick Logan)++ (committed using GitHub Web editor) | 4 files
Map a container-held foreign value when binding a value parameter (#6388)

HTML::Entity::Fast keeps nqp hashes in Raku scalars and passes them to its subroutines:
   my $w-encode = whitelist-in-encode("<", ">"); # Scalar holding an nqp hash
   encode-html-entities($str, $w-encode);
... (14 more lines)
00:01
rakudo/main: 43b91c2bb7 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: allow a `*` slurpy on a callable parameter (#6389)

  `sub f(*&code) {}` died with "Parameter * quantifier not applicable to
sigil '&'", while the legacy frontend accepted it. As with a `$` sigil, the slurpiness has no effect there: the parameter binds a single Callable, just as `&code` would.
Treat a `*`-quantified `&` parameter the same as a `$` one, which the code already tolerates for the same reason.
rakudo/main: dee0fd7cd8 | (Nick Logan)++ (committed using GitHub Web editor) | 4 files
RakuAST: allow binding to a topic call (#6392)

Binding to a topic call such as `.<key> := $value` died with "Cannot compile bind to RakuAST::Term::TopicCall". Term::TopicCall inherited can-be-bound-to as False and had no bind path, so the bind operator refused it even though the explicit `$_<key> := $value` compiled fine.
... (10 more lines)
rakudo/main: 6e21a50ba5 | (Nick Logan)++ (committed using GitHub Web editor) | 4 files
RakuAST: run a value-producing statement prefix for a constant value (#6393)

A `constant` initialised from `gather { ... }` got the block as its value rather than the gathered sequence, so `my constant %RULES = gather {...}` died with "Cannot use a Callable as the only argument to store in a Map". This broke modules that build a constant lookup table from a gather, such as PublicSuffix.
... (8 more lines)
rakudo/main: b74d0f85f0 | (Nick Logan)++ (committed using GitHub Web editor) | 5 files
RakuAST: snapshot native arguments to non-rw parameters (#6394)

Previously a native lexical or attribute compiled to a lexicalref or attributeref in argument position. When the callee bound it to a raw parameter and stored it, as `infix:«=>»` does when building a Pair, the stored reference remained a live view of the variable, so reading
  `.value` later saw mutations made after the Pair was built:
... (26 more lines)
rakudo: ugexe++ created pull request #6404:
RakuAST: resolve a symbolic stash lookup on a generic type-capture
00:04
01:02 lizmat left 03:10 apogee_ntv left 03:12 apogee_ntv joined
Geth rakudo: ugexe++ created pull request #6405:
RakuAST: box native values produced by begin-time evaluation
04:16
06:37 ShimmerFairy left 06:38 ShimmerFairy joined 07:13 lizmat_ left 07:14 lizmat joined 09:36 sp1983 joined 09:53 sp1983 left 10:13 librasteve_ joined 11:52 guifa joined 11:58 rakkable left 11:59 rakkable joined 12:22 librasteve_ left
Geth rakudo/main: 909e226992 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/Raku/ast/resolver.rakumod
RakuAST: small refactor of ::Resolver.resolve-lexical-constant

Since it felt like pretty hot code during compilation:
  - no return statement unless needed
  - no unneccesary intermediat variables
13:44
rakudo/main: a5161642b7 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: Route a maybe-method call through raku-meth-call-me-maybe

A maybe-method call `$obj.?meth` compiled to a `callmethod dispatch:<.?>`, which requires the invocant to carry the `dispatch:<.?>` method that lives on `Mu`. On an object that is not Mu-rooted, such as an NQP grammar cursor reached from a slang's action methods, that died with "dispatch:<.?> not found". ... (9 more lines)
13:47
rakudo/main: 5 commits pushed by (Nick Logan)++, (Elizabeth Mattijsen)++ 13:48
rakudo/main: 90191a1b34 | (Nick Logan)++ | 4 files
RakuAST: Fatalize a try block's Failures without promoting its worries

Previously a try block did not run with `use fatal` semantics, so a Failure produced inside it leaked out as a value instead of being thrown and caught. `try { return $v.Int }` returned the Failure rather than falling through after the try when the conversion failed, and a Failure returned into the block through a call, then sunk, went off nowhere. ... (15 more lines)
14:06
rakudo/main: 00db5426c4 | (Nick Logan)++ | 2 files
RakuAST: lower a single-emit supply to SUPPLY-ONE-EMIT

Previously `supply emit EXPR` (and the block form whose body is a single emit statement) compiled to the generic &SUPPLY, so a Failure produced while evaluating EXPR was emitted as an ordinary value. The legacy frontend rewrites such a body to just EXPR and routes it through
  &SUPPLY-ONE-EMIT, whose tappable emits the block's return value and quits
... (10 more lines)
rakudo/main: dd68b072bd | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 5 files
Merge pull request #6397 from ugexe/ugexe/rakuast-supply-one-emit

RakuAST: fatalize try blocks and lower single-emit supplies
rakudo/main: 34e08243cd | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: set a stub's yada bit before applying its traits (#6398)

A trait can constrain on a routine being a stub. LibXML's `is dom-boxed` uses `where { .yada }`. Previously RakuAST set the yada bit while compiling the body, which runs after traits are applied, so `.yada` was False when the constraint ran and the trait was rejected as an unknown trait. Set it in PERFORM-BEGIN before apply-traits so the constraint sees the stub.
14:07
rakudo/main: 00685dc644 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: allow a bare Whatever `where` constraint

A parameter `where *` (as in IUP's `Bool :$copy where *`) died with
  "Malformed double closure". A bare Whatever is not a WhateverCode, so it was
wrapped in a synthetic `{ $where.ACCEPTS($_).Bool }` block, and the `*` inside re-curried; the double-closure check then ran on that wrapper and rejected it. Run the check in PERFORM-BEGIN on the original where, before the wrapper is built, so a bare Whatever is left alone while a user-written `where { * > 0 }` is still caught.
14:17
rakudo/main: d0e44ff43f | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: honor a custom declarator's companion attribute type

A package declarator registered through `EXPORTHOW::DECLARE` may also register a companion attribute meta-object under `<declarator>-attr`. The legacy frontend resolves it for every `has` in the declarator's body through `$*PKGDECL ~ '-attr'`. RakuAST's `stub-package` never looked it up, so attributes were always built from the standard `Attribute` and the ... (12 more lines)
14:18
[Coke] why do we have both github.com/rakudo/rakudo/commit/d8...72d0cd3d28 and github.com/rakudo/rakudo/commit/70...c054a63ea2 on main? 15:42
It reads like one is a merge commit of the other, but it doesn't say it's a merge commit.
it looks like maybe d8e85d1 is a *SQUASH* of multiple commits? 15:43
I'm very confused. :|
(this from trying to keep the changelog draft up to date) 15:44
ugexe yeah thats unfortunate. it has rakuast and nonrakuast commit. it should have been merged as individual commits
[Coke] ok, looks like it *is* a merge, but that for some reason, it doesn't say "merge" in the whateverable setup. 15:45
I think we've talked about this before, but in general, please don't squash. 15:46
(it does show as a merge in a git log)
guessing whateverable isn't smart enough to deal with squashes.
and so it's showing me the original commits AND the merge commit (as it does), but then doesn't tell me that the merge commit is a merge, so I have to check it by hand. :| 15:47
(if it says merge, I can easily say "what commits are in that merge" and put them all in a single entry in the changelog with the merge commit sha and the individual commit sha 15:48
(the squash also loses the title of the PR, which is a better changelog entry than "the first commit") 15:57
15:59 finanalyst joined
[Coke] hurm. this is weirder than that, found one of the commits referenced in a merge, but it's a single-commit PR. Ah well, that's enough archaeology here. 16:01
lizmat I thought I did a merge commit ? 16:44
16:45 finanalyst left 16:46 finanalyst joined 16:49 finanalyst left
Geth rakudo/main: 294299f450 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: defer private method resolution when the package is composing

A private method call resolves at compile time by looking the method up on its package. A trait applied at BEGIN wraps methods with closures that are compiled before the class composes, so the lookup found nothing and the call died with "Private method not found" (LibXML's `is reader-raw`). Only resolve at compile time once the package has composed, otherwise emit the runtime private-method dispatch, which finds the method once the class is in place.
16:52
rakudo/main: 378bebbc2a | (Nick Logan)++ (committed using GitHub Web editor) | 3 files
RakuAST: return Nil from a QUIT phaser when its when/default succeeds

Previously a whenever block's QUIT phaser never intercepted the quit under the RakuAST frontend: the react or supply block died with the original exception even though a default clause matched. The supply machinery decides whether a QUIT phaser handled the exception by what the phaser returns, Nil when handled, and treats anything else as ... (10 more lines)
16:53
rakudo/main: 123df613fc | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: resolve a symbolic stash lookup on a generic type-capture

  `T::{$key}` in a role body, where `T` is the role's own type-capture
parameter, resolves the leading `T` to the unbound generic while parsing. IMPL-STASH-HASH then read the generic's WHO, which is null, and reached into it with nqp::getattr, dying "Cannot look up attributes in a VMNull type object". The legacy frontend accepted it. ... (9 more lines)
17:03
japhb All the ++ for Nick. Good on ya! 17:32
[Coke] lizmat: Maybe? could just be releasable (and therefore me) is confused. :) 17:40
No worries.
ugexe i mean it is weird. usually a merge commit mentions it is merging a given PR. this merge commit shows the same title and description that would be generated by squashing 17:41
my guess is she copy pasted the text it shows when selecting squash and merge but then switched to regular merge and copied that text in. Alternatively github automatically populated that title/description when selecting squash first and then changing to merge 17:42
github.com/rakudo/rakudo/commit/58...952b635d0e 17:43
github.com/rakudo/rakudo/commit/d8...72d0cd3d28
(shown to show the default merge commit title/description, and the confusing one) 17:44
[Coke] (it is weird)++ 17:45
ugexe so my assumption is releasable is confused, i.e. it tries to match `Merge pull request ..`
17:48 finanalyst joined
[Coke] I think it reports the same way, it's *me* that gets confused when it doesn't say merge, because then I can't tell by looking at releasable output that it's a merge. 17:56
... and if I click on the "merge" commit, github isn't showing it as a merge - in the other cases, it shows me "this merges PR#xxx" and I can click on the PR #, and see the commit IDs in the UI 17:57
... i never did start a point release for moarvm. 18:19
Will do that today
raku.land/cpan:JNTHN/JSON::Schema shows a copyright on alexander, but cpan author of JNTHN 19:11
... it also fails to install on a recent rakudo. :(
is github.com/croservices/json-schema/issues the correct REPO still? 19:12
lizmat yeah, looks like... 19:16
guess we could transfer it to ramu community modules 19:17
[Coke] github.com/croservices/json-schema/issues/9 19:19
do we "own" croservices now? or how does that work.
ugexe wow, a bot trying to get you to download a virus or whatever 19:23
lizmat looks like it installs if you install ECMA262Regex separately first 19:31
[Coke] that module is already installed 19:34
checking versions... 19:35
ugexe you think its specific to windows though? 19:36
[Coke] It could be, I don't know.
Looks like I have ECMA262 installed at the latest version (1.2) 19:37
I reported that user for malware. 20:17
They did a passable job making something up to explain the link, I thought. 20:18
but probably triggered because I said "windows". :)
(the zip file has a single .exe in it)
20:35 ShimmerFairy left, ShimmerFairy joined
librasteve yeah croservices is effectively raku community owned 21:45
[Coke] so we can just fix things there and push a new release if needed?
Also: what's our current stance on CPAN modules? eliminate in favor of fez?
Or leave in place and suggest future versions in fez? 21:53
ugexe future versions will have to go in fez since only jnthn could upload to that cpan auth 22:02
[Coke] Sure, but let's say jnthn wanted to keep using cpan. 22:04
and was still maintaining that.
we would still say "don't do that", right?
MoarVM 2026.06.1 has been cut
ugexe yeah, it would be preferable if everything used fez 22:05
[Coke] el_che, timo, patrickb - Timo was concerned about that MoarVM bug being in the wild - Just like last month, if we can do a release that includes the 2026.05 versions of nqp/rakudo and this version of Moar...
Sorry
Do we want to start pinging folks who have pushed to cpan to delete their modules from cpan and push to fez?
IIRC, I can still go to pause and delete things I've uploaded to cpan for raku 22:06
Geth rakudo: ugexe++ created pull request #6406:
NativeCall: enforce definiteness constraints on native signatures
22:11
rakudo: ugexe++ created pull request #6407:
RakuAST: produce a once's state declaration when reached first
22:28
23:01 apogee_ntv left 23:02 apogee_ntv joined 23:36 djinni` left
[Coke] ugexe: I deleted the virus comment 23:52