After some critical debugging of the recently changed runFunctionObject() (used for callbacks), I decided to add a new boolean function in the spirit of doing things fast and efficiently: xall(). This function is the equivalent of any(all(…), nall(…)) where “…” represents the same arguments. Using xall() is much less error prone (since you only need to type the argument names once) and much faster because it’s all on the C++ side.
In other news…
EngineMessage::ConditionlessIf has been changed from Warning to Error. The documentation said it defaulted to false, but for a long time, it has simply terminated the VM. Moreover, since Copper requires are_empty() for checking the emptiness of functions, you can’t use if(func) anyways (as you would in C++).
Copper Bridge has been modified to keep up with the changes in the Copper engine. Copper Bridge is a work-in-progress GUI wrapper for Irrlicht. At the moment, Irrlicht is undergoing modifications to assign default values to its GUI elements. This would eliminate the need for gui_specific() (as you might have seen in the code I posted in the article about the bridge).
Finally, I’m considering hosting Copper elsewhere. I’m not real happy with Microsoft taking over Github, but the Copper Virtual Machine is free code anyways, so it’s not a big deal.