Skip to content

Commit c674a2c

Browse files
committed
Merge branch 'main' into roll-and-repoint-tests
2 parents b3c5761 + cd1d72a commit c674a2c

File tree

121 files changed

+1952
-1467
lines changed

Some content is hidden

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

121 files changed

+1952
-1467
lines changed

.circleci/config.yml

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,12 @@ commands:
176176
./emcc --clear-cache
177177
- pip-install
178178
- run: apt-get install -q -y ninja-build ccache
179+
- run:
180+
name: Ccache stats and configuration
181+
command: |
182+
ccache -s
183+
ccache --print-stats
184+
ccache -p
179185
- run:
180186
name: embuilder build ALL
181187
command: |
@@ -201,9 +207,14 @@ commands:
201207
./embuilder build MINIMAL --pic --lto
202208
./test/runner test_hello_world
203209
- run:
204-
name: "Ccache stats"
210+
name: "Ccache stats and configuration"
205211
command: |
212+
ls ~/cache/sysroot/lib/wasm32-emscripten || echo "no build"
213+
cat ~/cache/sysroot/lib/wasm32-emscripten/crtbegin.o.ccache-log
214+
date
215+
ccache -s
206216
ccache --print-stats
217+
ccache -p
207218
ccache --zero-stats
208219
209220
persist:
@@ -400,8 +411,6 @@ commands:
400411
# TODO(https://github.com/emscripten-core/emscripten/issues/24205)
401412
EMTEST_LACKS_SOUND_HARDWARE: "1"
402413
EMTEST_LACKS_WEBGPU: "1"
403-
# OffscreenCanvas support is not yet done in Firefox.
404-
EMTEST_LACKS_OFFSCREEN_CANVAS: "1"
405414
EMTEST_DETECT_TEMPFILE_LEAKS: "0"
406415
EMTEST_HEADLESS: "1"
407416
EMTEST_CORES: "2"
@@ -470,8 +479,6 @@ commands:
470479
# TODO(https://github.com/emscripten-core/emscripten/issues/24205)
471480
EMTEST_LACKS_SOUND_HARDWARE: "1"
472481
EMTEST_LACKS_WEBGPU: "1"
473-
# OffscreenCanvas support is not yet done in Firefox.
474-
EMTEST_LACKS_OFFSCREEN_CANVAS: "1"
475482
EMTEST_DETECT_TEMPFILE_LEAKS: "0"
476483
EMTEST_HEADLESS: "1"
477484
EMTEST_CORES: "2"
@@ -567,6 +574,8 @@ jobs:
567574
EMCC_CORES: 16
568575
EMCC_USE_NINJA: 1
569576
EM_COMPILER_WRAPPER: "ccache"
577+
CCACHE_DEBUG: 1
578+
CCACHE_DEBUGLEVEL: 1
570579
steps:
571580
- checkout
572581
- run:
@@ -656,6 +665,7 @@ jobs:
656665
lsan.test_dlfcn_basic
657666
lsan.test_pthread_create
658667
lsan.test_pthread_exit_main_stub
668+
lsan.test_dylink_iostream
659669
ubsan.test_externref_emjs_dynlink"
660670
- freeze-cache
661671
- run-tests:
@@ -746,6 +756,7 @@ jobs:
746756
wasmfs.test_fs_llseek_rawfs
747757
wasmfs.test_freetype
748758
minimal0.test_utf
759+
minimal0.test_ubsan_full_stack_trace_gsource_map
749760
minimal0.test_static_variable
750761
minimal0.test_stack_overflow
751762
omitexports0.test_asyncify_longjmp
@@ -929,6 +940,7 @@ jobs:
929940
other.test_native_call_before_init
930941
other.test_js_optimizer_verbose
931942
other.test_node_unhandled_rejection
943+
other.test_file_packager_separate_metadata
932944
other.test_full_js_library*
933945
core2.test_hello_world
934946
core2.test_fcntl_open_nodefs
@@ -1090,6 +1102,8 @@ jobs:
10901102
test_targets: "browser64_4gb"
10911103
test-browser-firefox:
10921104
executor: focal
1105+
environment:
1106+
EMTEST_LACKS_GROWABLE_ARRAYBUFFERS: "1"
10931107
steps:
10941108
- prepare-for-tests
10951109
- run-tests-firefox:
@@ -1110,7 +1124,6 @@ jobs:
11101124
skip:browser.test_webgl_offscreen_canvas_in_pthread
11111125
skip:browser.test_webgl_offscreen_canvas_in_mainthread_after_pthread
11121126
skip:browser.test_glut_glutget
1113-
skip:browser.test_*_growable_arraybuffers
11141127
"
11151128
test-browser-firefox-wasm64:
11161129
executor: focal
@@ -1194,7 +1207,8 @@ jobs:
11941207
# https://github.com/emscripten-core/emscripten/pull/11382#pullrequestreview-428902638
11951208
EMTEST_LACKS_NATIVE_CLANG: "1"
11961209
EMTEST_SKIP_V8: "1"
1197-
EMTEST_SKIP_EH: "1"
1210+
EMTEST_SKIP_WASM_LEGACY_EH: "1"
1211+
EMTEST_SKIP_WASM_EH: "1"
11981212
EMTEST_SKIP_WASM64: "1"
11991213
EMTEST_SKIP_SCONS: "1"
12001214
EMTEST_SKIP_RUST: "1"
@@ -1230,7 +1244,8 @@ jobs:
12301244
# We don't install d8 or modern node on the mac runner so we skip any
12311245
# tests that depend on those.
12321246
EMTEST_SKIP_V8: "1"
1233-
EMTEST_SKIP_EH: "1"
1247+
EMTEST_SKIP_WASM_LEGACY_EH: "1"
1248+
EMTEST_SKIP_WASM_EH: "1"
12341249
EMTEST_SKIP_WASM64: "1"
12351250
EMTEST_SKIP_SCONS: "1"
12361251
EMTEST_SKIP_RUST: "1"

AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,3 +601,4 @@ a license to everyone to use it as detailed in LICENSE.)
601601
* Artur Gatin <[email protected]> (copyright owned by Teladoc Health, Inc.)
602602
* Christian Lloyd <[email protected]> (copyright owned by Teladoc Health, Inc.)
603603
* Sean Morris <[email protected]>
604+
* Mitchell Wills <[email protected]> (copyright owned by Google, Inc.)

ChangeLog.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,17 @@ See docs/process.md for more on how version tagging works.
2020

2121
4.0.16 (in development)
2222
-----------------------
23+
- A warning was added about usage of embind without C++17 or above. (#25424)
2324
- The minimum supported versions of Node, Chrome and Firefox were bumped
2425
enabling the removal of the `globalThis` polyfill and universally enabling
2526
mutable globals: (#25375, #25385)
2627
- Node: v10.19.0 -> v12.22.9
2728
- Chrome: v70 -> v74
2829
- Firefox: v55 -> v65
30+
- The Embind `val` functions `call`, `operator()`, and `new_` now support
31+
passing `pointer`s by using the `allow_raw_pointers()` argument. This feature
32+
is only enabled with C++17 and newer. Older versions will allow pointers by
33+
default.
2934

3035
4.0.15 - 09/17/25
3136
-----------------
@@ -317,7 +322,7 @@ See docs/process.md for more on how version tagging works.
317322
- Emscripten version was bumped to 4.0.0. Happy new year, happy new major
318323
version! While version has a few interesting changes, there is nothing huge
319324
that makes it different from any other release. (#19053)
320-
- `-sWASM_LEAGCY_EXCEPTIONS` option is added. (#23365) If true, it will emit
325+
- `-sWASM_LEGACY_EXCEPTIONS` option is added. (#23365) If true, it will emit
321326
instructions for the legacy Wasm exception handling proposal
322327
(https://github.com/WebAssembly/exception-handling/blob/main/proposals/exception-handling/legacy/Exceptions.md),
323328
and if false, the new standardized exception handling proposal

emcc.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -431,9 +431,6 @@ def phase_setup(options, state):
431431
if settings.PTHREADS or settings.WASM_WORKERS:
432432
settings.SHARED_MEMORY = 1
433433

434-
if settings.SHARED_MEMORY:
435-
settings.BULK_MEMORY = 1
436-
437434
if 'DISABLE_EXCEPTION_CATCHING' in user_settings and 'EXCEPTION_CATCHING_ALLOWED' in user_settings:
438435
# If we get here then the user specified both DISABLE_EXCEPTION_CATCHING and EXCEPTION_CATCHING_ALLOWED
439436
# on the command line. This is no longer valid so report either an error or a warning (for

emcmake.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from tools import shared
1212
from tools import config
1313
from tools import utils
14-
from subprocess import CalledProcessError
1514

1615

1716
#
@@ -63,11 +62,7 @@ def has_substr(args, substr):
6362
return 1
6463

6564
print(f'emcmake: {shlex.join(args)} in directory {os.getcwd()}', file=sys.stderr)
66-
try:
67-
shared.check_call(args)
68-
return 0
69-
except CalledProcessError as e:
70-
return e.returncode
65+
shared.exec_process(args)
7166

7267

7368
if __name__ == '__main__':

emconfigure.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import sys
2222
from tools import building
2323
from tools import shared
24-
from subprocess import CalledProcessError
2524

2625

2726
#
@@ -50,11 +49,8 @@ def run():
5049
# is a heuristic emulation that may or may not work.
5150
env['EMMAKEN_JUST_CONFIGURE'] = '1'
5251
print(f'emconfigure: {shlex.join(args)} in directory {os.getcwd()}', file=sys.stderr)
53-
try:
54-
shared.check_call(args, env=env)
55-
return 0
56-
except CalledProcessError as e:
57-
return e.returncode
52+
os.environ.update(env)
53+
shared.exec_process(args)
5854

5955

6056
if __name__ == '__main__':

emmake.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
from tools import building
2929
from tools import shared
3030
from tools import utils
31-
from subprocess import CalledProcessError
3231

3332

3433
#
@@ -59,11 +58,11 @@ def run():
5958
# executable extension lookup, e.g. 'sdl2-config' will match with
6059
# 'sdl2-config.bat' in PATH.
6160
print(f'emmake: "{shlex.join(args)}" in "{os.getcwd()}"', file=sys.stderr)
62-
try:
63-
shared.check_call(args, shell=utils.WINDOWS, env=env)
64-
return 0
65-
except CalledProcessError as e:
66-
return e.returncode
61+
if utils.WINDOWS:
62+
return shared.run_process(args, check=False, shell=True, env=env).returncode
63+
else:
64+
os.environ.update(env)
65+
shared.exec_process(args)
6766

6867

6968
if __name__ == '__main__':

0 commit comments

Comments
 (0)