🦋 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.
japhb I'm not sure that should be called "sanity checking", because when I looked at it I briefly went insane. 01:35
ugexe a sanity check and an insanity check are the same thing 01:39
japhb ugexe: But if it were merely a predicate it should not have mutated my mental state. A check that changes state in the process would be ... actually, something like a CAS. That implies that now somehow we can have atomic operations on brains. Huh. 02:31
04:55 kjp left 04:56 kjp joined
nine ab5tract: .(5) is not a method call? 07:52
07:57 finanalyst joined 08:52 sena_kun joined
[Tux] jdv: tux.nl/Talks/CSV6/speed4.html 08:54
and tux.nl/Talks/CSV6/speed4-20.html 08:55
ab5tract nine: the why does it look like one? 09:31
But you are right, apparently that syntax is not actually method-ical 09:36
m: with [1,2,3] { say *.[2] }
camelia WhateverCode.new
ab5tract Seems surprising to me but 🤷 09:37
And CALL-ME should apparently not be considered a method either? 09:43
lizmat CALL-ME to me, is a grey area: not sure whether that is an implementation-detail or not
ab5tract m: with { dd :$_ } { *.CALL-ME(<crazy>) } 09:44
camelia ( no output )
lizmat hmmmm I stand corrected: it is being tested in roast
ab5tract Do we have a name for these no-really-method-calls-written-exactly-as-method-calls? 09:46
*not
lizmat interface methods ?
ab5tract Hmmm.. could work 09:47
Thinking of documentation here. Since there is a clear exception to “method calls curry”, I hope that exception can be similarly clearly stated 09:49
go
(No go, that’s a typo)
Maybe “turn-key” methods could also be a contender 09:53
jdv [Tux]: thanks. i was surprised those aren't easily searchable/discoverable. 10:41
11:24 finanalyst left
[Tux] post them to the ML and pin them :) 12:12
Rakudo v2024.04-79-g66c4acad2 (v6.d) on MoarVM 2024.04-4-gc1eedd502
csv-ip5xs0.257 - 0.259
csv-ip5xs-201.131 - 1.144
csv-parser1.558 - 1.600
csv-test-xs-200.141 - 0.142
test1.958 - 1.986
test-t0.425 - 0.429
test-t --race0.280 - 0.285
test-t-205.176 - 5.250
test-t-20 --race1.238 - 1.247
13:03
14:02 finanalyst joined
Geth rakudo/main: d9863e9ad5 | ab5tract++ | 3 files
Add worry for WhateverCode on LHS of smartmatch

