🦋 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:03 ab5tract left 00:31 epony left 01:05 opoku joined 01:57 Kaipei left 02:29 ab5tract joined
Geth rakudo: thundergnat++ created pull request #5150:
Update to Unicode 15.0
02:39 ab5tract left, epony joined 02:40 ab5tract joined
Geth roast: thundergnat++ created pull request #825:
Update to Unicode 15.0
03:24 opoku left 03:36 ab5tract left 03:37 ab5tract joined 03:48 ab5tract left, ab5tract joined 03:54 ab5tract left 03:55 ab5tract joined 04:00 ab5tract left 06:00 reportable6 left 06:01 reportable6 joined 06:14 kjp left 06:17 kjp joined 06:34 epony left 07:03 epony joined
Geth nqp/main: da9c50361d | (Patrick Böker)++ | Configure.pl
Don't errors without git but all needed files are present
nqp/main: 82d55d68bb | (Patrick Böker)++ (committed using GitHub Web editor) | Configure.pl
Merge pull request #791 from patrickbkr/no-git-configure

Don't error without git but all needed files are present
rakudo/main: e3e962c2f9 | (Patrick Böker)++ | Configure.pl
Don't errors without git but all needed files are present
rakudo/main: 178a774fe5 | (Patrick Böker)++ (committed using GitHub Web editor) | Configure.pl
Merge pull request #5149 from patrickbkr/no-git-configure

Don't error without git but all needed files are present
08:03 linkable6 left, evalable6 left 08:06 linkable6 joined, evalable6 joined 09:30 samebchase left 09:31 samebchase joined 09:39 Kaipei joined 09:47 sena_kun joined 12:00 reportable6 left 12:01 reportable6 joined
lizmat I wonder whether we should move RakluAST::Deparse to lib 12:56
and have RakuAST::Node.DEPARSE require that file 12:57
with 200 classes currently having deparsing logic and more than 200 to go still 12:58
ugexe how do we decide what goes in lib/ and what goes in the core anyway 12:59
lizmat well, that's a more general issue
ugexe i thought we had some vague reasoning already, but maybe not
main thing i can think of is the potential uninstall-ability / upgradability of things in lib/ 13:00
lizmat in this case, moving it transparently to lib would be easy as all access is handled through the RakuAST::Node.DEPARSE method
practical issue is I'm not sure how to require a module in lib from the "Raku/ast sorta Raku but not quite and really nqp" land 13:01
practically, it would mean not having to re-compile the whole core for RakuAST::Deparse development 13:02
which would save like 30+ seconds for each fix / test
Geth rakudo/main: 19b3757ec3 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Deparse.pm6
Part 2 of HLLizing RakuAST::Deparse

  - also made sure the methods are in alphabetical order for better
   search in a soon to be 50K+ / 1700+ cloc file, which will at least
   double in size yet
  - added visual markers to guide entry of newer .deparse candidates
   at the right location
lizmat nine: in the Perl6 grammar, 42.WHAT codegens to a nqp::what(42) 13:23
in the Raku Grammar it codegens to a method call .WHAT 13:24
same for .HOW
is this intentional, or is this a codegen issue in Raku grammar / actions ? 13:25
and same for .WHO 13:26
and DEFINITE 13:27
nine I guess just NYI special cases.
lizmat ok, so it's just a matter of fixing the IMPL-TO-QAST method ? 13:28
nine Yes. 13:29
lizmat and .REPR
I'll put that on my list :-)
nine About moving Deparse to lib, you can get the same development benefits by implementing it in lib and then moving the working code to the setting. Don't have to use lib as permanent location for that 13:30
Oh, and DEPARSE is also used by RakuAST, so it will have to be in core
lizmat ah? 13:31
Ah, I see
1443:nqp::bindattr_s($regex, Regex, '$!source', self.DEPARSE);
ok, that settles that question then :-) 13:32
Geth rakudo/main: 5abd89601f | (Elizabeth Mattijsen)++ | 2 files
Add deparsing tests to calls

