|
Parrot 6.5.0 "Black-winged Lovebird" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 9 July 2014. |
|||
|
01:32
FROGGS_ joined
03:21
estrabd joined
03:59
bighugedog joined
04:07
khisanth_ joined
06:47
FROGGS joined
07:20
bighugedog joined
08:15
basiliscos joined
08:31
woosley joined
09:47
Psyche^ joined
10:08
FROGGS joined
12:35
kid51 joined
14:54
Chirag joined
|
|||
| Chirag | rurban: Hey! I was wondering if it's a good idea for me to start working on a different task, perhaps on the lexpad optimization for Rakudo (which I had kept optional in my proposal) or if you have some other task in mind? | 14:58 | |
| rurban | As you wish | ||
| Jonathan wrote the nqp lexpad parts | 14:59 | ||
| Chirag | We havent got anything substantial from our tests.. So, I am just afraid I might fall behind schedule.. | 15:00 | |
| rurban | sure | 15:03 | |
| The problem is that I don't know those parts that well | |||
| Chirag | What else do you think I could work on? i was just taking a look at my proposal .. www.google-melange.com/gsoc/proposa...0916475904 | 15:06 | |
| "non-cached sig objects" --done-- although without much improvement | 15:08 | ||
| rurban | I only see the short description there. You also? | ||
| Chirag | no... the complete proposal | ||
| wait I ll put it on a gist | |||
| rurban | Signature handling is pretty much done. ext_call needs to be improved, but that's probably too big for you | ||
| Chirag | gist.github.com/ZYROz/d443e5490e4ae3026a1c | 15:10 | |
| The formatting is gone | |||
| rurban | raw is good | ||
| I see: caching sig translations "P->P" into cached object | 15:11 | ||
| compile-time FixedPMCArray: I believe this is done already. Or do you see more possibilities? | 15:12 | ||
| Chirag | I didnt take care of slurpy args | 15:13 | |
| rurban | I cannot remember the lexpad stuff | ||
| we can ignore slurpy. only needed at run-time | |||
| but maybe rakudo does it, haven't checked | 15:14 | ||
| I only know of "Fix NQPLexPad for parrot threads", but this is a tricky threading problem | |||
| wiki.enlightenedperl.org/gsoc2014/i...signatures | 15:15 | ||
| I remember now. This is the lexpad issue lists.parrot.org/pipermail/parrot-d...07354.html | 15:17 | ||
| Chirag | Whatever you feel is best... or I could work on something outside my proposal's scope.. We could also ask Util | ||
| rurban | So three minor tasks are open: cache sigs, fixedpmcarray and optional lexpad | 15:18 | |
| Chirag | yes | 15:19 | |
| rurban | and bigger: integrate the return continuation into the call context (16% speedup according to mls) | ||
| do you want to contact him, cc parrot-dev@parrot.org | |||
| maybe he still has his quick hack around and we can look at it | 15:20 | ||
| lists.parrot.org/pipermail/parrot-d...07354.html | |||
| Chirag | sure.. Michael Schroeder right? | 15:21 | |
| rurban | the optional lexpad is a "political" API issue. A HLL (rakudo) needs to tell the PCC somehow that the lexpad is not needed | 15:22 | |
| yes | |||
| Chirag | I ll mail i and ask if he could provide that piece of code, in case he still has it | 15:23 | |
| rurban | but I haven't look at the optional lexpad yet. My gut feeling is that even rakudo needs it temporarily | ||
| Chirag | the return continuation part | 15:24 | |
| rurban | the parrot lexpad | 15:27 | |
| Another option is to speed up CallContext field accesses to call them directly, not via the external API. | |||
| See wknight8111.blogspot.com/2009/10/op...arrot.html | |||
| bacek also went through and properly encapsulated the Context PMC type so that there were fewer direct accesses of it's internal members | |||
| This should be easy | 15:29 | ||
| e.g. inline Parrot_pcc_add_invocant | 15:31 | ||
| make src/call/pcc.i and see the inefficient code | 15:32 | ||
| Chirag | sure | 15:33 | |
| rurban | GETATTR_CallContext_arg_flags => arg_flags = ((Parrot_CallContext_attributes *)(call_obj)->data)->arg_flags; | ||
| and the 2 vtable calls in Parrot_pcc_add_invocant can be inlined too | 15:34 | ||
| and Parrot_pcc_add_invocant in Parrot_pcc_invoke_method_from_c_args should be expanded. | |||
| Chirag | its throwing: parrot/pbcversion.h: No such file or directory .. let me check | 15:38 | |
| yea fone | 15:39 | ||
| done* | |||
| rurban | need to reconfig | ||
| make reconfig | 15:40 | ||
| Chirag | did that.. got pcc.c | ||
| rurban | there are several unneeded checks if CallContext is a proper object | 15:41 | |
| it is | |||
| Chirag | will have dinner and be back in a while | 15:42 | |
| rurban | I'll have lunch | 15:55 | |
| rurban_ | Chirag: K. Kaif was actually pretty solid in Zindagi Na Milegi Dobara, not so stiff. But she always plays herself. And Hrithik Roshan blew everyone away. | 16:16 | |
| Didn't like the movie. Too european camera. Indian camera work is much better. And the story was boring and too predictable | 16:17 | ||
| Chirag | yeah story not so much.. I liked the scenic beauty.. Europe way too beautiful :) | 16:24 | |
| rurban_ | Spain is beautiful, but the camera... | 16:29 | |
| Costa Brava! | |||
| Chirag | breathtaking yes! | 16:30 | |
| i cant think of movies that you might like for the story... maybe the two "Munnabhai" movies | 16:33 | ||
| rurban_ : github.com/ZYROz/parrot/commit/f1c...bfb84076ee | 17:25 | ||
| rurban | "Your chanTs will be lost" :) | 17:52 | |
| almost | 17:53 | ||
| The (arg_flags)->vtable is known at compile-time | 17:54 | ||
| the call_obj vtable also | |||
|
18:08
Chirag joined
|
|||
| Chirag | oh.. will fix that | 18:09 | |
|
18:09
Chirag_ joined
|
|||
| rurban | not easy fixable as the vtable methods are not exported | 18:10 | |
| did you measure the speedup already? | 18:11 | ||
| mine looks good | |||
| Chirag_ | didnt do that.. but u checked without correcting this? | ||
| rurban | no speedup: 9.70 => 9.88 | 18:12 | |
| Chirag_ | but we are still calling unshift_integer and unshift_pmc | ||
| rurban | yes, unfortunately | 18:13 | |
| I'm thinking of inlining the unshift_pmc for the invocant. CallContext unshift_pmc assumes that there is always one reserve cell free | 18:14 | ||
| Chirag_ | yea .. if we could put a patch to achieve the same functionality.. but yeah I coud not find their definition | 18:16 | |
| PS: "Your chanTs will be lost" ? I didnt get it | 18:17 | ||
| rurban | gist.github.com/rurban/f625d47aa9dbbbe25565 | 18:18 | |
| typo in your patch | |||
| I could not measure any improvement | 18:19 | ||
|
18:21
FROGGS joined
|
|||
| Chirag_ | oh! | 18:22 | |
| rurban | updated gist.github.com/rurban/f625d47aa9dbbbe25565 | 18:24 | |
| Chirag_ | so just replacing GETATTR_CallContext_arg_flags | 18:25 | |
| rurban | yes, the others are the same | 18:26 | |
| we just skip the obj type and flag check | |||
| but this was not it | 18:27 | ||
| Chirag_ | what more can be done? | 18:29 | |
| rurban | maybe measuring the vtable call overhead | 18:34 | |
|
18:36
Chirag joined
|
|||
| Chirag | hmm.. it won't make sense to replace the calls if we won't get any speed improvement | 18:37 | |
| rurban | yes, and how much. maybe inline one such vtable call, and then extrapolate | 18:38 | |
| or export all CallContext vtable functions, and call them directly | 18:40 | ||
| just for benchmarks | |||
| Chirag | hmm... that will help in deciding | 18:43 | |
| rurban | Parrot_pcc_build_sig_object_from_op is the current most expensive sig call | 18:49 | |
| even more than fill_params | |||
| perf record ../run-bench.sh; perf report | 18:50 | ||
|
18:54
Chirag joined
|
|||
| rurban | please see backlog on the web | 18:55 | |
|
18:58
rurban1 joined
19:04
Chirag joined
19:14
Chirag joined
19:24
Chirag joined
|
|||
| Coke | rakudo user reported a segfault on rakudo.parrot @ rt.perl.org/Ticket/Display.html?id=122274 - it's in rakudo's C code that interacts with parrot, but figured I'd mentino here in case rurban can fix it. :) | 19:26 | |
|
19:34
Chirag joined
19:44
Chirag joined
|
|||
| rurban | Coke: Looks like jonathan's code but I'll have a look | 19:51 | |
|
19:54
Chirag joined
20:04
Chirag joined
|
|||
| rurban | Coke: worked fine for me with uptodate perl6-p | 20:28 | |
| Chirag: So it looks the boxing of signature values is the biggest problem. wiki.enlightenedperl.org/gsoc2014/i...signatures | 20:35 | ||
| "(Refactor CallSignature to store arguments as a typed array, instead of as a PMC array. The types we know from the signature, so can store and retrieve the elements in a type-safe way. This will reduce the number of PMCs created, since integer, number, and string arguments can be stored directly instead of boxed in PMCs.)" | |||
| Coke | rurban: danke. | 20:42 | |
| rurban | I believe Stables or the optimizations changed a bit recently. I also could not finish the perl6-p spectests recently | 20:58 | |
| Coke | there are some known issues in the perl6-p spectests: | 22:06 | |
| github.com/coke/perl6-roast-data/b....out#L2902 or so. | |||
| the "abort" down at the bottom therewas probably due to a hanging test; I've refudged that, should be better now. | |||
|
22:12
rurban1 joined
22:34
kid51 joined
23:29
rurban1 joined
|
|||