🦋 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
|