Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes.
Set by lizmat on 24 May 2021.
00:06 reportable6 left 00:09 reportable6 joined 01:09 committable6 left, reportable6 left, bloatable6 left, statisfiable6 left, nativecallable6 left, notable6 left, unicodable6 left, bisectable6 left, benchable6 left, greppable6 left, quotable6 left, linkable6 left, releasable6 left, coverable6 left, tellable6 left, sourceable6 left, shareable6 left, evalable6 left, notable6 joined, bisectable6 joined, statisfiable6 joined 01:10 sourceable6 joined, quotable6 joined, evalable6 joined, tellable6 joined, greppable6 joined, reportable6 joined, nativecallable6 joined 01:11 bloatable6 joined, benchable6 joined, unicodable6 joined 01:12 shareable6 joined, coverable6 joined, linkable6 joined, releasable6 joined, committable6 joined 02:07 frost joined 03:07 bisectable6 left, tellable6 left, nativecallable6 left, shareable6 left, coverable6 left, linkable6 left, sourceable6 left, quotable6 left, unicodable6 left, notable6 left, bloatable6 left, benchable6 left, greppable6 left, evalable6 left, statisfiable6 left, reportable6 left, committable6 left, releasable6 left, bisectable6 joined, unicodable6 joined, reportable6 joined 03:08 quotable6 joined, tellable6 joined, sourceable6 joined, shareable6 joined, evalable6 joined, benchable6 joined, greppable6 joined, committable6 joined, nativecallable6 joined, linkable6 joined 03:09 statisfiable6 joined, notable6 joined, coverable6 joined 03:10 releasable6 joined, bloatable6 joined 04:10 unicodable6 left, coverable6 left, committable6 left, quotable6 left, linkable6 left, benchable6 left, greppable6 left, bloatable6 left, shareable6 left, evalable6 left, nativecallable6 left, sourceable6 left, releasable6 left, statisfiable6 left, reportable6 left, tellable6 left, notable6 left, bisectable6 left, evalable6 joined, bloatable6 joined, unicodable6 joined, coverable6 joined, quotable6 joined 04:11 bisectable6 joined, sourceable6 joined, nativecallable6 joined 04:12 benchable6 joined, tellable6 joined, statisfiable6 joined 04:13 releasable6 joined, greppable6 joined, linkable6 joined, shareable6 joined, reportable6 joined, committable6 joined, notable6 joined 05:13 linkable6 left, evalable6 left 05:14 linkable6 joined 05:15 evalable6 joined 06:07 reportable6 left 06:08 reportable6 joined
timo good good, good 07:42
lizmat indeedy indeedy indeedy ! 07:49
08:04 evalable6 left, linkable6 left 08:05 evalable6 joined 08:06 linkable6 joined 08:07 sena_kun joined 09:29 sena_kun left 09:30 linkable6 left 09:31 linkable6 joined 09:37 sena_kun joined, sena_kun left 10:15 linkable6 left 10:16 linkable6 joined
lizmat m: sub a(*%_) { if %_<a> -> $a { %_ } } # why is this a compilation error ? 11:31
camelia ===SORRY!=== Error while compiling <tmp>
Placeholder variable '%_' cannot override existing signature
at <tmp>:1
------> sub a(*%_) { if %_<a> ⏏-> $a { %_ } } # why is this a compilat
jnthn %_ and @_ imply placeholder signatures 11:55
m: sub a($b) { $^b } # same as this
camelia ===SORRY!=== Error while compiling <tmp>
Redeclaration of symbol '$^b' as a placeholder parameter.
at <tmp>:1
------> sub a($b) { $^b⏏ } # same as this
jnthn m: sub a($b) { $^c } # same as this
camelia ===SORRY!=== Error while compiling <tmp>
Placeholder variable '$^c' cannot override existing signature
at <tmp>:1
------> sub⏏ a($b) { $^c } # same as this
jnthn m: sub a { if %_<a> -> $a { %_ } }; say a a => 'a' 11:56
camelia ===SORRY!=== Error while compiling <tmp>
Placeholder variable '%_' cannot override existing signature
at <tmp>:1
------> sub a { if %_<a> ⏏-> $a { %_ } }; say a a => 'a'
lizmat so even if there's an outer scope %_ ?
jnthn m: sub a { if %_<a> -> $a { say $a } }; a a => 'a' 11:57
camelia a
jnthn Placeholder signatures attach to the enclosing block, and the if's block counts
lizmat m: sub a(*%_) { if %_<a> { %_ } } 11:58
camelia ( no output )
lizmat m: sub a(*%_) { if %_<a> { %_ } } ; a a => 42
camelia ( no output )
lizmat m: sub a(*%_) { if %_<a> { dd %_ } } ; a a => 42
camelia {:a(42)}
lizmat but now it doesn't ? 11:59
now it does see the outer %_ ?
jnthn Curious. No idea. :)
I'm guessing the explicit signature on the `if` is something to do with it 12:00
Also curious if RakuAST's behavior differs here
lizmat shall I make an issue for this discrepancy so that we can fix this with RakuAST ? 12:01
jnthn Well, that assumes we can decide what he semantics should be... :) 12:03
But yeah, it's a bit inconsistent
lizmat I mean. if you declare a signature on the block, and the %_ is still visible in there, there shouldn't be an inconsistency ? 12:04
12:07 reportable6 left 12:08 reportable6 joined
jnthn m: if 42 { say $^a } 12:44
camelia 42
jnthn In that case the placeholder attaches to the enclosing block 12:45
13:19 frost left
lizmat yeah, but this was about providing a signature: 13:40
m: sub a(*%_) { if 42 -> $a { %_ } }
camelia ===SORRY!=== Error while compiling <tmp>
Placeholder variable '%_' cannot override existing signature
at <tmp>:1
------> sub a(*%_) { if 42 ⏏-> $a { %_ } }
lizmat feels to me that when the %_ is encountered, and it sees that there is a signature on the block, that it should see if there's a %_ lexically visible before throwing ? 13:41
jnthn That'd be inconsistent with other placeholder vars, though, which don't do such magic 14:07
lizmat m: { $^a; -> $b { say $a }(666) }(42) # I guess that'd be a reason you can also refer to $^a as $a ? 14:15
camelia 42
jnthn Yeah, $^a declares $a in the signature of the enclosing block 14:24
The ^ is like "declare it up there" :P 14:25
14:31 evalable6 left 14:34 evalable6 joined
timo do we already use rakuast-based optimizer code in the rakuast branches of nqp and raku? 15:37
rakudo*
nine no
timo i seem to recall that rakuast should let us inline blocks in more cases 15:40
17:38 linkable6 left, evalable6 left, linkable6 joined 17:41 evalable6 joined 17:51 sena_kun joined 18:07 reportable6 left 18:09 reportable6 joined 19:50 nine left, nine joined 20:09 sena_kun left 20:10 sena_kun joined 21:39 sena_kun left 22:51 discord-raku-bot left, discord-raku-bot joined 22:55 discord-raku-bot left, discord-raku-bot joined 23:00 discord-raku-bot left, discord-raku-bot joined 23:04 discord-raku-bot left, discord-raku-bot joined