Skip to content

Commit b2b5024

Browse files
committed
Merge branch 'main' into anonymous-file-descriptors
2 parents 8c556c8 + f604a15 commit b2b5024

File tree

935 files changed

+24399
-20123
lines changed

Some content is hidden

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

935 files changed

+24399
-20123
lines changed

.circleci/config.yml

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ executors:
1010
linux-python:
1111
docker:
1212
- image: cimg/python:3.10.7
13-
bionic:
13+
focal:
1414
docker:
1515
- image: emscripten/emscripten-ci:focal
1616
environment:
@@ -115,7 +115,7 @@ commands:
115115
description: "install canary version of node"
116116
steps:
117117
- install-node-version:
118-
node_version: "24.0.0-v8-canary202411045365c9d9be"
118+
node_version: "24.0.0-v8-canary202501036428a2737e"
119119
canary: true
120120
install-v8:
121121
description: "install v8 using jsvu"
@@ -247,7 +247,7 @@ commands:
247247
# detect flakyness.
248248
condition: ${CIRCLE_PULL_REQUEST}
249249
steps:
250-
set-retry-flaky-tests
250+
- set-retry-flaky-tests
251251
- run:
252252
name: run tests (<< parameters.title >>)
253253
command: |
@@ -411,7 +411,7 @@ commands:
411411

412412
jobs:
413413
build-docs:
414-
executor: bionic
414+
executor: focal
415415
steps:
416416
- checkout
417417
- pip-install
@@ -420,15 +420,15 @@ jobs:
420420
- run: tools/maint/check_emcc_help_text.py
421421
- run: make -C site html
422422
ruff:
423-
executor: bionic
423+
executor: focal
424424
steps:
425425
- checkout
426426
- pip-install
427427
- run: ruff check
428428
# TODO (cclauss): When ruff supports rule E303 without --preview, remove following line
429429
- run: ruff check --preview --select=E303
430430
mypy:
431-
executor: bionic
431+
executor: focal
432432
steps:
433433
- checkout
434434
- pip-install
@@ -442,13 +442,13 @@ jobs:
442442
npm run lint
443443
npm run check
444444
test-sanity:
445-
executor: bionic
445+
executor: focal
446446
steps:
447447
- run-tests-linux:
448448
frozen_cache: false
449449
test_targets: "sanity"
450450
build-linux:
451-
executor: bionic
451+
executor: focal
452452
# xlarge has 4x the cores of the default medium, costs 4x as much, and runs
453453
# in about 1/2 the time, so it is not cost-effective (overall it is 2x the
454454
# cost for the same work), but given this blocks almost all the other jobs
@@ -488,19 +488,19 @@ jobs:
488488
- persist
489489
# Perhaps we don't need to run this suite with every commit. Consider moving this to FYI bot.
490490
test-posixtest:
491-
executor: bionic
491+
executor: focal
492492
steps:
493493
- run-tests-linux:
494494
test_targets: "posixtest"
495495
test-core0:
496-
executor: bionic
496+
executor: focal
497497
environment:
498498
EMTEST_SKIP_NODE_CANARY: "1"
499499
steps:
500500
- run-tests-linux:
501501
test_targets: "core0"
502502
test-core2:
503-
executor: bionic
503+
executor: focal
504504
environment:
505505
EMTEST_BROWSER: "node"
506506
EMTEST_SKIP_NODE_CANARY: "1"
@@ -543,7 +543,7 @@ jobs:
543543
corez.test_dylink_syslibs_all"
544544
- upload-test-results
545545
test-core3:
546-
executor: bionic
546+
executor: focal
547547
environment:
548548
EMTEST_SKIP_NODE_CANARY: "1"
549549
steps:
@@ -623,7 +623,7 @@ jobs:
623623
test-wasm2js1:
624624
environment:
625625
EMTEST_SKIP_NODE_CANARY: "1"
626-
executor: bionic
626+
executor: focal
627627
steps:
628628
- run-tests-linux:
629629
test_targets: "wasm2js1"
@@ -796,7 +796,7 @@ jobs:
796796
core2.test_pthread_unhandledrejection"
797797
- upload-test-results
798798
test-other:
799-
executor: bionic
799+
executor: focal
800800
environment:
801801
EMTEST_SKIP_NODE_CANARY: "1"
802802
EMTEST_SKIP_RUST: "1"
@@ -810,7 +810,7 @@ jobs:
810810
# headers on emsdk-bundled clang
811811
test_targets: "other skip:other.test_native_link_error_message"
812812
test-browser-chrome:
813-
executor: bionic
813+
executor: focal
814814
environment:
815815
EMTEST_LACKS_WEBGPU: "1"
816816
steps:
@@ -821,7 +821,7 @@ jobs:
821821
browser skip:browser.test_4gb_fail
822822
"
823823
test-browser-chrome-wasm64:
824-
executor: bionic
824+
executor: focal
825825
environment:
826826
EMTEST_LACKS_WEBGPU: "1"
827827
steps:
@@ -836,15 +836,15 @@ jobs:
836836
skip:browser64.test_4gb_fail
837837
skip:browser64.test_4gb"
838838
test-browser-chrome-2gb:
839-
executor: bionic
839+
executor: focal
840840
environment:
841841
EMTEST_LACKS_WEBGPU: "1"
842842
steps:
843843
- run-tests-chrome:
844844
title: "browser_2gb"
845845
test_targets: "browser_2gb"
846846
test-browser-chrome-wasm64-4gb:
847-
executor: bionic
847+
executor: focal
848848
environment:
849849
EMTEST_LACKS_WEBGPU: "1"
850850
EMTEST_SKIP_NODE_CANARY: "1"
@@ -853,7 +853,7 @@ jobs:
853853
title: "browser64_4gb"
854854
test_targets: "browser64_4gb"
855855
test-browser-firefox:
856-
executor: bionic
856+
executor: focal
857857
steps:
858858
- prepare-for-tests
859859
- run-tests-firefox:
@@ -876,7 +876,7 @@ jobs:
876876
skip:browser.test_glut_glutget
877877
"
878878
test-browser-firefox-wasm64:
879-
executor: bionic
879+
executor: focal
880880
steps:
881881
- checkout
882882
- run:
@@ -893,12 +893,12 @@ jobs:
893893
# TODO(sbc): Re-enable once we figure out why the emrun tests are
894894
# locking up.
895895
#test-browser-chrome-emrun:
896-
# executor: bionic
896+
# executor: focal
897897
# steps:
898898
# - run-tests-chrome:
899899
# test_targets: "emrun"
900900
test-sockets-chrome:
901-
executor: bionic
901+
executor: focal
902902
steps:
903903
- test-sockets-chrome
904904
# windows and mac do not have separate build and test jobs, as they only run

