🦋 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:02 reportable6 joined 00:33 epony left 01:21 epony joined 05:15 squashable6 left 05:17 squashable6 joined 06:00 reportable6 left 06:01 reportable6 joined 08:37 greppable6 left, unicodable6 left, notable6 left, nativecallable6 left, linkable6 left, evalable6 left, coverable6 left, squashable6 left, statisfiable6 left, tellable6 left, releasable6 left, bloatable6 left, quotable6 left, sourceable6 left, shareable6 left, reportable6 left, committable6 left, bisectable6 left, benchable6 left, coverable6 joined, notable6 joined 08:38 unicodable6 joined, evalable6 joined, sourceable6 joined 08:39 nativecallable6 joined, committable6 joined, shareable6 joined, benchable6 joined 08:40 releasable6 joined, bisectable6 joined, quotable6 joined, linkable6 joined, bloatable6 joined, greppable6 joined, reportable6 joined, statisfiable6 joined, tellable6 joined, squashable6 joined 08:58 sena_kun joined
Geth rakudo/main: dc452c57c0 | (Elizabeth Mattijsen)++ | src/Raku/ast/call.rakumod
Remove RakuAST::Call::Method.shortname

Replace by .canonicalize, as per nine++ suggestion
10:04
10:16 sena_kun left 10:55 sena_kun joined
Geth rakudo/main: 0354c47892 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Deparse.pm6
Simplify circumfixing in deparsing

Also add a missing () in an error message
11:10
11:52 epony left
lizmat nine: should semilists be deparsed with ; as delimiter, or as , ? 11:58
nine I'm not sure I understand Raku well enough to answer that :D 11:59
12:00 reportable6 left, reportable6 joined
lizmat basically the difference between: 12:04
m: my @a = <a b c d>; say Q/@a[0,1]/.AST.dump
camelia CompUnit 𝄞 /home/camelia/EVAL_0:1 ⎡@a[0,1]⎤
StatementList 𝄞 /home/camelia/EVAL_0:1 ⎡@a[0,1]⎤
Statement::Expression ▪𝄞 /home/camelia/EVAL_0:1 ⎡@a[0,1]⎤
ApplyPostfix ⎡[0,1]⎤
Var::Lexical ⎡@a⎤…
lizmat and:
my @a = <a b c d>; say Q/@a[0;1]/.AST.dump
m: my @a = <a b c d>; say Q/@a[0;1]/.AST.dumpa
camelia No such method 'dumpa' for invocant of type 'RakuAST::CompUnit'. Did
you mean any of these: 'DUMP', 'dump'?
in block <unit> at <tmp> line 1
lizmat m: my @a = <a b c d>; say Q/@a[0;1]/.AST.dump
camelia CompUnit 𝄞 /home/camelia/EVAL_0:1 ⎡@a[0;1]⎤
StatementList 𝄞 /home/camelia/EVAL_0:1 ⎡@a[0;1]⎤
Statement::Expression ▪𝄞 /home/camelia/EVAL_0:1 ⎡@a[0;1]⎤
ApplyPostfix ⎡[0;1]⎤
Var::Lexical ⎡@a⎤…
lizmat I think one of the tests is set up incorrectly... 12:06
glad I have the .AST method now... :-)
Nemokosch what does it do? 12:33
lizmat it parses the given string using the new Raku grammar, and returns the produced RakuAST nodes 12:36
Nemokosch oh, and deparse takes this a step further by providing a Raku source code representation? 12:38
12:38 Altai-man joined
lizmat yes 12:38
m: say Q/my $a = 42/.AST.deparse 12:39
camelia No such method 'deparse' for invocant of type 'RakuAST::CompUnit'. Did
you mean 'DEPARSE'?
in block <unit> at <tmp> line 1
lizmat m: say Q/my $a = 42/.AST.DEPARSE
camelia my $a = 42
lizmat the leading spaces are a bug
in the deparsing
m: say Q/my $a = 42/.AST.dumo
camelia No such method 'dumo' for invocant of type 'RakuAST::CompUnit'. Did
you mean any of these: 'DUMP', 'dump', 'sum'?
in block <unit> at <tmp> line 1
lizmat m: say Q/my $a = 42/.AST.dump
camelia CompUnit 𝄞 /home/camelia/EVAL_0:1 ⎡my $a = 42⎤
StatementList 𝄞 /home/camelia/EVAL_0:1 ⎡my $a = 42⎤
Statement::Expression ▪𝄞 /home/camelia/EVAL_0:1 ⎡my $a = 42⎤
VarDeclaration::Simple ⎡$a = …
12:42 sena_kun left 13:19 Altai-man left
lizmat nine: something like "(3,4)" codegens into a SemiList(Statement::Expression(ApplyListInfix(...))) 13:29
however, all seems to work without the Statement::Expression step
aka: SemiList(ApplyListInfix(...))
is this an optimization not yet performed on the codegen side, or should I adapt deparsing tests accordingly ? 13:30
nine No! That's plain wrong. SemiList is a StatementList and the contained statements are required to be RakuAST::Statement subclasses. I have only just fixed a bug where we didn't stick to this rule in commit 8b9fb402b9cbcfaf9762b49e90a74840c06621ef. Let's not introduce more problems like that. 13:37
lizmat ok, so I guess I'll need to fix a few tests :-) 13:38
nine I assume an empty SemiList can live without a Statement::Expression in it 13:45
nine Sure. An empty list is an empty list. It's just that if there is something in it, it must be statements. 13:46
lizmat ack 13:49
Geth rakudo/main: 9aea72f59c | (Elizabeth Mattijsen)++ | 3 files
Fix deparsing of SemiLists

