@@ -18,8 +18,109 @@ to browse the changes between the tags.
18
18
19
19
See docs/process.md for more on how version tagging works.
20
20
21
- 3.1.29 (in development)
21
+ 3.1.35 (in development)
22
22
-----------------------
23
+ - ` SDL_image ` port was updated to version 2.6.0.
24
+ - ` -z ` arguments are now passed directly to wasm-ld without the need for the
25
+ ` -Wl, ` prefix. This matches the behaviour of both clang and gcc. (#18956 )
26
+ - Reverted #18525 which runs the JS pre-processor over files passed via
27
+ --pre-js and --post-js. It turned out this change caused issue for several
28
+ folks who had JS files with lines that start with ` # ` so can't be run through
29
+ the pre-processor. If folks want to re-enable this we can looks into ways to
30
+ make it conditional/optional.
31
+ - The ` {{{ cDefine('name') }}} ` helper macro can now be simplified to just `{{{
32
+ cDefs.name }}}`.
33
+
34
+ 3.1.34 - 03/14/23
35
+ -----------------
36
+ - Fix for using ` EM_JS ` functions defined in other object files. This was a bug
37
+ that was introduced when ` LLD_REPORT_UNDEFINED ` was enabled by default back in
38
+ 3.1.28. (#18928 )
39
+ - The prefered way to enable pthread is now to just the the standard ` -pthread `
40
+ flag. The ` -sUSE_PTHREADS ` setting still works but is marked as legacy and
41
+ will generate a warning in ` -sSTRICT ` mode.
42
+ - When targeting node, and using ` -sMODULARIZE ` , we no longer internally catch
43
+ unhandled promise rejections or exit status code. That is to say the,
44
+ ` NODEJS_CATCH_REJECTION ` and ` NODEJS_CATCH_EXIT ` are no longer compatible
45
+ with ` -sMODULARIZE ` .
46
+
47
+ 3.1.33 - 03/08/23
48
+ -----------------
49
+ - Initial support for C++20 modules. We have added a very simple test in form
50
+ of ` other.test_cpp_module ` . (#18915 )
51
+ - Removed ` sys/sysctl.h ` compatibility header. We don't implement the function
52
+ it defines. (#18863 )
53
+ - Update SDL2_ttf port to 2.20.2 (#18804 )
54
+ - Update glfw header to 3.3.8 (#18826 )
55
+ - The ` LLD_REPORT_UNDEFINED ` setting has been removed. It's now essentially
56
+ always enabled. (#18342 )
57
+ - Added ` -sEXPORT_KEEPALIVE ` to export symbols. When using
58
+ ` MINIMAL_RUNTIME ` , the option will be ** disabled** by default.
59
+ This option simply exports the symbols on the module object, i.e.,
60
+ ` Module['X'] = X; `
61
+ - The WasmFS OPFS backend is now faster in browsers that implement
62
+ [ ` Atomics.waitAsync ` ] ( https://caniuse.com/mdn-javascript_builtins_atomics_waitasync ) .
63
+ (#18861 )
64
+
65
+ 3.1.32 - 02/17/23
66
+ -----------------
67
+ - Added new linker option ` -sEXCEPTION_STACK_TRACES ` which will display a stack
68
+ trace when an uncaught exception occurs. This defaults to true when
69
+ ` ASSERTIONS ` is enabled. This option is mainly for the users who want only
70
+ exceptions' stack traces without turning ` ASSERTIONS ` on. (#18642 and #18535 )
71
+ - ` SUPPORT_LONGJMP ` 's default value now depends on the exception mode. If Wasm
72
+ EH (` -fwasm-exception ` ) is used, it defaults to ` wasm ` , and if Emscripten EH
73
+ (` -sDISABLE_EXCEPTION_CATCHING=0 ` ) is used or no exception support is used, it
74
+ defaults to ` emscripten ` . Previously it always defaulted to ` emscripten ` , so
75
+ when a user specified ` -fwasm-exceptions ` , it resulted in Wasm EH + Emscripten
76
+ SjLj, the combination we do not intend to support for the long term.
77
+ - Added support for Wasm-based AudioWorklets for realtime audio processing
78
+ (#16449 )
79
+ - Synchronous proxying functions in emscripten/proxying.h now return errors
80
+ instead of hanging forever when the worker thread dies before the proxied work
81
+ is finished.
82
+ - The ` emscripten_proxy_async_with_callback ` API was replaced with a simpler
83
+ ` emscripten_proxy_callback ` API that takes a second callback to be called if
84
+ the worker thread dies before completing the proxied work.
85
+
86
+ 3.1.31 - 01/26/23
87
+ -----------------
88
+ - Symbols that were previously exported from native code, but only for internal
89
+ reasons, are no longer exported on the ` Module ` object by default. For
90
+ example, previously if you were using ` Module._malloc ` but not explicitly
91
+ including ` _malloc ` in ` EXPORTED_FUNCTIONS ` , it might have been exported
92
+ anyway due to internal use of ` malloc ` within the JS library code. (#18564 )
93
+ - The ` STACK_SIZE ` , ` STACK_ALIGN ` , ` POINTER_SIZE ` , and ` ASSERTIONS ` JavaScript
94
+ globals were removed by default. In debug builds a clear error is shown if
95
+ you try to use these. (#18503 )
96
+ - --pre-js and --post-js files are now fed through the JS preprocessor, just
97
+ like JS library files and the core runtime JS files. This means they can
98
+ now contain #if/#else/#endif blocks and {{{ }}} macro blocks. (#18525 )
99
+ - ` -sEXPORT_ALL ` can now be used to export symbols on the ` Module ` object
100
+ when used with ` -sMINIMAL_RUNTIME ` and ` -sMODULARIZE ` together. (#17911 )
101
+ - The llvm version that emscripten uses was updated to 17.0.0 trunk.
102
+
103
+ 3.1.30 - 01/11/23
104
+ -----------------
105
+ - The default pthread stack size will now be set to match ` -sSTACK_SIZE ` by
106
+ default. Set ` DEFAULT_PTHREAD_STACK_SIZE ` explicitly to override this.
107
+ (#18479 )
108
+ - The ` buffer ` JavaScript variable was removed. This underlying buffer is
109
+ still accessible via ` wasmMemory.buffer ` or ` HEAPXX.buffer ` . In debug builds,
110
+ a clear error is shown if you try to use it. (#18454 )
111
+ - The SDLv1 header directory is no longer added to the include path by default.
112
+ This means if you include SDL headers without the explicit version in them
113
+ (e.g. ` SDL_events.h ` ) you will now need to add ` -sUSE_SDL ` explicitly at
114
+ compile time. If you include the SDL headers with the directory name included
115
+ (e.g. ` SDL/SDL_events.h ` ) you will not be affected by this change. (#18443 )
116
+ - Significant improvements were made (in the version of LLVM associated with
117
+ this emsdk release) to the quality of DWARF debug info when building in
118
+ optimized mode. See https://reviews.llvm.org/D140373 . Using the -O1 flag is
119
+ recommended if a program is too large or slow to debug with -O0 (although
120
+ -O0 is still better for debugging when feasible).
121
+
122
+ 3.1.29 - 01/03/23
123
+ -----------------
23
124
- Fixed bug in ` PROXY_TO_PTHREAD ` whereby certain async operations on the main
24
125
thread would cause the whole program to exit, even when the proxied main
25
126
function was still running. (#18372 )
@@ -258,7 +359,7 @@ See docs/process.md for more on how version tagging works.
258
359
However, they all still available by default due to a new setting called
259
360
` LEGACY_RUNTIME ` which is enabled by default. When ` LEGACY_RUNTIME ` is
260
361
disabled (which it may be in the future) these symbols would only be included
261
- if there were explictly exported via ` EXPORTED_RUNTIME_METHODS ` or added to
362
+ if there were explicitly exported via ` EXPORTED_RUNTIME_METHODS ` or added to
262
363
` DEFAULT_LIBRARY_FUNCS_TO_INCLUDE ` . ` LEGACY_RUNTIME ` is disabled by default
263
364
in ` STRICT ` mode so this change only effects users of ` STRICT ` mode. (#17370 ,
264
365
#17403 )
@@ -354,7 +455,7 @@ See docs/process.md for more on how version tagging works.
354
455
binaryen optimizations are limited due to DWARF information being requested.
355
456
Several binaryen passed are not compatible with the preservation of DWARF
356
457
information. (#16428 )
357
- - Use normalized mouse wheel delta for GLFW 3 in ` library_glfw.js ` . This changes
458
+ - Use normalized mouse wheel delta for GLFW 3 in ` library_glfw.js ` . This changes
358
459
the vertical scroll amount for GLFW 3. (#16480 )
359
460
- The emsdk binaries for macOS now require macOS 10.14 Mojave (or above).
360
461
Prior versions of emsdk could run on 10.11 (or above), but supporting those
@@ -392,7 +493,7 @@ See docs/process.md for more on how version tagging works.
392
493
3.1.5 - 02/17/2022
393
494
------------------
394
495
- Emscripten no longer uses the ` allocate() ` runtime function. For backwards
395
- compatabiliy with external JS code we still include this function by default
496
+ compatibility with external JS code we still include this function by default
396
497
but it will no longer be included in ` -sSTRICT ` mode. Usages of this function
397
498
are generally best replaced with ` _malloc ` , ` stackAlloc ` or ` allocateUTF8 ` .
398
499
@@ -462,7 +563,7 @@ See docs/process.md for more on how version tagging works.
462
563
For most users targeting the default set of browsers this is a code size win.
463
564
For projects targeting older browsers (e.g. ` -sMIN_CHROME_VERSION=10 ` ),
464
565
emscripten will now run closure compiler in ` WHITESPACE_ONLY ` mode in order to
465
- traspile any ES6 down to ES5. When this automatic transpilation is performed
566
+ transpile any ES6 down to ES5. When this automatic transpilation is performed
466
567
we generate a warning which can be disabled (using ` -Wno-transpile ` ) or by
467
568
explicitly opting in-to or out-of closure using ` --closure=1 ` or
468
569
` --closure=0 ` . (#15763 ).
@@ -539,7 +640,7 @@ See docs/process.md for more on how version tagging works.
539
640
EM_WORKAROUND_PYTHON_BUG_34780 and EM_WORKAROUND_WIN7_BAD_ERRORLEVEL_BUG that
540
641
can be enabled to work around a Windows Python issue
541
642
https://bugs.python.org/issue34780 , and a Windows 7 exit code issue (#15146 )
542
- - Support a new CMake propert ` EMSCRIPTEN_SYSTEM_PROCESSOR ` which can be used
643
+ - Support a new CMake property ` EMSCRIPTEN_SYSTEM_PROCESSOR ` which can be used
543
644
to override the default value of ` CMAKE_SYSTEM_PROCESSOR ` set by the
544
645
toolchain file.
545
646
- Remove support for the ` EMIT_EMSCRIPTEN_METADATA ` setting. This setting has
@@ -700,7 +801,7 @@ See docs/process.md for more on how version tagging works.
700
801
list of symbols can now use a simple one-symbol-per-line format. This new
701
802
format is much simpler and doesn't require commas between symbols, opening
702
803
or closing braces, or any kind of escaping for special characters.
703
- - The WebAssembly linker (` wasm-ld ` ) now performes string tail merging on any
804
+ - The WebAssembly linker (` wasm-ld ` ) now performs string tail merging on any
704
805
static string data in your program. This has long been part of the native
705
806
ELF linker and should not be observable in well-behaved programs. This
706
807
behavior can be disabled by passing ` -Wl,-O0 ` .
@@ -765,9 +866,9 @@ See docs/process.md for more on how version tagging works.
765
866
list explicit ` EXPORTED_FUNCTIONS ` . Also, users of ` MAIN_MODULE=1 ` with
766
867
dynamic linking (not dlopen) who list all side modules on the command line,
767
868
should be able to switch to ` MAIN_MODULE=2 ` and get a reduction in code size.
768
- - When building with ` MAIN_MODULE ` it is now possbile to warn or error on
869
+ - When building with ` MAIN_MODULE ` it is now possible to warn or error on
769
870
undefined symbols assuming all the side modules are passed at link time. This
770
- means that for many projects it should now be possbile to enable
871
+ means that for many projects it should now be possible to enable
771
872
` ERROR_ON_UNDEFINED_SYMBOLS ` along with ` MAIN_MODULE ` .
772
873
773
874
2.0.17: 04/10/2021
0 commit comments