| Geth | rakudo: ugexe++ created pull request #6442: RakuAST: drop the vestigial precedence plumbing in add-categorical |
00:04 | |||||||||||||||||||||||||||||||||||||
| rakudo: ugexe++ created pull request #6443: RakuAST: give all resolvers name suggestion capability |
01:17 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: 15 commits pushed by (Nick Logan)++ review: github.com/rakudo/rakudo/compare/b...5adc32356b |
02:14 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: 8a23d2b06a | (Nick Logan)++ (committed using GitHub Web editor) | 4 files RakuAST: interpret a curried argument of a BEGIN-time call (#6418) Previously a BEGIN-time call whose arguments contained a WhateverCode could not interpret its argument list, so the whole call was compiled dynamically and run as a throwaway thunk. The WhateverCode built inside that thunk carried the thunk's frame as its outer, which no longer matches its static frame once the closure is serialized into a ... (24 more lines) |
02:31 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: 4 commits pushed by (Nick Logan)++ | |||||||||||||||||||||||||||||||||||||||
| rakudo/main: 911780ace6 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/ast/compunit.rakumod RakuAST: intern Rat and Complex literals (#6421) Previously intern-decimal, intern-rat, and intern-complex on RakuAST::LiteralBuilder were marked TODO and simply built a fresh object for every literal. This interns them the same way Int, Num, and Str literals already are, so repeated occurrences of the same rational or complex literal in a compilation unit share one object ... (7 more lines) |
02:36 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: c8de6ef062 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files RakuAST: look the GLOBAL package up at run time (#6419) Previously a GLOBAL-rooted package variable compiled to a reference to the compilation unit's own GLOBAL package object. Each unit has its own GLOBAL, and they merge into the process-wide one as units load, so a precompiled module that wrote %GLOBAL::CONFIG at run time wrote into its unit's copy, whose stash nothing else consults. The write was ... (7 more lines) |
02:37 | ||||||||||||||||||||||||||||||||||||||
| rakudo/main: 3b3c0252be | (Nick Logan)++ | 3 files RakuAST: defer the SameNameAsEnclosing worry to check time Previously IMPL-INSTALL-PACKAGE reported this worry immediately. Symbol installation runs at BEGIN time, before the parser has attached the node's origin, so the worry could never be tied to the declaration's file and line. This collects it on the PackageInstaller and reports it from PERFORM-CHECK instead, alongside the deferred trait sorries. |
|||||||||||||||||||||||||||||||||||||||
| rakudo/main: 718f289c15 | (Nick Logan)++ | 8 files RakuAST: report compiler worries on the node instead of the resolver Previously several worries were added directly to the resolver, which bypasses the node-side check-time handling. This resolves the XXX comments in Methodish.PERFORM-BEGIN and converts the same pattern in CompUnit.check, TraitTarget.apply-traits (through its existing deferred worries list), VarDeclaration::Simple.PERFORM-CHECK, and ... (6 more lines) |
|||||||||||||||||||||||||||||||||||||||
| rakudo/main: b7675a9671 | (Nick Logan)++ (committed using GitHub Web editor) | 8 files Merge pull request #6420 from ugexe/ugexe/rakuast-useless-method-worry RakuAST: report compiler worries on the node instead of the resolver |
|||||||||||||||||||||||||||||||||||||||
| rakudo/main: 7ae0ddce83 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files RakuAST: apply val to quoted atoms in quote words literals (#6422) Previously QuotedString.literal-value treated the quotewords processor exactly like words, and pushed a quoted atom's value into the result untouched. That left the atom out of val processing, so «1 "2" 3.5» compiled to a plain Str "2" where the runtime path and the legacy frontend both produce an IntStr allomorph. ... (5 more lines) |
|||||||||||||||||||||||||||||||||||||||
| rakudo/main: a336359563 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/ast/variable-declaration.rakumod RakuAST: use Scalar as the container type of $ sigil variables (#6424) Previously ContainerCreator set the container type of an ordinary scalar variable to its value type, with a FIXME noting it should be Scalar like the container base type. The legacy frontend sets its container_type to Scalar for the $ sigil as well. ... (7 more lines) |
|||||||||||||||||||||||||||||||||||||||
| rakudo/main: 153aacf058 | (Nick Logan)++ (committed using GitHub Web editor) | 3 files RakuAST: resolve the 'maybe also check?' questions on synthesized nodes (#6425) Four synthesized nodes were sent to begin time with a TODO asking whether they should also get check time. The answer is no in each case, for two different reasons. The subset where block and the non-attribute accessor are bound to ... (11 more lines) |
|||||||||||||||||||||||||||||||||||||||
| rakudo/main: 176b5ca56b | (Nick Logan)++ (committed using GitHub Web editor) | 7 files RakuAST: support the :dba regex modifier and pass it to FAILGOAL (#6434) Previously :dba("...") in a regex died with an unrecognized modifier error: the mod metachar's parenthesized string argument never parsed because HLL::Grammar's quote_EXPR does not match inside the Raku grammar, and no node existed to carry the name. The grammar now parses the quoted string itself, a Regex::InternalModifier::Dba node records ... (8 more lines) |
02:47 | ||||||||||||||||||||||||||||||||||||||
| ugexe | i went through about 60 TODO/XXX and similar type comments in rakuast code and either 1) deleted it altogether if it was no longer relevant 2) replaced it with a comment that clarifies why something is the way it is 3) implemented whatever it referenced | 03:24 | |||||||||||||||||||||||||||||||||||||
|
04:14
ShimmerFairy left
|
|||||||||||||||||||||||||||||||||||||||
| Geth | rakudo: ugexe++ created pull request #6444: RakuAST: prune the special variables from onlystar routines |
04:29 | |||||||||||||||||||||||||||||||||||||
| japhb | ugexe++ | 04:56 | |||||||||||||||||||||||||||||||||||||
|
06:55
ShimmerFairy joined
06:59
ShimmerFairy left,
ShimmerFairy joined
|
|||||||||||||||||||||||||||||||||||||||
| [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 | ||||||||||||||||||||||||||||||||||||||
|
14:54
apogee_ntv left
14:56
apogee_ntv joined
15:06
hurufu joined
|
|||||||||||||||||||||||||||||||||||||||
| Geth | 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 | ||||||||||||||||||||||||||||||||||||||
|
15:24
apogee_ntv left
15:25
apogee_ntv joined
|
|||||||||||||||||||||||||||||||||||||||
| Geth | 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 | ||||||||||||||||||||||||||||||||||||||
|
20:51
ShimmerFairy left,
ShimmerFairy joined
|
|||||||||||||||||||||||||||||||||||||||
| Geth | 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) |
|||||||||||||||||||||||||||||||||||||||
|
22:52
hurufu left
|
|||||||||||||||||||||||||||||||||||||||
| ugexe | TIL about the $(*) stuff | 23:28 | |||||||||||||||||||||||||||||||||||||
| github.com/ugexe/rakudo/commits/ug...ver-feeds/ has an implementation of it (built on the ==>> PR) | 23:29 | ||||||||||||||||||||||||||||||||||||||