.github/workflows/ci.yml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,32 @@ jobs:
5555
cat $EM_CONFIG
5656
- name: Check test expectations on target branch
5757
run: |
58+
echo "Checking out ${{ github.base_ref }}"
5859
git checkout ${{ github.base_ref }}
5960
git rev-parse HEAD
6061
# Hack to honor changes to rebaseline_tests.py in the current PR
6162
git checkout - ./tools/maint/rebaseline_tests.py
6263
./bootstrap
6364
if ! ./tools/maint/rebaseline_tests.py --check-only; then
6465
echo "Test expectations are out-of-date on the target branch."
65-
echo "You can run `./tools/maint/rebaseline_tests.py --new-branch`"
66+
echo "You can run './tools/maint/rebaseline_tests.py --new-branch'"
6667
echo "and use it to create a seperate PR."
68+
echo "-- This failure is only a warning and can be ignored"
69+
exit 1
70+
fi
71+
- name: Check test expectations on PR branch
72+
run: |
73+
echo "Checking out ${{ github.ref }} (${{ github.sha }})"
74+
# For some reason we cannot pass ${{ github.ref }} direclty to git
75+
# since it doesn't recognise it.
76+
git checkout ${{ github.sha }}
77+
git rev-parse HEAD
78+
./bootstrap
79+
if ! ./tools/maint/rebaseline_tests.py --check-only --clear-cache; then
80+
echo "Test expectations are out-of-date on the PR branch."
81+
echo "You can run './tools/maint/rebaseline_tests.py' to"
82+
echo "create a commit updating the expectations."
83+
echo "Be sure to have `emsdk install tot` first."
84+
echo "-- This failure is only a warning and can be ignored"
6785
exit 1
6886
fi