Smartmatch only curries `Whatever`, so any user that provides a `WhateverCode` expression as an LHS is likely to encounter a surprising failure (when compared to the behavior of most other infix operaators).
In order to be proactive and helpful to such users, we emit a descriptive worry in this scenario.
14:04
ab5tract I do still worry that we need a way to ignore/suppress worries :) 14:07
14:11 sena_kun left
nine Love that comment in Actions :D 14:11
14:11 sena_kun joined 14:18 sena_kun left, sena_kun joined 14:20 sena_kun left, sena_kun joined 14:22 sena_kun left 14:23 sena_kun joined 14:24 sena_kun left 14:26 sena_kun joined 14:27 sena_kun left 14:28 sena_kun joined 14:31 Altai-man joined
ab5tract after having to revise that condition change for the fifth time, I couldn't help myself :) 14:32
14:33 sena_kun left
ab5tract maybe it was only three times, but still :) 14:33
Afterwards I started poking at R#1206, and opened a larger can of worms than I anticipated 14:36
linkable6 R#1206 [open]: github.com/rakudo/rakudo/issues/1206 [operators] Can’t override !~, =~, >>, <<
ab5tract m: sub foo(+$x [$ is rw = False]) { $x }; say foo().raku 15:52
camelia ===SORRY!=== Error while compiling <tmp>
concatenate requires a concrete string, but got null
at <tmp>:1
ab5tract what is this code even trying to accomplish? I don't think I've ever seen a signature this bizarre 15:53
(from R#1211)
linkable6 R#1211 [open]: github.com/rakudo/rakudo/issues/1211 [LTA] LTA error with `is rw` defaults in an unpacked slurpy
15:55 sena_kun joined 15:56 Altai-man left
ab5tract TIL: `The plus form flattens according to the single argument rule.` 16:06
but I don't see documentation regarding the `[$ is rw = False]` syntax 16:09
17:46 lizmat_ joined 17:48 lizmat left
Geth rakudo/rakuast-phase-cleanup: 28 commits pushed by (Stefan Seifert)++
review: github.com/rakudo/rakudo/compare/c...a612d31dc9
17:50
nine This was a really mysterious bug: github.com/rakudo/rakudo/commit/8b...0c2c7c1e9e 17:51
MasterDuke ab5tract: isn't that destructuring into a list of a single item? 17:52
ab5tract ah, indeed 17:53
17:55 lizmat_ left, lizmat joined
ab5tract nine: `This bug was particularly well hidden because we only use the full method cache when we try to find a method in a megamorphic call site.`<--- this sounds tricky indeed 17:56
lizmat nine: shouldn't that commit be in main ? 17:57
possibly cherry-picked ?
Geth rakudo/main: 2cba37f5c4 | (Stefan Seifert)++ (committed by Elizabeth Mattijsen) | 2 files
Fix mysterious failures when class construction process order changes

For creating a class' full method list (including inherited ones) we need an up-to-date MRO (i.e. the linearized inheritance list). This MRO is getting cached. While we already re-calculated this cache when the parent list changes, a window of opportunity was left open between method cache getting updated due to a method getting added and the MRO ... (9 more lines)
18:08
lizmat nine++ 18:09
ab5tract MasterDuke: I've never seen destructuring combined with a slurpy in this way. Zoffix sure was good at surfacing these syntax shenanigans 18:16
MasterDuke destructuring doesn't seem to be terribly common in general in most raku code i've seen 18:17
ab5tract destructuring into an anyonmous scalar even less so :) 18:18
m: 'my $x := Int; -> ::($x) $y { say $y }(42.2)'.AST.EVAL 18:19
camelia No lexical found with name '::($x)'
in block <unit> at EVAL_0 line 1
in block <unit> at <tmp> line 1
18:20
ab5tract m: 'BEGIN my $x := Int; -> ::($x) $y { say $y }(42.2)'.AST.EVAL
camelia ===SORRY!===
Unknown compilation input 'qast'
ab5tract I wonder how badly we want this to work (R#1284) 18:26
linkable6 R#1284 [open]: github.com/rakudo/rakudo/issues/1284 [LTA] `::(...)` as type in signatures silently fails
nine What on earth does class Foo { my $.foo; } mean now? 19:16
ab5tract nine: nothing good :) 19:34
I think the definition you are looking for is `self.typed-sorry: 'X::OutOfDate'` 19:38
I mean, by definition `$.foo` implicates a `self`.. `my` is for singleton-ic variables when used in classes. any design that aimed at providing a guesstimate behavior the bridges the two should be erased IMO 19:41
nine: I believe I can close R#1277 as an EWONTFIX, right? 19:42
linkable6 R#1277 [open]: github.com/rakudo/rakudo/issues/1277 `require` fails to handle `:from` adverb
nine To answer my own question: it's a class attribute, i.e. a lexical inside that class that gets an accessor generated for it 20:04
They are described in github.com/Raku/old-design-docs/bl...bjects.pod
ab5tract: I do not really see a reason to not implement that. 20:07
ab5tract hmmm.. in that case it does make some sense.. 20:09
but how you do refer to it afterwards? as `$foo`, right?
it just feels kind of disjointed from the usual semantics 20:10
s/semantics/syntax/
or does it work as `$.foo` but not as `$!foo`? (which would be even more disjointed) 20:14
nine Yeah, it's $.foo inside the class 20:16
And Foo.foo outside
ab5tract Can't say that I love that 20:25
but I should probably save my energy for `has $foo`, as that one bothers me more :) 20:26
both cases are similar though: the exception-to-the-rule is more pedagogically/cognitively expensive than just having a dang rule 20:29
Geth rakudo/main: ecd2dd4698 | ab5tract++ | src/core.c/IO/Socket/Async.rakumod
Provide the host:port that compose the address in use

This quality-of-life change supplies the user with a bit more context when an "address already in use" exception bubbles up from libuv.
This addresses #1266 (R#1266).
20:30
linkable6 R#1266 [open]: github.com/rakudo/rakudo/issues/1266 [LTA] LTA error with sock using already-bound port
22:33 finanalyst left 23:08 sena_kun left