v0.29: Various bugfixes, SConstruct custom builds
This release fixes quite a few bugs, further stabilizing the APIs and the extension.
- It's now possible to build custom programs using SConstruct
- When a SCons file is present, saving a .cpp file will invoke scons instead
- Make it possible to disable execution timeout by setting it to 0, which yields up to 13% performance
- If the sandbox program loops forever the game can still be closed from the editor or process explorer, like other hung processes
- Completely disable all socket calls, reducing size of all shipped binaries
- Add a work-around for an issue with icon registration in the Android editor
- Fix mishap with BCLR and BINV instruction bitmasks, leading to exception about unimplemented opcodes
- Fix PackedVector3Array not able to be constructed from a Variant
- Fix Sandbox monitoring properties being inadvertently stored in project file
- Many improvements made to Array and PackedArray<> interactions
- Improve support for double builds, add
DOUBLE_PRECISION
CMake option to enable in custom builds - Add size() and is_empty() to packed arrays
- Add support for PackedVector4Array
- Add a new Sandbox property that limits maximum heap allocations
- Add monitoring that shows arena allocations, deallocations and current chunk usage
- Add EXPECT() macro to the API
- Increase the argument limit for vmcallv to 16 (unxboxing disabled)
- Increase the argument limit for vmcall to up to 11 arguments (unboxing enabled)
- The limit is still 7 integral and 8 fp arguments, but can now be better spread out
PRs
- Update SCsub for linux by @Ughuuu in #208
- Fix windows target for module build 1/2 by @Ughuuu in #211
- Build using SConstruct, when present by @Ughuuu in #213
Full Changelog: v0.28...v0.29