🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku
Set by ChanServ on 14 October 2019.
00:12 xinming left, xinming joined 00:18 pecastro left 00:20 mcmillhj joined, mcmillhj left, mcmillhj joined
ggoebel Doc_Holliwood: very nice. I wish I'd thought of that. Thank you for sharing. 00:29
16m16s 00:30
00:38 oneeggeach joined
mcmillhj is there a map with index operation similar to Python's enumerate in Raku? 00:39
00:41 oneeggeach left 00:44 perryprog left
mcmillhj sorry should have RTFM, List#kv does what I wanted 00:48
00:53 Doc_Holliwood left 00:54 mcmillhj left
no-n I think pairs does that as well 00:59
p6: say pairs 'abc'.comb 01:00
camelia (0 => a 1 => b 2 => c)
no-n p6: say 'abc'.comb.kv 01:01
camelia (0 a 1 b 2 c)
no-n slightly different ig
01:03 perryprog joined
ggoebel Doc_Holliwood: if I change the hard coded 30000000 to $N it takes 18m 01:07
tellable6 ggoebel, I'll pass your message to Doc_Holliwood
01:30 perryprog left, perryprog joined 01:34 perryprog left, perryprog joined 01:39 fridim_ joined, fridim left 02:29 xinming left, xinming joined 02:34 cocomo joined 02:35 cocomo left 02:53 linkable6 left, linkable6 joined 03:24 leont left 03:33 wamba left 03:39 aborazmeh joined, aborazmeh left, aborazmeh joined 03:44 cpan-raku left 03:47 cpan-raku joined, cpan-raku left, cpan-raku joined 04:00 Some-body_ joined, DarthGandalf left 04:01 Some-body_ is now known as DarthGandalf 04:11 parabolize left 04:12 parabolize joined 04:15 mowcat left 04:21 jmchael_ left 04:53 ex_nihilo joined 05:11 rir joined, justsomeguy joined 05:14 DarthGandalf left 05:15 DarthGandalf joined, DarthGandalf left 05:21 pounce joined 05:22 aborazmeh left 05:27 justsomeguy left 05:55 maggotbrain joined 05:59 skids left 06:08 jmerelo joined 06:09 rindolf joined
elcaro ggoebel: check my Raku solution for day 15 on reddit (user: 0rac1e) runs in ~15s on my laptop 06:14
06:17 xinming left, xinming joined 06:58 ufobat_ joined 07:05 sjm_uk joined 07:11 frost-lab joined
jmerelo Have you checked out today's article? raku-advent.blog/2020/12/16/day-16...e-part-ii/ Do it if you want to write fast Raku code! 07:19
tellable6 2020-12-15T18:58:54Z #raku <melezhik> jmerelo , then, disregard my last post, I will probably put it as regular one ... no worries
07:20 parabolize left
jmerelo .tell melezhik thanks! 07:20
tellable6 jmerelo, I'll pass your message to melezhik
Geth advent: 9cfd6d8688 | (Fritz Zaucker)++ (committed using GitHub Web editor) | raku-advent-2020/authors.md
Update authors.md

