I will be sharing what I have completed this week. Last week, I had mentioned that I would be fixing further problems in my branch to optimize pmc2c (https://www.parrot.org/zyroz10).
I am happy to share that I have successfully completed this work and believe that the issue GH #1083 (https://github.com/parrot/parrot/issues/1083) is now resolved.
To elaborate on the work done --- a couple of weeks back, I started by omitting the obj check in the CallContext ATTR accessors in include/pmc/pmc_callcontext.h.
After this, rurban and I made the CallContext methods non-static . For this, I also modified pmc2c to automate the process of declaring these methods as non-static in the header file. This allowed us to directly call the CallContext methods without having to redirect calls via VTABLE methods.
Next, we modified src/call/*.c to actually use these direct CallContext methods instead of the VTABLE re-direction.
However, I faced a blocker in the later part of the week, when the build for my branch kept failing. It took me a while to figure out that it was due to some incorrect calls that we had started making in args.c. On Tuesday, rurban and I finally debugged these wrong calls and we now have a completely working branch.
Initial tests by rurban shows a speed improvement of 1.6% with all tests passing.
My job this week is to verify these numbers on my slow machine and test my branch before merging to master. I will also once again, benchmark my previous tasks to verify the performance gain achieved through my work.
That's all folks! :)