🦋 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.
07:48 sena_kun joined
Geth rakudo/main: 69a335640e | (Elizabeth Mattijsen)++ | 3 files
Add Compiler.flavor

  github.com/rakudo/rakudo/commit/f253d68b85 added support
for #RAKUDO_FLAVOR# in source code that is being handled by the tools/build/gen-cat.nqp script.
This commit slightly tweaks that, by just returning the actual ... (7 more lines)
09:05
ab5tract lizmat: not to make more work for you, but maybe it’s a good idea to update the ticket/discussion so that notna and others involved know about how the new approach works 09:29
lizmat yeah, was about to, when NativeCall issue popped up
github.com/rakudo/rakudo/pull/5553...2095561756 09:34
ab5tract lizmat++ 09:53
lizmat greppable6: NativeCall::EXPORT 10:47
greppable6 lizmat, 2 lines, 1 module: gist.github.com/cafc301392a42028f0...9611ddfa8e
13:28 MasterDuke joined 13:54 MasterDuke left 13:58 MasterDuke joined
Geth ¦ rakudo: lizmat self-assigned Could not find symbol '&EXPORT' in 'NativeCall github.com/rakudo/rakudo/issues/5561 14:03
ab5tract m: with -> Int $ {} { *.signature ~~ :(Int) ?? say "yeah" !! say "no" } 14:32
camelia no
ab5tract it doesn't blow up here like it does in R#5175... but maybe that's not a good thing 14:34
linkable6 R#5175 [open]: github.com/rakudo/rakudo/issues/5175 [CORE.setting] where-clause in subset does not work with Block/Callable
ab5tract m: with -> Int $i { $i } { *.(5) == 5 ?? say "yeah" !! say "no" } 14:38
camelia No such method 'CALL-ME' for invocant of type 'Whatever'
in block <unit> at <tmp> line 1
ab5tract hmmm 14:39
nine: btw I think there might be some issues with the new .raku for WhateverCodes 14:56
m: Q| dd *.Int == 5 |.AST.EVAL
camelia ==
ab5tract m: Q| dd *.signature.raku |.AST.EVAL 14:57
camelia .raku
nine Could it be that the wrong origin is set on these expressions? 14:58
ab5tract most likely 15:01
I don't remember doing any origin tracking when building the whatvercode fortress 15:03
ah, tower is the word I was looking for, not fortress :)
m: dd (*.signature)(-> Int $ {})
camelia :(Int $)
ab5tract dd (*.signature ~~ :(Int))(-> Int $ {}) 15:04
m: dd (*.signature ~~ :(Int))(-> Int $ {})
camelia No such method 'CALL-ME' for invocant of type 'Bool'
in block <unit> at <tmp> line 1
ab5tract this is a weird one :(
I mean, the surface level failure is totally clear, but the failure to thunk is a totaly mystery 15:08
m: dd (*.Int ~~ 5)(5.5) # Did this ever work? 16:53
camelia No such method 'CALL-ME' for invocant of type 'Bool'
in block <unit> at <tmp> line 1
ab5tract bisectable6: (*.Int ~~ 5)(5.5) 16:54
bisectable6 ab5tract, Will bisect the whole range automagically because no endpoints were provided, hang tight
ab5tract, Output on all releases: gist.github.com/1d570e620450180c42...4c16163c1f
ab5tract, Bisecting by output (old=2017.05 new=2017.06) because on both starting points the exit code is 1 16:55
ab5tract, bisect log: gist.github.com/63e9ff50b7f04a6375...3953f80f03
ab5tract, (2017-05-27) github.com/rakudo/rakudo/commit/06...f7346a7e5a
ab5tract, Bisecting by output (old=2016.05 new=2016.06) because on both starting points the exit code is 1
ab5tract, bisect log: gist.github.com/356e95a8e2233258b2...a6f8315dc1
ab5tract, (2016-06-09) github.com/rakudo/rakudo/commit/b6...430078bc7d
ab5tract, Output on all releases and bisected commits: gist.github.com/faaee76c5158dbfbb2...1511f32223
ab5tract wishes one could have private conversations with bisectable6 16:56
ok, that's really interesting.. I could have sworn that the thunking would expand and include the infix operator here. 17:00
question is: should I work on making it do so? or should I work on catching this syntax so that it doesn't produces something incomprehensible when used in a subset clause? 17:01
(currently it produces `Can only use dispatcher-track-attr on a P6opaque`) 17:02
s/thunking/"currying"/ 17:03
lizmat notable6: weekly 17:05
notable6 lizmat, No notes for “weekly”
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2024/05/06/2024-...nstrained/ 17:37
Geth rakudo/main: 335a0b0cee | (Elizabeth Mattijsen)++ | lib/NativeCall.rakumod
Export subs from within NativeCall module

Commit 894075587d5d8 moved many exportable subs out of the NativeCall package. But apparently, some modules in the ecosystem (NativeLibs directly, and DBIish indirectly) depend on that (apparently) untested behaviour.
... (7 more lines)
18:35
19:35 MasterDuke left 20:08 MasterDuke joined 20:10 MasterDuke left
ab5tract wait, why does `(*.Int ~~ 5)(5.5)` *not* work, but `[<h e r e>].grep( *.uc eq "E" )` _does_? 20:27
ah, duh... `~~` only curries `Whatever` ... 20:30
nine, lizmat: do either of you remember why that is the case? 20:31
gfldex ab5tract: Sounds like an oversight to me. This would be the only case where a { .foo } is not equivalent to *.foo . 20:46
ab5tract It's not an oversight inasmuch as the internals explicitly mark `~~` as only currying `Whatever` 20:47
∘ and o have the same exception 20:48
gfldex What could very well be an mere workaround to get v6.c out of the door.
ab5tract Maybe 20:50
the fact that make spectest isn't completing when changing it to curry both is not a hopeful sign, however
it also breaks 8 tests in make test 20:51
hopefully someone who remembers more details can chime in 20:52
it breaks *a lot* of spectest 20:53
nine Different infixes have different currying behavior
Currying Whatever vs. currying WhateverCode vs. both is clearly on purpose 20:54
NativeCall compiles again and with that we're at 116 make test files passing
ab5tract nine: nice work!
gfldex That's a fairly big ENODOC then. 20:55
ab5tract docs.raku.org/language/traps#Smart...ateverCode 20:56
gfldex I'm looking at docs.raku.org/type/Whatever#index-...r-currying 20:57
ab5tract looks like there is a 3rd option
gfldex Also, it is hardly surprising that loads of spectests explode when you change the semantics of ~~ . 20:59
ab5tract No, it isn't surprising.
It just definitively demonstrates that it is not an oversight 21:01
I think the best solution is to add a worry when `~~` has a WhateverCode on its LHS and to update the docs 21:07
but even adding that worry might be too heavy a change 21:08
gfldex Agreed, anthing else if the v6.f or later anyways.
s/if the/is for/
lizmat ab5tract: fwiw, this was decided before my active involvement, aafaik 21:24
ab5tract gotcha, thanks
the explanation on the language traps docs actually explains it pretty succinctly 21:25
gfldex: can I trouble you to take care of the docs? I'll get a PR for the worry together
gfldex ab5tract: I will file the ENODOC after the worry is in. I will need examples to make clear what the problem is. 21:29
21:32 MasterDuke joined
ab5tract as I've gotten from the traps doc explanation, the problem is: `*.method ~~ $thing` desugars to `$thing.ACCEPTS(*.method)` aka `$thing.ACCEPTS(WhateverCode)` (or Block, in the docs) 21:33
worry is working in RakuAST 21:39
Geth rakudo/r5175: 0d0ed1a411 | ab5tract++ | src/Raku/ast/expressions.rakumod
Add worry for WhateverCode on LHS of ~~
21:44
ab5tract man, I almost forgot how wonderful it is to hack in RakuAST :) 21:45
will add a custom exception type for this after getting some confirmation that this approach is agreeable 21:46
but for now: good night all o/
Geth ¦ problem-solving: bbkr assigned to samcv Issue Add `nomark` for striping accents, `samemark` is counterintuitive and slow for that purpose. github.com/Raku/problem-solving/issues/427 21:58
23:34 sena_kun left