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 |