Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
Geth rakudo: vrurg++ created pull request #2902:
Fix for 'Missing or wrong version of dependency'
00:14
00:34 sivoais left, sivoais joined, Kaiepi joined
Kaiepi aaaaalmost there with parallelizing feed operators 00:34
i've got stuff like 1...* ==> map { $_ ** 2 } working 00:35
however 1...* ==> map { $_ ** 2 } ==> my @foo doesn't yet
ugexe how do you decide how much parallelizing to do without arguments like race/hyper have? 00:42
timotimo ugexe: feeds have CSP semantics, which means every stage will have its own "worker" and they pass indvidual bits via channels 00:43
i don't know if it's meant to have chunking
ugexe oh its not already doing that?
timotimo nope, they are currently not parallelized whatsoever
if they use "await" internally to fetch data from the Channel, then stages of the work pipeline can be suspended back to the thread pool when they're bored 00:44
though of course that could lead to a whole lot of suspending/resuming
ugexe is it going to use `start { }`, or literally a worker thread
dedicated worker thread
timotimo i personally would implement it with `start { }` 00:45
ugexe hopefully that speeds them up a bit 00:50
timotimo it'll still depend a lot on the work per element each stage has, i'd expect 00:54
if you use it for things like "map { $_ ** 2 }" and the numbers are in the 64bit range ... yeah, no, that won't be faster :) 00:55
sleep time!
o/
ugexe why is it so slow vs .map though
timotimo actually, what if you could get hyper semantics with feed syntax by putting "hyper" in front? 00:57
well, 1..* ==> map { $_ ** 2 } ==> my @foo; will - if there is no batching, which maybe there should be - send every item from one thread, receive them in another, do the squaring, send it to the third one, which will receive and stash into @foo 00:58
ugexe ==hyper>
timotimo haha
Ā»==>Ā»
>>WHOOSH>>
==GNDN== 00:59
MasterDuke hm, if you do both --profile=foo.sql and --profile-filename=bar.json, which should win? 01:06
jnthn, timotimo: updated github.com/perl6/nqp/pull/532. i'll merge tomorrow or this weekend if it looks fine 01:43
02:26 squashable6 left 02:30 squashable6 joined, ChanServ sets mode: +v squashable6 03:09 epony left
Kaiepi using a Channel for the pipeline for EVALUATE-FEED is too slow 03:25
using Supply.from-list(@stages).schedule-on($*SCHEDULER).serialize is MUCH faster 03:26
03:43 epony joined 04:06 grayrider joined 05:22 ufobat__ left
Geth rakudo/master: 5 commits pushed by (Vadim Belman)++ 05:38
05:59 squashable6 left 06:02 squashable6 joined, ChanServ sets mode: +v squashable6 07:08 robertle joined 07:10 lizmat joined 07:20 lizmat left
jnthn Kaiepi: But that makes a Supply that emits the blocks, not that funnels data between the blocks executing in parallel... 08:27
Kaiepi oh 08:28
jnthn But yeah, if you're going to have a set of parallel workers, well, you better have enough work to do to make the communication cost worth it
Kaiepi with my @ <== map { $_ ** 2 } <== (1..100), the parallelized feed code is just as slow as the old code, but it gradually gets faster as you add more stages 08:40
like my @ <== sort { $^a cmp $^b } <== grep { $_ %% 2 } <== map { $_ ** 2 } <== (1..100) is almost as fast as just using the regular method calls 08:41
there's one last thing i'm stuck on though 08:42
bastille% ./perl6 --ll-exception -e 'my @foo; my @ <== grep { $_ %% 2 } <== @foo <== map { $_ ** 2 } <== 1...*; say @foo[0..10]'
When invoking 10 '', provided outer frame 0xc17bc449ed8 (7 '<unit>') does not match expected static frame 0xc17bc44a360 (9 '')
jnthn That means there's a closure-handling screw-up in the code-gen somewhere 08:46
Will be a mistake in the QAST that gets produced 08:47
Presumably for the case of an intermediate variable
masak Kaiepi: submit a bug report? 08:55
Kaiepi yeah jnthn it's for the intermediate call to RI.EVALUATE-FEED that gets made for @foo
masak this is a bug in a pullreq i'm working on, not on HEAD 08:59
masak ok, nice 09:42
Kaiepi done parallelizing feed operators! 10:04
10:26 klapperl left
Geth rakudo: Kaiepi++ created pull request #2903:
Parallelize feed operators and support lazy lists
10:31
10:33 klapperl joined 10:38 brrt joined 11:08 brrt left
Geth roast: Kaiepi++ created pull request #538:
Update S03-feeds/basic.t with regards to parallelism and lazy lists
11:20
12:22 Guest5089 joined 12:52 brrt joined 13:05 MasterDuke left 13:34 skids joined
Geth Ā¦ rakudo: vrurg self-assigned Rakudo no longer builds properly on OpenBSD github.com/rakudo/rakudo/issues/2904 13:45
14:36 mornfall left 14:37 mornfall joined, lizmat joined 14:40 lizmat_ joined 14:43 lizmat left 14:47 lizmat_ left 14:49 robertle left 14:58 brrt left 16:27 lizmat joined 16:29 lizmat left 16:30 lizmat joined 16:55 robertle joined
Geth nqp: vrurg++ created pull request #539:
Support for the latest changes in nqp-configure
16:57
rakudo: vrurg++ created pull request #2906:
Support for latest changes in nqp-configure
16:58
17:17 a3f left 17:25 a3f joined
Geth nqp: 03ded1c4f8 | (Vadim Belman)++ | 3 files
Support for the latest changes in nqp-configure

