On Sat, Feb 18, 2017 at 12:07 PM, Arne Goedeke el@laramies.com wrote:
Ok, not sure yet if this is going anywhere this time, but I decided to attempt a second time to refactor the current function call code into something which is more readable, more flexible and hopefully faster (at some point). The branch is called 'arne/faster_calls_again'.
The API is similar to what the previous version did, the main difference being that it allocates pike frames only if needed (not for efuns, casts, apply_array, etc). The changes in that branch start by first removing code which was duplicated at some point to increase performance for certain types of calls. I then added a series of new functions to initialize, execute and deinitialize a callsite. Then, I started to use it in some of the existing function call APIs and also implemented that optimized version of f_map.
The code is probably broken in interesting ways, I have not tested it very well, yet. It compiles and installs.
I took this as an opportunity to upgrade and modernize the Coverity Scan machine. It's now running Ubuntu 16.04 instead of 12.04 and using Scan 8.7.0, up from 7.7.0.4. Most importantly it's now much easier to automate and switch which branch is running in the Pike-experiment project and it's now running against the arne/faster_calls_again branch.
There has been two builds in that project today. The first one was against 8.1 git to get a baseline, and the second against you branch. The only new complaint was CID 1400860.
As with the rest of the projects it will build and analyze once per day if something has changed. Like the other projects Scan starts to reject our builds after about 3 builds per week though, and I just used up two.
Regards,