🦋 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.
rypervenche How could I go about making this hyperthreaded? I've seen jnthn's video where he does something similar, but he did it with Proc::Async, and this isn't a Proc and I'm unsure how to speed up my program: gist.github.com/rypervenche/21d5dc...74ac6dc4a5 00:28
thundergnat rypervenche, Where is data coming from? In general, you can't .push onto an array in a hyperthreaded routine 00:32
If you know how large data is though, you can cycle through the array indicies and modify them in a hyper. 00:33
rypervenche thundergnat: It's a 162138 line file. 00:38
I can post the whole script (what I have of it, it's not done yet) if that would make things clearer.
thundergnat Could you try something like : gist.github.com/thundergnat/c8902a...e5a511ecc1
or maybe even .race instead of .hyper 00:39
You would probably need to have all of the @data loaded into memory at once to effectively hyper it 00:41
rypervenche I'm slurping it at the beginning of my script, so that's doable.
gist.github.com/rypervenche/66f0f4...b43bf6d388
I'll give what you wrote a shot. 00:42
thundergnat What I suggested should be doable as far as hyperthreading; I can't speak to how effective your parsing will be without a lot of study. 00:43
thundergnat You basically can't expect to be able to modify an array (or hash) in a hyperthread without problems, but if you predeclare the size of the receiving array, you don't need to worry about autovivification 00:45
You can modify the contents of each "slot" but can't reliably add or remove them in a hyperthread. 00:46
rypervenche That makes sense. 00:47
thundergnat It may be worthwhile (or necessary) to just have a line like: @objects[162140] = ''; to "presize" the array 00:48
rypervenche Ok, I'll test out the speeds of those.
It's definitely using all threads now, haha. Had to use @data[$_] instead of $_ and that did it. 00:49
thundergnat Cool. Hope it makes a difference for you
rypervenche Huh... MoarVM panic: Internal error: zeroed target thread ID in work pass 00:50
thundergnat Yeah, that's a common error for thread contention 00:51
The array presize trick I mentioned above might help
rypervenche Wouldn't I need 162137 since I'll have 162138 elements? 00:53
thundergnat I just added a few extra "empty" slots, yeah if you want an exact number, 162137 is probably right 00:54
rypervenche Ah yes, my .made didn't work on the Anys :P 00:55
thundergnat Grammars are tricky until you get the hang of them (and even than...) 00:56
*then
But they are so cool 00:57
rypervenche Yeah, I thought I had to have a big file with tons of lines. Didn't think that passing it line by line would be better.
I mean, I had only seen examples of full files, so yeah.
thundergnat Anyway, good luck with it, I'm going to need to go afk. 00:59
rypervenche Thanks. 01:01
rypervenche Well, that cut the time in half :) 401 seconds down to 198. I'm happy with that. 01:07
jdv79 gist.github.com/jdv/290a6d5190ae4f...07ff44fa8c 02:31
what is "unsuccessful" about a 0 ret val?
AlexDaniel jdv79: look at your signal 03:19
jdv79: without this programs that segfaulted will be “successful” 03:20
jdv79 what is "signal"? 04:21
a prog that gets sent sigint should return that 04:22
so exit code should be 130
at least in a nixy world 04:23
AlexDaniel e: exit 130
evalable6 (exit code 130)
AlexDaniel e: use NativeCall; sub strdup(int64) is native(Str) {*}; strdup(0) 04:24
evalable6 (signal SIGSEGV)
AlexDaniel e: run <kill -INT>, $*PID 04:26
evalable6 (signal SIGINT)
AlexDaniel e: exit 130
evalable6 (exit code 130)
AlexDaniel jdv79: so you don't want to differentiate between these?
jdv79 its fine. just seemed off at first that an error was thrown but makes sense. 04:42
Geth doc: c2dbf90871 | (Ben Davies)++ | 3 files
Add more documentation on proto bodies and proto/multi signatures
07:27
doc: f5f90e69b6 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | 3 files
Merge pull request #3285 from Kaiepi/proto-body

Add more documentation on proto bodies and proto/multi signatures
AlexDaniel MasterDuke: when was it reverted? 08:14
ah
I see
MasterDuke there was an old change. i reverted it and shortly after my revert was re-reverted 08:15
AlexDaniel bin/blin.p6 --old=a381202 --new=HEAD Array::Shaped::Console
running this now 08:16
it doesn't have any deps so that's gonna be easy 08:17
MasterDuke: it's broken identically on both a381202 and HEAD 08:18
with this error message: Cannot invoke this object (REPR: Null; VMNull)
MasterDuke what about 20200.02 and a381202
AlexDaniel running… 08:19
AlexDaniel ah damn that was a good opportunity to try rakudist 08:20
AlexDaniel MasterDuke: yep, bisecting, will take a few minutes 08:21
Doc_Holliwould jnthn is suspiciuously silent lately. I wonder what he's breeding. 08:25
something great no doubt
MasterDuke he had a bunch of fixes yesterday 08:27
AlexDaniel pretty impressive fixes too 08:28
AlexDaniel MasterDuke: alright, it's done, let's see… 08:30
Array::Shaped::Console – Fail, Bisected: 509a7f6ecab1f3cb9afbda4818714e8f681914cf 08:31
linkable6: hello?
AlexDaniel anyway, I left a comment: github.com/rakudo/rakudo/issues/35...-604879567 08:33
509a7f6ecab 08:35
linkable6 (2020-03-20) github.com/rakudo/rakudo/commit/509a7f6eca Remove unnecessary implementation detail
AlexDaniel oh, maybe it doesn't like full commit shas? 08:35
stupid bot :P
Geth doc: Kaiepi++ created pull request #3286:
Document how to write named arguments that do not create any symbols
09:15
Kaiepi squashable6, status 09:21
squashable6 Kaiepi, ⚠🍕 Next SQUASHathon in 3 days and ≈18 hours (2020-04-01 UTC-12⌁UTC+20). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
AlexDaniel Kaiepi: if you want to organize a proper squashathon please do 09:30
Geth doc: 39e569c0dc | (Ben Davies)++ | 2 files
Document how to write named arguments that do not create any symbols
09:37
doc: a6144160df | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | 2 files
Merge pull request #3286 from Kaiepi/anon-named-params

Document how to write named arguments that do not create any symbols
Kaiepi what would be involved in organizing one AlexDaniel ?
AlexDaniel Kaiepi: come up with a good topic, write some basic document explaining what people are supposed to do, be around during the squashathon and contribute stuff yourself to lure people into the fun :) 09:38
Kaiepi can't think of any good topics offhand :( 09:48
Geth whateverable: a5d13afe53 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 4 files
Make some bots respond to private messages

Currently only for linkable6, notable6, releasable6 and one another upcoming bot.
Addresses #374 (but without tests). #350 is related.
09:49
whateverable: 8d160b40e7 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files
Unbitrot some tests (perl6 → Raku)

See also #340.
AlexDaniel Kaiepi: let me know if you come up with something! 10:20
MasterDuke Kaiepi: i have an idea for a topic, but it requires some up-front work. make a coverage report of a spectest run, then create tests to exercise uncovered parts of rakudo. maybe do another coverage report at the end and the winning condition is increased lines covered (instead of PRs) 10:39
Altreus Where can I find that precompiled raku dist? 12:15
Seems like I ruthlessly deleted the tarball after unpacking it
lizmat nxadm.github.io/rakudo-pkg/ ? 12:24
Altreus ^^
Altreus I got the URL from kane rakudo.org/dl/rakudo/rakudo-moar-2..._64.tar.gz 12:32
is he still the release boy?
he seems to know stuff
lizmat Altreus: my understanding is that kane is more involved with personal life issues than with Raku 12:33
sena_kun aka Altai_Man are the current people responsible for releae
*release
Altreus right on 12:50
I think he still counts as a friend so I'll try to make sure he's OK
Isolation is undoubtedly not helping
Altreus Is there a convention for devel releases? Is it the same as perl5? 12:56
sena_kun Altreus, devel releases to be? 12:58
There are no nighly or no rules like "even versions are stable for users, odd are for devs who are risky".
Altreus In Perl5 it doesn't index it but you can request it explicitly when installing from cpan
You can use -TRIAL or put an underscore in the version number 12:59
Basically meaning, you can have this but don't expdect it to work
sena_kun Altreus, first of all, you mean rakudo releases or an arbitrary module?
Altreus A module, sorry :) 13:00
I realise now that I changed context but used the same words
sena_kun I think that's a job for design.raku.org/S22.html#recommendation_manager but we don't have it, as much as I'm aware of. 13:07
lizmat could also be a job for zef
Altreus metacpan also doesn't index them, which is good and bad as we recently discovered 13:09
Altreus oh 13:41
META6 has a production boolean
Apparently it defaults to false
Seems to me that that means a development/trial version 13:42
Geth doc: coke assigned to tbrowder Issue p6y to rakuy github.com/Raku/doc/issues/3287
c86f4dd1c9 | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/iterating.pod6
13:56
daemon Altreus, could be a pre-release
linkable6 Link: docs.raku.org/language/iterating
Altreus Has the perl key in META6.json been renamed or aliased yet? 15:37
design.raku.org/S22.html#perl
Does this mean I ran out of memory? MoarVM panic: MVM_platform_alloc_pages failed: 12 15:44
where do zef logs live? I have an unexpected build failure 16:09
rypervenche Awww, it seems no one ever posted a reply to news.ycombinator.com/item?id=22652130 . I was so looking forward to it. :P 16:20
leont error number 12 is out of memory, so probably yes 16:56
lizmat rypervenche: not too late yet :-) 17:02
Altreus Bother, said pooh. My droplet doesn't have any more memory. 17:05
I mean it took more than 600MB :(
and that was just installing Readline
This keeps happening too: ===> Building [FAIL]: Digest::SHA1::Native:ver<0.04> 17:06
But I can't figure out where the logs are :D
Altreus it's possible it's hiding a memory problem 17:06
MasterDuke rypervenche: [Coke] left a link to a gist of partial solutions to the problems, should be in the irc logs 17:07
Altreus hmm I installed it separately and it seems to have managed it, so I guess it was hiding OOM 17:12
[Coke] I never did get back to it 17:16
gist.github.com/coke/91e50f577cfe7...6d44541a3a
Please feel free to do something with it.
lizmat m: say "appplause".comb.repeated.unique.join # [Coke] alternate for duplicity, unless you're attached to the order of the letters 17:19
evalable6 pa
lizmat same-letters could use the (==) parameter I'm mulling about (set equality) 17:20
Geth doc: Kaiepi++ created pull request #3288:
Clarify documentation on aliases for anonymous arguments
17:52
[Coke] TIL about .repeated 18:20
m: "what the heck?".comb.repeated
evalable6
[Coke] m: "what the heck?".comb.repeated.say
evalable6 (t h h e)
chloekek That’s rather specific. 18:32
Geth doc: ac2ada07fa | (Ben Davies)++ | doc/Type/Signature.pod6
Clarify documentation on aliases for anonymous arguments
doc: 5648cbcff0 | Altai-man++ (committed using GitHub Web editor) | doc/Type/Signature.pod6
Merge pull request #3288 from Kaiepi/anon-named-params

Clarify documentation on aliases for anonymous arguments
linkable6 Link: docs.raku.org/type/Signature
chloekek What are examples of algorithms that need it?
ryn1x in 2020.01 i am getting a new warning at runtime about "Calling '.contains' on a List, did you mean 'needle (elem) list'?". The code is similar to `<1 2 3>.contains(1)`. The REPL on 2020.01 does not throw the same warning... 18:36
sena_kun m: <1 2 3>.contains(1) 18:37
evalable6 Calling '.contains' on a List, did you mean 'needle (elem) list'?
in block <unit> at /tmp/oF8uJr5gQ7 line 1
sena_kun ryn1x, are you using rakudo star? 2020.02 has the warning in REPL as well.
ryn1x yeah it is rakudo star
sena_kun ryn1x, next rakudo star release will include it then, I think. Thanks for reporting! 18:38
ryn1x the code still seems to behave correctly but the warning prints out in the middles of a tui menu... not sure what to change to get rid of of the warning 18:39
the code was written on with an older compiler but I had to install the application on a newer computer and just downloaded the latest rakudo star to set everything up 18:40
sena_kun m: say 2 (elem) <1 2 3>;
evalable6 False
ryn1x ah ok.. that is easy
sena_kun considering `<1 2 3>` are strings, you want
m: say '2' (elem) <1 2 3>;
evalable6 False
sena_kun m: say <2> (elem) <1 2 3>; 18:41
evalable6 True
sena_kun this one
ryn1x yeah... there we go... i need strings
ryn1x any reason the .contains version I had previously is now throws that warning? 18:42
sena_kun bisectable6, say "2" (elem) <1 2 3>;
bisectable6 sena_kun, On both starting points (old=2015.12 new=13ca677) the exit code is 0 and the output is identical as well
sena_kun, Output on both points: «False␤»
sena_kun ryn1x, the thing is, `.contains` method is defined not on List, but on Cool, so it firstly stringifies your list and then tries to check if there is such a thing in this string (not a list). 18:43
while (elem) operator does the right thing
stringification leads to this: 18:44
m: my @menu = <hamburger fries milkshake>; say @menu.contains('milk');
evalable6 Calling '.contains' on a Array, did you mean 'needle (elem) list'?
True
in block <unit> at /tmp/HuYrb5yLt4 line 1
sena_kun ^ evaluates to true, because it actually asks "is there is a substring 'milk' in this string", instead of "we have three element array, is one of that a..." 18:44
ryn1x ahhh ok. thanks! 18:45
sena_kun m: say 2 (cont) <1 2 3>;
evalable6 False
thundergnat rypervenche: gist.github.com/thundergnat/15d964...f557abd5e7 19:14
tbrowder [Coke]: see my comment in doc issue #3287. if okay, i will use similar in other instances of p6y... 20:25
.tell [Coke] ^^^ 20:26
tellable6 tbrowder, I'll pass your message to [Coke]
[Coke] tbrowder: there is no other instance. 21:53
tellable6 2020-03-27T20:26:23Z #raku <tbrowder> [Coke] ^^^ 21:54
[Coke] er, there is only one other instance.
tbrowder ok, i haven't done anything else since you implied there was a bunch of instances and i was waiting for approval of my proposal. 21:56
vrurg If I define a method in grammar and use it as a validating token – how do I signal no-match? 22:23
lizmat False ? 22:27
vrurg No. A method must always return a Match object. Basically - self
lizmat A Match object with pos == -1 ?
vrurg Let me try... Thanks! 22:28
self.clone: :pos(-1) didn't do it. Hm... 22:30
I can <?{ self.method }>, but it's extra calls... 22:31
Altreus How do I clear zef's cache? It's not finding my updated master branch for API::Discord 22:32
(The update being to add a missing dep)
(I'm installing the dep manually, I'm just academically interested for the future) 22:33
lizmat vrurg: $!pos is a private attribute 22:37
:pos(-1) is silently ignored, I'd say
nqp::bindattr_i(cloned,Match,'$!pos',-1) 22:38
jnthn vrurg: Try `self.new` 22:39
vrurg: A cursor is born failed
vrurg lizmat: Wanted to avoid relying on private staff. Also found self.'!cursor_fail'(), BTW. 22:40
jnthn: That's the best. Thanks!