, though we are rather fond of them for obvious reasons.
Submitted by ZYROz on Wed, 07/23/2014 - 18:13
Through this post, I will be sharing my progress towards the task - https://github.com/parrot/parrot/issues/1083.
I have completed the part of the task that required me to inline the CallContext ATTR accessors to omit the obj check. For now, I have manually edited include/pmc/pmc_callcontext.h to fix the macro definitions.
However, after completing the remaining task and ascertaining an improvement in speed performance, I plan to improve pmc2c to automatically generate this fix.
Submitted by ZYROz on Wed, 07/16/2014 - 18:16
Let me share this week's progress.
Earlier this week, I finished my tests with Parrot for its releases 2.7 - 3.0. Including rurban's profiling, we now have data (reliable to some extent) for the commits in this range. The main objective for the profiling was to determine the highest overhead to be targeted next for refactor.
(For the list of all the identified overheads, please take a look at - http://wiki.enlightenedperl.org/gsoc2014/ideas/improve_performance_of_me...)
Submitted by Util on Tue, 07/15/2014 - 23:59
As a dreamer of dreams and a travelin' man,
I have chalked up many a mile.
Read dozens of books about heroes and crooks,
And I've learned much from both of their styles.
-- Heard playing in Margaritaville bar,
in Orlando after YAPC::NA::2014.
On behalf of the Parrot team, I'm proud to announce Parrot 6.6.0,
also known as "Parrothead". Parrot
is a virtual machine aimed at running all dynamic languages.
Submitted by ZYROz on Wed, 07/09/2014 - 17:39
My this week's work involves testing. With this work, we are trying to figure out the commits that slowed down Parrot during its releases 2.7 - 3.0. To do this, I am running the bench.sh tool provided in parrot-bench. rurban is helping me out with these tests to save time (since I have got a slow machine) and also to cross-check results.
Submitted by ZYROz on Wed, 07/02/2014 - 16:28
I am happy to announce that my task #2 (https://github.com/parrot/parrot/issues/1080) is now complete and the issue has been closed.
To give a gist of what has been done -
The goal was to optimize the pmc2c compiler, more specifically the PCCMETHODs, by avoiding the run-time overhead of having to call two costly C functions per method call. These C functions were:-
Parrot_pcc_fill_params_from_c_args(interp, _call_object, sig, &_self, args...);
Parrot_pcc_set_call_from_c_args(interp, _call_object, rettype, result);
Submitted by ZYROz on Wed, 06/25/2014 - 17:50
I will catch you up on my work this week. As I had mentioned in my last post (http://www.parrot.org/zyroz4), I have already started working on a new task (https://github.com/parrot/parrot/issues/1080).
Since, this work requires me to make changes to the Pmc2c compiler, I am required to code in Perl. I am however, new to Perl and thus, spent quite some time getting used to some basic coding in Perl this week.
Submitted by ZYROz on Wed, 06/18/2014 - 18:29
Let me share the progress for this week.
I have successfully finished my task #1 that required me to add write barriers to the PMC methods (https://github.com/parrot/parrot/issues/1069).
For this task, I had finished most of the work last week itself (http://www.parrot.org/zyroz3).
This week I mostly verified all the WB annotations for one last time and it did help me to fix some bugs and incorrect WBs. All this work is now part of our latest release for Parrot 6.5.0 and we have achieved a speed improvement of around 2.5% - 5% through this task!
Submitted by ZYROz on Tue, 06/10/2014 - 20:38
There is a lot of good news to share this week! Our GSoC task #1 (https://github.com/parrot/parrot/issues/1069) is a success!! :D
So, I have been spending a lot of time looking into and fixing 95 pmc files with a calculated number of 2230 methods for core PMCs alone...
Submitted by ZYROz on Wed, 06/04/2014 - 17:08
I will be filling you in with what we have achieved in the last week.
So, rurban has fixed up the pmc2c compiler and it looks good to handle the write barriers. However, the rules that we had followed earlier to place these WBs in the PMCs have been changed to some extent for a better performance. You can have a look at them @ https://github.com/parrot/parrot/issues/1069.
My major work has involved verifying and correcting the annotations for the WBs in the methods for each PMC. There are about 95 .pmc files and I am about to reach the half way mark.