🦋 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:07 pecastro left 00:48 natrys left 00:55 japhb left, japhb_ joined 00:56 dotdotdot joined 01:11 kvw_5 joined 01:12 dataangel left, dataangel joined 01:14 kvw_5_ left 01:30 japhb_ left 01:32 japhb joined 01:34 lucasb left 01:48 aborazmeh joined, MasterDuke left
timotimo so, how do we take a heap snapshot at the time a "too many open files" error occurs and grab the paths to all objects that hold on to a file descriptor? 01:58
additionally / alternatively: grab a stack trace every time a file is opened and hang it off the object that holds on to the fd 01:59
another alternative, just dump stack traces whenever a file descriptor gets created period. figure it out post-mortem from printf to stderr from during the run 02:00
02:00 db48x joined 02:06 Manifest0 left, Manifest0 joined 02:27 agentzh joined 02:51 japhb left 02:53 japhb joined 03:16 neshpion left, DiffieHellman left 03:17 aborazmeh left, DiffieHellman joined 03:33 wingfold left 03:34 wingfold joined 03:38 wingfold left 03:53 wingfold joined 03:57 wingfold left 04:00 [Sno] joined 04:01 sno left 04:03 wingfold joined 04:08 sivoais joined 04:12 wingfold left 04:23 wingfold joined 04:28 wingfold left 04:31 brtastic joined 04:55 wingfold joined 05:02 wingfold left 05:13 parv joined 05:15 wingfold joined 05:20 wingfold left 05:31 wingfold joined 05:36 wingfold left 05:50 wingfold joined 05:57 jmerelo joined, wingfold left
jmerelo releasable6:status 05:58
releasable6 jmerelo, Next release will happen when it's ready. 3 blockers. 0 out of 178 commits logged (⚠ 1 warnings)
jmerelo, Details: gist.github.com/6b1774952ef803bd6c...dbda24a340
06:06 softmoth left 06:11 wingfold joined 06:16 wingfold left 06:18 parabolize left 06:28 wingfold joined 06:32 wingfold left 06:34 zxcvz joined 06:44 wingfold joined 06:48 wingfold left, |oLa|1 joined 06:51 |oLa| left 07:13 wingfold joined 07:15 stux|RC-only joined 07:17 wingfold left 07:20 stux|RC joined 07:23 stux|RC-only left 07:24 asymptotically joined 07:26 stux|RC left 07:28 stux|RC-only joined 07:30 wingfold joined 07:32 wamba joined 07:37 wingfold left 07:40 wingfold joined 07:45 wingfold left 07:47 stux|RC joined 07:57 wingfold joined, bdju left 08:01 wingfold left 08:08 linkable6 left 08:09 bdju joined 08:11 linkable6 joined 08:20 asymptotically left 08:25 hakonhagland joined 08:27 wingfold joined 08:28 MasterDuke joined 08:34 wingfold left 08:36 linkable6 left 08:38 linkable6 joined 08:41 wamba left 08:47 wingfold joined 08:50 wamba joined 08:52 wingfold left 08:55 aborazmeh joined 08:56 rindolf joined 09:07 wingfold joined 09:12 wingfold left 09:21 jmerelo left 09:26 wingfold joined 09:28 domidumont joined 09:30 wingfold left 09:31 Sgeo left 09:33 _jrjsmrtn joined 09:34 __jrjsmrtn__ left 09:43 wingfold joined 09:49 wingfold left 09:51 jmcgnh left 09:56 jmcgnh joined 10:04 natrys joined 10:07 patrickb joined 10:10 wingfold joined 10:18 wingfold left 10:27 wingfold joined 10:29 wingfold left 10:30 wingfold joined 10:44 brtastic left 11:03 patrickb left 11:08 [ptc] left 11:33 aborazmeh left 11:47 aborazmeh joined 11:57 hakonhagland left 12:04 asymptotically joined 12:08 wingfold left 12:09 wingfold joined 12:13 wingfold left 12:23 [Sno] left 12:27 wingfold joined 12:34 wingfold left 12:36 tejr left 12:37 tejr joined 12:46 wamba left 12:47 wingfold joined 12:51 wingfold left 13:02 wamba joined 13:03 wingfold joined 13:05 frost-lab joined 13:07 sno joined, wingfold left 13:16 sno left 13:17 kurahaupo_ left, wingfold joined, domidumont left 13:18 sno joined 13:21 b2gills left 13:27 kurahaupo joined 13:42 parabolize joined 13:47 MasterDuke left 13:51 wingfold left 13:53 wingfold joined 13:55 MasterDuke joined 14:00 wingfold left 14:01 wingfold joined, b2gills joined 14:19 lucasb joined 14:40 frost-lab left 14:45 softmoth joined 14:59 aborazmeh left 15:00 brtastic joined 15:09 pecastro joined 15:46 mowcat joined 15:48 mowcat left 15:53 parv left 16:07 kurahaupo left 16:08 kurahaupo joined 16:16 domidumont joined 16:34 domidumont left 16:36 rouking joined
rouking I need to build a tree structure where each layer alternates between one of four types. These types do share a common role, but the issue is I need to instantiate children inside the parent, which means using the actual class and not just the role, creating a circular dependency 16:37
I'm wondering if there's a better way to resolve this problem than moving everything into one file and creating stubs 16:38
16:48 brtastic left 16:59 wamba left 17:02 asymptotically left 17:03 swaggboi left, Sgeo joined 17:15 natrys left 17:16 domidumont joined 17:22 brtastic joined 17:25 domidumont left 17:26 domidumont joined 17:28 kybr joined
kybr what's a better way to do this? gather for ((1,2,3) X* (4,5,6)) -> $a, $b, $c { take ($a, $b, $c) } 17:29
guifa rouking: hmm, so one thing I’ve done in the past is to have the children “register” themselves in some way with the parent 17:33
m: say ((1,2,3) X* (4,5,6)).batch(3) 17:35
camelia ((4 5 6) (8 10 12) (12 15 18))
guifa kybr: ^^
kybr .batch ! thank you.
guifa or rotor, too 17:36
batch $x == rotor $x, :partial
kybr is there a more linear algebra way? just curious. this is fine.
guifa you mean by using the named variables? The only other thing I can think of off the top of my head would be 17:40
m: say gather for ((1,2,3) X* (4,5,6)) { take ($^a, $^b, $^c) };
camelia ((4 5 6) (8 10 12) (12 15 18))
kybr ahh, ok 17:41
guifa but if I misunderstood I can try to think of something else, I’m not a huge math geek but I can hack some decent stuff together in Raku ^_^ 17:43
kybr i was trying my hand at making a little tool for analyzing number series as they describe here: getpocket.com/explore/item/how-a-s...ket-newtab 17:47
my @arithmetic = 2, 2 + (3 * 1), 2 + (3 * 2) ... *;
my @geometric = 2 * 3**0, 2 * 3**1, 2 * 3**2 ... *;
(@arithmetic[^6] X+ @arithmetic[^6]).Set.elems; 17:48
(@arithmetic[^6] X* @arithmetic[^6]).Set.elems;
turns out i don't need to un-flatten the list coming out of the X. 17:49
17:50 domidumont left 18:04 zxcvz left
tadzik m: sub if ( \if ) { say if; }; my \if = 42; if( if) if if # twitter.com/b2gills/status/1383841825954287622 18:06
camelia 42
tadzik kek
m: sub if ( \if ) { say if; }; my \if = 42; if(if) if if # hmm 18:07
camelia 42
tadzik m: sub if ( \if ) { say if; }; my \if = 42; if if if if # hmm!
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3if ) { say if; }; my \if = 42; if if if 7⏏5if # hmm!
tadzik aww :(
b2gills It breaks if you add any spaces where there isn't any
m: sub if ( \if ) { say if; }; my \if = 42; if( if ) if if
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in argument list; couldn't find final ')' (corresponding starter was at line 1)
at <tmp>:1
------> 3y if; }; my \if = 42; if( if 7⏏5) if if
tadzik right
b2gills m: sub if ( \if ) { say if ; }; my \if = 42; if( if) if if
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of bare "say". In Raku please use: .say if you meant
to call it as a method on $_, or use an explicit invocant or argument,
or use &say to refer to the function as a noun.
at <tmp…
tadzik still, fun :)
18:20 mowcat joined 18:43 Geth left 19:05 mowcat left 19:07 rir joined 19:18 rir left 19:39 patrickb joined 19:45 mowcat joined 19:50 wamba joined 19:59 asymptotically joined 20:19 patrickb left 20:23 swaggboi joined
samcv Hi everyone. Just wanted to announce that the PaperCall for the 2021 Perl and Raku Conference is open. So far we only have 1 Raku talk, and we would really love if we got more submissions from the Raku community. Thanks www.papercall.io/tprcic21 20:35
kybr link to an example of defining my own hyperoperator?
codesect` If I have some non-Seq Iterable and call .grep/.map/etc, is there any way to turn it back into whatever type it was before? 20:36
e.g., if I know it was an Array, I can call .Array
(same if I knew it was a List, I could call .List). But what if I don't know? Is there a "collect this back to what it was" method I'm missing somehow? Or, alternately, is there a way to grep/map over a List/Array without losing their current type? 20:41
ugexe m: my List $a := (1,2,3,4); my Array $b := [5,6,7,8]; say $a.grep(*.so)."{$a.^name}"().WHAT; say $b.grep(*.so)."{$b.^name}"().WHAT; # probably the best you can do
japhb codesect`: .= grep?
camelia (List)
codesect` ugexe: that's what I currently have, but it felt a little gross so I thought I'd ask. (well, actually, what I cave is even worse, because I had "$a.WHAT.raku()"() - at least your suggestion avoids the second call) 20:44
ugexe for it to just turn back into the original type would imply everything that can be iterated over knows how to create a collection of itself 20:45
codesect` japhb: that's a good idea in general. In the particular instance I'm dealing with, I don't want to assign to the variable 20:46
ugexe List is immutable
codesect` also that :) 20:47
japhb Heh 20:48
codesect` ugexe: yeah, fair point re: Iterables not knowing how to create collections of themselves. I guess I was imagining it being possible in a single-line call; with e.g., `my List $a = (1, 2, 3); my $b.grep(* %% 2).collect;` it doesn't seem like an _impossibility_ for $b to know that it should collect into a List without positionals having to know all the time 20:51
but it'd definitely require some special casing, and I can see why we don't 20:52
ugexe i dont see how $b would communicate its original type through the underlying sequence
i would expect that would require something like perls 20:53
'wantarray' which is impossible in raku afaik
codesect` I guess I was imagining some sort of special-casing of grep/etc so that it wouldn't return a Seq in some situations. But that'd certainly be harry - and maybe not even possible 20:55
El_Che wasn't wantarray the reason of the perljam rant at the CCC?
codesect` As I said, I can see why we don't
m: sub f(\x) { say x.WHAT }; f(do for (1, 2).List {$_}); f(do for [1, 2].Array {$_}) 21:01
camelia (List)
codesect` I guess I _am_ kind of surprised that there's not a way to have the second of those calls build itself back into an Array - many of the same points apply, of course, in that it'd still need to "remember" the pre-iteration type 21:03
but it somehow feels like it should be easier to do so when there aren't any Seqs involved. But I'm not sure why 21:04
ugexe m: my List $a := (1,2,3,4); my Array $b := [5,6,7,8]; my $aa = $a.WHAT.new: $a.grep(*.so); my $bb = $b.WHAT.new: $b.grep(*.so); say $aa.WHAT; say $bb.WHAT 21:13
camelia (List)
ugexe this is at least slightly less worse 21:14
21:17 asymptotically left
codesect` oh, that is a bit better 21:18
21:18 oneeggeach joined 21:26 codesect` left 21:27 codesections joined 21:34 aborazmeh joined 21:42 rindolf left, wingfold left, wingfold joined 21:43 wingfold left 21:44 wingfold joined 21:45 wingfold left, wingfold joined 21:46 wingfold_ joined, wingfold left 21:47 wingfold joined, wingfold_ left, wingfold left, wingfold joined 21:48 wingfold_ joined, wingfold left 21:49 wingfold joined, wingfold_ left 21:50 wingfold left, wingfold joined 21:51 wingfold left, wingfold joined 22:03 amber1 joined 22:05 amber1 is now known as kiti_nomad, kiti_nomad left 22:13 oneeggeach left 22:14 dataange` joined, dataangel left
guifa kybr: it’s not possible to create your own hyper operator. At least not doing anything simple, you’d need to create a slang in order to process the base operator, although the slang itself might not be toooo hard to do 22:23
22:28 aborazmeh left
guifa s/process/parse 22:28
22:42 parv joined, wamba left 22:43 kybr left 22:44 parvXirc joined, parvx joined 22:45 parvx_ joined, aborazmeh joined 22:47 parvx_ left, parv left 22:49 parvXirc left, parvx left 22:50 parv joined 23:02 pecastro left 23:06 mowcat left 23:12 mahafyi left 23:18 brtastic left 23:22 aborazmeh left