Zef interpreter after Optimization #14: Value Slow Paths
This is another Fil-C++-specific optimization, though I could imagine it also having a tiny impact on Yolo-C++ code.
Before this change, Value out-of-line slow paths were member functions of Value, meaning that they took an implicit const Value* argument. This means that the caller must stack-allocate a Value.
In Fil-C++, all stack allocation is a heap allocation. Hence, code that called slow paths would allocate Value in the heap!
This changes those methods to be static and take Value by value, obviating the need for any allocation.
10% speed-up.
This is displaying a diff from the previous version of the Zef interpreter.