Geth rakudo: ugexe++ created pull request #6814:
RakuAST: throw when use lib is inside a package
00:14
japhb ugexe: Is the MoarVM branch "ugexe/jit-x64-interp-parity" about bug fixes or speed or both? 00:17
00:46 MasterDuke joined
MasterDuke bisectable6: use Test; sub word(Str $g, Str $m, Str $f, Str $u --> Str) { $g eq 'M' ?? $m !! $g eq 'F' ?? $f !! $u }; my @g = <M F U>; my %want = M => 'm', F => 'f', U => 'u'; my $wrong = 0; for ^20000 -> $i { my $g = @g[$i % 3]; $wrong++ if word($g, 'm', 'f', 'u') ne %want{$g}; }; is $wrong, 0, 'an inlined ternary chain returns the right 00:48
bisectable6 MasterDuke, Will bisect the whole range automagically because no endpoints were provided, hang tight
MasterDuke parameter';
bisectable6 MasterDuke, More than 3 changes to bisect, please try a narrower range like old=2026.08 new=HEAD 00:49
MasterDuke, Output on all releases: gist.github.com/d280ebbf94d061e3bc...f6a61983f8
MasterDuke m: sub word(Str $g, Str $m, Str $f, Str $u --> Str) { $g eq "M" ?? $m !! $g eq "F" ?? $f !! $u }; my @g = <M F U>; my %want = M => "m", F => "f", U => "u"; my $wrong = 0; for ^20000 -> $i { my $g = @g[$i % 3]; $wrong++ if word($g, "m", "f", "u") ne %want{$g}; }; say $wrong == 0 00:51
camelia False
MasterDuke bisectable6: sub word(Str $g, Str $m, Str $f, Str $u --> Str) { $g eq "M" ?? $m !! $g eq "F" ?? $f !! $u }; my @g = <M F U>; my %want = M => "m", F => "f", U => "u"; my $wrong = 0; for ^20000 -> $i { my $g = @g[$i % 3]; $wrong++ if word($g, "m", "f", "u") ne %want{$g}; }; say $wrong == 0
bisectable6 MasterDuke, Will bisect the whole range automagically because no endpoints were provided, hang tight
MasterDuke, Output on all releases: gist.github.com/125089b6b2b307de61...335e8e7d2b 00:52
MasterDuke, Bisecting by output (old=2021.09 new=2021.10) because on both starting points the exit code is 0
MasterDuke, bisect log: gist.github.com/2989939f03ae752567...922aea6830 00:53
MasterDuke, (2021-10-22) github.com/rakudo/rakudo/commit/6d...b80870a72d
MasterDuke, Output on all releases and bisected commits: gist.github.com/37df4c7c494fc6a293...866ff242ce
MasterDuke ^^^ prints `False` normally, but `True` with `MVM_SPESH_INLINE_DISABLE=1`
on both my M2 laptop and my Zen 2 desktop 00:54
github.com/MoarVM/MoarVM/issues/2054 01:05
01:26 MasterDuke left
ugexe japhb: bug fixes only 01:40
tellable6 2026-10-08T00:17:37Z #moarvm <japhb> ugexe: Is the MoarVM branch "ugexe/jit-x64-interp-parity" about bug fixes or speed or both?
japhb ugexe: Ah OK, thank you 01:50
[Coke] back home, that blin run is 83% done 01:55
Geth rakudo: ugexe++ created pull request #6815:
Ugexe/loop condition value
02:43
ShimmerFairy About the discussion of a protected main from earlier: personally, I think just locking off main and leaving it there would be a bad idea, simply because I find the creation of PRs for every little change to be very clunky. I do like the idea of a more stable 'main' though, so maybe a workflow with an unstable 'develop' branch would be appropriate. 03:45
Geth rakudo: ugexe++ created pull request #6816:
RakuAST: match legacy pod for X<>/D<> meta and table captions
03:57
rakudo: ugexe++ created pull request #6817:
RakuAST: only take a | or + between whitespace as a column divider
04:23
[Coke] 73a8872 is clean 04:46
ugexe nice 04:47
[Coke] c: 5136581fd1 e 04:48
committable6 [Coke], ¦5136581: «»
Geth rakudo/main: 74b7282e15 | (Nick Logan)++ | 8 files
RakuAST: declare a package's body with the block it sits in