Before, we checked only whether the deparsed code would roundtrip. This adds checks to see if the deparsed code actually looks like something we're expecting. Found some issues with .WHAT macroish method calls, so these are marked TODO.
lizmat nine: also looks like "42.REPR(666)" is legal in Raku grammar.. :-) 13:50
will also look at fixing that
nine I wonder if these macros really should become a different RakuAST node. They are very different beasts from regular method calls. That problem with arguments is an example of that. The difference in deparsing another one. 13:52
lizmat yeah, that may be a better solution
so fix the grammar to catch these, and create different RakuAST nodes for them
nine yes, that's what I'm thinking 13:53
Then passing an arg there would become a syntax error
lizmat hmmm.. actually, Call::Method already has a IMPL-SPECIAL-OP method that returns the op name for a given method name 13:54
looks like there is code for it already in Call::Method
nine Yes, the alternative to what I just suggested would be to catch those args in the check phase
The SPECIAL-OPS hash was introduced by jnthn, so we can assume that at least at that point he was sure those should be RakuAST::Call::Method nodes 13:56
lizmat ok, so now we need to figure out why they don't fire 13:57
ah, but maybe they do: a deparse with --target=ast wouldn't reveal that, or would it ?
nine no, it wouldn't 13:58
lizmat right... ok, it looks what is just missing, is the check for args in the grammar, and the deparsing 13:59
nine Not in the grammar, in PERFORM-CHECK in RakuAST::Call::Method 14:00
lizmat aha, ok :-) 14:01
afk for a few hours& 14:13
14:20 ab5tract joined 14:22 ab5tract left 14:23 ab5tract joined
Geth rakudo: 2colours++ created pull request #5151:
"numeric comparisons" with coercion rather than overload
rakudo: 2colours++ created pull request #5152:
Dateish "numeric comparisons" pt 2
17:22 melezhik joined 17:24 melezhik left 17:28 melezhik joined 17:34 melezhik left 18:00 reportable6 left 18:01 reportable6 joined
Geth rakudo/main: 4a6c5541b8 | (Stefan Seifert)++ | src/Raku/ast/scoping.rakumod
RakuAST: also merge NQP package stubs
18:04 Geth left, Geth joined 18:17 discord-raku-bot left 18:18 discord-raku-bot joined 18:36 discord-raku-bot left, discord-raku-bot joined
[Coke] github.com/Raku/nqp/issues/59 - someone want to comment "you can't do that in NQP" so I can close this old ticket? :) 18:38
(that I opened in 2012)
nqp: class EEK {method Numeric() {return 3}}; my $a:= EEK.new(); say(+$a); 18:39
camelia Cannot intify object of type EEK
at src/vm/moar/ModuleLoader.nqp:130 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/ModuleLoader.moarvm:)
from <tmp>:1 (<ephemeral file>:<mainline>)
from NQP::src/HLL/Compiler.nqp:196 (/home/camelia/rakudo-m-inst-2/sha…
[Coke] nqp: class EEK {method Numeric() {return 3}}; my $a:= EEK.new(); say($a.Numeric);
camelia 3
18:40 discord-raku-bot left, discord-raku-bot joined
[Coke] This was a partcl blocker back in ancient history 18:40
19:25 ab5tract left, ab5tract joined
lizmat nine: so I added a PERFORM-CHECK method to RakuAST::Call::Method, but it is not getting called 19:39
should it be registered somewhere ?
thoughts? 19:41
nine is RakuAST::CheckTime 19:43
lizmat ack 19:45
20:11 hythm left 20:34 ab5tract left 20:35 ab5tract joined
Geth rakudo/main: 123ad032ed | (Elizabeth Mattijsen)++ | 3 files
Fix deparsing of macroish method calls

  - introduce a RakuAST::Call::Method.macroish method
  - adapt deparsing of RakuAST::Call::Method accordingly
  - introduce a RakuAST::ArgList.has-args method
  - introduce CHECK testing and sorry if macroish && has-args
  - unTODO now passing tests
Note: the error message appears to lack file and line number, but I think that's still just NYI at this moment
lizmat nine: ^^ suggestions for improvements ? 20:54
nine Instead of the shortname method you could just use self.name.canonicalize 21:07
Geth rakudo/main: 8b9fb402b9 | (Stefan Seifert)++ | src/Raku/ast/variable-declaration.rakumod
RakuAST: Fix attribute accessor putting a non-statement into statement list

Need to wrap the RakuAST::Var::Lexical in a RakuAST::Statement::Expression
rakudo/main: 2279a0aed7 | (Stefan Seifert)++ | 3 files
RakuAST: implement tracing execution (use trace)
nine 88 passing test and 601 passing spectest files 21:09
japhb lizmat++ nine++ 21:23
21:33 ab5tract left 21:34 ab5tract joined 21:47 sena_kun left 21:48 sena_kun joined 21:52 Kaipei left, Kaipei joined 22:21 ab5tract left 22:26 sena_kun left