Perl 6 - the future is here, just unevenly distributed

IRC log for #parrot, 2014-07-14

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:32 FROGGS_ joined #parrot
03:21 estrabd joined #parrot
03:59 bighugedog joined #parrot
04:07 khisanth_ joined #parrot
06:47 FROGGS joined #parrot
07:20 bighugedog joined #parrot
08:15 basiliscos joined #parrot
08:31 woosley joined #parrot
09:47 Psyche^ joined #parrot
10:08 FROGGS joined #parrot
12:35 kid51 joined #parrot
14:54 Chirag joined #parrot
14:58 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
14:59 rurban Jonathan wrote the nqp lexpad parts
15:00 Chirag We havent got anything substantial from our tests.. So, I am just afraid I might fall behind schedule..
15:03 rurban sure
15:03 rurban The problem is that I don't know those parts that well
15:06 Chirag What else do you think I could work on? i was just taking a look at my proposal .. http://www.google-melange.com/gsoc/proposal/review​/student/google/gsoc2014/chirag14/5668600916475904
15:08 Chirag "non-cached sig objects" --done-- although without much improvement
15:08 rurban I only see the short description there. You also?
15:08 Chirag no... the complete proposal
15:08 Chirag wait I ll put it on a gist
15:08 rurban Signature handling is pretty much done. ext_call needs to be improved, but that's probably too big for you
15:10 Chirag https://gist.github.com/ZYROz/d443e5490e4ae3026a1c
15:10 Chirag The formatting is gone
15:10 rurban raw is good
15:11 rurban I see: caching sig translations "P->P" into cached object
15:12 rurban compile-time FixedPMCArray: I believe this is done already. Or do you see more possibilities?
15:13 Chirag I didnt take care of slurpy args
15:13 rurban I cannot remember the lexpad stuff
15:13 rurban we can ignore slurpy. only needed at run-time
15:14 rurban but maybe rakudo does it, haven't checked
15:14 rurban I only know of "Fix NQPLexPad for parrot threads", but this is a tricky threading problem
15:15 rurban http://wiki.enlightenedperl.org/gsoc2014/ide​as/improve_performance_of_method_signatures
15:17 rurban I remember now. This is the lexpad issue http://lists.parrot.org/pipermail/p​arrot-dev/2013-February/007354.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
15:18 rurban So three minor tasks are open: cache sigs, fixedpmcarray and optional lexpad
15:19 Chirag yes
15:19 rurban and bigger: integrate the return continuation into the call context (16% speedup according to mls)
15:19 rurban do you want to contact him, cc parrot-dev@parrot.org
15:20 rurban maybe he still has his quick hack around and we can look at it
15:20 rurban http://lists.parrot.org/pipermail/p​arrot-dev/2013-February/007354.html
15:21 Chirag sure.. Michael Schroeder right?
15:22 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 rurban yes
15:23 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
15:24 Chirag the return continuation part
15:27 rurban the parrot lexpad
15:27 rurban Another option is to speed up CallContext field accesses to call them directly, not via the external API.
15:27 rurban See http://wknight8111.blogspot.com​/2009/10/optimizing-parrot.html
15:27 rurban bacek also went through and properly encapsulated the Context PMC type so that there were fewer direct accesses of it's internal members
15:29 rurban This should be easy
15:31 rurban e.g. inline Parrot_pcc_add_invocant
15:32 rurban make src/call/pcc.i and see the inefficient code
15:33 Chirag sure
15:33 rurban GETATTR_CallContext_arg_flags => arg_flags = ((Parrot_CallContext_attributes *)(call_obj)->data)->arg_flags;
15:34 rurban and the 2 vtable calls in Parrot_pcc_add_invocant can be inlined too
15:34 rurban and Parrot_pcc_add_invocant in Parrot_pcc_invoke_method_from_c_args should be expanded.
15:38 Chirag its throwing: parrot/pbcversion.h: No such file or directory  .. let me check
15:39 Chirag yea fone
15:39 Chirag done*
15:39 rurban need to reconfig
15:40 rurban make reconfig
15:40 Chirag did that.. got pcc.c
15:41 rurban there are several unneeded checks if CallContext is a proper object
15:41 rurban it is
15:42 Chirag will have dinner and be back in a while
15:55 rurban I'll have lunch
16:16 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:17 rurban_ Didn't like the movie. Too european camera. Indian camera work is much better. And the story was boring and too predictable
16:24 Chirag yeah story not so much.. I liked the scenic beauty.. Europe way too beautiful :)
16:29 rurban_ Spain is beautiful, but the camera...
16:29 rurban_ Costa Brava!
16:30 Chirag breathtaking yes!
16:33 Chirag i cant think of movies that you might like for the story... maybe the two "Munnabhai" movies
17:25 Chirag rurban_ : https://github.com/ZYROz/parrot/commit/f​1c3c94789c784a3f201b03566faedbfb84076ee
17:52 rurban "Your chanTs will be lost" :)
17:53 rurban almost
17:54 rurban The (arg_flags)->vtable is known at compile-time
17:54 rurban the call_obj vtable also
18:08 Chirag joined #parrot
18:09 Chirag oh.. will fix that
18:09 Chirag_ joined #parrot
18:10 rurban not easy fixable as the vtable methods are not exported
18:11 rurban did you measure the speedup already?
18:11 rurban mine looks good
18:11 Chirag_ didnt do that.. but u checked without correcting this?
18:12 rurban no speedup: 9.70 => 9.88
18:12 Chirag_ but we are still calling unshift_integer and unshift_pmc
18:13 rurban yes, unfortunately
18:14 rurban I'm thinking of inlining the unshift_pmc for the invocant. CallContext unshift_pmc assumes that there is always one reserve cell free
18:16 Chirag_ yea .. if we could put a patch to achieve the same functionality.. but yeah I coud not find their definition
18:17 Chirag_ PS: "Your chanTs will be lost" ? I didnt get it
18:18 rurban https://gist.github.com/ru​rban/f625d47aa9dbbbe25565
18:18 rurban typo in your patch
18:19 rurban I could not measure any improvement
18:21 FROGGS joined #parrot
18:22 Chirag_ oh!
18:24 rurban updated https://gist.github.com/ru​rban/f625d47aa9dbbbe25565
18:25 Chirag_ so just replacing GETATTR_CallContext_arg_flags
18:26 rurban yes, the others are the same
18:26 rurban we just skip the obj type and flag check
18:27 rurban but this was not it
18:29 Chirag_ what more can be done?
18:34 rurban maybe measuring the vtable call overhead
18:36 Chirag joined #parrot
18:37 Chirag hmm.. it won't make sense to replace the calls if we won't get any speed improvement
18:38 rurban yes, and how much. maybe inline one such vtable call, and then extrapolate
18:40 rurban or export all CallContext vtable functions, and call them directly
18:40 rurban just for benchmarks
18:43 Chirag hmm... that will help in deciding
18:49 rurban Parrot_pcc_build_sig_object_from_op is the current most expensive sig call
18:49 rurban even more than fill_params
18:50 rurban perf record ../run-bench.sh; perf report
18:54 Chirag joined #parrot
18:55 rurban please see backlog on the web
18:58 rurban1 joined #parrot
19:04 Chirag joined #parrot
19:14 Chirag joined #parrot
19:24 Chirag joined #parrot
19:26 Coke rakudo user reported a segfault on rakudo.parrot @ https://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:34 Chirag joined #parrot
19:44 Chirag joined #parrot
19:51 rurban Coke: Looks like jonathan's code but I'll have a look
19:54 Chirag joined #parrot
20:04 Chirag joined #parrot
20:28 rurban Coke: worked fine for me with uptodate perl6-p
20:35 rurban Chirag: So it looks the boxing of signature values is the biggest problem. http://wiki.enlightenedperl.org/gsoc2014/ide​as/improve_performance_of_method_signatures
20:35 rurban "(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.)"
20:42 Coke rurban: danke.
20:58 rurban I believe Stables or the optimizations changed a bit recently. I also could not finish the perl6-p spectests recently
22:06 Coke there are some known issues in the perl6-p spectests:
22:06 Coke https://github.com/coke/perl6-roast-data/blo​b/master/log/rakudo.parrot_summary.out#L2902 or so.
22:06 Coke 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 #parrot
22:34 kid51 joined #parrot
23:29 rurban1 joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced