| 12 Jul 2026 | |||||||||||||||||||||||||||||||||||||||
| japhb | ugexe++ | 04:56 | |||||||||||||||||||||||||||||||||||||
| [Tux] |
|
09:05 | |||||||||||||||||||||||||||||||||||||
| csv-test-xs 0.015 - 0.017 | |||||||||||||||||||||||||||||||||||||||
| tux.nl/Talks/CSV6/speed4-20.html / tux.nl/Talks/CSV6/speed4.html tux.nl/Talks/CSV6/speed.log | |||||||||||||||||||||||||||||||||||||||
| Geth | rakudo/main: 51154584ab | (Nick Logan)++ (committed using GitHub Web editor) | 2 files RakuAST: give the S meta-operator its base operator's properties (#6435) The sequence meta-operator took its base operator's properties with the associativity reversed, apparently borrowed from the reverse meta-operator, so 1 S- 2 S- 3 parsed right associatively and gave 2 instead of -4. Sequencing only pins the evaluation order of the operands; the operator keeps its precedence and associativity. ... (8 more lines) |
14:04 | |||||||||||||||||||||||||||||||||||||
| rakudo/main: b33d4ff8ae | (Nick Logan)++ | src/Raku/ast/term.rakumod RakuAST: form the meta-op of a setting operator reduce at compile time Previously every evaluation of a reduce like [+] first called the reducer (e.g. METAOP_REDUCE_LEFT) to form the meta-op and then invoked it, with a TODO suggesting a dispatcher cache for UNIT/SETTING operators. A setting operator does not need a cache: its lookup yields the same code object at run time that it has at compile time, so the ... (8 more lines) |
14:13 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: 4ccabe777a | (Nick Logan)++ | src/Raku/ast/term.rakumod RakuAST: remove the reduce thunk TODO, thunking happens at begin time The list-forming branch of Term::Reduce.IMPL-EXPR-QAST carried a TODO for the thunk case, mirroring where the legacy frontend thunks the arguments of a reduce of a thunky operator. Term::Reduce.PERFORM-BEGIN already rewrites those arguments into thunks via IMPL-THUNK-ARGUMENTS, which applies the operator's thunky pattern across the operands the ... (5 more lines) |
|||||||||||||||||||||||||||||||||||||||
| rakudo/main: d496e5cba0 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/Actions.nqp RakuAST: die on undefined nodes in SET-NODE-ORIGIN (#6427) Previously SET-NODE-ORIGIN silently returned when handed a non-concrete node, annotated as a temporary measure to tolerate unimplemented nodes until RakuAST was considered ready for an exception. An action that fails to construct its node now reports it right away instead of producing an origin-less node that surfaces as ... (10 more lines) |
|||||||||||||||||||||||||||||||||||||||
| rakudo/main: a2836b3cf8 | (Nick Logan)++ | 2 files RakuAST: report attributes declared without a package as a sorry Previously an attribute declaration with no package attach target consulted $?PACKAGE through getlexdyn unconditionally, with a TODO to make the result a check time error. In a direct compilation that lookup walks into the compiler's own frames and finds an unrelated package that can take attributes, so 'has $.x' in the mainline ... (16 more lines) |
14:15 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: dcbfd477d8 | (Nick Logan)++ | src/Raku/ast/variable-declaration.rakumod RakuAST: drop redundant attribute-package push into signature targets A has-scoped signature declaration bound its attach target into each parameter target, with a TODO wondering whether that belonged in the target instead. It already is there: ParameterTarget::Var finds its own attribute package at parse time with the same find-attach-target lookup, which is how method signatures like submethod BUILD(:$!x) get it with no owner involved. The replace-scope push stays with the owning declaration, since the declarator scope is only known there and has to reach the targets before their begin time turns them into attribute declarations. |
|||||||||||||||||||||||||||||||||||||||
| rakudo/main: d7195899a5 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/ast/call.rakumod RakuAST: drop the dead second-chance resolution for qualified calls (#6429) Call::Method.PERFORM-CHECK gave the implicit lookup of a qualified method call's package a second chance to resolve by calling IMPL-BEGIN on it, with a FIXME doubting that was the right tool. It was no tool at all: parse time is where a Type::Simple resolves, the lookup's parse already ran when the call node was driven to begin ... (7 more lines) |
|||||||||||||||||||||||||||||||||||||||
| rakudo/main: 30d27cb215 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/ast/statement-mods.rakumod RakuAST: assert the condition modifier thunk stays innermost (#6431) The condition modifier thunk emitted its expression directly with a TODO about handling inner thunks. There are none to handle: Statement::Expression is the only thing that wraps this thunk, and it always does so before the loop or expression thunk, leaving the condition thunk innermost in every chain. Rather than carry ... (5 more lines) |
14:26 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: ed0f417cd0 | (Nick Logan)++ (committed using GitHub Web editor) | 5 files RakuAST: Drop the dead resolve-only flag from IMPL-CHECK (#6432) Every caller of IMPL-CHECK passed False for resolve-only, so the resolve-only branches never ran. Remove the parameter and the guards it gated. |
14:32 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: 6e0cd1c1e9 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/ast/base.rakumod RakuAST: detect a DEPARSE slang name with a type check (#6433) The DEPARSE argument loop recognized a slang name by comparing the argument's HOW name against 'Str', with an XXX asking for a better way. nqp::istype against the bootstrap Str type is that way, and it also classifies correctly where the name comparison did not: a Str subclass passed as a slang name fell through to be treated as a replacement deparser class, failing with a confusing 'No such method deparse' error instead of the L10N module lookup it was asking for. |
15:06 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: 735f21839a | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/Grammar.nqp RakuAST: report errors on a failed cursor from its highwater mark (#6436) The error context extraction carried a FIXME clamping a negative cursor position to zero, wondering how to get the real position. The real position is the highwater mark: a cursor whose own position is the failed sentinel is now repositioned to the furthest point the parse reached before the context is gathered, so the marker lands ... (5 more lines) |
|||||||||||||||||||||||||||||||||||||||
| rakudo/main: dbb13f451c | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/Grammar.nqp RakuAST: let the do statement prefix use its translatable token (#6437) The do statement prefix was the one prefix still matching its keyword with <.sym> instead of the sub-classable token a translation can override, left behind with an XXX by the translation readiness work. The obstacle was the obsolete do...while detection in the statement rule, which recognized a do prefix by its sym capture. The prefix now ... (5 more lines) |
15:08 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: 0566dc20b5 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/Grammar.nqp RakuAST: name the bracket in the arrow postfix dereference error (#6438) The Perl 5 style ->[], ->{} and ->() postfix dereferences produced a single error listing all three forms, with a TODO to report the one actually used. The bracket is now captured and the message names its pair, suggesting .[] for indexing and .{} or .() for the forms where whitespace before a pointy block is also a plausible intent. |
15:10 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: f6b9473500 | (Nick Logan)++ (committed using GitHub Web editor) | 3 files RakuAST: support DOC-prefixed use statements (#6439) The use statement carried a TODO calling it massively simplified next to the legacy grammar. Most of the difference is deliberate, but one form was missing: 'DOC use Module', which loads the module only when compiling documentation, failed to parse at all. The use token now accepts the DOC prefix and the action attaches an empty statement ... (8 more lines) |
|||||||||||||||||||||||||||||||||||||||
| rakudo: ugexe++ created pull request #6445: Implement the appending feed operators <<== and ==>> |
15:13 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: ba70b6e689 | (Nick Logan)++ (committed using GitHub Web editor) | 4 files RakuAST: parse a custom postcircumfix subscript as a semilist (#6441) Previously a user declared postcircumfix parsed a single statement between its delimiters, carrying over an XXX from the legacy grammar about semilists running into "fun with terminators". The terminator machinery handles custom stoppers fine now, as demonstrated by custom circumfix operators which already parse a semilist through the same ... (11 more lines) |
15:14 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: 0172fb4e27 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/Grammar.nqp RakuAST: drop the vestigial precedence plumbing in add-categorical (#6442) Previously add-categorical computed a default precedence hash for a new operator category with an "XXX for now" marker, merged any declarand precedence overrides into it when importing, and curried it into the generated Oper role along with the declarand. None of that was ever read. The legacy grammar consumes its equivalent through genO in the ... (9 more lines) |
15:15 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: ff2f67e07a | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/ast/code.rakumod RakuAST: prune the special variables from onlystar routines (#6444) Previously every routine got implicit $/, $!, $_ and $¢ declarations, with a TODO on the cursor declaration wondering whether some cases could be ruled out. An onlystar body only ever runs the dispatcher, so the legacy frontend strips all four from such routines, while RakuAST carried them in every proto. This prunes them the same way. A regex ... (7 more lines) |
15:16 | ||||||||||||||||||||||||||||||||||||||
| rakudo: ugexe++ created pull request #6446: RakuAST: adopt foreign-stubbed code objects at link time |
18:14 | ||||||||||||||||||||||||||||||||||||||
| rakudo: ugexe++ created pull request #6447: RakuAST: build constant format string literals at compile time |
18:17 | ||||||||||||||||||||||||||||||||||||||
| rakudo: ugexe++ created pull request #6448: Compare revision-gated candidate signatures structurally |
18:52 | ||||||||||||||||||||||||||||||||||||||
| Blin/coke/cleanup: 43189004df | (Will Coleda)++ | META6.json add self as author |
18:59 | ||||||||||||||||||||||||||||||||||||||
| Blin/coke/remove-Pakku: 4a4b5eafbd | (Will Coleda)++ | 3 files Remove Pakku support from Blin |
19:20 | ||||||||||||||||||||||||||||||||||||||
| Blin: coke++ created pull request #50: Remove Pakku support from Blin |
19:21 | ||||||||||||||||||||||||||||||||||||||
| [Coke] | Going to remove Pakku support from Blin - Haven't used it in blin in years. I start every cleanup project by removing it in a branch that then gets stalled because I did too much other stuff. | 19:22 | |||||||||||||||||||||||||||||||||||||
| Geth | Blin: 4a4b5eafbd | (Will Coleda)++ | 3 files Remove Pakku support from Blin |
||||||||||||||||||||||||||||||||||||||
| Blin: 0db5e62ff8 | (Will Coleda)++ (committed using GitHub Web editor) | 3 files Merge pull request #50 from Raku/coke/remove-Pakku Remove Pakku support from Blin |
|||||||||||||||||||||||||||||||||||||||
| [Coke] | in fact, looks like I already had a different branch pushed with that change that I never pulled the trigger on. | 19:26 | |||||||||||||||||||||||||||||||||||||
| Geth | rakudo/main: 3200c031e2 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/ast/signature.rakumod RakuAST: drop the further setup TODO from the Parameter meta-object (#6430) Previously building the Parameter meta-object ended on a TODO about further setup. Comparing against the legacy create_parameter, the one missing piece was $!attr_package, which the parameter now captures and binds since the attributive parameter changes for the full binder. The remaining create_parameter pieces are already covered elsewhere: declarator docs through the doc machinery and run time default closures through the thunk path. |
19:36 | |||||||||||||||||||||||||||||||||||||
| rakudo/main: 0ec9b48c6d | (Nick Logan)++ (committed using GitHub Web editor) | 2 files RakuAST: don't eat the newline after a trailing paren declarator doc (#6440) The parenthesized trailing declarator doc comment consumed an optional newline, unlike its legacy counterpart and unlike the leading form. That newline is what the end-statement rule's end-of-line assertion needs when the doc follows a block's closing brace on the same line, so 'sub f() {} #=( doc )' failed to compile with a strange-text-after-block error where the legacy frontend attaches the documentation. Note the plain '#= doc' form was unaffected, as it does not consume its newline either. |
19:37 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: a555e30ca1 | (Nick Logan)++ (committed using GitHub Web editor) | 4 files RakuAST: adopt foreign-stubbed code objects at link time (#6446) A tree returned by Str.AST has its code objects stubbed during the parse, whose context is abandoned when the parse stops at the ast target. EVALing that tree from another compilation left the code object unknown to the compiling context: IMPL-FIXUP-COMPILED-CODEREFS never bound the freshly compiled code ref, and the cleanup task that ... (10 more lines) |
19:45 | ||||||||||||||||||||||||||||||||||||||
| rakudo: ugexe++ created pull request #6449: RakuAST: compile an .AST tree's own unit when EVALing it |
19:46 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: 3387ea3b32 | (Nick Logan)++ (committed using GitHub Web editor) | 6 files RakuAST: compile an .AST tree's own unit when EVALing it (#6449) Previously declaring a multi inside a Str.AST tree died at the call site with "lang-call cannot invoke object of type 'VMNull'", and any require died with "bindkey_o requires a concrete object" or "Lexical '&sym' does not exist in this frame". Cool.AST returns the parsed unit's statement list, whose statements were already begun as part of ... (12 more lines) |
22:27 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: 181c6a7b46 | (Nick Logan)++ (committed using GitHub Web editor) | 5 files RakuAST: give all resolvers name suggestion capability (#6443) Previously suggest-lexicals and suggest-routines were stubbed to return empty lists on the EVAL resolver with a "for now" marker, so an undeclared symbol in a synthesized AST handed to EVAL got no did-you-mean suggestions. Worse, reporting such a symbol crashed with "secondary X::Method::NotFound" before suggestions even entered into ... (23 more lines) |
|||||||||||||||||||||||||||||||||||||||