Geth rakudo/rakuast: 339 commits pushed by (Jonathan Worthington)++, (Moritz Lenz)++, (Elizabeth Mattijsen)++, (Timo Paulssen)++, (Brad Gilbert)++
review: github.com/rakudo/rakudo/compare/8...e6cb2faf4a
14:37
Geth rakudo/rakuast: 302163aec8 | (Jonathan Worthington)++ | 2 files
Handle non-sink context `for` statement modifier

And groundwork for non-sink cases of other loop modifiers, but those aren't compiled yet (for the non-modifier cases also).
15:21
MasterDuke heh, if i change github.com/Raku/nqp/pull/703 to try and optimize more `if @` situations, the nqp build dies in src/NQP/Optimizer.nqp (the file i'm making changes in, though it's not dying in my changes) 16:22
lizmat the optimizer travels all nodes, so that could be an explanation > 16:24
?
MasterDuke it's dying here github.com/Raku/nqp/blob/master/sr...er.nqp#L71 with `elems requires a concrete object (got a NQPMu type object instead)` because my patch has re-written the `if @existing {` to `if nqp::elems(@existing) {`
if i instead re-write it to ``if nqp::isconcrete(@existing) && nqp::elems(@existing) {` i instead get `This representation (P6int) does not support positional access (for type BOOTInt)` at github.com/Raku/nqp/blob/master/sr....nqp#L1468 16:28
lizmat MasterDuke: no idea 16:30
related: don't spend too much time doing this in the Rakudo optimizer: that work will be most likely moot by the time RakuAST lands
MasterDuke oh, right... 16:31
Geth rakudo/rakuast: 89585a2c59 | (Jonathan Worthington)++ | 3 files
Generalize and correct sinking

  * Apply it to all expression statements except those doing their own
   sink marking; we'll provide an opt-out as an optimization a bit
   later on
  * Routines should not sink their final statements (an bug that became
   very clear once sinking was made more complete)
16:48
rakudo/rakuast: 9e29382e7d | (Jonathan Worthington)++ | 6 files
Allow nodes to mark themselves unsinkable

There'll be some more cases that need to be marked up this way, but at least not doing it for variable declarations means avoiding regressing on a spectest. For code objects and package declarations it's not so much needed for correctness, but rather results in simpler generated code.
moritz can we please call those "Titanic nodes"? 17:26
just in memory of a ship declared unsinkable
gfldex_ Can we have some uncrashable nodes too? Might be useful when C-bindings are involved. 17:29
lizmat
.oO( iCeberg }
17:35
Geth rakudo/rakuast: 310a3100f7 | (Elizabeth Mattijsen)++ | src/core.c/OperatorProperties.pm6
First version of OperatorProperties class

This class contains the information that will used to be found in the
  .prec hash of operators. It is intended to be the contents of a new
  $!operator-properties attribute in the Routine class.
19:38
gfldex I just updated my latest blogpost and must report that Rakudo once again blew my mind. The whole concept of control exceptions is making a lot of things really easy. 22:12
sena_kun thinks on presenting a new docs demo tomorrow 22:33
lizmat gfldex++ # cool finder of new idioms! 22:48