ChangeLog.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,18 @@ to browse the changes between the tags.
1818

1919
See docs/process.md for more on how version tagging works.
2020

21-
3.1.75 (in development)
22-
-----------------------
21+
4.0.0 (in development)
22+
----------------------
23+
- compiler-rt, libcxx, libcxxabi, and libunwind were updated to LLVM 19.1.6.
24+
(#22937, #22994, and #23294)
25+
- The Wasm nontrapping-fptoint feature has been enabled by default. clang will
26+
generate nontrapping (saturating) float-to-int conversion instructions for
27+
C typecasts. This should have no effect on programs that do not have
28+
undefined behavior but if the casted floating-point value is outside the range
29+
of the target integer type, the result will be a number of the max or min value
30+
instead of a trap. This also results in a small code size improvement because
31+
of details of the LLVM IR semantics. This feature can be disabled in clang with
32+
the -mno-nontrapping-fptoint flag. (#23007)
2333
- The `WASM_BIGINT` feature has been enabled by default. This has the effect that
2434
Wasm i64 values are passed and returned between Wasm and JS as BigInt values
2535
rather than being split by Binaryen into pairs of Numbers. (#22993)
@@ -39,6 +49,9 @@ See docs/process.md for more on how version tagging works.
3949
`--post-js` files will now be delayed until after module creation and after
4050
`main` runs. This matches the existing behaviour when using sync instantation
4151
(`-sWASM_ASYNC_COMPILATION=0`) but is an observable difference. (#23157)
52+
- The `POLYFILL_OLD_MATH_FUNCTIONS` setting was removed. The browser versions
53+
that require these polyfills are no longer supported by emscripten so the
54+
polyfills should never be needed. (#23262)
4255

4356
3.1.74 - 12/14/24
4457
-----------------
@@ -59,7 +72,7 @@ See docs/process.md for more on how version tagging works.
5972

6073
3.1.73 - 11/28/24
6174
-----------------
62-
- libunwind was updated to LLVM 19.1.4. (#22394)
75+
- libunwind was updated to LLVM 19.1.4. (#22934)
6376
- mimalloc was updated to 2.1.7. (#21548)
6477

6578
3.1.72 - 11/19/24

embuilder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ def main():
293293
if USE_NINJA:
294294
library.generate()
295295
else:
296-
library.build(deterministic_paths=True)
296+
library.build()
297297
elif what == 'sysroot':
298298
if do_clear:
299299
cache.erase_file('sysroot_install.stamp')

emcc.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -392,8 +392,6 @@ def get_clang_flags(user_args):
392392
if not settings.BULK_MEMORY:
393393
flags.append('-mno-bulk-memory')
394394
flags.append('-mno-bulk-memory-opt')
395-
if '-mnontrapping-fptoint' not in user_args and '-mno-nontrapping-fptoint' not in user_args:
396-
flags.append('-mno-nontrapping-fptoint')
397395

398396
if settings.RELOCATABLE and '-fPIC' not in user_args:
399397
flags.append('-fPIC')
@@ -1435,6 +1433,12 @@ def consume_arg_file():
14351433
override=True)
14361434
elif arg == '-mno-sign-ext':
14371435
feature_matrix.disable_feature(feature_matrix.Feature.SIGN_EXT)
1436+
elif arg == '-mnontrappting-fptoint':
1437+
feature_matrix.enable_feature(feature_matrix.Feature.NON_TRAPPING_FPTOINT,
1438+
'-mnontrapping-fptoint',
1439+
override=True)
1440+
elif arg == '-mno-nontrapping-fptoint':
1441+
feature_matrix.disable_feature(feature_matrix.Feature.NON_TRAPPING_FPTOINT)
14381442
elif arg == '-fexceptions':
14391443
# TODO Currently -fexceptions only means Emscripten EH. Switch to wasm
14401444
# exception handling by default when -fexceptions is given when wasm

emscripten-version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.1.75-git
1+
4.0.0-git

0 commit comments

Comments
 (0)