🦋 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
MasterDuke vrurg: not sure what you mean? we're not supposed to be using both nqp and rakudo on the branch named 'main' yet? 02:56
vrurg MasterDuke: did you always use NQP from the tip of master branch? About the same situation here. 02:57
I'm currently working on better errors for Rakudo and it includes fixed Backtrace.
MasterDuke yeah, i have all three repos checked out separately configured with a common --prefix and i usually keep them all at HEAD 03:17
vrurg Unfortunately, it doesn't guarantee their compatibility, apparently. 03:52
MasterDuke in unrelated news, i have my convert-list-assignment-into-list-of-assignments branch passing a spectest (not counting the current fails related to backtraces) 04:02
it's not pretty. but `my $a; my $b; my $c; ($a, $b) = ($_, $_) for ^1_000_000; say "$a $b";` now takes ~0.25s instead of ~1.6s 04:04
Geth rakudo: MasterDuke17++ created pull request #5128:
Try to convert `($a, $b) = ($c, $d)` into `$a = $c; $b = $d`
rakudo: vrurg++ created pull request #5129:
Make use of line directive information for compile time errors
vrurg MasterDuke: +++ !!! 04:35
05:33 epony left 06:00 reportable6 left 06:01 reportable6 joined 07:17 epony joined 07:44 sena_kun joined
patrickb ugexe: re rakubrew and mail, 10:40
*main, I suspect it will be a problem. I'll probably manage to look at this in the evening. 10:42
10:46 evalable6 left 10:49 evalable6 joined
lizmat I assume we want RakuAST to be a 6.e thing only, right? and then only with "use experimental :rakuast", right ? 11:39
nine vrurg 11:54
12:00 reportable6 left, reportable6 joined 13:11 |Tux| left
ugexe patrickb++ 13:13
13:19 |Tux| joined, Tux__ joined 13:23 Tux__ left
vrurg lizmat: neither I think this is really possible, nor it makes sense when we switch to it completely. How could be block RakuAST in 6.c if the version going to be implemented in it? 14:12
*could we 14:13
[Coke] (ast 6.e) that seems very reasonable to me. 15:21
(the ask, not the implementation :)
15:25 squashable6 left 15:26 squashable6 joined
vrurg [Coke]: ?? 15:50
What does (ast 6.e) means?
leont <lizmat> I assume we want RakuAST to be a 6.e thing only, right? 15:55
Nemokosch it all boils down to "when we switch to it completely" doesn't it 15:58
16:01 discord-raku-bot left, discord-raku-bot joined 16:42 Kaiepi left
[Coke] vrurg: was referring to lizmat's ask about ast in 6.e 16:44
17:01 Kaiepi joined 17:45 lizmat left 17:47 lizmat joined 18:00 reportable6 left 18:01 reportable6 joined 18:22 sena_kun left 18:23 sena_kun joined 19:20 discord-raku-bot left, discord-raku-bot joined
lizmat notable6: weekly 19:38
notable6 lizmat, 2 notes: 2022-12-05T21:05:10Z <El_Che>: rakudo-pkg releases for 2022.12 + added packages for newly released alpine 3.17 ; 2022-12-07T13:59:44Z <lizmat>: twitter.com/jnthnwrthngtn/status/1...8722257920
lizmat notable6: weekly reset 19:46
notable6 lizmat, Moved existing notes to “weekly_2022-12-12T19:46:18Z”
19:53 Nemokosch joined
Nemokosch bisectable6: enum BooleanEnum (:!Lies, :Truth); say False ~~ BooleanEnum; 19:54
bisectable6 Nemokosch, Will bisect the whole range automagically because no endpoints were provided, hang tight
19:54 Nemokosch left
bisectable6 Nemokosch, Output on all releases: gist.github.com/f0e879eb4cfc6ce67c...144a1b1c41 19:54
Nemokosch, Bisecting by output (old=2021.12 new=2022.02) because on both starting points the exit code is 0
Nemokosch, bisect log: gist.github.com/4c74467d315f8fd21f...7a0f9f1cf6 19:55
Nemokosch, (2021-12-27) github.com/rakudo/rakudo/commit/9f...decd5dcc79
Nemokosch, Output on all releases and bisected commits: gist.github.com/7759c03d6978abeff0...dc3d152927
20:21 discord-raku-bot left, discord-raku-bot joined 20:26 sena_kun left 20:27 sena_kun joined 20:30 discord-raku-bot left, discord-raku-bot joined
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2022/12/12/2022-50-mainified/ 20:32
20:39 discord-raku-bot left, discord-raku-bot joined
bartolin lizmat++ 20:57
patrickb ugexe: I have just uploaded rakubrew v31 accounting for the master -> main rename. Previous rakubrew versions continue to work for the most part, as rakubrew rarely accesses the master / main branch. `rakubrew self-upgrade` is what one can do to upgrade an installation. 21:06
lizmat patrickb
Nemokosch 🎉 21:08
bartolin does anyone know about the impact of rakuast on the jvm backend? if I'm not mistaken the jvm backend doesn't compile anymore since we switched to main (fka rakuast). Currently it complains about the unknown nqp::const::DISP_ONLYSTAR -- e.g. dev.azure.com/Rakudo/rakudo/_build...810221fdff 21:12
but if I add that constant a new failure mode comes up: "Operation 'dispatch' requires 4 operands". Is this expected at this point? I've seen, that there are various conditionals '#if moar' around the RakuAST things in src/Perl6/bootstrap.c/BOOTSTRAP.nqp. That somehow looks like the jvm backup *should* still work. 21:16
lizmat vrurg nine might know, but nine is on holiday 21:17
bartolin in the longer run, the jvm backend probably needs to learn some of the new things as well (if it want's to live on). I'd be curious if there is a kind of "high level" assessment what needs to be implemented. 21:18
lizmat the thing is: afaik, RakuAST is just bullt on NQP and doesn't need any specific backend things
maybe that assumption is wrong :-( 21:19
bartolin maybe it's only this one call to nqp::dispatch that doesn't work on the jvm backend: github.com/rakudo/rakudo/blob/b0f9...kumod#L223 21:22
Geth rakudo/lizmat-experimental-rakuast: f184794078 | (Elizabeth Mattijsen)++ | 3 files
Implement "use experimental :rakuast"

This pretty hacky approach fetches the RakuAST type object at the end of the core.c compilation, and stashes that with bindcurhllsym. It then replaces the CORE::<RakuAST> entry with Nil, causing all lookups for RakuAST classes to fail from thereon.
... (5 more lines)
rakudo: lizmat++ created pull request #5131:
Implement `use experimental :rakuast`
vrurg lizmat: You're right. There is one reference to a dispatcher which currently breaks JVM, but that's just a matter of implementing alternate QAST for JVM. 21:30
bartolin vrurg++ 21:31
vrurg And, again, I'm not sure what's the reason of blocking access to RakuAST types in 6.c. New macros are a different story, yes.
lizmat the pull request also allows it in 6.c
it was the simplest way 21:32
vrurg lizmat: am I missing something? `raku -e 'use v6.c; say RakuAST::CompUnit.WHICH'` on main - RakuAST::CompUnit|U3077766583360 21:35
RakuAST types are part of 6.c bootstrap.
lizmat it's a PR, did you build it ? 21:36
% r 'use v6.c; say RakuAST::CompUnit.WHICH'
Could not find symbol '&CompUnit' in 'Nil'
Geth rakudo/lizmat-experimental-rakuast: d68c80e57f | (Elizabeth Mattijsen)++ | 3 files
Add some comments on when to remove the code
vrurg lizmat: Ah, trying to do a couple of things at once makes me slow... You just block it _without_ experimental. Well, it could be done differently, within the BOOTSTRAP. It could optionally install an entry into EXPORT. 21:40
lizmat if this gives you inspiration for a better solution, I'm all for it :-) 21:41
vrurg Not sure I could do it the coming two days.
lizmat jnthn's requirement was that users shouldn't be able to use RakuAST functionality unless it was specifically enabled
ok, would you mind if I merged it now, so that we at least have the API working ? 21:42
vrurg Better not or otherwise I would be reluctant to get it done properly. ;)
lizmat well, it's temporary anyway 21:43
I want to be able to write a blog post about RakuAST's features now, and tell about "use experimental :rakuast"
vrurg lizmat: Actually, there is even better way, than I initially thought. That EXPORT::DEFAULT.WHO<RakuAST> := RakuAST; must be replaced with bindhllsym. The `experimental` module can then export the symbol by fetching it with gethllsym. 21:45
Much less hackery.
lizmat that's what the experimental module already does
I think it's the same idea, just that the bindcurhllsym is different 21:46
vrurg Why the Nil binding then?
lizmat to disable it
to disable lookups of any of the "sub"classes of RakuAST
hmmm 21:47
which line in the bootstrap are you talking abour?
vrurg That's what I meant by removing the EXPORT::DEFAULT from bootstrap. 21:48
lizmat looks
vrurg I think it is generated by RakuAST compiler.
Yes, tools/build/raku-ast-compiler.nqp
Line 322. 21:49
Just deleting it would be sufficient to disable by default.
lizmat oki
vrurg is on the phone at the same time, so better not edit anything. :)
lizmat meh, that breaks core.c compilation of RakuAST::Deparse 21:56
vrurg lizmat: I'm sure it is fixable. 21:57
lizmat well, I guess I need to sleep on that :-) 22:01
vrurg lizmat: last note: RakuAST::Deparse must not be available either then. Perhaps it should live in lib/ for a while and be part of `use experimental` export? 22:08
lizmat vrurg: with my approach: 23:16
% r 'dd RakuAST::Deparse'
Could not find symbol '&Deparse' in 'Nil'
% r 'use experimental :rakuast; dd RakuAST::Deparse'
vrurg lizmat: BTW, rather confusing error message. 23:17
23:33 sena_kun left