Commit 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 8400309.
* 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 <aidan.lee@evcam.com>1 parent 14133db commit a20c1cc
40 files changed
Lines changed: 2690 additions & 719 deletions
File tree
- hxcpp
- include
- cpp
- hx
- src
- hx
- cppia
- libs/ssl
- toolchain
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
118 | 121 | | |
119 | 122 | | |
| 123 | + | |
120 | 124 | | |
121 | 125 | | |
122 | 126 | | |
| |||
0 commit comments