04:19 vrurg_ joined 04:21 vrurg left 06:17 ShimmerFairy left 06:56 ShimmerFairy joined 08:53 finanalyst joined
lizmat [Coke]: I'm not doing anything on Geth anymore, working on a new Geth with more flexibility 09:07
timo recently i accidentally rebased a branch onto origin/master when that was years out of date, and that was ... fun :) 09:32
good thing the reflog doesn't have a small limit because it got filled with maybe hundreds of entries from the individual commits that it cherry-picked that were made in the years since the master branch had been renamed 09:38
09:58 finanalyst left 11:37 ShimmerFairy left 11:50 ShimmerFairy joined 12:35 ShimmerFairy left 13:13 ShimmerFairy joined
[Coke] lizmat: ah, wasn't sure if you were starting from the original code base or... 13:26
Should we archive raku/geth repo then?
lizmat almost 13:49
[Coke] btw, I just deleted a few dozen branches on nqp/rakudo that were merged. 13:59
... and thankfully stopped myself from removing "main" on rakudo because that showed merged. :)
lizmat *phew* [Coke]++
[Coke] timo - you have 144 unmerged brances on moarvm. 14:01
out of 244 branches TOTAL
(just going by last committer)
removing 51 merged branches from moarvm now... 14:03
minus a few that also have tags and were ambiguous 14:04
timo sorry :) 14:07
[Coke] I'm fine. I've given up on keeping branches "clean", just remove the merged ones every so often. 14:09
timo I thought I usually click the "remove branch" button on the pull request page 14:10
[Coke] these are not merged, so you didn't do a PR, guessing
2017-11-11 16:26:48 +0100 9 years ago timonator@perpetuum-immobile.de origin/inline_ignore_instrumentation_bytesize 14:11
just as one old example. 14:13
Geth rakudo/lizmat-25: 82876254bb | (Elizabeth Mattijsen)++ | 2 files
RakuAST: implement =begin/end ignore

As discussed in github.com/Raku/RakuDoc-v2/issues/103, implemented with a little help by thoughtstream!
In short: anything between `=begin ignore` and the nearest
  `=end ignore` will be ignored by rakudoc parsing. This allows
for a quick way to "comment out" parts of a RakuDoc document
  (or Raku program, for that matter) without needing valid
RakuDoc inbetween.
14:48
rakudo: lizmat++ created pull request #6495:
RakuAST: implement =begin/end ignore
14:49
rakudo/main: 60357e53b2 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 2 files
RakuAST: implement =begin/end ignore

As discussed in github.com/Raku/RakuDoc-v2/issues/103, implemented with a little help by thoughtstream!
In short: anything between `=begin ignore` and the nearest
  `=end ignore` will be ignored by rakudoc parsing. This allows
for a quick way to "comment out" parts of a RakuDoc document
  (or Raku program, for that matter) without needing valid
RakuDoc inbetween.
16:30
rakudo/main: 4cd6188d7c | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: install lowered array init after its operands evaluate

Previously the lowered initialization of a plain array from a comma list bound the fresh reification buffer into the variable before the operand expressions evaluated and reified. For the declaration form that order cannot be observed, but the assignment form covers an operand that reads the target, and @a = |@a, 3 slipped the already-emptied array. ... (6 more lines)
16:31
rakudo/main: d9932a12ef | (Nick Logan)++ (committed using GitHub Web editor) | 4 files
RakuAST: anchor a qualified our-declaration at its leading package

Previously the package slot for a declaration like our $Foo::Bar::x was vivified by walking from the package of the enclosing scope, so inside a class body the symbols ended up nested under that class, while references to the name resolve their leading package lexically and fall back to GLOBAL. Gnome::N declares our &Gnome::N::debug from ... (6 more lines)
16:32
rakudo/main: 2fb7031beb | (Nick Logan)++ (committed using GitHub Web editor) | 5 files
RakuAST: carry a dynamic regex's capture closures in its own frame

Previously the block a capture group or regex-argument assertion compiles to was declared in the frame enclosing the regex, with its closure bound into a lexical there that the regex looks up through its outer chain at match time. A regex compiled at BEGIN time serializes into a precompilation as a value though, and its enclosing frame is a ... (13 more lines)
16:33
rakudo/main: e9ee34d700 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: report a public attribute call's own thunks

Previously RakuAST::Var::Attribute::Public answered creates-block from the self.foo.item expression it delegates its compilation to, but a thunk wraps around the node itself, such as the thunk a for statement modifier adds. The node therefore reported no frame where emission would create one, and the lexical-to-local lowering treated every use ... (7 more lines)
rakudo/main: 7e1fb30a64 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: keep a traited variable reachable by name

Previously the lexical-to-local lowering declined a declaration with a will trait, whose phaser looks its variable up by name in the calling frame at run time (Variable.willdo), but still lowered a declaration carrying any other variable trait. A custom trait_mod receives the same Variable meta-object and can capture the variable name and walk calling ... (8 more lines)
rakudo/main: 5896ba94e5 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: run a statement form try in a called thunk

Previously the statement form of try compiled its expression inline under the handler op, where the traditional grammar calls a thunk, so a backtrace taken inside the expression was missing a frame. Code that walks a backtrace relative to its caller then miscounted, e.g. Log::Async's context feature shifted its caller's frame off and died ... (9 more lines)
16:36
rakudo/main: b2c8cc2c48 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: store an invokable attribute default as a value

