🦋 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:21 MasterDuke joined 01:29 nine left 01:30 nine joined
nine Well I do try to avoid Pareto by fixing tests indiscriminately, i.e. I have never looked for low hanging fruit and instead go throug them in alphabetic order. Thus the remaining ones should be about as hard as the past ones. 05:25
05:29 sjn left 05:34 sjn joined 06:29 MasterDuke left
ab5tract I hadn’t thought of Pareto as something that could be influenced in that way, though it makes sense because I’ve seen plenty of people try to get away with gaining 80% of Outcome from 20% of Input 07:34
Regardless, it’s really great to see RakuAST in momentum mode again :) 07:36
07:48 Geth joined, lizmat_ left, lizmat joined
Geth nqp/main: 70db49669a | (Elizabeth Mattijsen)++ | tools/templates/MOAR_REVISION
Bump MoarVM for faster hashification of in situ strings

  MasterDuke++
10:23
rakudo/main: 1cfdd167e4 | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION
Bump NQP for faster hashification of in situ strings

  MasterDuke++
10:35
nine Huh....the deparse stuff has become a lot more complicated 10:59
lizmat nine: working on that now, no worries, focus on other things 11:10
I'm taking care of the test failures atm
sorry, I thought you'd taken last night's hint :-)
nine: re interface, perhaps the use of these classes should be more hidden 11:17
aka: :dispatch<safe>, :dispatch<all>, :dispatch<any> 11:19
?
nine Maybe. Originally I thought they would contain more logic 11:20
lizmat ok, if I rewrite that part to such and interface? 11:21
also: would these classes need to be instantiated at all ?
nine Probably not. It just makes it easier to detect whether a special dispatch is selected 11:22
lizmat instantiating it ? 11:23
ah you mean, compared to the default dispatch 11:24
nine yes
lizmat hmmm... an nqp::eqaddr($dispatch,RakuAST::MethodDispatch) instead of an nqp::isconcrete() ? 11:28
nine: also feels to me the $!dispatch attribute and dispatch accepting logic should be moved to Methodish role 11:46
nine Not all Methodish classes support non-standard dispatch 11:47
lizmat ah, yes, so a separate role then
nine Is it worth that? 11:51
lizmat for maintainability, I'd say yes 11:56
nine: OOC, with a DOTTY of .&, how can a VarMethod be anything but MethodDispatch (aka how can it not be the default?) 12:26
nine Well it can be .+&foo 12:33
VarMethod also covers .$foo
lizmat hmmm then it feels we have a logic issue on Actions::methodop 12:37
because we check for DOTTY .? .+ .* first to set $dispatch 12:38
and then later we test for .& for VarMethod
ok, I'll figure that out... after some lunch 12:39
nine huh
lizmat well, in case of a longname 12:40
nine I wish the whole translation stuff were implemented less invasively. It makes the grammar, which is already a dense piece of code even less readable 12:50
12:58 finanalyst joined
lizmat nine: I'm open to suggestions 12:59
nine Maybe as subclass or via delegation 13:00
The highlight stuff looks like a great case for meta programming. After all, you just need to wrap the generated strings in color codes, i.e. wrap those methods 13:02
lizmat fwiw, highlighting goes a little further than just colors 13:10
I also see use for it for tooltip highlights, as well as colors
nine: re subclassing, localization are already subclasses through mixins to a large extent? 13:11
nine But does it have to be baked into the original implementation in a language as powerful as Raku? 13:12
lizmat sadly, it's still NQP at that point
nine Still there's obscure stuff like if $op<colonpair> -> $cp { my $ast := $cp.ast; $ast.set-key($op.adverb-pc2str($ast.key)); } which I guess is about translations 13:13
lizmat # Convert the given postcircumfix adverb if there is an original name
# for it. Otherwise it should just return the adverb unchanged.
nine Again, I can only guess that "original name" means that it's about translation 13:14
lizmat so is the issue with the naming of these methods ? 13:15
nine Not just. It's about the added mental load
Like having to look up <.meta-S> just to find out it's just 'S 13:16
lizmat well, that example is from EXPR-reduce, which already takes quite a mental load by itself
nine Exactly! It's not like it really needs any more complication to make it interesting.
Trying to make 3 zin 4 :x(5) call infix:<zin>(3, 4, :x(5)) is hard enough without the added distraction 13:18
lizmat so you'd rather we subclass EXPR-reduce for each localisation ?
I see no other way than that to get rid of the $op.adverb-pc2str(...) 13:20
finanalyst lizmat / nine: good afternoon
nine Or maybe leave EXPR-reduce alone altoghether and instead translate colonpairs in the generated AST as a parse-effect 13:21
finanalyst: good afternoon!
finanalyst sorry about making highlighting a problem
lizmat finanalyst: it's not just about highlighting, but localization in general 13:22
finanalyst OK.
interesting thing though is that highlighting needs to be fault tolerant in some way 13:23
lizmat nine: but in EXPR-reduce, the $op.adverb-pc2str() is the only localization specific thing in there ?
or am I missing something ?
nine may well be 13:24
lizmat nine: looks like "my $a; Int.?$a" codegens to a ::Call::BlockMethod, shouldn't that need to be a ::Call::VarMethod ? 13:31
same for Int.?&a and Int.?&a::b 13:33
nine Yes I think so
Surprising thing is that it works anyway 13:34
But I guess Var::Lexical's IMPL-EXPR-QAST gives the same result as IMPL-LOOKUP-QAST and in both cases we go through dispatch:<var> 13:35
Good news is that I did manage to make that infix adverb thing work :) Though I guess I'll rewrite my solution. Noticed that a slightly different variant already exists for prefix and postfix 13:45
lizmat real lunch& 13:48
14:34 finanalyst left 14:35 finanalyst joined 15:00 finanalyst left 15:47 finanalyst joined 15:55 eof left 15:56 summerisle joined 15:59 rba_ joined 16:00 rba left, rba_ is now known as rba 16:29 finanalyst left 17:19 sena_kun joined 17:53 finanalyst joined 21:48 sena_kun left 23:58 finanalyst left