Fix title and link of zaucker's article.
07:35 maggotbrain left 07:52 domidumont joined 08:12 pecastro joined 08:15 guifa2 joined
guifa2 Any ideas what might be causing a "Cannot invoke this object (REPR: Null; VMNull)" error when using 'callwith' ? Basically, I'm wrapping a method in a module A. Works great if I 'use A', but if I 'use B', were B is a module that uses A, I get that error 08:17
it shouldn't be a precompilation issue I don't think, because the wrapping is happening in INIT, not BEGIN 08:18
08:20 Doc_Holliwood joined 08:26 Sgeo left 08:52 dakkar joined 08:58 sno joined 09:01 Altai-man joined 09:09 sena_kun joined 09:10 Altai-man left
guifa2 hmmm, seems to be related to this github.com/Raku/old-issue-tracker/...xn-1395331 09:14
09:19 guifa2 left 09:30 manwar joined 09:39 sno left 09:51 fridim_ is now known as fridim 10:14 MasterDuke left, wamba joined 10:20 mahafyi left 11:01 sno joined 11:08 morayj joined 11:15 jmchael_ joined 11:27 Doc_Holliwood left 11:28 ufobat_ left 11:42 patrickb joined 11:53 frost-lab left 12:04 brtastic1 joined 12:05 dakkar left, dakkar joined 12:07 brtastic1 is now known as brtastic
lizmat .tell guifa2 as the original creator of `callwith`, I think it has been a mistake to make it (at least as it currently is implemented) 12:10
tellable6 lizmat, I'll pass your message to guifa2
lizmat .tell guifa2 so I would be in favour of deprecating callwith, hope this helps 12:11
tellable6 lizmat, I'll pass your message to guifa2
elcaro bisectable6: say [(^)] (0,1,2), (0,1,2), (0,1,2); 12:14
bisectable6 elcaro, Will bisect the whole range automagically because no endpoints were provided, hang tight
elcaro, Output on all releases: gist.github.com/ec0a747dd3e02e9ff0...6ac2b5b7f3 12:15
elcaro, Bisecting by output (old=2020.02.1 new=2020.05.1) because on both starting points the exit code is 0
elcaro, bisect log: gist.github.com/b37d81b8aad85e92a5...4384df9660
elcaro, (2020-03-03) github.com/rakudo/rakudo/commit/cf...a04909eb64
elcaro, Bisecting by output (old=2017.06 new=2017.07) because on both starting points the exit code is 0
12:15 ggoebel left
bisectable6 elcaro, bisect log: gist.github.com/51f0d6370242395f97...f738f5f962 12:16
elcaro, (2017-07-14) github.com/rakudo/rakudo/commit/0c...dcf273f6f8
elcaro, Output on all releases and bisected commits: gist.github.com/4f8a666ffd9dd6c386...a5bf74378e
elcaro lizmat: bug in the sym-diff operator. I will raise a GH bug 12:18
m: say [(^)] (0,1,2), (0,1,2), (0,1,2);
camelia Set(0)
elcaro m: say [(^)] (1,2,3), (1,2,3), (1,2,3);
camelia Set()
lizmat yup, that's a bug, thanks for the spot! 12:19
elcaro looks like maybe a truthy-ness check is confusing it
lizmat yup, looks like
12:29 manwar left 12:47 leont joined 13:04 patrickb left 13:08 Altai-man joined 13:11 sena_kun left 13:32 patrickb joined 13:34 Kaeipi left, Kaeipi joined 13:41 morayj left 13:51 morayj joined 14:13 rindolf left 14:16 rindolf joined, brtastic left, brtastic joined 14:18 rindolf left 14:19 rindolf joined 14:26 cpan-raku left 14:27 cpan-raku joined, cpan-raku left, cpan-raku joined 14:28 DarthGandalf joined
elcaro something I ran into with today's AOC... this works... 14:53
m: my $rule = any(0..5, 8..19); my @col = (12, 9, 1, 14); say all @col.map(* ~~ $rule);
camelia all(True, True, True, True)
elcaro or this...
m: my $rule = any(0..5, 8..19); my @col = (12, 9, 1, 14); say all @col X~~ $rule;
camelia all(True, True, True, True)
elcaro but why can't I just do `all(@col) ~~ $rule`. I just get False 14:54
m: say all(12, 9, 1, 14) ~~ any(0..5, 8..19);
camelia False
elcaro I'm pretty sure I've mixed `all` and `any` in simlilar ways in the past... but I could be wrong 14:55
it only gives True if all of values are in one of the ranges 14:56
m: say all(12, 9, 10, 14) ~~ any(0..5, 8..19); 14:57
camelia True
15:06 Sgeo joined 15:20 timlegge left 15:23 sjm_uk left 15:26 parabolize joined, ex_nihilo left
tbrowder .tell jmerelo see private msg from me 15:28
tellable6 tbrowder, I'll pass your message to jmerelo
15:36 xelxebar left, timlegge joined 15:37 timlegge left, timlegge joined 15:41 morayj left, morayj joined 15:45 mcmillhj joined
mcmillhj Is there a specific paste tool I should use for this channel? I know that #perl doesn't like when people paste code in the channel directly so just curious 15:49
moritz any pastebin will do 15:51
perryprog hastebin.com always works, I don't know if there's a better option though
moritz some prefer gist.github.com
mcmillhj awesome thank you, I am having some trouble using `all()` and was hoping someone could steer me in the right direction: topaz.github.io/paste/#XQAAAQBOAQA...Bx/BKATONV 15:52
moritz wtf? does that encode the full contents in the URL?
perryprog Apparently
moritz -> headdesk 15:53
perryprog Kinda ruins the point of a pastebin :P
Whoa, there's some kind of compression scheme going on there. Try deleting the end of the URL character by character, you get some crazy stuff. 15:54
mcmillhj yeah I think it does, my client shortened the url but sounds like that isn't the case for others ... I can post a gist if that would better
sorry about that
perryprog No worries; it's pretty amusing
15:56 ensamvarg3 left
mcmillhj here's the source if anyone is curious: github.com/topaz/paste 15:57
perryprog Huh, LZMA 15:58
mcmillhj `all(@buses.map: ($t + *.key) % *.value) == 0` seems to be the offending line, but I am not sure why 16:06
16:10 __jrjsmrtn__ left 16:14 __jrjsmrtn__ joined 16:20 camelCaser left 16:21 ccamel joined 16:25 mcmillhj left 16:28 mcmillhj joined 16:39 abraxxa left
dakkar m: my $code=*+*;say $code.signature # mcmillhj 16:44
camelia (;; $whatevercode_arg_1 is raw, $whatevercode_arg_2 is raw)
dakkar the code you're passing to `.map:` wants two arguments, because it contains `*` twice
leont Whatever star is great for simple cases, but does break down soon in more complicated cases 16:45
mcmillhj oh interesting, for some reason I thought * functioned like $_ 16:46
leont If you only use it once, yes
dakkar m: @things=(1=>2,3=>4);say @things.map: { .key ~ '=>' ~ .value }
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '@things' is not declared
at <tmp>:1
------> 3<BOL>7⏏5@things=(1=>2,3=>4);say @things.map: { .
dakkar m: my @things=(1=>2,3=>4);say @things.map: { .key ~ '=>' ~ .value }
camelia (1=>2 3=>4)
dakkar `* + *` is the essentially the same as `{ $^a + $^b }` or `-> $a,$b { $a + $b }` 16:47
mcmillhj ah ok, thanks for clearing that up code is working as expected now :) 16:49
16:50 m_athias left 16:55 patrickb left 17:09 sena_kun joined 17:11 Altai-man left, tejr left, tejr_ joined, tejr_ is now known as tejr 17:12 skids joined 17:27 mcmillhj left 17:34 dakkar left 17:35 domidumont left 17:46 aborazmeh joined, aborazmeh left, aborazmeh joined, tony-o left 17:55 tony-o joined 18:13 m_athias joined 18:23 wamba left 18:27 wamba joined 18:45 mscha joined
mscha m: my $s = 'hXllX'; $s ~~ s/X/$_/ for <e o>; say $s; 18:46
camelia hhhhXllXllXllXllX
mscha Why doesn't this DWIM?
m: my $s = 'hXllX'; for <e o> -> $c { $s ~~ s/X/$c/ }; say $s 18:52
camelia hello
mscha This works, but I don't understand what's wrong with my first attempt.
lizmat the $_ in the substitution is *not* the one you think 18:54
it's scope is different
*its 18:55
mscha Ah, thanks.
lizmat is what I remember from having seen this question before
s/foo/bar/ is really syntactic sugar for: 18:56
m: my $s = "hXllX"; $s .= subst("X",$_) for <e o>; dd $s
camelia Str $s = "hello"
mscha OK, makes sense. 18:57
19:18 toilie is now known as dudz, dudz is now known as Toilie 19:20 Manifest0 left, mowcat joined 19:22 skids left 19:23 Manifest0 joined 19:32 mscha left 19:34 Doc_Holliwood joined 19:42 jmerelo left 19:59 MasterDuke joined 20:04 rindolf left 20:21 k-man left 20:28 pecastro left
[Coke] if I have a standalone 'my rule ...' , how can I refer to that in a m// later? 20:34
<&rulename> doesn't seem right... 20:37
20:39 leont left 20:51 dataange` left
moritz it should work 21:01
m: my rule abc { ab. }; given 'xzabc' { say m/ <&abc> / } 21:02
camelia 「abc」
21:03 sena_kun left 21:04 ggoebel joined 21:22 k-man joined 21:32 kst joined 21:37 leont joined
[Coke] wonder what I was doing wrong. I've since made a grammar and am using that instead. :) 21:39
[Coke] apparently did advent of code in 2018 and skipped 2019 21:42
21:45 raiph joined 21:55 brtastic left
raiph .tell coldpress I barely know C or NativeCall so your gists were overwhelming, sorry. I was mostly just reacting to your question "Is it weird if my 2D-Array algo is > 2x slower with CArrays, compared to Raku Arrays?". The link I shared showed me helping a dev cut run time 21:59
other Raku code. My point being I'm confident it *could* be hugely sped up.
tellable6 raiph, I'll pass your message to coldpress
2020-12-13T02:28:21Z #raku <coldpress> raiph: Here are the details: without CArray: 0x0.st/iFHl.raku, with CArray: 0x0.st/iFH0.raku. I can't use Blobs because I need my CArray to be mutable
raiph .tell coldpress Hmm. That's not what I meant. I meant it all depends on the details, and that it *might* be possible to hugely speed it up. Also, I think creating a Minimal Reproducible Example you can come up with showing the speed disparity and posting that to StackOverflow would be a good way to go if you still would like informed responses to 22:03
your code.
tellable6 raiph, I'll pass your message to coldpress
22:10 aborazmeh left 22:11 morayj left 22:12 MasterDuke left 22:25 raiph left 22:45 aborazmeh joined, aborazmeh left, aborazmeh joined
mst fails to find the right piece of documentation to explain precedence for custom operators 22:50
22:53 wamba left
lizmat docs.raku.org/language/functions#i...is_tighter 22:54
mst aha, I'd looked at the operators page and the creating an operator one linked from there 22:55
thank you!
lizmat: docs.raku.org/language/optut maybe should link that or something? 22:57
lizmat possibly? github.com/Raku/doc/blob/master/CO...rting-bugs
mst lizmat: #3737 opened 23:00
lizmat thanks!
mst admittedly, with a paste of our conversation and a note to poke me here if that wasn't enough to make it obvious, but I figure that's still me volunteering ;) 23:01
23:04 skids joined 23:09 aluaces left
leont That doesn't document an important element of «is equiv» (and maybe the others?): it enables the right meta operators 23:10
Which is arguably a side-effect, but I don't know of any other way of achieving that
lizmat please add that to the issue
mst leont: I was also a bit confused because C (chain) precedence didn't seem explained anywhere 23:11
lizmat is off for some shuteye&
leont is equiv<===> will not only set the associativity, but also iffiness (which decides if a operator is negatable 23:15
23:16 MasterDuke joined
leont Actually, is assoc<chain> should probably also have that side effect, but currently doesn't 23:17
Then again, a custom infix operator should almost always have an explicit precedence declaration anyway 23:23
23:34 aborazmeh left
coldpress raiph: I see, thanks for the advice. Anyways, I'm starting to think CArrays are meant for external calls to C functions, and looping tightly over CArrays in Raku is expensive. But I'll come up with a minimal example to show this. 23:48
tellable6 coldpress, I'll pass your message to raiph