Skip to content
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
9eaa392
[WIP] Enable WASM_BIGINT by default
dschuff Nov 15, 2024
5532f29
review comments; fix name section emission
dschuff Nov 22, 2024
5d13302
one more debuginfo test works now
dschuff Nov 22, 2024
152c205
fix more tests, use explicit need_name_section in finalize
dschuff Nov 23, 2024
4a6588e
Use i53abi for one more wasmfs function
dschuff Nov 27, 2024
52fedfd
update node version for bigint
dschuff Nov 27, 2024
01d5e34
dont use i53 in the wrong place
dschuff Dec 6, 2024
e19febb
Merge branch 'main' into bigint_on
dschuff Dec 6, 2024
2c1b640
rebaseline size tests
dschuff Dec 6, 2024
c0f2c4a
Merge branch 'main' into bigint_on
dschuff Dec 6, 2024
1f0232b
update browser.test_small_js_flags size
dschuff Dec 7, 2024
3cbc37c
Merge branch 'main' into bigint_on
dschuff Dec 10, 2024
b9c8be1
fix WasmFS API
dschuff Dec 11, 2024
fb50f90
Merge branch 'main' into bigint_on
dschuff Dec 11, 2024
513ce14
rebaseline
dschuff Dec 11, 2024
8185db1
fix test expectations
dschuff Dec 13, 2024
22165af
rebaseline
dschuff Dec 13, 2024
dd34e39
set WASM_BIGINT setting, fix tests
dschuff Dec 13, 2024
166dcc7
Merge branch 'main' into bigint_on
dschuff Dec 13, 2024
3088726
fix doc, disable bigint with old node
dschuff Dec 13, 2024
f81e0da
fix old node
dschuff Dec 13, 2024
833c212
don't upgrade browser versions based on bigint after it's the default
dschuff Dec 14, 2024
4004df6
update settings doc
dschuff Dec 14, 2024
faa22bb
Merge branch 'main' into bigint_on
dschuff Dec 14, 2024
c2627fd
fix checking of BIGINT against explicit version
dschuff Dec 14, 2024
382211e
fix TODOs to point to the right bug
dschuff Dec 16, 2024
b05455c
Merge branch 'main' into bigint_on
dschuff Dec 16, 2024
2d5fd55
Merge branch 'main' into bigint_on
dschuff Dec 16, 2024
2cc1703
fix copypasta
dschuff Dec 16, 2024
a8372fc
remove unneeded disabling of BIGINT, update comment, add explicit con…
dschuff Dec 16, 2024
cb4503e
rebaseline
dschuff Dec 16, 2024
ed8906a
review comments, fix error check
dschuff Dec 17, 2024
88775c6
change disabling text
dschuff Dec 17, 2024
dd73366
Merge branch 'main' into bigint_on
dschuff Dec 17, 2024
b70d46a
Merge branch 'main' into bigint_on
dschuff Dec 17, 2024
2ee2ce3
remove debug print
dschuff Dec 18, 2024
759de04
fix sanity.test_binaryen_version
dschuff Dec 18, 2024
f3c20a3
fix test_dyncall_specific
dschuff Dec 18, 2024
4abe5fb
fix test_binaryen, fix min_browser_version
dschuff Dec 18, 2024
b7d960a
add changelog, fix dyncall_specific again
dschuff Dec 18, 2024
8a3df8f
Merge branch 'main' into bigint_on
dschuff Dec 18, 2024
d9fb51c
clarify comment
dschuff Dec 18, 2024
ff8c662
Merge branch 'main' into bigint_on
dschuff Dec 18, 2024
9194564
Merge branch 'main' into bigint_on
dschuff Dec 18, 2024
8e5ba19
rebaseline test_small_js_flags, and test_INCOMING_MODULE_JS_API
dschuff Dec 18, 2024
02bc462
add PR number to changelog
dschuff Dec 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions emcc.py
Original file line number Diff line number Diff line change
Expand Up @@ -1268,6 +1268,13 @@ def consume_arg_file():
if is_int(requested_level):
# the -gX value is the debug level (-g1, -g2, etc.)
settings.DEBUG_LEVEL = validate_arg_level(requested_level, 4, 'invalid debug level: ' + arg)
if settings.DEBUG_LEVEL == 0:
# Set these explicitly so -g0 overrides previous -g on the cmdline
settings.GENERATE_DWARF = 0
settings.GENERATE_SOURCE_MAP = 0
settings.EMIT_NAME_SECTION = 0
elif settings.DEBUG_LEVEL > 1:
settings.EMIT_NAME_SECTION = 1
# if we don't need to preserve LLVM debug info, do not keep this flag
# for clang
if settings.DEBUG_LEVEL < 3:
Expand Down Expand Up @@ -1298,17 +1305,20 @@ def consume_arg_file():
settings.GENERATE_DWARF = 1
elif requested_level == 'source-map':
settings.GENERATE_SOURCE_MAP = 1
settings.EMIT_NAME_SECTION = 1
newargs[i] = '-g'
else:
# Other non-integer levels (e.g. -gline-tables-only or -gdwarf-5) are
# usually clang flags that emit DWARF. So we pass them through to
# clang and make the emscripten code treat it like any other DWARF.
settings.GENERATE_DWARF = 1
settings.EMIT_NAME_SECTION = 1
# In all cases set the emscripten debug level to 3 so that we do not
# strip during link (during compile, this does not make a difference).
settings.DEBUG_LEVEL = 3
elif check_flag('-profiling') or check_flag('--profiling'):
settings.DEBUG_LEVEL = max(settings.DEBUG_LEVEL, 2)
settings.EMIT_NAME_SECTION = 1
elif check_flag('-profiling-funcs') or check_flag('--profiling-funcs'):
settings.EMIT_NAME_SECTION = 1
elif newargs[i] == '--tracing' or newargs[i] == '--memoryprofiler':
Expand Down
4 changes: 2 additions & 2 deletions src/library_wasmfs.js
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ FS.init();