And adapt tests to use AppltListInfix where applicable
14:15
rakudo/main: 8ee5e99bd5 | (Elizabeth Mattijsen)++ | t/12-rakuast/call.rakutest
Some more explanations in TAP output
14:27
14:29 Kaipei left
Geth rakudo/main: d0916e9a51 | (Stefan Seifert)++ | src/Raku/ast/name.rakumod
Implement canonicalization of expression parts in names

The canonical form of arbitrary Raku expressions is obviously the deparsed string as parsing+deparsing takes all the possible forms one can spell a Raku expression and turns them into one canonical form.
15:16
rakudo/main: dcff39f62d | (Stefan Seifert)++ | src/Raku/Actions.nqp
RakuAST: fix failure to resolve &infix:<<whatever>> variables

We need to turn such a name into its canonical form before looking it up in surrounding scopes as it will be registered under the canonical name.
nine 89 passing test and 605 passing spectest files
Nemokosch nine: is all this something that you just know by heart or is any of this written down anywhere? 15:42
nine Nemokosch: it's just good old fashioned debugging and reasoning. What else but the deparse result could be a canonical form of an expression? And with many different ways to spell the same name, we must standardize on one form if we want to find it in a lookup hash (which is what resolving a name really does) 15:46
tellable6 nine, I'll pass your message to Nemokosch
15:52 Kaipei joined
Nemokosch no, I mean, what a certain source code should correspond to in AST form 16:04
because that has been the biggest burden for me for one; not knowing what even is the right interpretation 16:05
16:23 epony joined 17:04 ab5tract joined
lizmat nine: wouldn't these references to .DEPARSE fail once we try to build the setting with the Raku grammar ? 17:08
ugexe fyi there appears to have been a regression re: windows and module installation -- github.com/ugexe/zef/issues/491 17:59
18:00 reportable6 left 18:02 reportable6 joined
ugexe i dont think this is specific to TAP either. Other people have noted similar issues with their windows github actions that appear to be precomp related 18:03
timeline wise the only thing that sticks out is github.com/rakudo/rakudo/commit/71...0453f618b6 but I'm not sure how that change would fail most of the time but succeed rarely 18:05
unless its a race condition with CALLERS.EXISTS-KEY
it looks like that wasn't in the 2022.12 release though 18:07
18:35 sena_kun joined
vrurg The race condition doesn't look as an unlikely cause. 19:35
Geth rakudo/lizmat-unicode-version: 0be7a68d37 | (Elizabeth Mattijsen)++ | 4 files
Introduce $?UNICODE-VERSION in 6.e

Instead of doing difficult things in MoarVM or JVM, just set the constant in the setting code. Whenever a Unicode update is to be done, updating this constant should be part of the Pull Request.
19:36
rakudo: lizmat++ created pull request #5153:
Introduce `$?UNICODE-VERSION` in 6.e
ugexe does the jvm even support unicode 15? 19:52
13 rather
similarly the other backends 19:53
lizmat well, I don't know... but that could be easily handled by #?if jvm etc 20:02
20:04 sena_kun left, sena_kun joined, sena_kun left 20:05 sena_kun joined
Geth rakudo/lizmat-unicode-version: 484eed9544 | (Elizabeth Mattijsen)++ | src/core.e/core_prologue.pm6
Make $?UNICODE-VERSION check the unicode database

As suggested by Stephen Schulze
20:12
ugexe sure, but i was questioning what was there 20:21
20:34 ab5tract left, ab5tract joined
ugexe actually im not sure #?if jvm would help for e.g. jvm since it would need to be more like #?if jvm:ver<...> 20:39
however, that runtime code looks like it should solve all those problems 20:40
20:59 epony left 21:00 epony joined 22:18 sena_kun left 22:21 sena_kun joined
nine lizmat: could be come a problem. But that's then. We'll deal with it somehow. It may just be that the settings code never reaches this case. 22:27
lizmat one can hope :-) 23:27