Previously an attribute default whose compile-time value is a code object took the direct build path when the expression node itself was not a code node, so a block inside a parenthesized list, or a named routine like &uc, became the build value itself. BUILDALL calls an invokable build with the object and the attribute's value to compute ... (7 more lines)
rakudo/main: ea819c12d6 | (Nick Logan)++ (committed using GitHub Web editor) | 5 files
RakuAST: late-bind qualified sub calls through the package chain

Previously a call through a qualified name like Foo::bar() bound the callee at compilation time when the name resolved to a compile time value. A module's mainline rebinds its our-subs to fresh closure clones in the stash on every run, so the binding a consumer took during its own precompilation was to the clone made when the module ... (11 more lines)
16:37
rakudo/main: 9492cc5ed4 | (Nick Logan)++ (committed using GitHub Web editor) | 7 files
RakuAST: upgrade a shadowed single-part package name to GLOBALish

Previously only a multi-part package declaration upgraded a lexically resolved leading name part to a top level GLOBALish entry, so a single-part declaration whose name was already lexically visible left that symbol reachable only through its own scope. A package nested under a unit-scoped module is not in the compunit's GLOBALish at the ... (30 more lines)
16:38
rakudo/main: faefc60b2b | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: link the code for a signature literal in a WhateverCode

A signature literal produces a block, and the signature's meta-object links that block's compiled code as its $!code; the binder invokes under that code to run the bind and any where clause. An enclosing statement scope emits the block declaration itself but stops at a thunk's block boundary, so a signature literal primed into a WhateverCode reached runtime with no code to bind under, and smart-matching against it died in the binder. Emit the block declaration from the thunk that owns it.
16:39
rakudo/main: 4610311e8c | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: emit the resolution for a resolved package-search name

Previously the pseudo-package branch of Term::Name guarded on
  `self-is-resolved`, an undeclared name the bootstrap compiler passes
through as an always-false term, so the branch never ran and every pseudo-package name took the runtime pseudo-stash lookup.
... (21 more lines)
16:42
rakudo/main: fcfc67b52a | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: access an attribute the open class declares later untyped

Previously an attribute access compiled inside a BEGIN block emitted a null op when the attribute was not yet on the still-open class, which happens when the class declares the attribute further down its body. The code compiled cleanly, since the undeclared-attribute check runs against the finished class, but touching the attribute at runtime ... (10 more lines)
16:44
rakudo/main: b1faa20045 | (Nick Logan)++ (committed using GitHub Web editor) | 3 files
RakuAST: keep declarand nodes out of a precompiled $=rakudoc

Previously $=rakudoc collected the declarand node of every documented declaration, and a precompilation serialized those nodes into its serialization context. A declarand node carries backlinks into the whole compilation: a routine node references its outer code node, and a BEGIN statement prefix caches the thunk that ran at compile time. Serializing ... (14 more lines)
16:45
rakudo/main: 6b6777c141 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/ast/scoping.rakumod
RakuAST: don't fatalize the // left side of a dynamic-variable read

Under `use fatal`, `%*FOO // {}` on an undeclared dynamic variable threw
  "Dynamic variable %*FOO not found" instead of defusing to the right side.
A dynamic-variable read lowers to `ifnull(getlexdyn, &DYNAMIC-FALLBACK(...))`, and the fallback returns a Failure that `//` is meant to defuse. The runtime ... (10 more lines)
16:46
16:47 ShimmerFairy left, ShimmerFairy joined, ShimmerFairy left
Geth rakudo/main: dac2e86ea5 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: allow a $!attr parameter in a sub nested in a method

A `!`-twigil attributive parameter in a `sub` was rejected outright with
  "Variable $!x used where no 'self' is available", even when the sub was
lexically nested in a method where `self` is available. Legacy accepts it and binds into the enclosing object's attribute (PDF::Content::Text::Box does this in a Proxy STORE closure). ... (8 more lines)
16:47
16:48 ShimmerFairy joined
Geth rakudo/main: d312e86f85 | (Nick Logan)++ (committed using GitHub Web editor) | 6 files
RakuAST: resolve &?BLOCK past inlined control-flow branches

Previously &?BLOCK compiled to getcodeobj(curcode()), the code object of the running frame. Inside an if/unless/with/without/while/until/loop branch that the backend gave its own frame (because it holds a smartmatch or a nested closure, say) that returned the branch itself instead of the block the branch runs in. A
  &?BLOCK self-continuation written in such a branch then yielded the wrong code
... (13 more lines)
16:53
lizmat ok, that's enough merging for today :) 16:54
17:20 ShimmerFairy left 18:56 ShimmerFairy joined
[Coke] what does 'ignore' add over 'comment' ? 19:51
Was it something about nesting? 19:52
releasable6: next
releasable6 [Coke], Next release in ≈25 days and ≈23 hours. There are no known blockers. 4 out of 21 commits logged
[Coke], Details: gist.github.com/ff7842b7d501350b47...242a134b25
[Coke] releasable6: next 20:35
releasable6 [Coke], Next release in ≈25 days and ≈22 hours. There are no known blockers. 21 out of 21 commits logged
lizmat [Coke]: =begin ignore / =end ignore allows invalid markup / rakudoc inside of it, =begin comment does not 22:10
Geth rakudo/main: 35c19d4992 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Fixups.rakumod
RakuAST: =begin/end ignore should not do markup either

The contents of an =begin/end ignore block should not be processed in any way, shape or form
22:16
lizmat [Coke]: and thank you for making me realize I missed a part :-)