var bytesRead;
if (seeking) {
bytesRead = __wasmfs_pread(stream.fd, dataBuffer, length, position);
bytesRead = __wasmfs_pread(stream.fd, dataBuffer, length, {{{ splitI64('position') }}});
} else {
bytesRead = __wasmfs_read(stream.fd, dataBuffer, length);
}
Expand All @@ -222,7 +222,7 @@ FS.init();

var bytesRead;
if (seeking) {
bytesRead = __wasmfs_pwrite(stream.fd, dataBuffer, length, position);
bytesRead = __wasmfs_pwrite(stream.fd, dataBuffer, length, {{{ splitI64('position') }}});
} else {
bytesRead = __wasmfs_write(stream.fd, dataBuffer, length);
}
Expand Down
1 change: 1 addition & 0 deletions src/library_wasmfs_jsimpl.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ addToLibrary({
return wasmFS$backends[backend].getSize(file);
},

_wasmfs_jsimpl_set_size__i53abi: true,
_wasmfs_jsimpl_set_size: (backend, file, size) => {
#if ASSERTIONS
assert(wasmFS$backends[backend]);
Expand Down
3 changes: 2 additions & 1 deletion src/shell.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ var Module = typeof {{{ EXPORT_NAME }}} != 'undefined' ? {{{ EXPORT_NAME }}} : {
#include "polyfill/objassign.js"
#endif

#if WASM_BIGINT && MIN_SAFARI_VERSION < 150000
#if WASM_BIGINT && MIN_SAFARI_VERSION < 140100
// TODO(features): Fix this back to 150000
// See https://caniuse.com/mdn-javascript_builtins_bigint64array
#include "polyfill/bigint64array.js"
#endif
Expand Down
12 changes: 6 additions & 6 deletions test/code_size/embind_hello_wasm.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"a.html": 552,
"a.html.gz": 380,
"a.js": 9593,
"a.js.gz": 4230,
"a.wasm": 7615,
"a.wasm.gz": 3471,
"total": 17760,
"total_gz": 8081
"a.js": 9879,
"a.js.gz": 4288,
"a.wasm": 7580,
"a.wasm.gz": 3449,
"total": 18011,
"total_gz": 8117
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sad that these numbers go up and not down :(

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Embind didn't support 64bit types before, so now there's some more JS code to handle bigint types. I'm guessing a real world example would show a very small change or improvement.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, most of the other changes are going down. And we'll have more improvements to come with the other features.

}
12 changes: 6 additions & 6 deletions test/code_size/embind_val_wasm.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"a.html": 552,
"a.html.gz": 380,
"a.js": 6724,
"a.js.gz": 2900,
"a.wasm": 9528,
"a.wasm.gz": 4896,
"total": 16804,
"total_gz": 8176
"a.js": 7153,
"a.js.gz": 3042,
"a.wasm": 9493,
"a.wasm.gz": 4872,
"total": 17198,
"total_gz": 8294
}
4 changes: 2 additions & 2 deletions test/code_size/hello_wasm_worker_wasm.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"a.ww.js": 115,
"a.ww.js.gz": 127,
"a.wasm": 1881,
"a.wasm.gz": 1065,
"a.wasm.gz": 1068,
"total": 3279,
"total_gz": 2031
"total_gz": 2034
}
4 changes: 2 additions & 2 deletions test/code_size/hello_webgl2_wasm.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"a.js": 4532,
"a.js.gz": 2315,
"a.wasm": 10402,
"a.wasm.gz": 6704,
"a.wasm.gz": 6703,
"total": 15388,
"total_gz": 9347
"total_gz": 9346
}
4 changes: 2 additions & 2 deletions test/code_size/hello_webgl2_wasm2js.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"a.html": 346,
"a.html.gz": 262,
"a.js": 22200,
"a.js.gz": 11582,
"a.js.gz": 11583,
"total": 22546,
"total_gz": 11844
"total_gz": 11845
}
4 changes: 2 additions & 2 deletions test/code_size/hello_webgl_wasm.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"a.js": 4070,
"a.js.gz": 2158,
"a.wasm": 10402,
"a.wasm.gz": 6704,
"a.wasm.gz": 6703,
"total": 14926,
"total_gz": 9190
"total_gz": 9189
}
4 changes: 2 additions & 2 deletions test/code_size/hello_webgl_wasm2js.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"a.html": 346,
"a.html.gz": 262,
"a.js": 21726,
"a.js.gz": 11415,
"a.js.gz": 11413,
"total": 22072,
"total_gz": 11677
"total_gz": 11675
}
5 changes: 0 additions & 5 deletions test/other/codesize/test_codesize_cxx_ctors1.exports
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,6 @@ __indirect_function_table
__wasm_call_ctors
_emscripten_stack_alloc
_emscripten_stack_restore
dynCall_iiiiiijj
dynCall_iiiiij
dynCall_iiiiijj
dynCall_jiji
dynCall_viijii
emscripten_stack_get_current
main
memory
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_ctors1.gzsize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8576
8425
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_ctors1.jssize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20969
20444
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_ctors1.size
Original file line number Diff line number Diff line change
@@ -1 +1 @@
129168
128911
5 changes: 0 additions & 5 deletions test/other/codesize/test_codesize_cxx_ctors2.exports
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
__indirect_function_table
_emscripten_stack_alloc
_emscripten_stack_restore
dynCall_iiiiiijj
dynCall_iiiiij
dynCall_iiiiijj
dynCall_jiji
dynCall_viijii
emscripten_stack_get_current
main
memory
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_ctors2.gzsize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8560
8409
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_ctors2.jssize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20937
20412
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_ctors2.size
Original file line number Diff line number Diff line change
@@ -1 +1 @@
128617
128360
6 changes: 0 additions & 6 deletions test/other/codesize/test_codesize_cxx_except.exports
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,6 @@ __wasm_call_ctors
_emscripten_stack_alloc
_emscripten_stack_restore
_emscripten_tempret_set
dynCall_iiiiiijj
dynCall_iiiiij
dynCall_iiiiijj
dynCall_jiiii
dynCall_jiji
dynCall_viijii
emscripten_stack_get_current
main
memory
Expand Down
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_except.gzsize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
9614
9438
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_except.jssize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
24814
24217
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_except.size
Original file line number Diff line number Diff line change
@@ -1 +1 @@
171298
171023
5 changes: 0 additions & 5 deletions test/other/codesize/test_codesize_cxx_except_wasm.exports
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,5 @@ __indirect_function_table
__trap
__wasm_call_ctors
_emscripten_stack_alloc
dynCall_iiiiiijj
dynCall_iiiiij
dynCall_iiiiijj
dynCall_jiji
dynCall_viijii
main
memory
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_except_wasm.gzsize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8543
8400
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_except_wasm.jssize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20863
20337
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_except_wasm.size
Original file line number Diff line number Diff line change
@@ -1 +1 @@
142418
142224
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,5 @@ __indirect_function_table
__trap
__wasm_call_ctors
_emscripten_stack_alloc
dynCall_iiiiiijj
dynCall_iiiiij
dynCall_iiiiijj
dynCall_jiji
dynCall_viijii
main
memory
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8543
8400
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20863
20337
Original file line number Diff line number Diff line change
@@ -1 +1 @@
145005
144811
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_lto.gzsize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8475
8419
16 changes: 8 additions & 8 deletions test/other/codesize/test_codesize_cxx_lto.imports
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
a (fd_seek)
b (emscripten_resize_heap)
c (_tzset_js)
d (_setitimer_js)
e (_emscripten_runtime_keepalive_clear)
f (_abort_js)
g (proc_exit)
h (fd_write)
a (emscripten_resize_heap)
b (_tzset_js)
c (_setitimer_js)
d (_emscripten_runtime_keepalive_clear)
e (_abort_js)
f (proc_exit)
g (fd_write)
h (fd_seek)
i (fd_read)
j (fd_close)
k (environ_sizes_get)
Expand Down
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_lto.jssize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20548
20468
16 changes: 8 additions & 8 deletions test/other/codesize/test_codesize_cxx_lto.sent
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
a (fd_seek)
b (emscripten_resize_heap)
c (_tzset_js)
d (_setitimer_js)
e (_emscripten_runtime_keepalive_clear)
f (_abort_js)
g (proc_exit)
h (fd_write)
a (emscripten_resize_heap)
b (_tzset_js)
c (_setitimer_js)
d (_emscripten_runtime_keepalive_clear)
e (_abort_js)
f (proc_exit)
g (fd_write)
h (fd_seek)
i (fd_read)
j (fd_close)
k (environ_sizes_get)
Expand Down
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_lto.size
Original file line number Diff line number Diff line change
@@ -1 +1 @@
121867
121868
6 changes: 0 additions & 6 deletions test/other/codesize/test_codesize_cxx_mangle.exports
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,6 @@ __wasm_call_ctors
_emscripten_stack_alloc
_emscripten_stack_restore
_emscripten_tempret_set
dynCall_iiiiiijj
dynCall_iiiiij
dynCall_iiiiijj
dynCall_jiiii
dynCall_jiji
dynCall_viijii
emscripten_stack_get_current
free
main
Expand Down
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_mangle.gzsize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
9613
9443
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_mangle.jssize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
24814
24217
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_mangle.size
Original file line number Diff line number Diff line change
@@ -1 +1 @@
232786
232669
5 changes: 0 additions & 5 deletions test/other/codesize/test_codesize_cxx_noexcept.exports
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,6 @@ __indirect_function_table
__wasm_call_ctors
_emscripten_stack_alloc
_emscripten_stack_restore
dynCall_iiiiiijj
dynCall_iiiiij
dynCall_iiiiijj
dynCall_jiji
dynCall_viijii
emscripten_stack_get_current
main
memory
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_noexcept.gzsize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8576
8425
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_noexcept.jssize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20969
20444
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_noexcept.size
Original file line number Diff line number Diff line change
@@ -1 +1 @@
131975
131718
8 changes: 0 additions & 8 deletions test/other/codesize/test_codesize_cxx_wasmfs.exports
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,6 @@ __indirect_function_table
__wasm_call_ctors
_emscripten_stack_alloc
_emscripten_stack_restore
dynCall_iiiiiijj
dynCall_iiiiij
dynCall_iiiiijj
dynCall_iiiij
dynCall_iij
dynCall_ji
dynCall_jiji
dynCall_viijii
emscripten_stack_get_current
main
memory
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_wasmfs.gzsize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3836
3723
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_wasmfs.jssize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8606
8023
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_cxx_wasmfs.size
Original file line number Diff line number Diff line change
@@ -1 +1 @@
169227
168865
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_files_js_fs.gzsize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7710
7726
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_files_js_fs.jssize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
18876
18938
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_files_wasmfs.gzsize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2932
2948
2 changes: 1 addition & 1 deletion test/other/codesize/test_codesize_files_wasmfs.jssize
Original file line number Diff line number Diff line change
@@ -1 +1 @@
6247
6309
1 change: 0 additions & 1 deletion test/other/codesize/test_codesize_hello_O0.exports
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ __indirect_function_table
__wasm_call_ctors
_emscripten_stack_alloc
_emscripten_stack_restore
dynCall_jiji
emscripten_stack_get_base
emscripten_stack_get_current
emscripten_stack_get_end
Expand Down
Loading
Loading