🦋 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, reportable6 joined 00:09 vrurg_ joined 00:11 vrurg left 01:08 MasterDuke left 02:37 epony left 02:59 epony joined 05:25 sourceable6 left, squashable6 left, benchable6 left, unicodable6 left, tellable6 left, shareable6 left, evalable6 left, linkable6 left, coverable6 left, nativecallable6 left, statisfiable6 left, bloatable6 left, reportable6 left, notable6 left, quotable6 left, releasable6 left, greppable6 left, bisectable6 left, committable6 left, statisfiable6 joined, reportable6 joined, linkable6 joined 05:26 quotable6 joined, nativecallable6 joined, coverable6 joined, unicodable6 joined, tellable6 joined, bisectable6 joined, notable6 joined 05:27 releasable6 joined, committable6 joined, evalable6 joined, greppable6 joined, benchable6 joined, squashable6 joined, shareable6 joined 05:28 bloatable6 joined, sourceable6 joined 06:00 reportable6 left 06:02 reportable6 joined 06:58 epony left 07:24 epony joined
nine Nemokosch: no? 07:41
tellable6 nine, I'll pass your message to Nemokosch 07:42
nine MasterDuke: no?
tellable6 nine, I'll pass your message to MasterDuke
nine Nemokosch: disregard, ENOCOFFEE
tellable6 nine, I'll pass your message to Nemokosch
nine MasterDuke: you are looking for the wrong name. Should be '&one', not 'one'. But you don't have to do that for the called name as it's going to be handled in method resolve-with already. self.resolution gives you the result of that. 07:48
tellable6 nine, I'll pass your message to MasterDuke
08:38 sena_kun joined
nine lizmat: looks like the phaser handling code has a fatal flaw: it doesn't take phasers added via traits (like is-DEPRECATED) into account. 08:47
09:00 normietotechie[m left
lizmat hmmm 09:16
actually, feels to me we don't actually need a phaser for that in the RakuAST world? 09:17
the QAST handling of the code could just codegen the call to &DEPRECATED into the QAST directly? 09:18
nine What about other traits that add ENTER phasers? 09:21
FWIW I retract the "fatal". I think we just need to extend it to add calls to phasers added this way. Might only be a bit difficult to distinguish them from the ones created via RakuASt. 09:22
lizmat am currently deep into the declarator doc business... will look into it after that 09:23
nine might beat you to it
lizmat that would be fine :-) 09:24
nine Oh....a more severe flaw in the ENTER phaser specifically is that it's not thread safe. The Scalar for the result is shared between all callers. 09:36
The trick with writing the result into a Scalar works for INIT because that's guaranteed to only run once. ENTER needs to write its result into a local variable. 09:38
lizmat hmmm ... I recall just having copied qast from the legacy grammar... wouldn't be surprised that would be an issue in the legacy grammar as well ? 09:41
nine No, that creates a local: $enclosing.unique('enter_result_'); 09:45
nine@sphinx:~/rakudo (main *=)> RAKUDO_RAKUAST=1 ./rakudo-m -e 'my $bag = await((^1000).map({start { ENTER { $_ } }})); say $bag.Bag' 09:48
Bag(999(1000))
Bag(0 1 10 100 101 102 103 104 105 106 107 108 109 11 110 111 112 113 114 115 116 117 118 119 12 120 121 122 123 124 125 126 127 128 ...
nine@sphinx:~/rakudo (main *=)> RAKUDO_RAKUAS=1 ./rakudo-m -e 'my $bag = await((^1000).map({start { ENTER { $_ } }})); say $bag.Bag'
But first, groceries and breakfast... 09:49
lizmat hmmm.. I wonder whether the check for existence of private methods shouldn't be a CHECK time thing in RakuAST, rather than an optimizer thing 10:40
something to run on compose of a class? 10:41
nine definitely CHECK time 10:55
11:28 squashable6 left 11:29 squashable6 joined 12:00 reportable6 left 12:01 reportable6 joined 12:02 reportable6 left, reportable6 joined 13:11 Xliff joined
Geth rakudo/main: 283eb48471 | (Stefan Seifert)++ | 3 files
RakuAST: support need statements
13:11
rakudo/main: 4682d2ed66 | (Stefan Seifert)++ | 2 files
RakuAST: make ENTER phaser results thread safe

We must not share the Scalar the result of an ENTER phaser gets stored in between callers. Creating a Scalar at compile time works for INIT phasers because they are guaranteed to only run once in the life time of a program. ENTER can be called multiple times and in parallel, so we need to store the result in a local variable instead.
rakudo/main: 45dd84f664 | (Stefan Seifert)++ | src/Raku/ast/code.rakumod
RakuAST: support ENTER phasers added by traits

The DEPRECATED adds an ENTER phaser via meta methods. This phaser is not part of the source code but purely a runtime object. We need to generate calling code for these as well.
13:29 Xliff left 16:07 Util joined 17:32 MasterDuke joined
MasterDuke . 17:33
tellable6 2023-04-08T07:42:10Z #raku-dev <nine> MasterDuke: no?
hey MasterDuke, you have a message: gist.github.com/0c272ba3924ba46db6...49d5d75129
MasterDuke heh. the error message this work was about even suggests `&one`. i've made that mistake before, and never seem to learn from it... 17:37
18:00 reportable6 left 18:02 reportable6 joined 18:56 sena_kun left, sena_kun joined 19:24 ab5tract joined 19:30 ab5tract left 21:26 squashable6 left 21:27 squashable6 joined 21:29 sena_kun left 22:19 epony left 23:24 shareable6 left, squashable6 left, statisfiable6 left, committable6 left, quotable6 left, unicodable6 left, sourceable6 left, benchable6 left, notable6 left, bisectable6 left, greppable6 left, releasable6 left, reportable6 left, tellable6 left, linkable6 left, coverable6 left, nativecallable6 left, evalable6 left 23:25 evalable6 joined, releasable6 joined, shareable6 joined, tellable6 joined 23:26 statisfiable6 joined, benchable6 joined, quotable6 joined, nativecallable6 joined, notable6 joined, sourceable6 joined, coverable6 joined, linkable6 joined 23:27 greppable6 joined, committable6 joined, bisectable6 joined, unicodable6 joined, squashable6 joined, reportable6 joined