Implement fast Perl versions of the global functions
Creating an issue about this, because it's well underway in a local branch. Initial results are encouraging.
$ boxplot 293 296 305 313 288 # before
min: 288.00
1qt: 293.00
med: 296.00
3qt: 305.00
max: 313.00
$ boxplot 46 49 53 48 45 # after
min: 45.00
1qt: 46.00
med: 48.00
3qt: 49.00
max: 53.00
This issue is well underway, and was addressed by #95, but I wouldn't consider it closed yet, as there are still globals that could be implemented in Perl. (This is even more true after #96 merged.)
So, keeping this one open for a while as these are gradually being added.
Well, this is kind of a race between adding slow definitions of new globals, and speeding them up, isn't it?
I think in terms of bringing test suite durations down, this is currently the highest-prioritized issue. We're very close to having All The Globals, and then we should also have all of them fastfunc'd, so that this one can be closed.
The reason it has been slow going to the point of stalling is also the reason that #155 was needed: rampant complexity due to manually inlined code. Now that we have a preprocessor for the fastfuncs, it's also time to double down and use it. (This would involve addressing the technical debt outlined in #257.) So, address technical debt, roll out the preprocessor over more fastfuncs, and then implement more fastfuncs (using the preprocessor from the start). Then we can close this issue.
My guess is, as soon as we get to implementing new fastfuncs, we'll also see a speedup of the test suite.