OpenBSD build and command line options handling improvements.
17:41
nqp: 446765f35f | (Vadim Belman)++ (committed using GitHub Web editor) | 3 files
Merge pull request #539 from vrurg/build-revamp

OpenBSD build improvements
vrurg Can I somehow restart travis/appveyour on github for a PR without a new commit? 17:57
ugexe yes 17:59
when viewing the test on e.g. travis-ci it should be an option towards the upper right (probably inside More Options) 18:00
actually its right *under* the More Options 18:01
it says "Restart Job"
vrurg Not for me. Perhaps because I've no account there. 18:02
ugexe you can login with github
the green button in the upper right should say something like that 18:03
vrurg We might be meaning differernt systems. I'm on appveyor now. 18:04
It only allows me to download the log. 18:05
ugexe appveyor allows logging in with github as well 18:06
vrurg That's what I've done. But can't see a restart option. 18:07
Ok, will find out later, have other things to do now. Thanks!
ugexe want me to retstart it?
im able to see the restart button... unsure why you cannot though
18:12 vrurg left 18:13 vrurg joined
vrurg ugexe: Yes, restart please! R#2906 18:14
synopsebot R#2906 [open]: github.com/rakudo/rakudo/pull/2906 Support for latest changes in nqp-configure
ugexe restarted 18:19
19:31 lizmat left 19:41 scovit left
Kaiepi i feel like the way i wrote the qast half of feed operator parallelization is kinda hacky 19:44
rather than creating a rakudo array and pushing the callbacks onto that, how would i go about creating the qast nodes representing the callbacks to pass instead?
19:48 scovit joined
Kaiepi for instance i want to take a node like this hastebin.com/acegihasuy.rb , push an extra argument onto it, and wrap it with a node representing the callback that takes that extra argument as its sole argument 19:49
is that possible? 19:50
jnthn That's the make_thunk thing I was talking about yesterday, I think 20:00
make_thunk_ref, it seems
Gives you a Code you can pass that wraps the lot
But wouldn't you want a signature?
That takes the array? 20:01
Um, source is perhaps a better word
Kaiepi it's not necessarily an array 20:33
21:03 skids left 22:20 MasterDuke joined, MasterDuke left, MasterDuke joined
MasterDuke jnthn: if you've got a free min or two does github.com/perl6/nqp/pull/532 look like it'll work for comma? 22:33
jnthn MasterDuke: I might say "in a future Rakudo release" rather than "the next one" to give us a little room 22:55
MasterDuke: I*think it'll work 22:56
*I think 22:57