Skip to content

Commit a3623f1

Browse files
intoxopoxclaude
andcommitted
Merge upstream HaxeFoundation/hxcpp master (Feb 2026)
Picks up 37 upstream commits since our last merge (Sep 2, 2025), including: - Unconditional HXCPP_ALIGN_ALLOC (required for std::atomic in GC objects) - Missing GCFreeZone calls for semaphores/condvars (HaxeFoundation#1296) - C++11 std::mutex and condition variable for GC (HaxeFoundation#1298) - Callable objects with GC write barriers (HaxeFoundation#1047) - Root handle API (GCAddRoot/GCRemoveRoot) (HaxeFoundation#1292) - Fix undefined behaviour in View::tryCopyTo overlap (HaxeFoundation#1287) - Fix static target null Int problem - Skip splicing when no changes (HaxeFoundation#1309) Our ionosoft-specific changes preserved: - GcRegCapture RSI register fix (d71061e) - msvc-toolchain.xml debug build flags Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2 parents 00d04e7 + 7ea4343 commit a3623f1

190 files changed

Lines changed: 12438 additions & 2096 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/main.yml

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,28 @@ name: main
22
on: [push, pull_request]
33

44
jobs:
5+
check-headers:
6+
name: Check headers
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: checkout
10+
uses: actions/checkout@v4
11+
12+
- name: Install pcre2grep
13+
run: sudo apt-get update && sudo apt-get install -y pcre2-utils
14+
15+
- run: |
16+
# macros in public headers must use the global namespace to qualify types
17+
! pcre2grep --buffer-size=1M --recursive --multiline --line-number --include='.*\.h$' \
18+
'#define\s+(?:.*\\\r?\n)*.*?\K(?<!:)\b(Enum|String|StringOffset|Array|ArrayClassID|Math|Math_obj|Void|null|Dynamic|hx::|cpp::)\b' \
19+
include
20+
name: Check public headers
21+
522
Windows32:
623
strategy:
724
fail-fast: false
825
matrix:
9-
haxe: [ 4.3.4, latest ]
26+
haxe: [ 4.3.7, latest ]
1027
uses: ./.github/workflows/test.yml
1128
name: Test Windows (32bit)
1229
with:
@@ -20,7 +37,7 @@ jobs:
2037
strategy:
2138
fail-fast: false
2239
matrix:
23-
haxe: [ 4.3.4, latest ]
40+
haxe: [ 4.3.7, latest ]
2441
uses: ./.github/workflows/test.yml
2542
name: Test Windows (64bit)
2643
with:
@@ -34,21 +51,21 @@ jobs:
3451
strategy:
3552
fail-fast: false
3653
matrix:
37-
haxe: [ 4.3.4, latest ]
54+
haxe: [ 4.3.7, latest ]
3855
uses: ./.github/workflows/test.yml
3956
name: Test MacOS (x86_64)
4057
with:
4158
haxe: ${{ matrix.haxe }}
4259
arch: 64
4360
sep: /
4461
ext: .dylib
45-
os: macos-13
62+
os: macos-15-intel
4663

4764
MacOSArm:
4865
strategy:
4966
fail-fast: false
5067
matrix:
51-
haxe: [ 4.3.4, latest ]
68+
haxe: [ 4.3.7, latest ]
5269
uses: ./.github/workflows/test.yml
5370
name: Test MacOS (Arm64)
5471
with:
@@ -62,7 +79,7 @@ jobs:
6279
strategy:
6380
fail-fast: false
6481
matrix:
65-
haxe: [ 4.3.4, latest ]
82+
haxe: [ 4.3.7, latest ]
6683
uses: ./.github/workflows/test.yml
6784
name: Test Linux (32bit)
6885
with:
@@ -76,7 +93,7 @@ jobs:
7693
strategy:
7794
fail-fast: false
7895
matrix:
79-
haxe: [ 4.3.4, latest ]
96+
haxe: [ 4.3.7, latest ]
8097
uses: ./.github/workflows/test.yml
8198
name: Test Linux (64bit)
8299
with:

.github/workflows/package.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ jobs:
1616
with:
1717
fetch-depth: 0
1818

19-
- uses: Aidan63/setup-haxe@3d3101bcd0a2001699fc8295f4d9eddd0724d3e9
19+
- uses: krdlab/setup-haxe@v2
2020
with:
21-
haxe-version: 4.3.4
21+
haxe-version: 4.3.7
2222

2323
- name: Set Haxelib
2424
run: |

.github/workflows/setup/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ runs:
77
using: composite
88
steps:
99
- name: install haxe
10-
uses: Aidan63/setup-haxe@3d3101bcd0a2001699fc8295f4d9eddd0724d3e9
10+
uses: krdlab/setup-haxe@v2
1111
with:
1212
haxe-version: ${{ inputs.haxe }}
1313

@@ -34,4 +34,4 @@ runs:
3434
- name: build hxcpp
3535
working-directory: tools/hxcpp
3636
shell: pwsh
37-
run: haxe compile.hxml
37+
run: haxe compile.hxml

.github/workflows/test.yml

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -147,26 +147,14 @@ jobs:
147147
uses: ./.github/workflows/setup
148148
with:
149149
haxe: ${{ inputs.haxe }}
150-
- name: install mariadb
150+
- name: setup mariadb
151151
if: runner.os == 'Linux'
152152
run: |
153153
set -ex
154-
sudo rm -R /var/lib/mysql/
155-
curl -sSL https://downloads.mariadb.com/MariaDB/mariadb_repo_setup > mariadb_repo_setup
156-
curl -sSL https://downloads.mariadb.com/MariaDB/mariadb_repo_setup.sha256 > mariadb_repo_setup.sha256
157-
sha256sum --check mariadb_repo_setup.sha256
158-
sudo bash mariadb_repo_setup
159154
sudo apt-get update -qqy
160-
sudo apt-get remove -qqy mysql-common
161-
sudo apt-get autoremove -qqy
162155
sudo apt-get install -qqy mariadb-server
163-
- name: configure mariadb
164-
if: runner.os == 'Linux'
165-
run: |
166-
set -ex
167-
sudo systemctl unmask mysql.service
168-
sudo systemctl start mysql
169-
sudo mysql -u root -e "create database hxcpp; grant all privileges on hxcpp.* to hxcpp@localhost identified by 'hxcpp'; flush privileges;"
156+
sudo systemctl start mariadb
157+
sudo mariadb -u root -e "create database hxcpp; grant all privileges on hxcpp.* to hxcpp@localhost identified by 'hxcpp'; flush privileges;"
170158
- name: build
171159
run: haxe compile${{ inputs.arch }}.hxml
172160
- name: run
@@ -227,7 +215,22 @@ jobs:
227215
haxe: ${{ inputs.haxe }}
228216
- name: install haxe libs
229217
run: haxelib install compile-cpp.hxml --always
218+
# haxe 4 tests don't build with latest utest
219+
if: inputs.haxe != 'latest'
230220
- name: build
231221
run: haxe compile-cpp.hxml -D ${{ env.HXCPP_ARCH_FLAG }} -D no_http
232222
- name: run
233223
run: bin${{ inputs.sep }}cpp${{ inputs.sep }}TestMain-debug
224+
build_tool:
225+
runs-on: ${{ inputs.os }}
226+
name: build tool tests
227+
steps:
228+
- name: checkout
229+
uses: actions/checkout@v4
230+
- name: setup
231+
uses: ./.github/workflows/setup
232+
with:
233+
haxe: ${{ inputs.haxe }}
234+
- name: test c/cxx_standard attributes
235+
working-directory: test/cxx_standard
236+
run: haxelib run hxcpp Build.xml

0 commit comments

Comments
 (0)