Skip to content

Releases: HaxeFoundation/hxcpp

Release 4.3.110

06 Jan 18:16
26a23b4

Choose a tag to compare

[ci] Switch to patched setup-haxe version (#1286)

* [ci] Hardcode latest haxe version for setup-haxe

This avoids the invalid url error caused by relative redirect of the
"latest" file.

* Apply Aidan's patch for encoding errors

* Avoid warnings from string encoding code

* [ci] Switch to patched setup-haxe version

* Omit name for unusued null arguments

Release 4.3.109

02 Jan 19:16
4cff17a

Choose a tag to compare

Marshal String Encodings (#1283)

* Add new encoding tests and implementation

* Remove old marshal stuff and return an empty string instead of throwing

* update tests

* Case change

* Update utf16 codepoint encoder

* Add some extra functions

* copyTo function for view

* single bounds check for utf8 encode

* marshal writes

* remove some conversion issues

* Remove un-needed cast

* Remove questionable implicit view to pointer conversions

* int returns

* switch to a dedicated codepoint function for utf16

* move to a dedicated codepoint function for utf8 as well

* Fix incorrect index reuse

* Add new view extension cstring function tests

* Add a smart strings guard

* const view

* const ref marshal read and writes

* more const ref and less object copying

* Fix index reuse issue

* separate build xml for encoding

* Don't return hx::Throw result in non smart string case

* Revert "separate build xml for encoding"

This reverts commit 695e134657b2ae014de2d2c4cd88544eb0d62537.

* better smart string handling and shuffle some functions in lower hxcpp

* Revert some version guards

* Add pointer check define

* I don't understand why this is needed

No changes were made in this area, dev haxe + hxcpp also fails to build that test locally for me

* remove addition since there must be something else weird going on

* Could it really be this?

* Dynamic char32_t support

---------

Co-authored-by: Aidan Lee <aidan.lee@evcam.com>

Release 4.3.108

27 Dec 08:16
596badd

Choose a tag to compare

[cppia] Fix haxe overridden scriptable methods (#1273)

* [cppia] Add flag for scriptable overridden methods

This allows overridden methods to be marked so that they do not add an
addtional slot to the vtable, which has previously caused bugs due to
incorrect vtable indices.

* [cppia] Infer overrides from matching method name

For haxe versions that do not tag overridden methods in
__scriptableFunctions tables, we can infer overrides at runtime by
comparing method names.

* [cppia] Swap scriptable func argument order

This way is a bit more backwards compatible. An overridden method will
always have a super version provided.

Release 4.3.107

27 Dec 07:44
f8eb283

Choose a tag to compare

v4.3.107

[tools] Add check for invalid ANDROID_NDK_ROOT (#1281)

Release 4.3.106

15 Dec 09:33
0b59d98

Choose a tag to compare

Typed zip (#1277)

* Updated zlib implementation

* header faff to make gcc pch happy

* Support haxe 4 with new implementation

* no longer throwing on multiple close calls

* Give different file names to avoid cache issues

* Fix old string value

* Another old string

* static cast to int to avoid dynamic conversion of unsupported type

* true instead of 1 for asLibrary value

* some build xml tweaks

* Make sure this_dir is used before Zip.cpp

* case sensitive

* Fix case sensitivity in include

* flip around files order

---------

Co-authored-by: Aidan Lee <aidan.lee@evcam.com>

Release 4.3.105

14 Dec 08:01
4b2991f

Choose a tag to compare

int64 over size_t (#1276)

Co-authored-by: Aidan Lee <aidan.lee@evcam.com>

Release 4.3.104

13 Dec 21:37
617aed2

Choose a tag to compare

Marshalling Types (#1189)

* Add marshal header for value type interop

* finalise boxed objects if the type has a destructor

* works with static cast

* add value type tests

* move more conversion functions to reference class

* forward declare everything to avoid order issues

* ValueType construction from boxed pointer

* ValueType no longer inherits from struct

* marshal reference interop with existing pointer types

* Fix trying to dereference a null pointer when creating a boxed object from a reference

* add compare traits specialisation for reference null check

* consistent null checking and throwing

* raise exceptions when value types are assigned null

* reference equality operations

* remove no return

* remove some un-needed constructors

* Make constructors use more templates and use reinterpret cast

* use tagged dispatch

* support pointer types being held in value type helper

* Add new marshal pointer type

* rename marshal types in prep for more pointer stuff

* support reinterpreting value type references

* seemingly working pointer marshalling types

* better null checking with pointer references

* add marshalling tests

* Add pointer collection tests

* Move enums into header files

* test abstract around pointers

* Pointer type changes

* add pointer reference to pointer casting

* add null test to pointer access

* add test for vector of value types

* add tests showing weird null behaviour

* move marshalling tests to existing native tests

* initial managed extern tests

* managed extern local tests for two different naming schemes

* reduce test duplication

* Add tests for classes holding managed externs

* change tests so that static functions are tested

* un-private point

* let enum abstract include meta handle it

* remove analyser meta

* Fix test related to recent pointer changes

* Add pointer ctor overload

* view marshalling type

* Change to value semantics

* Add view tests

* Update some tests

* String marshalling functions

* Marshalling tests

* view based string creation and support char16_t in various hxcpp types

* Marshalling string tests

* const ref a bit

* Don't use byte size in copyTo comparison check

* view extension tests

* Split across multiple headers

* typed read and write helper functions

* Add compare function

* cstring to view conversion function, and allow null pointers

* Add view to pointer conversions

* View length is now size_t

* Add endian specific read and write marshal functions

* Add OOB checks

* change the public api to use int64_t over size_t

* Fix string from view conversions to properly use the view length

* Add OOB exception tests

* bound check read and write

* make sure view write index is int64_t

* add tests for exceptions when reading or writing to small views

* guard including new marshal headers

* fix dodgy conditional

---------

Co-authored-by: Aidan Lee <aidan.lee@evcam.com>

Release 4.3.103

08 Dec 07:17
646aaee

Choose a tag to compare

v4.3.103

Specify negative substr length (#1274)

Release 4.3.102

26 Nov 17:03
767fe94

Choose a tag to compare

[cppia] Fix int overflow in arithmetic assignments (#1258)

* [cppia] Fix int overflow in arithmetic assignments

Currently, the cppia interp runtime uses float operations for arithmetic
assignments such as *=. This results in inconsistent int overflow
behaviour.

* [tests] Add regression test for int *= overflow

Release 4.3.101

26 Nov 15:57
0c37f06

Choose a tag to compare

[ci] Use macos 15 intel runner (#1271)

macos-13 is deprecated