🦋 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.
[Coke] jdv: I think it was much smoother, yes 01:28
02:23 guifa left
jdv [Coke]: coolio 03:52
04:50 guifa joined 05:54 dev2 joined
dev2 happer Easter 05:55
05:57 guifa left
dev2 as I understand, the grammar parser is implemented using continuations, so if you want to backtrack from the method EXPR(), is there a special method to call on the self object? 05:57
07:23 bartolin left 07:35 finanalyst joined
nine dev2: you know, looking through git log, you might be right about the history. The parsing behavior was indeed there before that message 08:00
dev2 music to my ears :P 08:08
in Perl6/Grammar.nqp, in token infix:sym<?? !!> EXPR is called with <EXPR('i=')> 08:10
I wonder why someone felt the need to put a precedence limit here. It's useful when we want to parse lists or argument list using the recursive descent parser, 08:13
for handling things like trailing commas, but in the ternary it's gratuitous, unless the point is to make Raku behaves like Perl, for no real good reason. 08:14
nine When faced with such questions, I often just change the code, build and run spectests and see what breaks. That usually gives me the answer :) 08:27
dev2 logging off. i'm going to try later to remove 'i=' and hope it works.. 09:20
09:20 dev2 left 09:27 finanalyst left
patrickb I have just uploaded the compiled release files for 2025.04. 10:08
10:13 finanalyst joined 11:02 JimmyZhuo joined 11:18 finanalyst left 11:20 JimmyZhuo left
ab5tract "unless the point is to make Raku behaves like Perl, for no real good reason." -- There's a few corners of Raku where this is indeed the reason for things being as they are 11:29
11:38 finanalyst joined
ab5tract dev2: at first glance this does seem to work as expected. There are some 6 spectest files failing though 11:53
tellable6 ab5tract, I'll pass your message to dev2
ab5tract wait... four of those files are marked failures because of TODOs passing :) 11:55
anyway, not sure what is going on with most of those, as they appear unrelated 12:06
one side effect of going with this approach is that now adverbs can be used in the ternary's sub-expressions without issue or parentheses 12:07
which is what 2 out of 3 tests in `t/spec/S03-operators/ternary.t`were checking for (that adverbs would explode) 12:09
ab5tract switches over to poking at RakuAST tickets 12:16
nine: regarding R#5853, is the solution to just add a $_ in the outermost scope of the QAST "preamble" (not sure what we call that) 12:20
linkable6 R#5853 [open]: github.com/rakudo/rakudo/issues/5853 [RAKUDO_RAKUAST=1] EVAL in a constant stumbling over missing outer $_
13:16 dev2 joined
dev2 ab5tract: that's a bit unfortunate... outside of ternary.t, what specs are failing? 13:23
tellable6 2025-04-20T11:53:48Z #raku-dev <ab5tract> dev2: at first glance this does seem to work as expected. There are some 6 spectest files failing though
dev2 here comes that sauce
I made the change <EXPR('i=')> to <EXPR> in Perl6/Grammar.nqp and Raku/Grammar.nqp, Idk which one is actually runs. make test didn't report any error. I ran specifically t/spec/S03-operators/ternary.t and got 3 errors. All of them are bullshit tests.
the 1st one is directly verifying that you can't put a low precedence operator in the ternary. the 2nd and 3rd verify the same thing but with an adverb
RT66840 (comment on 1st failing test) contains a little discussion about this ternary issue. the S03 spec is mentioned and the spec itself says that you can't put a low precedence in the ternary. But this statement is bullshit It only means that someone did his homework, did precedence tests, found this edge case, had 0 critical thoughts and perpetrated Perl5's mistake. mindless parrotting.
in the issue thread some dude agrees that it's stupid and that the middle of the ternary should be treated like parentheses, but he says that the only way to make this happen is to give the lowest precedence to that ternary. he's wrong about this, you don't need to change the precedence to parse it correctly 13:24
ab5tract the other relevant failures are in S03-operators/precedence.t 13:25
Haven't looked closely
I personally agree with making this change, but I find your assessment of the history of this behavior is unnecessarily uncharitable 13:26
"Keeping the same behavior as Perl 5" doesn't equal braindead parroting 13:27
Keep in mind also that what Raku can do now is often a great deal more than what it could do historically, depending on how far back in the timeline we go 13:30
13:43 guifa joined 13:55 finanalyst left
dev2 well, ummm.. You are entirely right I am. The thing is programming language matters *immensely* and I'm absolutely sick of seeing bad decisions everywhere that affect so much, and that must not be improved. I mean, I knew that I sounded like an asshole, but if we're not honnest, self-censore ourselves and don't try to improve things, what's the point... 14:08
*programming languageS in general 14:09
ab5tract I'm pretty sure everyone so far has been on board with exploring changing the handling of ternaries, so at least the "must not be improved" isn't happening here 14:15
I agree with what you've said, except: being polite and communicating with minimal aggression don't count as self-censorship in my book. 14:17
I'm not innocent when it comes to this either, mind you. 14:18
nine: Where does the RakuAST bootstrap get, erm, strapped? 14:45
dev2 nice to hear it, raku is supposed to take extreme care in its operators... 15:05
15:23 guifa left
jdv patrickb: thanks 15:35
15:41 dev2 left 16:13 [Coke] left 16:53 finanalyst joined 17:55 finanalyst left 18:08 [Coke] joined
[Coke] I assume we don't need a point release of all three, just for MoarVM? 18:13
If we need to rollback mimalloc, I created a 2025.04.1 branch for that in MoarVM 18:20
timo oh shit what's wrong with mimalloc? 18:30
i see it now 18:31
we don't have to rollback mimalloc, since we're distributing a copy of it ourselves anyway, we can patch it to resolve the build issue and still have a newer mimalloc 18:53
[Coke] ok. 18:59
if you do so on main I can cherry pick 19:00
timo submodules make it a little trickier of course 19:04
oh we don't have a fork of our own, huh. 19:05
[Coke] (or on the branch is fine) 19:10
timo we would first have to push a new repository onto github for this if we wanted to just "add" a change 19:11
i don't seem to have the permissions to fork mimalloc into the moarvm org, but it doesn't have to be under moarvm/ technically, it could go under raku as well 19:12
how does that sound to you? maybe just for the release ... 19:15
20:11 guifa joined
timo it's always annoying to switch forks in a submodule, but i think Configure.pl makes sure the submodules are synced, so let's hope it's not so bad 20:27
i'll do all this in a branch of course
[Coke] thanks 20:32
timo there may be a viable commit that we can just take from the original repo, it's just in the dev branch and not main 20:39
20:39 finanalyst joined 20:42 guifa left
timo this submodule is feeling super weird 20:45
oh, was it the rename of the master branch to main that did something odd?
20:45 guifa joined
timo [Coke]: there's a branch in moarvm's repo that should fix the issue 20:59
nine ab5tract: what do you mean with RakuAST bootstrap? 21:00
ab5tract > This comes from trying to find the outer scope's $_ which doesn't exist in the RakuAST code in the bootstrap:
nine Ah. The RakuAST code lives in the bootstrap 21:01
ab5tract ahhh 21:02
nine See gen/moar/BOOTSTRAP/v6c.nqp
ab5tract right, got it
nine The bad news is that I have already tried the simple thing of just adding a my $_; to the method that calls EVAL. That was after all less work than writing an issue 21:03
[Coke] timo: thanks. will do the (moarvm only) point release by EOD 21:05
timo a user who is hit by that bug could also compile their moarvm with --has-mimalloc and use a system-provided one, of course
but as i mention in the commit message, as more distros go past the version of the linux headers that have this change, they will also become unable to compile this verson of moarvm without that flag 21:06
not sure if the version of mimalloc we had before just didn't use prctl.h at all?
21:32 finanalyst left
[Coke] I'll hold off until el_che confirms this fixes their issue 23:31