ae20233 | Alon Zakai | 09 September 2020, 21:14:41 UTC | more [ci skip] | 09 September 2020, 21:14:41 UTC |
33c6f67 | Alon Zakai | 09 September 2020, 21:13:50 UTC | Merge remote-tracking branch 'origin/master' into async3 | 09 September 2020, 21:13:50 UTC |
1d5f6cf | Alon Zakai | 09 September 2020, 21:13:46 UTC | more | 09 September 2020, 21:13:46 UTC |
d026fdf | Alon Zakai | 09 September 2020, 20:53:25 UTC | wip fails on wasm2js, need to set high bits inside the wasm module when doing a table call, but no setter is exported atm [ci skip] | 09 September 2020, 20:53:25 UTC |
c4fbc61 | Alon Zakai | 09 September 2020, 18:49:15 UTC | Merge remote-tracking branch 'origin/master' into async3 | 09 September 2020, 18:49:15 UTC |
33dbceb | Alon Zakai | 09 September 2020, 18:45:00 UTC | Pthreads: Fix proxying confusion between main browser and main runtime thread (#12102) The main browser thread is the page with the DOM and HTML, while the main runtime thread is where we start up the JS, and where things like stdio proxying go (so all file access is on the same thread). Normally that is the same place. However, a pthreads application started in a worker has no access to the main browser thread. In that case emscripten_is_main_browser_thread always returns false, while emscripten_is_main_runtime_thread returns true (on the main thread). This PR fixes some confusion there, some proxying code checked the main browser thread when it meant to check the main runtime thread. In that case we actually care about handling proxied calls. Without this fix, the testcase added here just hangs, as we never handle proxied calls to the main runtime thread (since we think we are never that thread). Fixes #11914 (testcase in #12080) | 09 September 2020, 18:45:00 UTC |
9df4917 | Georg Rottensteiner | 09 September 2020, 13:16:49 UTC | wasm-sourcemap.py: fix handling of paths on different drives (#12136) Fixed issue with code files included from different drives (Windows), where wasm-sourcemap.py would bail out with an error Fixes: #12111 | 09 September 2020, 13:16:49 UTC |
b024c70 | Alon Zakai | 09 September 2020, 01:34:35 UTC | maybe? [ci skip] | 09 September 2020, 01:34:35 UTC |
77547b8 | Alon Zakai | 09 September 2020, 01:24:48 UTC | merge | 09 September 2020, 01:24:48 UTC |
740aa27 | Alon Zakai | 09 September 2020, 01:22:36 UTC | works? [ci skip] | 09 September 2020, 01:22:36 UTC |
0b3158a | Sam Clegg | 08 September 2020, 23:34:01 UTC | Move dynamic linking JS code into library_dylink.js. (#12127) | 08 September 2020, 23:34:01 UTC |
c7a3991 | Alon Zakai | 08 September 2020, 23:03:13 UTC | more [ci skip] | 08 September 2020, 23:03:13 UTC |
12999f6 | Alon Zakai | 08 September 2020, 22:58:52 UTC | more working [ci skip] | 08 September 2020, 22:58:52 UTC |
d29a450 | Alon Zakai | 08 September 2020, 22:57:26 UTC | more working [ci skip] | 08 September 2020, 22:57:26 UTC |
bf9352b | Alon Zakai | 08 September 2020, 21:27:20 UTC | Remove fastcomp-only RUNNING_JS_OPTS option (#12133) See #11860 | 08 September 2020, 21:27:20 UTC |
bf07fda | Alon Zakai | 08 September 2020, 21:25:09 UTC | Stop running wasm-opt at all in some -O0 builds (#12108) This reaches the first milestone of WebAssembly/binaryen#3043, to stop running wasm-opt in some -O0 builds (the next milestone is wasm-emscripten-finalize). To do so, this stops running --post-emscripten unless we optimize. This was the last pass we ran in -O0 builds, so it finally gets us into the code path of not running wasm-opt. That turned up a bug in the logic there - view that area without whitespace, it's a trivial change (we checked is passes is empty an extra time in an outer unnecessary scope). By running wasm-opt less this appears to have uncovered an LLVM bug, https://bugs.llvm.org/show_bug.cgi?id=47413 so part of one test is disabled. | 08 September 2020, 21:25:09 UTC |
8c6ab93 | Sam Clegg | 08 September 2020, 20:56:38 UTC | Remove the asmjs native optimizer (#12131) This is no longer in use since fastcomp removal. See: #11860 | 08 September 2020, 20:56:38 UTC |
80e31b9 | Alon Zakai | 08 September 2020, 20:40:50 UTC | compile one [ci skip] | 08 September 2020, 20:40:50 UTC |
8a6d315 | Alon Zakai | 08 September 2020, 20:11:10 UTC | start on test_longjmp_i64 [ci skip] | 08 September 2020, 20:11:10 UTC |
1eb50fb | Sam Clegg | 08 September 2020, 19:18:21 UTC | Move STRUCT_INFO to settings_internal.js. NFC. (#12126) | 08 September 2020, 19:18:21 UTC |
aaa6773 | Sam Clegg | 08 September 2020, 17:34:57 UTC | Minor cleanup of libdl JS functions. NFC. (#12124) Split out from a larger refactor I'm working on. By delaying the creation of the `__self__` handle we can set the module to be the actual wasm module (Module['asm']) so which avoids the need for special handling of the main module in `dlsym`. Remove from `else after return` usage, and avoid looking up propoerties twice. Remove `cleanups` property since it was not used anywhere. | 08 September 2020, 17:34:57 UTC |
51e09fe | Max Weisel | 08 September 2020, 17:20:04 UTC | Fix incorrect example in javascript library docs (#12116) | 08 September 2020, 17:20:04 UTC |
605e3bd | Tibor Klajnscek | 08 September 2020, 17:14:12 UTC | Add ABORT_ON_WASM_EXCEPTIONS (#11934) Add `ABORT_ON_EXCEPTIONS` which will abort when an unhandled WASM exception is encountered. This makes the Emscripten program behave more like a native program where the OS would terminate the process and no further code can be executed when an unhandled exception (e.g. out-of-bounds memory access) happens. Once the program aborts any exported function calls will fail with a "program has already aborted" exception to prevent calls into code with a potentially corrupted program state. This increases code size slightly, in return for checking whether the program has already aborted (which may also have a very minor effect on calls into wasm). | 08 September 2020, 17:14:12 UTC |
246938c | Sam Clegg | 08 September 2020, 15:51:53 UTC | Remove checks for Settings.WASM since it is now always true (#12121) Even when `WASM=0` is specified on the command line this gettings re-written early on as `WASM=1` + `WASM2JS=1`. | 08 September 2020, 15:51:53 UTC |
21f5d14 | Sam Clegg | 08 September 2020, 15:51:05 UTC | Rebaseline code size expectations. NFC. (#12129) Automatically generated by running with EMTEST_REBASELINE=1 | 08 September 2020, 15:51:05 UTC |
d5ec187 | Sam Clegg | 08 September 2020, 15:03:30 UTC | Remove use of WASM setting in library JS (#12122) This setting is always true since we removed fastcomp. See #11860 | 08 September 2020, 15:03:30 UTC |
96cd61f | Alon Zakai (kripken) | 05 September 2020, 15:45:31 UTC | wip [ci skip] | 05 September 2020, 15:45:31 UTC |
b0e06e9 | Alon Zakai (kripken) | 05 September 2020, 14:36:48 UTC | wip [ci skip] | 05 September 2020, 14:36:48 UTC |
aeec260 | Alon Zakai (kripken) | 05 September 2020, 14:30:24 UTC | move | 05 September 2020, 14:30:24 UTC |
9b06375 | Alon Zakai (kripken) | 05 September 2020, 00:52:18 UTC | fix | 05 September 2020, 00:52:18 UTC |
d8c8630 | Alon Zakai (kripken) | 05 September 2020, 00:31:47 UTC | fix | 05 September 2020, 00:31:47 UTC |
8ed5e4e | Alon Zakai (kripken) | 05 September 2020, 00:31:34 UTC | fix | 05 September 2020, 00:31:34 UTC |
c6fd564 | Alon Zakai (kripken) | 05 September 2020, 00:31:04 UTC | fix | 05 September 2020, 00:31:04 UTC |
20c6d5e | Alon Zakai (kripken) | 05 September 2020, 00:23:11 UTC | nicer | 05 September 2020, 00:23:11 UTC |
a8f0364 | Alon Zakai (kripken) | 05 September 2020, 00:22:28 UTC | fix? | 05 September 2020, 00:22:28 UTC |
c0ce7a0 | Alon Zakai (kripken) | 04 September 2020, 23:28:30 UTC | works? [ci skip] | 04 September 2020, 23:28:30 UTC |
4170ec2 | Alon Zakai (kripken) | 04 September 2020, 23:24:39 UTC | compiles | 04 September 2020, 23:24:39 UTC |
0f54648 | Alon Zakai (kripken) | 04 September 2020, 19:00:42 UTC | wip [ci skip] | 04 September 2020, 23:14:11 UTC |
ff1e14c | Sean Maher | 03 September 2020, 22:44:23 UTC | Add NEON Simd header, SIMDe integration (#11855) Imports the implementation of many NEON intrinsics in as a single header from the SIMDe project (https://github.com/simd-everywhere/simde) as well as documentation on how to use them. Also adds a script to update the NEON header with the latest upstream changes from SIMDe. | 03 September 2020, 22:44:23 UTC |
9fb9b89 | Alon Zakai | 03 September 2020, 19:41:44 UTC | Use __indirect_function_table as the import name for the table, which is what LLVM does. (#12105) This lets us avoid wasm-emscripten-finalize doing work for this, WebAssembly/binaryen#3043 | 03 September 2020, 19:41:44 UTC |
6c6bb02 | Alon Zakai | 03 September 2020, 19:08:16 UTC | Fix pthreads stack check code (#12104) Followup to #12095, a trivial fix for pthreads as well, which fixes current breakage on master. | 03 September 2020, 19:08:16 UTC |
d4870ac | Alon Zakai | 03 September 2020, 13:28:02 UTC | Enable and improve test_stack_overflow_check (#12095) Depends on WebAssembly/binaryen#3091 This both enables the check, and adds a mode that checks many small allocations instead of one huge one. That ensures we check both the lower and upper limits of the stack region, and so are safe from the overflow issue mentioned in #9039 (comment) Also fix when the initialization happened - it was in callMain but that didn't help cases without main, or using minimal runtime. Also fix the skipping in test_core.py which looked for the old option. With that fixed, wasm2ss (the test mode that runs with full stack checks) all passes. Fixes #9039 and re-enables `test_safe_stack_dylink` after the binaryen roll + these fixes. | 03 September 2020, 13:28:02 UTC |
8409926 | Alon Zakai | 03 September 2020, 13:26:00 UTC | Re-enable and update tests after binaryen roll (#12101) Code size improvements are from WebAssembly/binaryen#3089 which lets us now minify the name of the memory and the table among the wasm imports and exports. Reverts the disablings in #12099, #12100 (except for the safe stack one, which requires more fixes in a subsequent PR). | 03 September 2020, 13:26:00 UTC |
3ef25ae | Alon Zakai | 03 September 2020, 01:44:43 UTC | Document WebGL1 / WebGL2 context creation issues (#11839) Even if both WebGL1 and 2 are supported in a build, we don't try both. If the user requested 1, we try 1, and if 2, we try 2. The user can try to create 2 and then fall back to 1 if desired. The case where both 1 and 2 are supported in the build but the user does *not* specify the version is a little ambiguous. We currently also do not do any fallback there, but we try for 2 if it looks like it will succeed (if WebGL2Context is defined - but that may not necessarily work when actually creating the context). Helps #11819 | 03 September 2020, 01:44:43 UTC |
0a24abf | Alon Zakai | 03 September 2020, 00:18:42 UTC | One more test needs disabling for the binaryen roll (#12100) Followup to #12099 | 03 September 2020, 00:18:42 UTC |
4266a6f | Alon Zakai | 02 September 2020, 22:25:00 UTC | Remove EXPORT_BINDINGS setting which was not used anywhere (#12092) It made sense for fastcomp at some point in the past. See #11860 | 02 September 2020, 22:25:00 UTC |
0882510 | Alon Zakai | 02 September 2020, 21:50:00 UTC | Remove DYNAMICTOP_PTR (#12057) DYNAMICTOP_PTR has been a pointer to where DYNAMICTOP is stored, which represented the top of "dynamic" memory (not static, and not stack; or in other words, dynamic == managed by sbrk/malloc). We represented it on the JS side so that we could allocate from JS directly, in particular during startup. However, that has caused a bunch of complexity that is not really worth it, and it's also work done after link that we'd like to remove (WebAssembly/binaryen#3043). This PR moves us to a place where malloc-like allocation is disallowed from JS during startup. Instead, JS should call sbrk or malloc normally (which can only be done after startup). This change removes the final static allocation from JS, which means that we no longer adjust memory layout after link, and therefore this PR removes the special updating of the stack pointer and sbrk location that we used to do. (This just removes the --pass-arg stuff for those in emcc.py, to show that this works and passes tests - there is a bunch more code that can be removed but is deferred to keep this as small as possible.) Dynamic linking, however is an exception: we need to allocate room for dynamic libraries during startup (the main module needs them before it starts to run). To support that, this PR still keeps around getMemory() (which does a dynamic allocation during startup) and dynamicAlloc in a simplified form. That form just updates __heap_base as we allocate, and then when the main program starts, __heap_base is a normal extern global that it receives, and it initializes sbrk using that (after that point, dynamic allocations are disallowed and asserted against). This change should not be user-visible, except for removing the allocate() JS function's ALLOC_DYNAMIC option (since we no longer allow that type of allocation). This can only land when it removes the last static allocation from JS. This has a small code size benefit, basically it removes things like these: 340,341d339 < var DYNAMIC_BASE = 5263904, DYNAMICTOP_PTR = 20992; < 361,362d358 < HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE; < The benefit to pthreads builds is larger as it removes a bunch of special code for DYNAMICTOP_PTR that we had there. Note that I'm not totally happy with the sbrk implementation, but we can improve it once malloc is not linked in by default (see comment). | 02 September 2020, 21:50:00 UTC |
b10fe2f | Alon Zakai | 02 September 2020, 20:43:30 UTC | Disable tests for roll (#12099) Code size improvements + stack improvements are inbound, WebAssembly/binaryen#3089 WebAssembly/binaryen#3091 | 02 September 2020, 20:43:30 UTC |
72b1c5a | Alon Zakai | 02 September 2020, 18:41:31 UTC | Add comments for emscripten_realloc_buffer and deps_info.json (#11050) [ci skip] | 02 September 2020, 18:41:31 UTC |
db15496 | Alon Zakai | 02 September 2020, 18:14:43 UTC | 2.0.2 | 02 September 2020, 18:14:43 UTC |
ec6d3d4 | Paul m. p. P | 01 September 2020, 20:55:27 UTC | tools/ports: supports embuilder --pic when building harfbuzz (#12062) fixes emscripten-core/emsdk#479 | 01 September 2020, 20:55:27 UTC |
c3d82f6 | Alon Zakai | 31 August 2020, 23:44:43 UTC | Use llvm-objcopy to strip DWARF debug info when not running wasm-opt (#12077) Relative to / followup to #12075. This does the same for debug info, it gets us back to the same output as before (even stripping it in unoptimized builds if -g is not present) by using llvm-objcopy when wasm-opt isn't being run anyhow. Together these PRs make our work on WebAssembly/binaryen#3043 have less noticeable effect that could surprise users. Note that wasm-ld has --strip-debug which we could use, but it will strip both the Names section and DWARF sections, and we may want just the Names section, so we can't just use that. | 31 August 2020, 23:44:43 UTC |
f1bea08 | Alon Zakai | 31 August 2020, 21:02:55 UTC | Stop passing --minimize-wasm-changes to wasm-emscripten-finalize (#12090) | 31 August 2020, 21:02:55 UTC |
bd785f0 | Alon Zakai | 31 August 2020, 20:54:05 UTC | Avoid 'err' in jsStackTrace, which can conflict in LIBRARY_DEBUG which adds code that calls the global err() (#12089) | 31 August 2020, 20:54:05 UTC |
953aded | Sam Clegg | 31 August 2020, 18:07:03 UTC | Part two of dynCall removal (#12059) This change now passes flags to binaryen to limit the creation of the dynCall functions and removes more internal use of the legacy dynCall functions. See #12002 | 31 August 2020, 18:07:03 UTC |
4ae9f49 | Alon Zakai | 31 August 2020, 17:16:07 UTC | Refactor and simplify asyncify logic for calling back in (#12081) This removes callStackIdToFunc, the map of ids to functions. Instead it makes us always use the map of ids to function names. That removes one of the two mechanisms and makes the code simpler, which will help in a followup PR that adds support for direct table calls, which we need for #12059. I think we kept both mechanisms because I was worried about performance, but I think I was wrong. After debugging for #12059 I think I have a better understanding of things and it seems fine to use names - it's just a single JS map lookup for asyncify operation, which is small compared to the actual asyncify overhead. Move some code to maybeStopUnwind, with no changes. That code will be useful in the followup as well. Also clean up some debugging code to make it more useful. | 31 August 2020, 17:16:07 UTC |
3e2c107 | Clément Grégoire | 31 August 2020, 17:02:37 UTC | CMake toolchain file should cache CMAKE_*_COMPILER (#11832) | 31 August 2020, 17:02:37 UTC |
0565791 | Alon Zakai | 31 August 2020, 16:41:56 UTC | Use llvm-objcpy to strip the producers section when not running wasm-opt (#12075) As part of WebAssembly/binaryen#3043 we stopped stripping the producers section in unoptimized builds in #11996 However there is a way to still strip it with very little overhead, using llvm-objcpy. This PR makes us strip it using wasm-opt normally if we are running wasm-opt anyhow, but if we are not (as we hope to get to soon in some builds) then it uses llvm-objcpy. This does a little more work after link but it's pretty trivial and does not rewrite code or anything like that. This does add some complexity, but it is complexity we'll need anyhow for not running wasm-opt when it isn't needed. Fixes #12071 | 31 August 2020, 16:41:56 UTC |
ef108c6 | Bruce Mitchener | 31 August 2020, 15:21:06 UTC | cmake: Add missing -DNDEBUG flag to RelWithDebInfo. (#12084) When building in RelWithDebInfo mode, you want debug info (-g) but not debug code. Most compilers in the cmake distribution enable -DNDEBUG in all release configurations. | 31 August 2020, 15:21:06 UTC |
c56a65e | Alon Zakai | 28 August 2020, 17:25:34 UTC | Simplify Fetch C API error code handling (#11155) Stop converting a 0 to a 404. fixes #11132 | 28 August 2020, 17:25:34 UTC |
2a0c9c7 | Alon Zakai | 28 August 2020, 15:33:49 UTC | Avoid static allocations in pthreads code (#12055) Just replaces some static allocations with mallocs that are never freed. Optimally these could be actually static allocations in C in a future refactoring perhaps. | 28 August 2020, 15:33:49 UTC |
aa2731d | Alon Zakai | 28 August 2020, 14:23:56 UTC | Don't do memory operations in pthreads before the runtime is initialized. NFC (#12052) Pthreads.initMainThreadBlock is called during "preRun" (before compiled code is ready) and Pthreads.initRuntime is called during "atInit" (when compiled code is ready, just before global ctors). This moves some code from the former into the latter. Specifically it moves all allocation and memory operations. This leaves initMainThreadBlock to only do pure JS operations for preloading the workers, and everything else to initRuntime. | 28 August 2020, 14:23:56 UTC |
f377d3e | Alon Zakai | 28 August 2020, 13:06:50 UTC | Stop using dynCalls in wasm2c (#12070) Instead, this calls the Table directly. This takes a little more effort at compile time because we need to find the index of the function type for the signature we are calling with (so that we trap if the target function has the wrong type). To do that, scan the wasm2c output - which is at risk of breaking if that output changes, sadly (another option might be to disassemble the wasm and scan that, which would at least be a stable format - but this seems fine for now). Helps #12059 Fixes #12065 | 28 August 2020, 13:06:50 UTC |
d7ef8f3 | Sam Clegg | 28 August 2020, 09:54:30 UTC | Move static allocation for fetch queue from JS to C++ code (#12049) This avoids the runtime allocation on the JS side. See: #12040 | 28 August 2020, 09:54:30 UTC |
44170ce | Alon Zakai | 28 August 2020, 09:01:54 UTC | Remove is_wasm_only() which only made sense on fastcomp (#12067) | 28 August 2020, 09:01:54 UTC |
e5df8fc | juj | 28 August 2020, 06:32:07 UTC | Improve tests/minimal_webgl for teaching purposes. Improve WebGL validation MIN_WEBGL_VERSION=2 mode. (#12047) | 28 August 2020, 06:32:07 UTC |
270c58b | Alon Zakai | 27 August 2020, 23:04:24 UTC | Make wasm2c always use the simplest FFI, with no JS limitations (#12069) We have no problem with i64s on the FFI boundary, which is effectively the same as WASM_BIGINT for JS. Also, we always want to be in standalone mode, as in wasm2c there is no JS, just wasm and then C. As suggested in #12065 | 27 August 2020, 23:04:24 UTC |
56cf6c5 | Alon Zakai | 27 August 2020, 19:33:28 UTC | Remove some WASM=0 code that no longer runs (#12068) See #11860 | 27 August 2020, 19:33:28 UTC |
0e57ea0 | Kleis Auke Wolthuizen | 27 August 2020, 16:11:04 UTC | Implement emscripten_num_logical_cores for Node (#12008) Since navigator['hardwareConcurrency'] can't be used on Node.js. | 27 August 2020, 16:11:04 UTC |
fa91e13 | Alon Zakai | 26 August 2020, 22:32:11 UTC | Fix test_emscripten_futexes after merge (#12058) Fixes current breakage on master (the internal test API changes between the PR being opened and landed). | 26 August 2020, 22:32:11 UTC |
7ca8c82 | Alon Zakai | 26 August 2020, 21:56:40 UTC | Remove __tm_timezone static allocation in JS (#12042) Helps WebAssembly/binaryen#3043 | 26 August 2020, 21:56:40 UTC |
334c79c | Kleis Auke Wolthuizen | 26 August 2020, 21:17:28 UTC | Allow Atomics.wait to be called on the main thread for Node (#12007) | 26 August 2020, 21:17:28 UTC |
6fa74b3 | Alon Zakai | 26 August 2020, 18:48:17 UTC | Make file packager --no-heap-copy always apply, and remove the option (#12027) The old default was to copy a file package into main memory (into space malloc'd for it). That was not memory-efficient as it meant the main memory needed to be bigger, and also the memory could never be freed. While mmap on that could be fast, we added the --no-heap-copy option to keep file data on the JS heap and not copy it in. That uses less memory but still is just as fast at fread etc. This makes that newer option the default, and removes the option to do it the old way. This is better for memory usage, and in any case people using file data in a heavy way may be rolling their own solutions anyhow. This also removes the file system usage of getMemory(), which would perform allocation during startup from JS, which is a source of complexity I am working to remove for WebAssembly/binaryen#3043 | 26 August 2020, 18:48:17 UTC |
b8e5396 | Sam Clegg | 26 August 2020, 16:59:23 UTC | Simplify/refactor handling of `main`/`_start` (#12020) This change is NFC for non-standalone mode. For standalone more we no longer have any special handling for `main`. This is because `_start` is the entry symbol for standalone mode. We no longer include `_main` in EXPORTED_FUNCTIONS by default. With this change `--no-entry` is only way build a reactor. EXPORTED_FUNCTIONS no longer effects whether we build a reactor or a command. | 26 August 2020, 16:59:23 UTC |
274434c | Sam Clegg | 26 August 2020, 16:37:55 UTC | Move callRuntimeCallbacks to library function (#12054) This is part of #12002 | 26 August 2020, 16:37:55 UTC |
e334788 | Sam Clegg | 26 August 2020, 16:35:40 UTC | Move getFuncWrapper to library function (#12051) Some uses of this function can just be replaced by `makeDynCall`. The remaining uses only exist in library_browser.js and so this function can become a library function there. This is part of #12002 | 26 August 2020, 16:35:40 UTC |
04273d7 | Sam Clegg | 26 August 2020, 14:18:34 UTC | Fix python3 string warning. (#12048) This code was generated a warning in python3: shared.py:1094: SyntaxWarning: invalid escape sequence It only shows up the first time the code is run but youn can reproduce it by `rm -rf tools/__pycache__/` | 26 August 2020, 14:18:34 UTC |
635fc7b | Alon Zakai | 26 August 2020, 13:40:53 UTC | Use more musl code for time to avoid static allocations in JS (#12043) Use musl code for non-reentrant time functions to avoid a static allocation in JS. Instead, C does the allocation and sends the buffer to the _r versions of the time functions. This is better for code size too. Musl calls __ prefixed versions, so add aliases for them. Add a fix from upstream musl to asctime.c. Add ctime_r and asctime_r to libstandalone, which were missing. Helps WebAssembly/binaryen#3043 | 26 August 2020, 13:40:53 UTC |
cd4dad7 | Sam Clegg | 26 August 2020, 09:15:31 UTC | Fix number of days in stalebot message (#12050) | 26 August 2020, 09:15:31 UTC |
3d72ca9 | Alon Zakai | 26 August 2020, 08:10:49 UTC | Use musl for in6addr* globals, to avoid static allocation in JS (#12044) | 26 August 2020, 08:10:49 UTC |
16ba2f9 | juj | 26 August 2020, 07:26:27 UTC | Fix typos in INCOMING_MODULE_JS_API (#12030) | 26 August 2020, 07:26:27 UTC |
68c0cf6 | Alon Zakai | 25 August 2020, 22:59:25 UTC | Remove WASM=0 code in emcc.py (#12041) Any code behind WASM=0 is not used, as we convert -s WASM=0 into WASM=1 and WASM2JS=1 internally. That is, we always compile to wasm even if we emit JS in the end. Best viewed without whitespace differences. | 25 August 2020, 22:59:25 UTC |
f64f73b | Alon Zakai | 25 August 2020, 22:58:55 UTC | Fix a flaky reftest, which became worse after recent firefox changes (#12038) The test has always been async (ready is called asynchronously) but for some reason it wasn't noticeable until now, where apparently some firefox changes make the timing issue happen more often. | 25 August 2020, 22:58:55 UTC |
9712c09 | Alon Zakai | 25 August 2020, 22:58:44 UTC | Remove a static allocation from Fetch JS code (#12040) Helps WebAssembly/binaryen#3043 | 25 August 2020, 22:58:44 UTC |
c233703 | Alon Zakai | 25 August 2020, 22:12:09 UTC | Remove a static allocation in C++ exceptions support code in JS (#12039) This also fixes a potential issue with thread-safety (as all threads used to use that same location, previously, and now each thread gets its own allocation, kind of like TLS). | 25 August 2020, 22:12:09 UTC |
0284a11 | Sam Clegg | 25 August 2020, 17:32:17 UTC | Add a test mode for MINIMAL_RUNTIME (#12031) There are still a lot of tests that fail in this mode but this is good first step towards auditing, annotating and fixing. | 25 August 2020, 17:32:17 UTC |
d9c7934 | Sam Clegg | 25 August 2020, 14:11:32 UTC | Remove setErrNo deps from wasi syscalls (#12033) These syscalls return error codes rather than setting global errno locations. | 25 August 2020, 14:11:32 UTC |
a71a871 | Sam Clegg | 25 August 2020, 14:11:13 UTC | tests: always build directly from input file where possible. (#12032) The `do_run` method takes a string and then writes it to temporary file. For tests that have source file inputs on disk, we want to avoid reading this in and then writing it back out again because in doing so the error messages when building test code becomes way less useful. | 25 August 2020, 14:11:13 UTC |
c4ac7b7 | Sam Clegg | 25 August 2020, 11:36:49 UTC | Consistent use of makeDynCall in JS library code (#12010) makeDynCall today doesn't really do anything, it just returns dynCall_sig. For being consistent here makes it easier to reason about and easier to change in central location. The alternative of course would be instead remove the makeDynCall functions, but I have changes planed that might start using it for somthing useful again. | 25 August 2020, 11:36:49 UTC |
7550a3a | Sam Clegg | 25 August 2020, 11:03:37 UTC | Use direct table access over dynCall in invoke_xx functions (#11979) This change starts the transition away from dynCall and towards direct use of the wasm table. In particular this change replaces the use of dynCall in invoke_xx functions where possible. dynCall is still needed for functions with i64 in thier signature when WASM_BIGINT is not enabled. When WASM_BIGING is enabled this change removes all use of dynCall by invoke_xx functions. | 25 August 2020, 11:03:37 UTC |
b1a7889 | Alon Zakai | 25 August 2020, 10:12:19 UTC | SIDE_MODULE is completely unnecessary in the JS compiler (#12028) | 25 August 2020, 10:12:19 UTC |
078970b | Sam Clegg | 25 August 2020, 08:35:21 UTC | Fix closure compiler failure with MINIMAL_RUNTIME + EXIT_RUNTIME (#11964) | 25 August 2020, 08:35:21 UTC |
bf94062 | Kleis Auke Wolthuizen | 25 August 2020, 01:33:11 UTC | Remove superfluous debug print for Node threads. NFC. (#12009) | 25 August 2020, 01:33:11 UTC |
001a3b5 | Alon Zakai | 24 August 2020, 23:28:57 UTC | Remove fastcomp-style shared library JS code (#12024) Wasm shared libraries have no JS anyhow, so these are 100% not needed anymore. | 24 August 2020, 23:28:57 UTC |
82ee001 | Alon Zakai | 24 August 2020, 23:27:48 UTC | Remove JSOptimizer from emcc.py (#12026) We don't need it, except for one utility function. #11860 | 24 August 2020, 23:27:48 UTC |
e5663b9 | Dan Field | 24 August 2020, 18:54:03 UTC | Remove unnecessary restrictions around RTTI from wire.h (#10914) Fixes #6551 Removes the static_asserts that check if the type for a LightTypeID is_polymorphic. AFAICT, LightTypeID works fine with polymorphic types, and provides the same identity guarantees as when RTTI is enabled. Adds a test asserting such code compiles and runs correctly. I'm still not clear why this restriction was in place - it may have been necessary in previous impelmentations, or perhaps with previous versions of LLVM/Clang. However, as far as I can tell, it's not necessary now and only limits options around doing non-RTTI builds with emscripten. Attempting to create a testcase showing why the restrictions makes sense fails (see discussion in PR). | 24 August 2020, 18:54:03 UTC |
b956da4 | Sam Clegg | 24 August 2020, 15:37:25 UTC | tests: more use of run_from_file. NFC. (#12021) | 24 August 2020, 15:37:25 UTC |
220136b | Sam Clegg | 24 August 2020, 15:34:21 UTC | Cleanup JavaScript compiler tools. NFC. (#12013) This change makes are 3 primary JavaScript compiler tools more like normal node programs. - Make them executable and add #! lines - Remove compatibility boilerplate that makes them runnable outside of node. | 24 August 2020, 15:34:21 UTC |
d4a4538 | Alon Zakai | 24 August 2020, 14:25:02 UTC | Don't strip debug info in unoptimized builds without -g (#12016) We used to always run wasm-opt's --strip-debug when -g was not specified, which would strip out DWARF as well as the Name section. This changes us to leave it alone. This has no effect on release builds (-O1+) and no effect on proper debug builds (-O0 -g), but does have an effect on unoptimized builds (-O0) without -g, which may now contain DWARF or the Name section now, depending on how clang and wasm-ld were invoked. Part of reducing unnecessary work after link, and aligning us more with what LLVM tools normally do, see WebAssembly/binaryen#3043 | 24 August 2020, 14:25:02 UTC |
8b5e1bc | Sam Clegg | 24 August 2020, 10:28:38 UTC | Move reSign/unSign to library function. NFC. (#12014) These were only used by library_formatString.js | 24 August 2020, 10:28:38 UTC |