Previously a package other than a role emitted its body as an immediate block in the code evaluating the package. Code that only takes the type of a package never compiles that expression, so the body never reached the program and serializing the methods of the type died with
  "QAST::Block with cuid N 'POPULATE' ... has not appeared". This happened
... (18 more lines)
rakudo/main: 11978c3ac7 | (Nick Logan)++ | 14 files
RakuAST: declare what a package's header declares with its body

Previously the declarations in the traits of a package, e.g. `my class C is foo(my constant K = 5) { method m { K } }`, belonged to the package's scope, which produced no code. Nothing declared them at runtime, so the body saw `(Mu)` for a variable or constant, and a sub or an enum value was `VMNull`. ... (23 more lines)
rakudo/main: 9aff06144e | (Nick Logan)++ (committed using GitHub Web editor) | 17 files
Merge pull request #6808 from ugexe/ugexe/rakuast-package-trait-args

RakuAST: declare a package's body where it is evaluated and its header with its body
rakudo/main: cb4cc2ee89 | (Nick Logan)++ (committed using GitHub Web editor) | 3 files
RakuAST: report a value a native return cannot take as a return type check failure (#6811)

Previously a routine with a native return type unboxed the value it ends with directly, so a value of the wrong type died with whatever its representation says about unboxing. A method declared `--> int32` that returns `self` died with `This representation (CStruct) cannot unbox to a native int (for type Foo)`, which says nothing about the return type. ... (11 more lines)
rakudo/main: cab77c1bb9 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: throw when use lib is inside a package (#6814)

Previously `use lib` inside a class, role, module or grammar built an
  `X::Package::UseLib` exception but never threw it. The pragma was then
silently ignored, i.e. the repository was not added and no error was reported. The legacy frontend reports "Cannot 'use lib' inside a class". This throws the exception so RakuAST reports the same error.
rakudo/main: 5 commits pushed by (Nick Logan)++ 04:50
05:01 vrurg_ left 05:07 vrurg joined
[Coke] so, the pings on tickets are probably NOT a scam, but instead a bunch of students whose teacher is sending them to x number of open source projects looking for open tickets, and pinging the person who opened the ticket in a comment asking if they can work on it 05:41
I've only seen me tagged so far, but that probably makes sense given how notifications work - please speak up here if you're getting tagged on other tickets by (apparently) Indian students asking to work on a ticket with no other details. 05:42
Someone have a "here's how to contribute" wiki page lying about I can forward these folks to? (I gave some details on github.com/Raku/roast/issues/892#i...6053001946 but will probably revert to just linking a wiki page.) 05:43
Looks like we started a while ago with github.com/rakudo/rakudo/wiki/cont...troduction and friends. I'll update those tomorrow in a way that is helpful for this situatio 05:53
n
(need to update the $$ donation link there, anyway)
09:33 finanalyst joined 10:48 finanalyst left 13:02 vrurg_ joined 13:04 vrurg left
[Coke] updated github.com/rakudo/rakudo/wiki/cont...inancially 13:31
Geth rakudo: ugexe++ created pull request #6818:
RakuAST: parse the source of a for loop once
13:49
rakudo: ugexe++ created pull request #6819:
RakuAST: make interpreted method calls match compiled ones
13:52
rakudo: ugexe++ created pull request #6820:
RakuAST: report the program's location from callframe at BEGIN time
13:53
rakudo: ugexe++ created pull request #6821:
RakuAST: apply a condition modifier inside the loop modifier's body
14:05
rakudo/main: 2771bf5dc1 | (Nick Logan)++ | 13 files
Implement partially dimensioned views of shaped arrays

Previously indexing a shaped array of more than one dimension with fewer indices than its dimensions, as in `@a[1]` of `my @a[2;3]`, or with a
  `*`, range, list or `*-1` in a dimension of a multidimensional
subscript, as in `@a[*;0]`, was reported as not yet implemented, as was an adverb on a multidimensional slice of an array in 6.c, as in ... (35 more lines)
15:08
rakudo/main: 70ed52aaa2 | (Nick Logan)++ | 14 files
Implement jagged array shapes

Previously a shape of several dimensions that leaves the length of one unset, as in `my @calendar[12;*;24]`, was reported as not yet implemented.
This gives an array whose first dimension holds an array of the ... (36 more lines)
rakudo/main: 1eead3c83b | (Nick Logan)++ (committed using GitHub Web editor) | 19 files
Merge pull request #6807 from ugexe/ugexe/multidim-shaped-array

Implement shaped array views and jagged array shapes
rakudo/main: aff83215dd | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
Handle a Slip from a loop body the same in every loop iterator (#6812)

Previously three of the iterators behind `Seq.from-loop` mishandled a Slip returned by the loop body. `Rakudo::Iterator.Loop` ended the loop on an empty Slip and dropped the values of any other Slip, so
  `(do while True { last if ++$i > 3; Empty })` stopped after one run of
the body and `(do while True { last if ++$i > 2; slip($i, $i) })` gave ... (9 more lines)
rakudo/main: 7c74b992f9 | (Nick Logan)++ | 2 files
Read next and last payloads through control-payload in IterateMoreWithPhasers

Previously `Rakudo::IterateMoreWithPhasers`, which runs a loop block that has phasers and takes several values at a time, read the payload of a `next` or `last` itself. For a 6.e `next` with an empty Slip payload it dropped a final set of values shorter than the block takes, so `(for ^7 -> $a, $b?, $c? { NEXT { }; next Empty if $a == 3; $a })` ... (6 more lines)
rakudo/main: 5614812a11 | (Nick Logan)++ | 5 files
Don't give the label of a labeled next or last as a loop value

Previously a labeled `next` or `last` in a loop whose values are used gave its label as one of those values, so
  `(L: for ^5 { next L if $_ == 2; $_ })` gave
  `(0, 1, Label.new(...), 3, 4)`. MoarVM matches a labeled control
exception to its handler by the payload, which is why `Label.next` and ... (7 more lines)
rakudo/main: 7a79feefc4 | (Nick Logan)++ (committed using GitHub Web editor) | 7 files
Merge pull request #6813 from ugexe/ugexe/labeled-control-payload

Don't give the label of a labeled next or last as a loop value
rakudo/main: 1a3fbf8741 | (Nick Logan)++ | 2 files
RakuAST: split the meta of X<> and D<> like legacy pod does

Previously `RakuAST::LegacyPodify` passed the meta of `X<>` and `D<>` through as a single string, so `X<items|defining, a term>` gave a meta of `["defining, a term"]`. The legacy pod grammar splits the meta of
  `X<>` into index entries at semicolons and each entry into its levels
at commas, i.e. `[["defining", " a term"],]`, and splits the synonyms ... (8 more lines)
rakudo/main: be7cfed7ff | (Nick Logan)++ | 2 files
RakuAST: give the legacy caption of a table as a string

Previously `=begin table :caption<Test Caption>` gave
  `Pod::Block::Table.caption` the list `("Test", "Caption")`, which
Pod::To::HTML renders as `TestCaption`. The legacy pod grammar gives every config value as a string. The config itself keeps the list, as documented for `:key<a b>`, however the caption attribute only exists for display, so this joins its words like legacy pod does.
rakudo/main: a95b60d839 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
Merge pull request #6816 from ugexe/ugexe/legacypodify-meta-caption

RakuAST: match legacy pod for X<>/D<> meta and table captions
rakudo/main: 4609b58b50 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: only take a | or + between whitespace as a column divider (#6817)

Previously the pass that parses a table with virtual column dividers took any unescaped `|` or `+` in a row as a visible column divider. A row such as `plus 1+2` or `foo L<a|b>` after a row without dividers died with "Table has a mixture of visible and invisible column-separator types", and a table with such a character in every row was parsed as a ... (5 more lines)
rakudo/main: 74596b7a3b | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: parse the source of a for loop once (#6818)

Previously the check for a C-style `for (;;)` loop parsed a source that starts with a parenthesis in a lookahead before the source was parsed for real. The actions ran for both parses, so whatever the source declared was declared twice. The second declaration of a variable deferred to the first, which never made it into the tree. That made ... (14 more lines)
rakudo/main: 5 commits pushed by (Nick Logan)++
[Coke] Let me know if any of these should have a blin run. 15:17
(otherwise I'll kick one off at some point to catch up) 15:18
15:36 japhb left 16:55 coleman left, apogee_ntv left 16:59 coleman joined, apogee_ntv joined 17:22 hurufu joined
[Coke] c: 531838fc6d e 17:50
committable6 [Coke], ¦531838f: «» 17:51
[Coke] ponders hooking up "sensors" output to the blin monitoring. :| 17:54
(see if the machine is overheating) 18:21
18:32 hurufu left, hurufu joined
Geth rakudo/main: ec20784453 | (Nick Logan)++ | 4 files
RakuAST: annotate a thunk compiled at BEGIN time with its location

Previously the thunk that BEGIN time evaluation compiles for a constant or trait argument had no file or line annotation, since only a statement carries one. As such `constant C = (callframe(0).line, 1)[0]` gave line 1, and `.file` an empty file.
This annotates the code of such a thunk with the start of its origin. A node whose origin has no source, as one built by hand may have, is now left without a location rather than failing to compile.
18:40
rakudo/main: 04ffbfbeaf | (Nick Logan)++ | 4 files
RakuAST: compile rather than interpret a call to callframe at BEGIN time

Previously the BEGIN time interpreter called `callframe` itself, so the frame it reported was the interpreter's own. As such
  `constant C = callframe(0).file` gave `src/Raku/ast/call.rakumod`, and
  `.line` a line in it, as did a call through `&callframe` or
  `CallFrame.new`, and one in a trait argument.
This has the interpreter leave a call to the `callframe` of the setting, or to `CallFrame.new`, to compiled code, which reports a location in the program rather than in the compiler.
rakudo/main: f7e50a72b0 | (Nick Logan)++ (committed using GitHub Web editor) | 7 files
Merge pull request #6820 from ugexe/ugexe/rakuast-callframe-begin-time

RakuAST: report the program's location from callframe at BEGIN time
rakudo/main: 6a3feeac14 | (Nick Logan)++ (committed using GitHub Web editor) | 3 files
RakuAST: apply a condition modifier inside the loop modifier's body (#6821)

Previously a statement with both a condition modifier and a loop modifier went wrong in several ways. With a while or until modifier in value context the condition was applied inside the thunk of the loop body and again around that thunk, so `1 + 2 if False while $x++ < 3` handed `Empty` to `Seq.from-loop` as its body and died. With a block, a ... (23 more lines)
ugexe [Coke]: yeah we're primed for another run now
Geth rakudo: ugexe++ created pull request #6822:
RakuAST: map the result of the dotty infix and of .= initializers into Raku land
19:00
rakudo: ugexe++ created pull request #6823:
RakuAST: make any bare item of an enum list a key
19:01
rakudo: ugexe++ created pull request #6824:
RakuAST: evaluate the shape of an inline array as an expression
rakudo: ugexe++ created pull request #6825:
RakuAST: keep the condition of an until loop as written
19:13
19:13 japhb joined, hurufu left 19:30 hurufu joined
[Coke] c: 6a3feeac14 e 19:36
committable6 [Coke], ¦6a3feea: «»
[Coke] started 19:37
20:25 hurufu left
[Coke] c: HEAD return false 20:27
committable6 [Coke], ¦HEAD(6a3feea): «===SORRY!=== Error while compiling /tmp/LEfmwPRm83␤Undeclared routine:␤ false used at line 1. Did you mean 'alse'?␤␤ «exit code = 1»»
[Coke] c: HEAD return alse
committable6 [Coke], ¦HEAD(6a3feea): «===SORRY!=== Error while compiling /tmp/zsvTUzfSUN␤Undeclared routine:␤ alse used at line 1. Did you mean 'alse'?␤␤ «exit code = 1»»
[Coke] There's some LTA bug
20:29 hurufu joined 21:04 hurufu left
[Coke] (opened tx) 22:04
22:18 vrurg_ left 22:19 vrurg joined