29 Jan 2023
nine Apart from that the major areas are language version support, producing the right error type/messages and POD 20:13
lizmat 115 / 650 confirmed! 21:09
afk again&
Geth rakudo/main: 52b9092167 | (Stefan Seifert)++ | 2 files
RakuAST: fix $/ not containing a List after s:g///

Apparently $/ can get overwritten by the APPLY-MATCHES call of a successful s:g///, so we need to set it twice.
21:20
nine Correction: 116 test files ;)
Geth rakudo/main: c3c1f9c5e6 | (Stefan Seifert)++ | 2 files
RakuAST: give start blocks/statements fresh $/ and $! variables

Code run in start blocks or with start prefix will run on a different thread. Sharing $/ and $! variables with the originator thread is a recipe for desaster, so don't do it.
22:03
nine And this fixes the last of the rakuast test failures. Now up to 117 test files. And this concludes my hacking for this weekend :)
30 Jan 2023
Geth rakudo: vrurg++ created pull request #5174:
Try to be more explicit when exception reporting dies
00:23
nine say $_ if $_ %% 2 for 1..10 # this is a hard one 08:45
evalable6 2
4
6
8
10
nine The if here is a statement modifier. It wraps the statement's expression in an nqp::if with appropriate return values. The for is also a statement modifier. It thunks the expression and wraps that with appropriate looping code. 08:46
The problem is when we have both of them on a statement like in this example. Then the nqp::if wrapper would have to go on the expression, i.e. it must be part of the thunk. Currently instead it wraps the calling of the thunk. This is a problem because a for loop is just a call to .map on the list. This map gets passed the thunk to run. Currently instead we evaluate the nqp::if and pass the result to the 08:48
Nemokosch This definitely had bugs
nine map which gets totally confused.
Nemokosch With for + with, I think it was bugged 08:49
Geth rakudo/main: 95f6c5b4e9 | (Stefan Seifert)++ | 2 files
RakuAST: fix miscompilation of statements with both condition and loop modifiers

Postfix conditions are statement modifiers. They wraps the statement's expression in the appropriate op (e.g. nqp::if) with appropriate return values. A postfix for is also a statement modifier. It thunks the expression and wraps that with appropriate looping code. The problem was when we had both of them on a statement. Then the condition wrapper would have to go on the expression, ... (15 more lines)
11:47
nine This brings us to 121 test and 652 spectest files! 11:48
Geth rakudo/main: c3155c0558 | (Stefan Seifert)++ | src/Raku/Actions.nqp
RakuAST: fix regex definitions not finding their package
12:44
nine 658 spectests! Confirming that there is still a lot of low hanging fruit
Geth rakudo/main: 349b1a8306 | (Stefan Seifert)++ | src/Raku/Actions.nqp
RakuAST: fix reporting of POD variable NYI errors

We didn't make it far enough through compilation to even report the sorry, so just die instead. It's only there until everything's implemented anyway.
13:04
releasable6 Next release in ≈4 days and ≈3 hours. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 15:00
Geth rakudo/main: 45b1978422 | (Vadim Belman)++ | src/core.c/Exception.pm6
Try to be more explicit when exception reporting dies

Currently when this happens at compile time we end up with useless 'No exception handler found for catch' message providing us with no information as to what the original cause was. With this commit we would try to pull out as much info as possible at report it back with no bells and whistles.
16:09
rakudo/main: d5a839672b | (Vadim Belman)++ (committed using GitHub Web editor) | src/core.c/Exception.pm6
Merge pull request #5174 from vrurg/detailed-runaway-exception

Try to be more explicit when exception reporting dies