[00:10] *** rbt left [00:11] *** rbt joined [00:37] *** xinming_ left [00:38] *** xinming_ joined [00:39] *** oddp left [00:55] *** Altai-man_ joined [00:57] *** sena_kun left [01:07] *** molaf left [01:19] *** molaf joined [02:01] *** Manifest0 left [02:03] *** Manifest0 joined [02:05] *** xinming_ left [02:05] *** xinming_ joined [02:12] *** Cabanossi left [02:21] *** Cabanossi joined [02:55] *** sena_kun joined [02:57] *** Altai-man_ left [03:57] *** nativecallable6 left [03:57] *** committable6 left [03:57] *** statisfiable6 left [03:57] *** bloatable6 left [03:57] *** squashable6 left [03:57] *** notable6 left [03:57] *** bisectable6 left [03:57] *** tellable6 left [03:57] *** evalable6 left [03:57] *** linkable6 left [03:57] *** shareable6 left [03:57] *** greppable6 left [03:57] *** reportable6 left [03:57] *** sourceable6 left [03:57] *** coverable6 left [03:57] *** releasable6 left [03:57] *** unicodable6 left [03:57] *** quotable6 left [03:57] *** nativecallable6 joined [03:57] *** notable6 joined [03:58] *** sourceable6 joined [03:58] *** coverable6 joined [03:58] *** releasable6 joined [03:58] *** evalable6 joined [03:58] *** bisectable6 joined [03:58] *** squashable6 joined [03:58] *** reportable6 joined [03:59] *** shareable6 joined [03:59] *** bloatable6 joined [03:59] *** unicodable6 joined [03:59] *** tellable6 joined [03:59] *** quotable6 joined [03:59] *** greppable6 joined [03:59] *** committable6 joined [03:59] *** linkable6 joined [04:00] *** statisfiable6 joined [04:29] *** tejr left [04:31] *** tejr joined [04:40] *** ShimmerFairy left [04:51] *** OpenZen left [04:55] *** Altai-man_ joined [04:57] *** sena_kun left [05:29] *** wamba joined [05:35] *** brtastic joined [05:35] *** molaf left [05:46] *** wamba left [05:48] *** nexysno joined [05:56] *** brtastic left [06:03] *** cpan-raku left [06:05] *** cpan-raku joined [06:05] *** cpan-raku left [06:05] *** cpan-raku joined [06:13] *** aindilis left [06:14] *** abraxxa joined [06:19] *** abraxxa left [06:19] *** kent\n left [06:20] *** nexysno left [06:20] *** abraxxa joined [06:20] *** kent\n joined [06:26] *** wamba joined [06:28] New module released to CPAN! LogP6 (1.6.2) by 03ATROXAPER [06:33] *** brtastic joined [06:36] *** aborazmeh joined [06:36] *** aborazmeh left [06:36] *** aborazmeh joined [06:38] *** sarna joined [06:45] *** brtastic left [06:53] *** vike left [06:55] *** rindolf joined [06:56] *** sena_kun joined [06:57] *** Altai-man_ left [07:00] *** brtastic joined [07:08] *** Manifest0 left [07:10] *** Manifest0 joined [07:13] *** kensanata joined [07:23] *** sno left [07:24] *** dakkar joined [07:39] *** kent\n left [07:40] *** aindilis joined [07:42] *** sno joined [07:44] *** xinming_ left [07:45] *** xinming_ joined [08:01] *** jmerelo joined [08:06] *** samebchase-1 is now known as samebchase- [08:08] *** aborazmeh left [08:18] ¦ problem-solving: Altai-man assigned to jnthn Issue Current Rakudo (possibly MoarVM as well) development process hinders releasing https://github.com/Raku/problem-solving/issues/206 [08:22] *** Sgeo left [08:28] *** wamba left [08:28] *** aindilis left [08:29] *** pecastro joined [08:31] *** wamba joined [08:34] *** jmerelo left [08:55] *** Altai-man_ joined [08:55] *** aindilis joined [08:57] *** sena_kun left [09:06] ¦ problem-solving: lizmat unassigned from jnthn Issue Current Rakudo (possibly MoarVM as well) development process hinders releasing https://github.com/Raku/problem-solving/issues/206 [09:13] *** jjatria left [09:13] *** antoniogamiz joined [09:13] o/ [09:14] can node or perl be included as dependencies in the META6.json file? [09:14] *** wamba left [09:15] antoniogamiz, you mean the intepreter itself? [09:15] antoniogamiz, I guess you can start from https://github.com/niner/Inline-Perl5/blob/master/META6.json#L15 [09:16] *** jjatria joined [09:16] *** jmerelo joined [09:16] *** wamba joined [09:16] Altai-man_, I will check that [09:17] mm, but those are ecosystem modules [09:17] *** leont joined [09:18] "perl:from", [09:18] ? [09:18] *** wamba left [09:18] *** aindilis left [09:19] Altai-man_, I think that's it, thanks [09:22] *** jmerelo left [09:41] *** fluca1978 joined [09:43] hi, I'm a little more confused than the compiler: having a function defined as 'sub is-power( Int:D :$what = 100, Int:D :$base = 10 ){...}', when I invoke it as 'my $power = is-power: :what( $N ), :base( $_ );' I got 'Confused my $power = is-power:⏏ :what( $N ), :base( $_ ); [09:43] expecting any of: [09:43] colon pair' [09:44] isn't the colon-at-the-end caling style only for methods? /me also confused [09:45] dakkar: it could be, since 'is-power( :what( $N ), :base( $_ ) );' works. Thanks! [09:46] and of course you can omit the parentheses altogether [09:46] *** oddp joined [09:48] *** jmerelo joined [09:49] *** aindilis joined [09:54] *** vike joined [09:58] *** fluca1978 left [10:03] *** ShimmerFairy joined [10:26] *** antoniogamiz left [10:30] *** aindilis left [10:32] *** ShimmerFairy left [10:33] *** ShimmerFairy joined [10:33] join #raku-dev [10:33] / ? [10:34] yep [10:39] *** stoned75 left [10:54] dakkar: it's actually meant for calling operators as in %foo:exists [10:55] I was talking about `$object.method: @args`, not the colonpair [10:56] *** sena_kun joined [10:56] lolibloggedalittle: https://gfldex.wordpress.com/2020/06/22/wat-freeness/ [10:56] *** wamba joined [10:57] *** Altai-man_ left [11:06] *** stoned75 joined [11:08] *** tejr left [11:09] *** aindilis joined [11:09] *** tejr joined [11:10] *** zacts joined [11:15] *** jjmerelo joined [11:19] I would like to add that I feel a lot less negative as this blog post might make it sound. [11:19] gfldex: pointer? [11:19] https://gfldex.wordpress.com/2020/06/22/wat-freeness/ [11:30] *** aindilis left [11:35] *** wamba left [11:39] gfldex: not too angry. Seems about OK. [11:47] much nicer critique than we get on the mailing list [11:50] *** jjmerelo left [11:54] *** aindilis joined [11:55] ¦ doc: f5e1bd3224 | (JJ Merelo)++ | doc/Type/Rational.pod6 [11:55] ¦ doc: Adds Rat.Bridge, refs #2632 [11:55] ¦ doc: review: https://github.com/Raku/doc/commit/f5e1bd3224 [11:55] ¦ doc: 4edb7e5fbe | (JJ Merelo)++ | doc/Type/Int.pod6 [11:55] ¦ doc: Adds Int.Bridge, refs #2632 [11:55] ¦ doc: review: https://github.com/Raku/doc/commit/4edb7e5fbe [11:55] ¦ doc: 2ae243b547 | (JJ Merelo)++ | doc/Type/Num.pod6 [11:55] ¦ doc: Adds Num.Bridge, refs #2632 [11:55] Link: https://docs.raku.org/type/Rational [11:55] ¦ doc: review: https://github.com/Raku/doc/commit/2ae243b547 [11:55] DOC#2632 [open]: https://github.com/Raku/doc/issues/2632 [Hacktoberfest][RFE][big][docs][good first issue][help wanted][new][⚠ Top Priority ⚠] Checklist for 6.d [11:55] Link: https://docs.raku.org/type/Int [11:55] Link: https://docs.raku.org/type/Num [11:57] m: class C is Real { method Bridge { return self*2 } }; my C $num = 3.Num; say $num [11:57] rakudo-moar f470b544d: OUTPUT: «Type check failed in assignment to $num; expected C but got Num (3e0)␤ in block at line 1␤␤» [11:57] m: class C is Real { method Bridge { return self*2 } }; my $num = .new(3) ; say $num [11:57] rakudo-moar f470b544d: OUTPUT: «Default constructor for 'Any' only takes named arguments␤ in block at line 1␤␤» [11:58] m: class C is Real { has Real $.r; method Bridge { return $!r*2 } }; my C $num = .new(:3r) ; say $num + 1e0 [11:58] rakudo-moar f470b544d: OUTPUT: «Type check failed in assignment to $num; expected C but got Any (Any.new)␤ in block at line 1␤␤» [11:59] m: class C is Real { has Real $.r; method Bridge { return $!r*2 } }; my $num = C.new(:3r) ; say $num + 1e0 [11:59] rakudo-moar f470b544d: OUTPUT: «7␤» [12:09] ¦ doc: f00ec04769 | (JJ Merelo)++ | doc/Type/independent-routines.pod6 [12:09] ¦ doc: "say" guaranteed to call .gist #2632 [12:09] ¦ doc: review: https://github.com/Raku/doc/commit/f00ec04769 [12:09] ¦ doc: 8307183ab0 | (JJ Merelo)++ | doc/Type/independent-routines.pod6 [12:09] ¦ doc: "note" guaranteed to call .gist #2632 [12:09] ¦ doc: review: https://github.com/Raku/doc/commit/8307183ab0 [12:09] Link: https://docs.raku.org/type/independent-routines [12:09] DOC#2632 [open]: https://github.com/Raku/doc/issues/2632 [Hacktoberfest][RFE][big][docs][good first issue][help wanted][new][⚠ Top Priority ⚠] Checklist for 6.d [12:11] Only 8 to go... https://github.com/Raku/doc/issues/2632 And we'll be over documenting new 6.d features... [12:11] is there a place where plush Camelia is readily awailable? [12:12] gfldex: you can try and ask lizmat... [12:39] *** xinming_ left [12:39] *** xinming_ joined [12:45] *** wamba joined [12:55] *** zacts left [12:55] *** Altai-man_ joined [12:57] *** sena_kun left [13:28] *** soursBot joined [13:33] Can anyone try installing JSON::Fast? I tried installing Pod::To::HTML and it died on that package due to a "double free or corruption (fastop)" [13:33] ShimmerFairy, is it reliable? [13:34] Yeah, tried installing Pod::To::HTML twice [13:34] Testing [OK] for JSON::Fast:ver<0.10> [13:36] it died during testing specifically, I should mention [13:37] * [Coke] realizes he hasn't seen camelia in a while, freaks out a bit--- oh, there she is. [13:40] ShimmerFairy: installs ok for me on HEAD on MacOS [13:41] *** aindilis left [13:42] I'll see if I can get any more detailed info. (I don't think my rakudo is very out of date, my first guess is that maybe my gcc or some library is too new.) [13:45] *** vike left [13:45] ShimmerFairy: it *does* remind me of a bug that was fixed about a week before MoarVM's release [13:45] Ah, that could well be it then. [13:45] that was introduced about 10 days before that (if I remember correctly) [13:46] so if your version is from that timeframe, then yes [13:47] "This is MoarVM version 2020.05-77-gb9fa480ad built with JIT support" [13:52] *** dataangel left [13:55] ShimmerFairy: probably :-) [13:55] is .hyper eager? [13:59] gfldex: yeah, think so [13:59] *** vike joined [14:06] *** moony joined [14:07] what's the quickest way to, say, fill an array with 1024 0s [14:11] m: my @a = 0 xx 1024; say @a.elems; [14:11] rakudo-moar f470b544d: OUTPUT: «1024␤» [14:11] moony: ^ [14:12] vrurg: possible to one-liner that? (thanks btw) [14:12] need it as am argument [14:12] <[Coke]> ... I thought he did just one liner it [14:12] as in, put it into an argument [14:13] <[Coke]> then don't assign it if you just need to create & pass it. [14:13] sorry, i'm still trying to remember how this all works :p [14:13] <[Coke]> but even if you did need to assign it, you could foo( (my @a = 0 xx 1024), $thing) [14:13] m: sub f(@a) { say @a.elems }; f(0 xx 1024); [14:13] rakudo-moar f470b544d: OUTPUT: «1024␤» [14:14] moony: everything is an object. xx generates a List instance. You then pass it whenever you may need it. [14:14] <[Coke]> you could also create an array that defaults to 0 for values instead (not the thing you asked for, but similar) [14:14] *** lucasb joined [14:14] Whenever and wherever. [14:15] [Coke]: default is better be avoided until well understood. Could cause big confusions sometimes. [14:17] m: my @a is default(0); say @a[875769] # an infinite number of 0's in an array [14:17] rakudo-moar f470b544d: OUTPUT: «0␤» [14:17] moony ^^ [14:17] *** patrickb joined [14:18] neat. not what i'm after tho, thanks [14:19] *** aluaces left [14:23] *** skids joined [14:29] *** patrickb left [14:32] *** Kaeipi left [14:33] and yet another Rakudo Weekly News hits the Net: https://rakudoweekly.blog/2020/06/22/2020-25-on-time/ [14:33] yay! [14:33] *** Kaeipi joined [14:33] lizmat++ [14:34] *** sarna left [14:38] *** zacts joined [14:38] lizmat: did you mean to write (==) in the section about ≡ ? [14:39] yes [14:39] maybe reverse the order ? [14:40] m: dd (1,2,3) (==) (3,1,2) [14:40] rakudo-moar f470b544d: OUTPUT: «Bool::True␤» [14:40] m: my %h = a => 42, b => 666; dd (==) %h [14:40] rakudo-moar f470b544d: OUTPUT: «Bool::True␤» [14:41] *** xinming_ left [14:42] ok. My failing memory says says something about ≡ being ===, but I might be confused [14:43] *** xinming_ joined [14:45] well... a === b is basically a.WHICH eq b.WHICH, which is the same semantics that QuantHashes use [14:45] but we didn't have a unicode equivalent for that [14:46] since this is early in the release, still up for an alternative [14:46] but the PR sat there for 25 days without any comments... [14:47] a (==) b is basically the same as a.Set eqv b.Set [14:47] *** soursBot left [14:47] but with short-circuiting [14:47] *** soursBot joined [14:48] so in the case if " (==) %h" it never builds a Set object anywhere :-) [14:51] *** krunen left [14:55] *** sena_kun joined [14:57] *** Altai-man_ left [15:00] *** OpenZen joined [15:05] *** krunen joined [15:15] *** brtastic left [15:15] *** kensanata left [15:15] *** brtastic joined [15:18] *** krunen left [15:21] *** krunen joined [15:21] *** brtastic left [15:43] Does nxadm hang out here? If so, I'd really like a rakudo-pkg with 2020.06 :) [15:43] 2020-06-21T17:43:23Z #raku rbt I recall having the same issues with IO::Socket::Async::SSL even on older Rakudo versions, when I test modules with RakuDist [15:43] *** __jrjsmrtn__ joined [15:44] *** _jrjsmrtn left [15:47] *** brtastic joined [15:48] *** aindilis joined [15:53] *** zacts left [15:58] *** zacts joined [16:00] hi [16:00] I am building it atm [16:01] there were some problems with older gcc that I am patching [16:01] ^-- rbt [16:01] everthing builds except debian 8 and centos 7 [16:02] *** gordonfish joined [16:02] * sena_kun is sure there will be 2020.06.1 [16:03] *** jmerelo left [16:03] Awesome. Thanks! [16:04] I moved relocatable builds for i386 and amd64 to ubuntu 16.04, if there is a dot release Iĺl lower it to 14.04 [16:09] *** zacts left [16:21] *** Sgeo joined [16:35] *** aluaces joined [16:40] *** brtastic left [16:42] *** dakkar left [16:43] When would one use a code block in a .grep() and when would one not? For example when doing a grep on strings and wanting to match those strings against a regex. [16:48] rypervenche, if can, just go for a regex, if need something more complex or wordy, then a block. [16:48] If you were writing some kind of AI to play hangman, you might start with my @possibles = @dict.grep({$_.chars == $spaces}) [16:53] rypervenche: if you need to refer to $_ multiple times. e.g., grep({$_ .chars == 3 && $_.starts-with("a")}). you can't use `*` multiple times [16:53] *** wamba left [16:53] *** wamba1 joined [16:53] *** stoned75 left [16:53] Ahh ok, so for there the code block would be necessary. I see. Thanks. [16:53] *** melezhik joined [16:55] *** Altai-man_ joined [16:55] *** vike left [16:57] *** sena_kun left [17:10] <[Coke]> easy way to get combinations from a list of values that allows duplicates? so given 0,1,2,3, asking for combinations of 2 at a time, allow 0,1 but also 1,1 ? [17:11] <[Coke]> is it crossing .combinations(1) with the original list and adding .combinations(2) ? [17:13] [Coke], permutations? [17:14] hm, not really [17:18] *** vike joined [17:24] * [Coke] finds https://rosettacode.org/wiki/Combinations_with_repetitions#Raku [17:34] *** stoned75 joined [17:45] Yeah, ruby/crystal has repeated_combinations for that. Would an optional named :repeated be a valid addition to combinations? [17:46] The native solution takes one line of code, hardly something to add to the core if you ask me. [17:46] Why do we have .sum then? [17:48] No idea. I don't see "We have X in core" as an argument for "We should also add A, B, C, D, E...". It is not like it is a "all or nothing" case. [17:55] Isn't the fact that two competent programmers needed to pause and think about how to implement combination repetition at the very least an indication that this might be a bit more involved and thus justified for considering an inclusion for the smooth brains like me not quite comfortable with that linked cryptic one-liner? [17:58] *** soursBot left [18:00] Well, knowledge about :repeated argument does not appear in one's head immediately it is added. I mean, IDE can suggest you the option, but not everyone like that. So you still have to look it up to use and there is not so much difference if you are looking up an argument or the code to do the same. Looking up a solution is as cheap as looking up an option, but having huge core is not free for implementations, the users pay the price with memory and [18:00] such. I am just a grumpy old man, though, so don't pay me any attention, but that's how it feels. [18:01] *** kensanata joined [18:02] *** soursBot joined [18:05] You had to pause and think about it, because you don't have even a hazy solution in your memory for what to write/where to search. How many months (or years) ago this task was needed previous time? [18:06] "Looking up a solution is as cheap as looking up an option" - But this shifts the maintenance burden to the users who have to, two months down the line, pause once again after encountering: for [X](@S xx $k).unique(as => *.sort.cache, with => &[eqv]). "Isn't perl/raku about shifting that burden to the language/stdlib implementors? [18:07] *** wamba1 left [18:12] *** stoned75 left [18:13] *** cpan-raku left [18:14] *** abraxxa left [18:14] *** cpan-raku joined [18:14] *** cpan-raku left [18:14] *** cpan-raku joined [18:15] *** abraxxa joined [18:21] *** Altai-man_ left [18:22] <[Coke]> In general, happy to have stuff like this live in a module to start. [18:22] <[Coke]> (and the it's core worthiness can be decided later) [18:22] <[Coke]> *then its [18:22] *** stoned75 joined [18:22] *** sena_kun joined [18:23] *** sauvin left [18:25] *** brtastic joined [18:26] *** kensanata left [18:31] *** kensanata joined [18:39] Is there perhaps a better way of doing this script that doesn't make me run out of RAM? I'm currently wanting to create an array of about 18 million elements. Should I be writing it to a file/database instead, or is it possible to do this in memory? Also, I also realize that my for loops are a bottleneck. https://gist.github.com/rypervenche/9e1dd45f7c757479950a72fc79dac4e0 [18:41] rypervenche, can you try using native int and str? [18:44] Same thing. I haven't let it hit my 16G limit, but I'm assuming it won't slow down. [18:49] what happens if you change my Link @links/my Str @sentences-grepped/etc. to my Seq $links/etc.? [18:51] you would need to find some other way to build them than with .append though [18:51] Oh, I guess I never let the RAM get too high. It seems to hover around 11G of RAM. My bad. :/ [18:51] Will rakudo run on the new apple? [18:52] SmokeMachine: probably, but as it stands, without a JIT [18:53] and assuming libuv will be ported [18:54] I hope it will [18:55] *** Altai-man_ joined [18:57] *** sena_kun left [18:57] *** kensanata left [19:02] rypervenche: if you're looking to speed things up and don't mind making the code a little uglier, `.grep: *.contains(/:r \t ('eng'|'cmn') \t /);` would be faster as `.grep: {$_.contains("\teng\t") or $_.contains("\tcmn\t")};`. i.e., regexes are slow right now [19:03] MasterDuke: Ah yes, I moved to .contains for that reason, but yeah. I wasn't sure how to get past the regex. Thanks :) [19:03] probably won't do anything for memory use [19:17] It seems that my .split("\t") on a list my have been the cause. I've change it to doing the split on the variable inside the loop instead. [19:19] Yep, that worked, although that first loop took about 10 minutes to complete >< [19:44] *** brtastic left [19:44] *** mowcat joined [19:53] *** melezhik left [19:54] *** lucasb left [20:02] *** soursBot left [20:05] *** xinming_ left [20:06] *** xinming_ joined [20:15] *** Altai-man_ left [20:16] What is the preferred method of finding memory leaks in Raku? [20:18] *** sena_kun joined [20:18] *** sena_kun left [20:18] *** sena_kun joined [20:30] *** sena_kun left [20:30] *** MasterDuke left [20:31] *** sena_kun joined [20:31] *** sena_kun left [20:31] *** sena_kun joined [20:50] *** molaf joined [20:55] *** Altai-man_ joined [20:57] *** sena_kun left [21:01] ¦ ecosystem/finanalyst-patch-1: 8e9417bfb6 | (Richard Hainsworth)++ (committed using GitHub Web editor) | META.list [21:01] ¦ ecosystem/finanalyst-patch-1: Add Pod::From::Cache to ecosystem [21:01] ¦ ecosystem/finanalyst-patch-1: [21:01] ¦ ecosystem/finanalyst-patch-1: Pod::From::Cache was written to replace Pod::To::Cached, which tries to do too much and has some problems. PFC only relies on standard Precomp Modules and stable API. Dependence on JSON::Fast is removed. Enumerates files with given extensions in a directory, eg. pod6, pm6, rakumod, under docs/ and if a file has been changed since last time cache was instantiated, adds new version. Returns compiled Pod from that file. [21:01] ¦ ecosystem/finanalyst-patch-1: review: https://github.com/Raku/ecosystem/commit/8e9417bfb6 [21:19] *** MasterDuke joined [21:21] *** aborazmeh joined [21:21] *** aborazmeh left [21:21] *** aborazmeh joined [21:22] Whoa. Talk about a difference between making something work and needing to optimize it [21:22] the is slow as molasses, because it’s basically several thousand strings in an array plopped into a regex token [21:25] Nasrudin: you can do `--profile=foo.mvmheap` to get a heap snapshot, which will give you info at the raku level. if it's moarvm that's leaking, valgrind and heaptrack have both proved useful before [21:26] not really familiar with raku's internals enough to benefit from that... I was looking for something at the raku script level to see if it was my bad first [21:27] Thanks for the response though! :D [21:27] even a regular profile could prove helpful if you look at the allocations tab [21:28] Nasrudin: is it a simple enough script we can take a look at? We might be able to help out there too [21:29] Oh, also more random… is there any danger in pulling submodules out and putting them in new github projects? For one that change the name, it seems simple enough: add in a warning/die under the old project to encourage changing the reference or even passing through the newer one. But for ones with the same name, I dunno. Thoughts? [21:30] It's not so simple. It's using Matrix::Bot and Matrix::Client. I'd be happy to provide a redacted pastebin (it's got credentials in it that should not be public) if you are willing but I warn you that I did some "architecture" on it trying to learn more about Raku. [21:31] wouldn't be the first time that there were similar memory leaks -- didn't we have to reboot the IRC bridge daily for a while because it wouldn't stop leaking memory? [21:39] *** rindolf left [21:42] *** MasterDuke left [21:47] *** melezhik joined [21:54] *** MasterDuke joined [22:03] *** sena_kun joined [22:05] *** Altai-man_ left [22:10] *** syntaxman left [22:10] *** syntaxman joined [22:12] *** Doc_Holliwood joined [22:12] m: say 5 div -2 [22:12] rakudo-moar f470b544d: OUTPUT: «-3␤» [22:12] that's counter intuitive as hell [22:14] *** syntaxman left [22:14] *** syntaxman joined [22:29] m: say 6 div 3 [22:29] oh yeah. discord. lmao [22:29] that's not counterintuitive to me [22:30] Does anyone have any suggestions for getting this loop to work on multiple cores? I changed it to a map, but I get a "double free or corruption (!prev)", I'm guessing from a race condition when trying to .append to the array. Any ideas on how to make this work? Or something similar? https://gist.github.com/rypervenche/fba3f62332a01311ea653060d709f217 [22:31] it's the solution to m = bq + r where d > 0. that's just the mathematical definition for Euclidian division Doc_Holliwood [22:31] ** r > 0 [22:32] rypervenche: you can create the @links list directly by returning your Link.new call from map, instead of appending like that [22:33] well i'd expect 2 [22:33] I thought we got evalable6 to work over the bridge once... [22:33] or -2 rather [22:33] *** syntaxman left [22:34] Doc_Holliwood: 5 div -2 is asking for the solution q where 5 = (-2)q + r with r > 0 [22:34] @DataKinds the bridge name was hardcoded and changed, feel free to PR :-) https://github.com/Raku/whateverable/blob/master/lib/Whateverable/Discordable.pm6#L27 [22:34] wait -- you're right [22:34] wait no [22:35] now I'm confused haha [22:37] hmm evalable doesn't work over the bridge? why? [22:37] AlexDaniel`: the nick is hardcoded to an old bridge [22:37] discord6 it was called [22:37] okay, fixing [22:38] rypervenche: the map already returns a list of results from your block [22:38] tyil: which nickname does raku-bridge take if raku-bridge is taken? [22:39] AlexDaniel`, I'll pass your message to tyil [22:39] rypervenche: so you could literally just $links-file.IO.lines.race(...).map({Link.new(...) }) and store the result in @links [22:39] @links = $links-file.IO.………; [22:40] ¦ whateverable: 78011e826a | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files [22:40] ¦ whateverable: Fix handling of bridged messages [22:40] ¦ whateverable: [22:40] ¦ whateverable: The name of the bot changed, so we have to adjust it here too. [22:40] ¦ whateverable: review: https://github.com/Raku/whateverable/commit/78011e826a [22:40] I guess it's raku-bridge1 [22:41] *** evalable6 left [22:41] *** bisectable6 left [22:41] I've been trying to go to bed for an hour but the world does not stand sufficiently still. Thanks for the quick fix, AlexDaniel` :) [22:42] haha, sorry for bringing this bug up at such an inopportune time 🙂 [22:42] DataKinds: can you try again please? [22:42] ah hold on the bot is not back yet… [22:43] *** committable6 left [22:43] *** unicodable6 left [22:43] lmk when [22:44] *** committable6 joined [22:45] *** xelxebar left [22:47] rypervenche: fwiw, it's not safe to modify an array or hash from multiple threads (e.g., your `.append` inside the `.race`) [22:47] *** xelxebar joined [22:47] *** bisectable6 joined [22:48] *** evalable6 joined [22:49] m: given "Hello, Discord!" { .say } [22:49] DataKinds, rakudo-moar f470b544d: OUTPUT: «Hello, Discord!␤» [22:49] ^^ [22:49] thanks :) [22:50] almost all bots should work over the discord bridge, although some will only work after they restart by themselves some time soon [22:50] docs here: https://github.com/Raku/whateverable/wiki [22:51] *** benchable6 joined [22:51] thank you, evalable! [22:51] hmmmm [22:51] thank you, evalable6? [22:51] AlexDaniel`, It's my pleasure! [22:55] *** Altai-man_ joined [22:57] *** aborazmeh left [22:58] *** sena_kun left [23:11] *** matiasli1a joined [23:11] *** matiasli1a left [23:12] DataKinds: timotimo: MasterDuke: Ahhh, thanks all of you. That did the trick. From 660 seconds to 160, haha. [23:13] *** pecastro left [23:15] *** rbt left [23:15] *** rbt joined [23:19] *** pepe70 joined [23:22] *** dataangel joined [23:36] phew. how many lines are that? [23:37] *** Altai-man_ left [23:37] *** Altai-man_ joined [23:38] Almost 18 million. [23:41] i wonder if perhaps the batch size of 1024 is like 10x or 100x too small for optimal performance [23:52] Oh. I don't know. I can test it. Right now I'm adding promises to the mix, since I've got two files that I'm doing this too, but it's actually taking a bit longer with them.