Skip to content

Release 4.3.115

Choose a tag to compare

@github-actions github-actions released this 18 Jan 14:39
· 32 commits to master since this release
a20c1cc
Callable object for typed functions (#1047)

* Initial work for typed functions

* Bit of cleanup to use typedefs

* implicit conversion to T for use in wrapper functions

* Remove extra callable subclass and MarkThis GC functions

* Add null check operator

* Throw when calling null object function or dynamic is not a function

* Add closure mark and visit gc functions

* Add instance of to base callable object

* bump API level

* Update macro template

* revert temp changes

* Use callable for create_var_args function

* Use callables for Maths _dyn functions

* Callables for string _dyn functions

* Add __run functions to maths and string callables

* Handle __Run variant in Callable_obj with some template magic

* Add compare functions to maths and string callables

* Experiments in not needing loads of manual __run overloads

* Restore missing __Run function for varray dyn closures

* reinterpret to hx::Object

* Add back some __Run functions to work with templating changes

* Cppia now compiles (but test suite still fails)

* Make Ptr on callable public

* Add a bunch of api level checks I got lazy about and didn't initial write

* One more forgotten api level check

* Could it be this?

* Restore forgotten about dynamic call functions for strings

* Fix broken array closure macro for dynamic runs

* Split out array safe sorter

* Array sort and filter functions use callables

* Array map function uses callable (still somewhat dynamic)

* Switch sorter away from fixed sized numerics

* Revert "Switch sorter away from fixed sized numerics"

This reverts commit 8400309e64e4363fccf4ca1400a0318cee35913f.

* Include limits header

* More header include order faff

* Update cppia array implementation to work with callables

* Only define callable at 500 api level

* Templated array map function

* Update cppia array support to work with templated map

* Add forgotten about api level checks

* avoid one if constexpr with a specialised template

* Specialised callable ptr class to not need constexpr

* C++11 index sequence

* Remove constexpr if in dynamic call

* Remove now unused extra level of indirection

* Alternative to C++17 folds

* Only require C++11

* callables for virtual array dyn closures

* Add forgotten api level check

* callables for array dyn closures

* Fix some include issues

* Reduce duplicated maths function macro

* Reduce duplicated string function macro

* Use HX_LOCAL_RUN in array function macros

* help the compiler with nested template case

* Allow creating a null callable from a null dynamic object

* support pointer and struct wrapping for dynamic calls

* c++11 version

* Create new intermediate closure object to hide forward declaration issues

* API level check

* Add new closure header

* add hx::Object* operator to dynamic for easier cffi and callable interop

* Add callable constructor which accepts a cpp::Function of the same signature

* Update cffi caller object to work with new __run and __Run

* Apply null check to void callable specialisation to allow null callables

* Allow null callables in the void return callable specialisation

* turn cppia logging back off

* Don't use a MemReference for objects

* Do not place mistakenly place hx::Object*'s in cpp::Pointers as part of the automatic dynamic calls

* Add forgotten about return and explicit template

* Add some write barriers

* typedef instead of using for < c++11

* Fix dodgy typedef

* Another dodgy typedef

* Callable for thread creation function

* Slightly different conditional for mapping func

* Cppia fixes related to the thread create callable update

* Fix botched merge

* remove __run

* remove closure

* get cppia working

* api level guarding

* fix dodgy cffi copy and paste job

* More fixes

* silence warning to see if there are actual errors

* forward declaration to make clang happy

* try removing the HXCPP_CLANG guard

* strip const-ness of pointers before wrapping in cpp::Pointer for dynamic

* Ensure callables are not reinterpreted when static casted

needed to work around a cppia edge case

* wrap in cppia define check

* re-introduce intermediate object for haxe generated callables

* Move to a traits based dynamic conversions for the invoker

* Add native struct wrapping back

* Update objective c helpers

* Add missing api level check

---------

Co-authored-by: Aidan Lee <[email protected]>