🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm Set by lizmat on 8 June 2022. |
|||
00:00
reportable6 left
00:01
reportable6 joined
01:23
Xliff left
02:02
squashable6 left,
squashable6 joined
02:09
ab5tract left
03:09
sourceable6 left,
reportable6 left,
quotable6 left,
committable6 left,
nativecallable6 left,
bloatable6 left,
coverable6 left,
benchable6 left,
shareable6 left,
releasable6 left,
squashable6 left,
unicodable6 left,
linkable6 left,
greppable6 left,
tellable6 left,
statisfiable6 left,
evalable6 left,
bisectable6 left,
notable6 left,
unicodable6 joined,
shareable6 joined,
evalable6 joined
03:10
sourceable6 joined,
releasable6 joined,
linkable6 joined,
committable6 joined,
coverable6 joined,
greppable6 joined,
tellable6 joined
03:11
bisectable6 joined,
bloatable6 joined,
nativecallable6 joined,
statisfiable6 joined,
squashable6 joined,
reportable6 joined,
quotable6 joined
03:12
notable6 joined,
benchable6 joined
04:42
Kaipei left
05:42
squashable6 left,
notable6 left,
shareable6 left,
evalable6 left,
tellable6 left,
committable6 left,
coverable6 left,
linkable6 left,
quotable6 left,
unicodable6 left,
sourceable6 left,
statisfiable6 left,
bisectable6 left,
greppable6 left,
releasable6 left,
nativecallable6 left,
reportable6 left,
quotable6 joined
05:43
coverable6 joined,
shareable6 joined,
statisfiable6 joined,
releasable6 joined,
nativecallable6 joined,
committable6 joined,
notable6 joined
05:44
sourceable6 joined,
squashable6 joined,
bisectable6 joined,
evalable6 joined,
reportable6 joined
05:45
greppable6 joined,
tellable6 joined,
linkable6 joined,
unicodable6 joined
06:00
reportable6 left
06:03
reportable6 joined
07:26
bloatable6 left,
benchable6 left,
greppable6 left,
sourceable6 left,
releasable6 left,
reportable6 left,
shareable6 left,
squashable6 left,
coverable6 left,
unicodable6 left,
bisectable6 left,
statisfiable6 left,
quotable6 left,
nativecallable6 left,
evalable6 left
07:27
coverable6 joined,
evalable6 joined
07:28
nativecallable6 joined,
squashable6 joined,
bisectable6 joined,
benchable6 joined,
greppable6 joined,
bloatable6 joined,
sourceable6 joined,
statisfiable6 joined
07:29
releasable6 joined,
reportable6 joined,
quotable6 joined,
unicodable6 joined
07:30
shareable6 joined
08:30
linkable6 left,
evalable6 left
08:31
linkable6 joined
08:33
evalable6 joined
|
|||
Geth | rakudo/main: 5758c35172 | (Stefan Seifert)++ | src/Raku/ast/signature.rakumod RakuAST: fix variable $_ not resolved on parameters with where blocks When PERFORM-BEGIN is called implicitly via IMPL-CHECK, it's not sufficient to ensure the newly generated nodes begin is performed as at that point resolution of names has already been performed. Intead we need to run the full IMPL-CHECK routine. |
09:24 | |
rakudo/main: c5c93a9281 | (Stefan Seifert)++ | src/Raku/ast/variable-declaration.rakumod RakuAST: Support binding to anonymous state variables |
09:44 | ||
nine | And 90 make test files passing | ||
10:29
Kaipei joined
10:35
sena_kun left
10:46
sena_kun joined
|
|||
Geth | rakudo/main: e9030098e9 | (Elizabeth Mattijsen)++ | 2 files Fix several issues with deparsing quoted strings - added RakuAST::QuotedString.has-variable method, which returns True if any of the segments is a variable - a single 'exec' processor without variables now deparses as qx//, with variables as qqx// |
10:56 | |
rakudo/main: 14958337e7 | (Elizabeth Mattijsen)++ | t/12-rakuast/strings.rakutest Add extensive deparsing tests for quoted strings |
|||
rakudo/main: d8854eb690 | (Elizabeth Mattijsen)++ | t/12-rakuast/heredocs.rakutest Make heredocs test TAP output more descriptive |
|||
nine | lizmat: I'm curious. How do you make sure your commits don't cause any regressions? | 11:08 | |
lizmat | by running "make test" ? | ||
nine | and spectest presumably | 11:09 | |
lizmat | and an occasional "make spectest", but not all of the time | ||
I mean, I'm only working on deparsing stuff | 11:10 | ||
nine | But then you cannot be sure? | ||
lizmat | spectest doesn't have any deparsing stuff | ||
nine | Sure it does. Since there are now 2 places where RakuAST code itself uses deparse, all code has the potential to run deparse | ||
lizmat | running a spectest takes 3.5 minutes for me | ||
nine | I run `TEST_JOBS=20 RAKUDO_RAKUAST=1 make spectest | grep '\. ok' | sort | tee $(git describe).pure.tests` and then vimdiff with the previous results file to avoid getting a new test working but losing some other test | 11:11 | |
lizmat | well, if my work breaks anything, then there's a missing test in the deparsing part | 11:13 | |
and the test should be added and the problem fixed | 11:14 | ||
nine: FWIW, t/spec/S02-names/is_cached.t hangs for me with RAKUAST=1 | 11:37 | ||
nine | I know, I'm currently investigating | ||
lizmat | it parses ok | 11:38 | |
I guess recursive calls are NYI ? | |||
nine: is this something I did? | 11:40 | ||
nine | No, it golfs to sub fib() { }; BEGIN &fib.wrap(-> |c { callsame }); dd fib() | ||
The hang is not a regression. It's just that before one of my recent fixes it didn't compile at all | 11:41 | ||
lizmat | *phew* | ||
aahhh ok | |||
the joys of successful compilation :-) | |||
nine | It's yet another BEGIN time execution issue. Probably a new code path that leads to a missing call to add-clone-for-cuid | 11:43 | |
11:46
linkable6 left,
evalable6 left,
linkable6 joined,
evalable6 joined
12:00
reportable6 left
12:02
reportable6 joined
|
|||
nine | This may topple the whole house of cards that is BEGIN time execution... | 12:15 | |
lizmat | oh dear | 12:20 | |
nine | The root of the problem is that we create QAST nodes much later than the old compiler frontend. The old compiler could create a stub for code objects and in the same process the QAST::Block object that generates the cuid. This cuid is important when tracking clones of the code object. When a code object gets compiled dynamically (i.e. at BEGIN time) we need to replace its $!do and the $!do of all clones. | 12:21 | |
If a clone is not registered yet in the clone list, we miss it and then end up in an infinite loop as we dynamically compile, but replace only the $!do of the original and then try to call the stub again, which compiles... | 12:22 | ||
lizmat | so we would need to create a to$!do list ? | ||
and then we don't even think of BEGIN blocks in BEGIN blocks, right ? | |||
nine | We already have such a list. But that only gets filled if IMPL-LINK-META-OBJECT was called already and that's part of creating QAST, which in the above example happens after running that BEGIN block | 12:23 | |
But I do see hope: the whole conundrum is because we rely on the cuid to find clones. Maybe we just have to manage them differently. | 12:24 | ||
lizmat | sometimes I feel we're on the bleeding edge of compiler design / implementation :-) | 12:35 | |
nine | It's not just a feeling. We certainly are. | 12:50 | |
Weak references would be nice for this | 13:34 | ||
Geth | rakudo/main: 034ed9ac09 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Deparse.pm6 Hopefully fix deparsing of ApplyPostfix Looks like only Methodish things need the '.' Also make sure there's a space between the Term::Reduce infix op and the args: [+](1,2,3) would work, but [+]@foo not. |
13:54 | |
rakudo/main: d9c9837e91 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Deparse.pm6 Tweak deparsing of Term::Reduce And simplify deparsing of ArgList |
|||
rakudo/main: ac5a00906c | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Deparse.pm6 Give dotty infix call assign some whitespace For better readability of deparsed ASTs |
|||
rakudo/main: 2fb1427ab1 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Deparse.pm6 Deparse ColonPair::Value with strings as :foo<bar> as opposed to :foo('bar'), to make it more match common usage |
14:22 | ||
rakudo/main: 8a5e0f8c0a | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Deparse.pm6 Correct deparsing for :foo<bar> vs :foo('bar') The <bar> syntax is subject to word / val processing, and the 'bar' syntax is not. Reflect that properly in deparsing |
14:39 | ||
rakudo/main: 93ea024a02 | (Elizabeth Mattijsen)++ | 4 files Add deparse tests and make TAP more informative |
14:43 | ||
nqp/main: 97b87b4fd5 | (Stefan Seifert)++ | src/QAST/Block.nqp Provide access to QAST::Block's cuid counter for RakuAST In RakuAST we need to determine a cuid in advance, i.e. before we create the QAST::Block object that the cuid will be used for. So provide an API for getting the next cuid as well as for setting a specific cuid on a block. |
15:23 | ||
rakudo/main: 58fbc27c02 | (Stefan Seifert)++ | 2 files RakuAST: Hopefully finally fix BEGIN time execution hangs for good The root of the problem is that we create QAST nodes much later than the old compiler frontend. The old compiler could create a stub for code objects and in the same process the QAST::Block object that generates the cuid. This cuid is important when tracking clones of the code object. When a code object gets compiled dynamically (i.e. at BEGIN time) we need to replace its $!do and the ... (11 more lines) |
|||
¦ JSON-JWT: 2colours self-assigned JSON::JWT Fails to install on 2022-12 Raku via Zef github.com/raku-community-modules/...T/issues/6 | 15:49 | ||
18:00
reportable6 left
18:02
reportable6 joined
19:23
Kaipei left
19:35
Kaipei joined
20:27
ab5tract joined
20:33
epony left
20:50
ab5tract left
21:03
ab5tract joined
21:07
ab5tract left
21:45
sena_kun left
21:47
sena_kun joined
22:32
epony joined
|