🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). This channel is logged for the purpose of keeping a history about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Log inspection is getting closer to beta. If you're a beginner, you can also check out the #raku-beginner channel!
Set by lizmat on 25 August 2021.
00:01 grondilu joined
grondilu m: my Blob $ but role {} 00:02
camelia No such method 'mixin' for invocant of type
in block <unit> at <tmp> line 1
grondilu can't I mix a role to a Blob?
m: my Str $ but role {}
camelia ( no output )
grondilu m: .talk() given my Str $ but role { method talk { say "hi"; } } 00:04
camelia hi
grondilu m: .talk() given my Blob $ but role { method talk { say "hi"; } }
camelia No such method 'mixin' for invocant of type
in block <unit> at <tmp> line 1
grondilu m: my blob8 $x .= new: 5; say $x but role {} 00:06
camelia This REPR cannot change type
in block <unit> at <tmp> line 1
00:08 reportable6 left 00:09 reportable6 joined
Voldenet the `no such method mixin` is caused by trying to add mixin to a role 00:12
m: my Stringy $ but role {}
camelia No such method 'mixin' for invocant of type
in block <unit> at <tmp> line 1
grondilu what about when I try with an actual instance, then? The 'REPR cannot change type' error above? 00:14
m: my blob8 $x .= new: 5; say $x.?WHAT 00:15
camelia ===SORRY!=== Error while compiling <tmp>
Cannot use .? on a non-identifier method call
at <tmp>:1
------> my blob8 $x .= new: 5; say $x.?WHAT⏏<EOL>
expecting any of:
method arguments
grondilu ah sorry
m: my blob8 $x .= new: 5; say $x.WHAT
camelia (Blob[uint8])
grondilu FYI I wanted to use a Blob as a crypto key so I wanted to add methods such as "sign", "verify" and so on. 00:17
Voldenet Blob is repr('VMArray') 00:18
m: class {}.new but role {}
camelia ( no output )
Voldenet m: class :: is repr('VMArray') {}.new but role {}
camelia This REPR cannot change type
in block <unit> at <tmp> line 1
grondilu ok. Is this specced or could it change in the future? 00:19
oh now I seem to recall that native types can not be mixed. I had seen that with native integers long ago. 00:21
00:21 Kaiepi left
grondilu I suppose the same is true with blobs. 00:21
Voldenet it appears that repr things can't be mixed in, but nothing in Blob says it can't
I'm speculating that it might be changed in the future for consistency 00:25
grondilu noted 00:26
Voldenet but it's my pure guess 00:28
based on how there's nothing regarding this in docs (in fact, only Buf and utf8 are repr('VMArray') according to docs) 00:37
grondilu yeah after all isn't Blob supposed to be to blob, buf and so on what Int is to native integers? The upper case marking the non-repr type or something? 00:46
m: my uint $
camelia ( no output )
grondilu m: my uint $ but role {}
camelia ( no output )
grondilu oh my bad, I thought that would fail 00:47
00:47 Kaiepi joined
grondilu so we can mix roles to natives after all 00:47
m: .talk() given my int $ = 57 but role { method talk { say "hi"; } } 00:48
camelia No such method 'talk' for invocant of type 'Int'. Did you mean any of
these: 'WALK', 'all', 'tail', 'take', 'tan', 'tanh', 'tclc'?
in block <unit> at <tmp> line 1
grondilu m: .talk() given my int $ but role { method talk { say "hi"; } }
camelia hi
grondilu m: .talk() given (my int $ = 57) but role { method talk { say "hi"; } }
camelia hi
grondilu m: say (my int $).WHAT 00:49
camelia (Int)
grondilu m: say (my int $ = pi).WHAT
camelia This type cannot unbox to a native integer: P6opaque, Num
in block <unit> at <tmp> line 1
grondilu m: say (my int $ = 3).WHAT 00:50
camelia (Int)
grondilu m: say (my int32 $ = 3).WHAT
camelia (Int)
grondilu meh 00:51
01:11 frost joined 01:16 guifa left
grondilu first draft at Ed25519 in raku : gist.github.com/grondilu/2b6f4f0ba...4ca0dfcc93 01:23
I will make a proper module availabe someday. 01:24
01:27 grondilu left 02:27 sourceable6 left, greppable6 left, committable6 left, unicodable6 left, benchable6 left, bisectable6 left, releasable6 left, statisfiable6 left, reportable6 left, quotable6 left, linkable6 left, coverable6 left, evalable6 left, notable6 left, bloatable6 left, shareable6 left, nativecallable6 left, releasable6 joined, benchable6 joined, nativecallable6 joined, quotable6 joined 02:28 evalable6 joined, greppable6 joined, sourceable6 joined, statisfiable6 joined, bisectable6 joined, coverable6 joined, notable6 joined, reportable6 joined 02:29 linkable6 joined, committable6 joined 02:30 shareable6 joined, bloatable6 joined, unicodable6 joined
SmokeMachine as I said yesterday, I'm adding something like subset to Red like the picture. But I really would like use real subset for that... any idea of how? Will I have to wait for RakuAST? usercontent.irccloud-cdn.com/file/.../image.png 02:43
03:30 evalable6 left, linkable6 left 03:32 linkable6 joined, evalable6 joined 04:03 zacts joined 04:05 guifa joined 04:29 zacts left
Xliff SmokeMachine: Why not "subset Admin where *.role eq 'admin'" ? 04:54
05:29 linkable6 left, evalable6 left 05:30 linkable6 joined 05:31 evalable6 joined 06:08 reportable6 left, reportable6 joined 07:08 benchable6 left, quotable6 left, releasable6 left, nativecallable6 left, shareable6 left, reportable6 left, evalable6 left, bloatable6 left, greppable6 left, linkable6 left, sourceable6 left, bisectable6 left, unicodable6 left, coverable6 left, committable6 left 07:09 greppable6 joined, linkable6 joined, shareable6 joined 07:10 bisectable6 joined, bloatable6 joined, reportable6 joined, benchable6 joined 07:11 sourceable6 joined, unicodable6 joined, nativecallable6 joined, committable6 joined, quotable6 joined, coverable6 joined, releasable6 joined 07:12 evalable6 joined 07:18 lichtkind joined 08:18 committable6 left, evalable6 left, coverable6 left, nativecallable6 left, benchable6 left, releasable6 left, quotable6 left, unicodable6 left, sourceable6 left, bisectable6 left, statisfiable6 left, bloatable6 left, linkable6 left, notable6 left, greppable6 left, reportable6 left, shareable6 left 08:19 benchable6 joined, greppable6 joined, shareable6 joined, quotable6 joined, notable6 joined 08:20 sourceable6 joined, committable6 joined, evalable6 joined, linkable6 joined, statisfiable6 joined, nativecallable6 joined, bisectable6 joined 08:21 coverable6 joined, unicodable6 joined, releasable6 joined, reportable6 joined 08:22 bloatable6 joined
SmokeMachine Xliff: that’s what I want, but that would only work for comparing that, and not for the .^all. I needed a custom SubsetHOW for that. Is there a way of using `subset Admin of User where *.role eq “admin”` to use a custom SubsetHOW? 08:24
It would be great if the refinee could say what SubsetHOW to use… 08:29
08:35 linkable6 left 08:37 andinus joined, andinus left 08:38 andinus joined, linkable6 joined 09:00 Sgeo left 10:00 linkable6 left, evalable6 left, Guest25 joined 10:01 Guest25 left, linkable6 joined, evalable6 joined 10:30 frost left 10:41 djerius left 10:42 djerius joined
nine grondilu: why not something like class CryptoKey { has blob8 !key handles <sign verify ...> ; }? 10:45
10:46 kj4tip left
nine grondiluÖ or rather class CryptoKey { has blob8 !key handles <whatever blob methods you want to support>; method sign(...) { ... }; method verify(...) { ... } }? 10:47
10:47 djerius left 11:22 crab46 joined
crab46 Hi 11:22
11:23 crab46 left
Nemokosch Suppers 11:57
SmokeMachine m: gist.github.com/FCO/89df04517cee86...25cc2e12ee 12:03
camelia ( no output )
SmokeMachine m: gist.github.com/FCO/89df04517cee86...25cc2e12ee 12:04
camelia ===SORRY!=== Error while compiling <tmp>
Could not find CustomSubset in:
SmokeMachine this gist.github.com/FCO/89df04517cee86...25cc2e12ee is giving me `===SORRY!===\nRequired named parameter 'refinee' not passed` am I doing something wrong I testing using the default SubsetHOW, but my intent is to use a custom one. Both are giving me the same error 12:07
12:07 reportable6 left 12:09 melezhik joined, reportable6 joined, melezhik left
SmokeMachine my intent is to do something like this gist.github.com/FCO/415e4de3ac20fb...93af59a254 12:14
this already works: usercontent.irccloud-cdn.com/file/.../image.png 12:15
12:17 razetime joined 12:42 razetime left 12:43 razetime joined 12:45 euandreh left, euandreh joined 13:45 evalable6 left, linkable6 left 13:47 linkable6 joined 13:48 evalable6 joined 14:28 razetime left 14:44 melezhik joined 14:48 melezhik left 15:03 discord-raku-bot left 15:04 discord-raku-bot joined
Xliff gist.github.com/Xliff/25c4b333080e...1e5cb5bd2a 15:09
15:10 Some-body_ joined
p6steve Xliff: nice! btw I also have Lat & Long in Physics::Navigation ... would be happy to adjust so we play nice (I have been meaning to add support for Google Maps latlong too at some point 15:12
15:13 DarthGandalf left, Some-body_ is now known as DarthGandalf
Xliff p6steve: Well, near as I can tell it shouoldn't be too hard. 15:22
GWeather works in degrees.
But there are helper funcs in the lib to facilitate conversion to radians.
p6steve: Nice work on the Physics Modules, btw! 15:23
15:29 Guest5726 joined 15:30 Guest5726 is now known as bengur
bengur Hi, just so you know, I tried to install rakudo-star-2022.03 from source on a debian system and had to replace version numbers 2022.02 by 2022.03 in etc/fetch_core.txt or it would fail. 15:33
15:34 guifa left 15:38 bengur left 15:43 sena_kun left 15:44 sena_kun joined, Sgeo joined 15:47 ramiroencinas joined, ramiroencinas left 15:48 ramiroencinas joined
ramiroencinas Hi! In the grammars context I need to use a token to match a string with length lower or equal than 5 chars for example. If I use the quantifier ** like in `token tok { \w ** 5 };` and the input is 'aaaaaa' the match is true in the grammar. I need to specify the max chars to match in this token. Is possible? Thanks for the help! 15:57
SmokeMachine m: say $_ ~~ / \w ** 0..5 / for <<aaaaa aaaa aaa aa a "" aaaaaa>> 16:00
camelia 「aaaaa」
SmokeMachine m: say $_ ~~ /^ \w ** 0..5 $/ for <<aaaaa aaaa aaa aa a "" aaaaaa>>
camelia 「aaaaa」
ramiroencinas Thanks SmokeMachine, my token tok { ^ \w ** 1..5 $ }; works like a charm. 16:06
16:08 ramiroencinas left 16:14 DarthGandalf left 16:17 DarthGandalf joined 16:23 n1to joined, not-n1to joined 16:30 sena_kun left 16:31 sena_kun joined
p6steve Xliff: thanks - for me it was a fun way to ramp back up after 10 years afk! ... 16:31
lichtkind sorry for inconvenience i pushe wrong butten but deleted wrongly forked repo on raku modules
sorry for inconvenience i pushe wrong butten but deleted wrongly forked repo on raku modules 16:32
16:34 p6steve_ joined
lizmat lichtkind: which repo? 16:40
Xliff p6steve: Haha! True that. My p6-GLib suite is some 660k lines of Raku over 30-ish projects! 16:45
16:52 razetime joined 16:54 sena_kun left 16:55 sena_kun joined
lizmat Xliff: I did some work on optimizing grammar Actions yesterday: I'd appreciate if you could run a timing again and see if that made a difference. I hope to see 1-2% improvement 16:55
lichtkind lizmat: hai liz i becasme maintainer of the p5 module chart and i just wanted check who forked it and i misunderstood the display of the orgs im in with the ones who forked it so instead looking why raku modules org forked the p5 module i just created it, , but its deleted now 16:57
lizmat ah, ok...no worries then :-)
17:07 razetime left 17:21 n1to left, not-n1to left, n1to joined 18:07 reportable6 left 18:08 reportable6 joined
lucs Doing 「use IO::String; say IO::String.new.raku」, I get 「IO::String.new(nl-in => Any, nl-out => Any, nl-in => $["\n", "\r\n"], nl-out => "\n", …)」. 18:18
How is it that there are duplicate attributes? (nl-in and nl-out)?
lizmat feels like a problem in the implementation of IO::String.raku ? 18:20
lucs Could be I suppose, but how does one ever get that (duplicate attrs.)? 18:21
Oh, wait, you mean IO::String may have its own implementatin of raku()? 18:22
lizmat perhaps... yes 18:23
lucs Hmm...
Doesn't appear to, but it has 「class IO::String:ver… is IO::Handle { … }」, so maybe there... 18:25
thosAnyway, I just realized I was invoking one of its methods wrongly, so now my code is working, and figuring out those duplicates is not so interesting anymore :) 18:30
"my code is working": famous last words :-( 18:46
gfldex my code is working¹ 18:47
¹) right now
:) 18:48
lucs Yeah, something like that ;)
19:02 sftp left 19:03 sftp joined, sena_kun left 19:04 sena_kun joined 19:11 Tirifto left 19:14 Tirifto joined 19:23 Tirifto left 19:24 Tirifto joined 19:32 neither joined
neither hi how can I match against any type a package provides: there are `Pack::Age::Cls`, `Pack::Age::Cls::Int32`, `Pack::Age::Cls::Int64`, `Pack::Age::Cls::Float32` etc. I try to check if `$var` is of any of these types? i.e., does it come from `Pack::Age::Cls` family 19:36
there is no inheritance relation going on by the way 19:37
moritz give them a common marker role, like Pack::Age::Cls::Type, and then check against that role 20:18
neither thanks but I don't control their code 20:23
20:32 evalable6 left, linkable6 left 20:33 linkable6 joined 20:34 [Coke]_ joined 20:35 evalable6 joined, [Coke] left 21:03 jjido joined 21:04 vrurg_ is now known as vrurg
moritz then any(type1, type2, type3, ...) 21:16
Geth problem-solving/docs-website: 8b951c04cb | (Daniel Sockwell)++ | solutions/documentation/new-documentation-frontends.md
Solution for Raku/doc/issues/1246

This PR proposes a solution to Raku/doc/issues/1246. (I now realize that issue was in the doc repo rather than the problem-solving one and thus _technically_ I should open an issue in this repo and discuss the matter here before opening a PR. Since that issue has been active for 5 years and has generated the a similar discussion as it would have as ... (12 more lines)
problem-solving: codesections++ created pull request #320:
Solution for Raku/doc/issues/1246
21:21 lichtkind left
Geth problem-solving/docs-website: 2147c097b0 | (Daniel Sockwell)++ | solutions/documentation/new-documentation-frontends.md
fix typo
21:28 [Coke]_ is now known as [Coke] 21:55 jjido left 21:59 jgaz joined 22:07 jjido joined 22:27 aru left 22:44 grondilu joined
grondilu Isn't there such a thing as a parametrized module? I've tried with a role but failed : 22:44
m: role Foo[$foo] { sub talk is export { say "$foo" } }; import Foo["hi"]; talk 22:45
camelia ===SORRY!=== Error while compiling <tmp>
Undeclared routine:
talk used at line 1
grondilu m: module Foo { sub talk is export { say "hi" } }; import Foo; talk 22:46
camelia hi
22:48 jjido left 22:51 n1to left 23:26 jgaz left 23:39 neither left 23:40 tejr left