🦋 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:02
reportable6 left
00:06
lucerne left,
lucerne joined
00:29
simcop2387 joined
00:30
perlbot joined
01:30
bloatable6 left,
linkable6 left,
unicodable6 left,
sourceable6 left,
coverable6 left,
quotable6 left,
greppable6 left,
committable6 left,
bisectable6 left,
nativecallable6 left,
notable6 left,
tellable6 left,
benchable6 left,
shareable6 left,
statisfiable6 left,
evalable6 left,
releasable6 left,
squashable6 left
01:31
notable6 joined,
bisectable6 joined,
linkable6 joined
01:32
tellable6 joined,
unicodable6 joined,
coverable6 joined
01:33
bloatable6 joined
|
|||
Geth | ¦ problem-solving: coke assigned to codesections Issue Consider renaming default branch from master to main github.com/Raku/problem-solving/issues/298 | 02:05 | |
02:30
sourceable6 joined
02:31
nativecallable6 joined,
releasable6 joined
02:33
shareable6 joined,
benchable6 joined
03:05
reportable6 joined
03:15
tejr joined
03:31
squashable6 joined,
quotable6 joined,
greppable6 joined
03:32
statisfiable6 joined
04:32
quotable6 left,
bloatable6 left,
unicodable6 left,
bisectable6 left,
notable6 left,
reportable6 left,
statisfiable6 left,
nativecallable6 left,
sourceable6 left,
releasable6 left,
benchable6 left,
greppable6 left,
linkable6 left,
tellable6 left,
coverable6 left,
shareable6 left,
squashable6 left,
evalable6 joined,
nativecallable6 joined,
linkable6 joined,
squashable6 joined
04:33
coverable6 joined
04:34
releasable6 joined,
statisfiable6 joined,
benchable6 joined,
bisectable6 joined
04:35
tellable6 joined,
sourceable6 joined
|
|||
Geth | doc: b00ffb3476 | (Daniel Sockwell)++ (committed by Juan Julián Merelo Guervós) | doc/Language/objects.pod6 Document attribute aliases Part of the spec in Roast S12-class/attributes.t github.com/Raku/roast/blob/master/....t#L23-L33 |
05:26 | |
linkable6 | Link: docs.raku.org/language/objects | ||
05:32
shareable6 joined
05:34
unicodable6 joined,
notable6 joined
06:34
unicodable6 left,
shareable6 left,
linkable6 left,
notable6 left,
benchable6 left,
releasable6 left,
tellable6 left,
bisectable6 left,
nativecallable6 left,
statisfiable6 left,
evalable6 left,
coverable6 left,
sourceable6 left,
squashable6 left,
abraxxa joined
06:35
bloatable6 joined,
nativecallable6 joined
06:36
linkable6 joined,
benchable6 joined
06:37
shareable6 joined,
squashable6 joined,
notable6 joined,
coverable6 joined
06:41
abraxxa left
06:42
abraxxa joined
07:03
reportable6 joined
07:32
greppable6 joined
07:33
quotable6 joined
07:43
Sgeo left
08:14
dakkar joined
08:28
lichtkind joined
08:31
committable6 joined
08:35
releasable6 joined,
bisectable6 joined
08:37
statisfiable6 joined,
tellable6 joined,
evalable6 joined,
unicodable6 joined
09:13
pounce left
09:18
frost joined
09:19
pounce joined
09:42
pounce left
09:43
pounce joined
10:04
immedlate joined
|
|||
grondilu | "fooooooo" ~~ /o+/; # how do I get the number of 'o's from $/ ? | 10:05 | |
$/.chars won't work if there was no o | 10:07 | ||
m: "" ~~ /o+/; say $/.chars | |||
camelia | Use of Nil.chars coerced to empty string in block <unit> at <tmp> line 1 |
||
grondilu | m: "ooooo" ~~ /o+/; say $/.chars | 10:08 | |
camelia | 5 | ||
10:11
lizmat_ joined
10:12
TempIRCLogger left,
Geth left
10:13
RakuIRCLogger left,
lizmat left
|
|||
immedlate | What about `$/.defined ?? $/.chars !! 0` | 10:19 | |
m: "" ~~ /o+/; say $/.defined ?? $/.chars !! 0 | |||
camelia | 0 | ||
immedlate | "oOo" ~~ /o+/; say $/.defined ?? $/.chars !! 0 | ||
evalable6 | 1 | ||
immedlate | or with `with`: `($/.chars with $/) or 0` | 10:20 | |
similarly `with $/ { $/.chars } else { 0 }` | |||
or `without $/ { 0 } else { $/.chars }` | 10:21 | ||
grondilu | that's quite verbose | ||
it's a bit of a hassle to have to deal with the special case of 0 | 10:22 | ||
raydiak | could always just change the + to * | ||
grondilu | damb | 10:23 | |
*damn | |||
Altreus | or you could use the fact it didn't match "foooo" ~~ /o+/ ?? $/.chars !! 0; | ||
in case your case is more complex | 10:24 | ||
grondilu | of course with * it works, I'm dumb, sorry | 10:26 | |
raydiak | don't be too hard on yourself. with so many tools in reach it's easy to overlook one | 10:28 | |
Altreus | We had a similar question the other day when the answer was to change the question :D | 10:32 | |
easily overlooked | |||
gfldex | m: "" ~~ /o+/; say +$/.?chars | 10:59 | |
camelia | Use of Nil.chars coerced to empty string 0 in block <unit> at <tmp> line 1 |
||
gfldex | m: "" ~~ /o+/; say +($/.?chars // 0) | 11:00 | |
camelia | Use of Nil.chars coerced to empty string 0 in block <unit> at <tmp> line 1 |
||
gfldex | m: "" ~~ /o+/; say ($/ // "").chars.Int | ||
camelia | 0 | ||
gfldex | m: "ooo" ~~ /o+/; say ($/ // "").chars.Int | ||
camelia | 3 | ||
gfldex | There may be a simple way to handle that in the Regex directly. | 11:02 | |
m: Nil.^methods.grep(*.name eq 'FALLBACK').say; | 11:05 | ||
camelia | (FALLBACK) | ||
gfldex | ok, .? on Nil is silly | ||
11:13
linkable6 left,
evalable6 left
|
|||
grondilu | iteration over a hash is undeterministic or something? | 11:15 | |
gfldex | order of keys are randomised by design | 11:16 | |
grondilu | ok, noted | ||
Altreus | kawaii_: by design! | 11:17 | |
11:21
timo left
11:41
lizmat_ left
11:42
lizmat joined
|
|||
grondilu | I tried to count the number of leading zeros in a list with `+(@a ...^ +*)` but this hangs if @a is full of zeros. Any suggestion? | 11:48 | |
no loop please ;) | |||
m: +((0, 0) ...^ +*) | 11:50 | ||
camelia | (timeout)WARNINGS for <tmp>: | 11:51 | |
grondilu | m: say +((0, 0, 1) ...^ +*) | ||
camelia | 2 | ||
Altreus | ok I can't parse that. What's going on there :D | 11:55 | |
grondilu | again, I'm just trying to count the number of leading zeros in a list. | 11:56 | |
I bet there is a simple, nice way to do it but I don't see it. | 11:57 | ||
Altreus | yeah but I don't understand what the magic spell you wrote actually does | ||
leading zeroes implies strings, no | 11:58 | ||
oh | |||
do you mean the number of zeroes in a list before the first nonzero | |||
grondilu | yes | ||
Altreus | gotcha | ||
grondilu | I don't want to write a loop. That would be lame. | 11:59 | |
Altreus | is it just @a.first({ * != 0 }, :k) | 12:00 | |
i.e. the index of the first nonzero value | |||
... plus one | |||
no not plus one :D | |||
grondilu | m: say +(0, 0, 1).first: +* | 12:01 | |
camelia | 1 | ||
grondilu | m: say +(0, 0, 0, 1).first: +* | ||
camelia | 1 | ||
grondilu | m: say +(0, 0, 0, 1).first: +*, :k | ||
camelia | 3 | ||
grondilu | m: say +(0, 0, 0).first: +*, :k | 12:02 | |
camelia | Use of Nil in numeric context 0 in block <unit> at <tmp> line 1 |
||
Altreus | aha! | ||
so it's that or the length of the list | |||
12:02
reportable6 left
|
|||
grondilu | couldn't I do that with a grep and a flip flop? | 12:07 | |
12:08
Geth joined,
RakuIRCLogger joined
12:11
TempIRCLogger joined
|
|||
grondilu | m: say <0 0 0 1 2 0>.grep({ 0 ff none(0)}) | 12:12 | |
camelia | (0 0 0 1 0) | ||
grondilu | m: say <0 0 0 1 2 0>.grep({ 0 fff none(0)}) | ||
camelia | (0 0 0 1 0) | ||
grondilu | m: say <0 0 0 1 2 0>.grep({ (state $ = 1) &&= !$_ }) | 12:16 | |
camelia | (0 0 0) | 12:17 | |
grondilu | I guess I'll use .first | 12:18 | |
gfldex | grondilu: Do you mind if I qoute you on "I don't want to write a loop. That would be lame." ? :-> | 12:25 | |
grondilu | well not sure I want to be quoted on that tbh ;) | 12:28 | |
I do hate writing loops though | 12:29 | ||
Altreus | explicit loops are rare in my experience | ||
they're usually maps in disguise | |||
raku certainly makes it a lot easier to avoid them | 12:30 | ||
plus there's new structures like react-whenever, which I'm not sure whether they count as loops or not | 12:31 | ||
12:32
immedlate left
|
|||
gfldex | m: multi sub prefix:«+\c[COMBINING RING ABOVE]»(\r) { r.defined ?? +r !! 0 }; say +̊(0, 0, 0).first: +̊*, :k; | 12:43 | |
camelia | 0 | ||
gfldex | And no, my terminal can display that operator correctly either. | 12:44 | |
gfldex Adds an item to the mischief list. | 12:45 | ||
s/can/can't/ | |||
grondilu | I'm confused by the ring above the opening parenthesis | 12:46 | |
the one above the * I get (I think) | 12:47 | ||
13:05
reportable6 joined
13:10
immedlate joined
|
|||
gfldex | grondilu: not even Firefox is displaying that one correctly | 13:11 | |
the circly is above the + but not centered | 13:12 | ||
so the +̊( looks like a ligature | 13:13 | ||
I don't think I'm gonna do that again… | |||
13:13
linkable6 joined
|
|||
immedlate | what terminal do you use gfldex if you dont mind sharing | 13:14 | |
gfldex | Putty+screen right now | ||
13:15
evalable6 joined
|
|||
gfldex | immedlate: here is the complete setup gfldex.wordpress.com/2016/08/31/on...ingertips/ | 13:15 | |
Altreus | looks fine for me | 13:16 | |
:) | |||
so you did it right, at least :D | |||
"No, it's the children who are wrong" | |||
gfldex | I'm not sure if I want to be right on your screen but not on mine. | 13:17 | |
Altreus | Well I mean at least there's nothing for *you* to fix | 13:18 | |
grondilu | gfldex: do you ssh from windows? | 13:26 | |
gfldex | yes | ||
grondilu | do you know that the Windows terminal has a native ssh client now? | 13:27 | |
and the Windows terminal is actually good, with full unicode support for instance. | 13:29 | ||
github.com/Microsoft/Terminal Microsoft has been quite open-source friendly lately. | 13:30 | ||
gfldex | grondilu: Does it work well with GNU Screen on the other end? | ||
grondilu | gfldex: I don't know about screen but I was using tmux with no issue. | 13:31 | |
13:31
Sgeo joined
|
|||
Slaytanical | i found: github.com/rakudo/rakudo/blob/mast...unning.pod and: github.com/ugexe/zef#more-cli are there more sources of environment variables i'd have to make myself aware of to isolate a raku environment to a USB drive? | 14:08 | |
or am i better off still compiling from source in something like msys2? | 14:09 | ||
Xliff | Hi! | 14:12 | |
Will a % parameter accept an Associative $? | 14:13 | ||
m: sub a (%h) { say 'hash' }; my $a = 1 but Associative; a($a) | |||
camelia | hash | ||
Xliff | Hah! | ||
Slaytanical | nevermind on the msys2 bit, i forgot it's not an isolated environment really. | 14:26 | |
[Coke] wonders how quickly after a new set of unicode emojis is announced that they are available on win & mac. | 14:30 | ||
(some nifty/funny ones in emoji/14) | |||
14:31
evalable6 left,
linkable6 left
14:32
evalable6 joined
14:35
sourceable6 joined
14:38
jess left
14:41
cnx left,
cnx joined
|
|||
codesections | is there a good way to check the exit status of a command run with qx { }? I know I could add ; echo "$?" } to the end, but that feels a bit sloppy | 14:48 | |
(or just use &shell) | 14:49 | ||
ugexe | even if there was an e.g. $! for "last ran process exit status" it would be just as sloppy due to its inherit race condition | 14:56 | |
codesections | m: say shell("invalid").exitcode | 14:58 | |
camelia | /bin/sh: invalid: command not found 127 |
||
codesections | ugexe: I'm not sure I understand? I was thinking of something like ^^^ but for qx. There's no race condition there, right? | 14:59 | |
ugexe | if you want the Proc itself then why would you use qx? | 15:00 | |
so yes there is no race condition there | |||
codesections | fair enough. I guess I just like qx -- it feels less like I'm just passing strings around. But it isn't really, so I should probably just use shell | 15:02 | |
jdv | even in the same thread it couldn't be fetched in a non-racy way? | 15:06 | |
codesections | (it looks like the source for qx is at github.com/rakudo/rakudo/blob/mast...#L261-L265 In my ideal world, I think I'd have that return an IntStr that numifies to the exit code, the way Procs do) | 15:08 | |
jdv | that seems like unnecessary magic but it might be easier than trying to get it to work if you fetched it in the next instruction or something like that | 15:10 | |
ugexe | jdv, maybe but even then im not sure since i believe it uses async processes under the hood | ||
jdv | yeah, right... | 15:11 | |
forgot its built on async | 15:15 | ||
Xliff | codesections: gist.github.com/Xliff/b9d290cc5262...111434d7e9 | ||
15:19
squashable6 left
|
|||
codesections | Xliff :) But that loses the ability to use arbitrary unicode pairs as the delimiter for qx, which is a big part of its appeal vs &shell, imo | 15:20 | |
ugexe | and i guess even if it was in the same thread you'd then have to have the equiv of `my $!;` to keep processes spawned in other unrelated threads (not just reentrant ones) from setting it | ||
gfldex | codesections: do you get a non-0 exit code to indicate failure? If so, there is a module for that. | 15:26 | |
codesections | gfldex oh? | 15:31 | |
15:33
melezhik joined
|
|||
melezhik | :m sub foo ($a) {} | 15:33 | |
m: sub foo ($a) {} | |||
camelia | ( no output ) | ||
melezhik | m: sub foo ($a) {}; foo(1); | ||
camelia | ( no output ) | ||
melezhik | m: sub foo ($a) {}; my $a; foo($a); | ||
camelia | ( no output ) | ||
melezhik | how can deal with this error - `Type check failed in binding to parameter '$user'; expected Any but got Mu (Mu)` ? | 15:34 | |
my function declared as `foo ($user) {}` | |||
15:34
linkable6 joined
|
|||
melezhik | however if a $user is not defined and calls `foo($user)` I get this error | 15:34 | |
codesections | the brute-force way is to declare it as `foo(Mu $user) {}`, but you might want to deal with the Mu before the callsite | 15:35 | |
15:35
frost left
|
|||
melezhik | I wonder why my function complains about this at all | 15:36 | |
for example it works fine when I do this: `my $user; foo($user)` | |||
codesections | well, the default constraint for params is Any. And the default type for $-sigiled vars is Any | 15:37 | |
so that works fine | |||
melezhik | github.com/melezhik/mybutterflies/...p.raku#L99 | ||
here $user and $token get passed by cro as cookes | 15:38 | ||
cookies | |||
15:38
timo joined
|
|||
melezhik | and get this `mbf Type check failed in binding to parameter '$user'; expected Any but got Mu (Mu)` | 15:38 | |
changed the signature | 15:40 | ||
codesections | I suspect you want `get -> 'project', $project, 'edit-review', :$user! is cookie, :$token! is cookie` for that signature | ||
Xliff | codesections: Hmmm... good point. Would have to write a module with an included slang to get that working. :/ | ||
melezhik | github.com/melezhik/mybutterflies/...d1f23be1a6 | ||
works fine nw | |||
now | |||
thanks codesections | 15:41 | ||
codesections | but note the difference between `:$user` and `:$user!` for Cro. The first matches *regardless* of whether the client has a user cookie (which is why it's sometimes Mu). The second only matches if the have a user cookie | 15:42 | |
melezhik ^^^ | 15:43 | ||
melezhik | yes, I am aware | ||
cookies might not be set | |||
codesections | Ok, just making sure :) | ||
15:49
melezhik left
16:12
Woodi left
|
|||
gfldex | codesections: see: github.com/gfldex/raku-shell-pipin...r-handling | 16:13 | |
16:21
squashable6 joined
16:22
Woodi joined
16:42
dakkar left
17:03
melezhik joined
|
|||
melezhik | hi Raku people! I've launched a better version of "My Butterflies" - a place where one can rate software they like. I'd appreciate for feedback from community. Eventually I am going to get a DSN and whatnots. But I am very interested to get a feedback before - 161.35.115.119/mbf/ | 17:05 | |
if someone wants to bragg about their projects - feel free - let me know and I put them to list. Raku projects are priority ... )))) | 17:06 | ||
also please be nice, even though you review python stuff , ha-ha :') | 17:08 | ||
daxim | evalable6: subset List5 of List where .elems == 5; my @foo = List5.new: <q w e r t>; # how is this supposed to work? my List5 @bar = <q w e r t>?? | 17:15 | |
evalable6 | (exit code 1) You cannot create an instance of this type (List5) in block <unit> at /tmp/LaV96KsfdJ line 1 |
||
17:17
melezhik left
|
|||
japhb | subset List5 of List where .elems == 5; my @foo is List5 .= new: <q w e r t> | 17:21 | |
m: subset List5 of List where .elems == 5; my @foo is List5 .= new: <q w e r t> | |||
camelia | You cannot create an instance of this type (List5) in block <unit> at <tmp> line 1 |
||
japhb | Oh interesting | ||
m: subset Array5 of Array where .elems == 5; my @foo := Array5.new: <q w e r t> | 17:22 | ||
camelia | You cannot create an instance of this type (Array5) in block <unit> at <tmp> line 1 |
||
japhb | hum | 17:23 | |
17:32
melezhik joined
|
|||
melezhik | weekly: www.reddit.com/r/rakulang/comments...e_reviews/ | 17:32 | |
notable6 | melezhik, Noted! (weekly) | ||
Altreus | melezhik: interesting idea but is there any moderation on what counts as software? | ||
like, maybe you get raku and then maybe you get modules and then maybe you get ... functions?! I dunno | |||
deduplication seems like a task as well | 17:33 | ||
melezhik | Altreus , that's the very idea of dog fooding, not only check the web site, but also test the idea itself. I am flexible, it could be any software and I have not yet decided on the level of granularity ... | 17:38 | |
I just think - it's cool to have a place where engineers write about software, honest, in depth reviews, instead of smarmy marketing stuff ... | 17:39 | ||
and I like to check it with raku community first, before expand to other languages/communities ... | 17:40 | ||
Geth | doc: 2faaff0c55 | Coke++ | xt/word-variants.t whitespace |
17:46 | |
18:02
reportable6 left
18:04
reportable6 joined
18:17
silug4 joined,
silug left,
silug4 is now known as silug
18:22
abraxxa left
18:25
abraxxa-home joined
|
|||
grondilu | you know, I wish there was a $*MODULUS environment variable to set up modular arithmetics. Wouldn't that be neat for crypto stuff? | 18:49 | |
Could this be done in user/module space? | 18:50 | ||
lizmat | m: PROCESS:<$FOO> := 42; say $*FOO # yes ? | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Preceding context expects a term, but found infix := instead. at <tmp>:1 ------> 3PROCESS:<$FOO> :=7⏏5 42; say $*FOO # yes ? |
||
lizmat | m: PROCESS::<$FOO> := 42; say $*FOO # yes ? | ||
camelia | 42 | ||
18:51
melezhik left
|
|||
grondilu | I know setting the variable can be done, but could it be made to affect Int arithmetics? | 18:51 | |
lizmat | ah. that? not without affecting performance of *all* Int arithmetic | 18:52 | |
18:52
abraxxa-home left
|
|||
grondilu | what about changing the interpretation of literal integers? That could be done, right? | 18:55 | |
from user code, I mean. | 18:56 | ||
with macros or something? | |||
lizmat | possibly | ||
moon-child | grondilu: what are you trying to do? | 18:57 | |
grondilu | use Mod13; say 12 + 1; # 0 | 18:59 | |
lizmat | use Mod13 could export a proto infix:<+> with all new candidates | 19:01 | |
so you *can* do that in a module | |||
grondilu | indeed, not sure why I didn't see it that way. | 19:02 | |
hang on | 19:03 | ||
lizmat | it will *only* affect that lexical scope, yes | 19:04 | |
grondilu | I can't override core candidates, can I? | ||
lizmat | sure you can, by exporting a proto | ||
grondilu | ok but inside that candidate how would I call the core ones? | 19:05 | |
moon-child | lizmat: I thought operator overloads sometimes had dynamic scope, at least conceptually | ||
there was a pr not long ago to make sort respect overridden &[cmp] | |||
lizmat | m: proto infix:<+>(|) {*}; multi sub infix:<+>(Int \a,Int \b) { 42 }; say 999 + 42e0 | 19:07 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Calling infix:<+>(Int, Num) will never work with any of these multi signatures: (Int \a, Int \b) at <tmp>:1 ------> 3nfix:<+>(Int \a,Int \b) { 42 }; say 999 7⏏5+ 42e0 |
||
lizmat | m: proto infix:<+>(|) {*}; multi sub infix:<+>(Int \a,Int \b) { 42 }; say 999 + 666 | 19:08 | |
camelia | 42 | ||
lizmat | moon-child: yeah, but the problem is that &[cmp] is that List.sort *lexically* only sees the &cmp of the core | ||
and the question is: should it only look lexically for that, or also dynamically | 19:09 | ||
and that's what the PR is about | |||
grondilu | m: dd &COMPUNIT::infix:<+> | 19:10 | |
camelia | Any element{'&infix:<+>'} = Any | ||
grondilu | m: proto infix:<+>(|) {*}; multi sub infix:<+>(Int \a,Int \b) { &COMPUNT::infix<+>(a, b) mod 13; }; say 12 + 1 | 19:11 | |
camelia | Cannot resolve caller infix:<mod>(List:D, Int:D); none of these signatures match: (Real $a, Real $b) in sub infix:<+> at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
grondilu | m: proto infix:<+>(|) {*}; multi sub infix:<+>(Int \a,Int \b) { &COMPUNIT::infix<+>(a, b) mod 13; }; say 12 + 1 | ||
camelia | Cannot resolve caller infix:<mod>(List:D, Int:D); none of these signatures match: (Real $a, Real $b) in sub infix:<+> at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
grondilu | see what I mean? | 19:12 | |
moon-child | hmm, there may be an easier way | ||
one moment | |||
grondilu | maybe with the routine form of the operators. Not sure what it is though | 19:13 | |
moon-child | hmm, no. I thought you might be able to say: augment class Int { method new(\x) { self.bless(x mod 13) } }. But apparently it has to be a multi, and that candidate never gets selected | 19:15 | |
grondilu | I could make a role of course | 19:20 | |
19:20
vrurg left
|
|||
grondilu | like, my $n = 7 but Modular(13); or somethinp | 19:22 | |
but I think I had tried that before and I still didn't like it. Too verbose. | |||
moon-child | you could just overload == and leave all the other operators the same | 19:23 | |
grondilu | well that would be inefficient. And that wouldn't work for modular inverse. | 19:24 | |
making a role was kind of messy too because of the possibility of having several modulus in an expression. | 19:25 | ||
like what to do with (5 but Modulo(13)) + (6 but Modulo(7)) | 19:26 | ||
thus me thinking of having a single modulus as an environment variable. | 19:27 | ||
oh wait isn't there a keyword to delegate a method to the next candidate or something? | 19:31 | ||
moon-child | nextsame? | 19:32 | |
grondilu | yeah, under "re-dispatching" in the docs | 19:33 | |
m: proto infix:<+>(|) {*}; multi sub infix:<+>(Int \a,Int \b) { callsame mod 13; }; say 12 + 1 | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: mod used at line 1 |
||
grondilu | m: proto infix:<+>(|) {*}; multi sub infix:<+>(Int \a,Int \b) { callsame() mod 13; }; say 12 + 1 | ||
camelia | Cannot resolve caller infix:<mod>(Nil:U, Int:D); none of these signatures match: (Real $a, Real $b) in sub infix:<+> at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
grondilu | m: proto infix:<+>(|) {*}; multi sub infix:<+>(Int \a,Int \b) { callsame(); }; say 12 + 1 | 19:35 | |
camelia | Nil | ||
grondilu | m: proto infix:<+>(|) {*}; multi sub infix:<+>(Int \a,Int \b) { return callsame(); }; say 12 + 1 | ||
camelia | Nil | ||
grondilu whispers | |||
moon-child | because the builtin &[+] isn't a candidate for the new proto you just made | 19:36 | |
grondilu | oh yeah makes sense | ||
so I overwrite everything or nothing, I guess. That's not very useful. | 19:39 | ||
lizmat | note that you *can* override all and still access the old | 19:42 | |
grondilu | Maybe I should just define a 'm' suffix. | 19:44 | |
lizmat | m: BEGIN my &old = &infix:<+>; proto sub infix:<+>(|) {*}; multi sub infix:<+>(\a, \b) { old(a,b) }; say 42 + 666 | ||
camelia | 708 | ||
lizmat | m: BEGIN my &old = &infix:<+>; proto sub infix:<+>(|) {*}; multi sub infix:<+>(\a, \b) { old(a,b) }; my $a = 42; say $a + 666 | ||
camelia | 708 | ||
grondilu | neat trick | 19:45 | |
lizmat | grondilu: ^^ between the proto and the catchall, you can insert your own candidates | ||
grondilu | m: BEGIN my &old = &infix:<+>; proto sub infix:<+>(|) {*}; multi sub infix:<+>(\a, \b) { old(a,b) mod 13 }; say 12 + 1 | 19:46 | |
camelia | 0 | ||
grondilu | nice | ||
so it's feasible | 19:48 | ||
19:49
bgran joined
|
|||
grondilu | I'm so going to write a secp256k1 module now ;) | 19:50 | |
lizmat | ++grondilu | 19:59 | |
20:30
immedlate left
21:19
melezhik joined
|
|||
melezhik | how can I remove cookies using cro ? | 21:19 | |
I have very strange bug when my cookies works fine when tested with safari and I see random issues with working with another browsers, like Mozilla | 21:23 | ||
for mbf - 161.35.115.119/mbf/ | |||
I don't think that cookies format is specific to browsers? | 21:24 | ||
basically I use standard cro function - github.com/melezhik/mybutterflies/....raku#L232 | |||
to set cookies on server side ... | |||
that is it | |||
duck duck go browser works fine as well ... | 21:28 | ||
yeah, just checked things, looks like does not work properly in Firefox (( | 21:31 | ||
21:39
[Coke] left
|
|||
melezhik | github.com/croservices/cro-http/issues/155 | 21:50 | |
21:55
melezhik left
22:05
melezhik joined
|
|||
melezhik | if cro caches GET requests? if so, how to disable this cache? | 22:15 | |
22:24
melezhik left
22:47
lichtkind left
23:47
linkable6 left,
evalable6 left
23:50
linkable6 joined,
squashable6 left
23:51
squashable6 joined
|