| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
lines
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Adds command-line argument to build-js.sh for specifying the location of Emscripten. Also spreads out program arguments on separate lines
* Exposes WasmBinaryWriter and BufferWithRandomAccess in the JS API to allow writing WASM modules and access the produced bytes via the JS API
* Updates bin/binaryen.js and bin/wasm.js from changes to build-js.sh
* Adds exclude patterns to .gitignore for some files generated by build-js.sh and .DS_Store for macOS
* Changes build-js.sh to use EMSCRIPTEN env var instead of a command-line argument to provide the path to emscripten
* Improvements to JS builds
- Adds -g flag to build-js.sh that will build unoptimized and unmangled versions of binaryen.js and wasm.js (output has a "-g.js" suffix to allow co-existence with regular optimized builds).
- Enables closure compiler for non-debug builds
- Adds browser test for s-expression parser + WASM code gen (requires wasm to be enabled in the browser.)
- Adds iterator interface to BufferWithRandomAccess (when Symbol.iterator is available)
- Adds toArrayBuffer to BufferWithRandomAccess (when TypedArray is available)
- Adds compileWast(sourceText :string) :ArrayBuffer to the module, parsing & compiling s-expression code to a WASM module
- Changes the way binaryen.js is exported to allow usage in CommonJS, AMD and UMD envionments.
* Expose "Binaryen" global in a better way to work with a.js generated by check.py
* Fix to binaryen.js to only export a global variable when running the test (a.js) while inside a module (avoids polluting global in e.g. nodejs). Also fixes a spelling mistake.
* Better "no WASM detected" message in test/binaryen.js/browser.html
* Small change to error message in build-js.sh where $EMSCRIPTEN does not point to a directory
* Changes emcc args in build-js.sh after investingating a large number of argument combinations. Also adds a browser benchmark. The result of emcc arguments and the effect on performance is summarized in this doc: https://gist.github.com/rsms/e33c61a25a31c08260161a087be03169
* Enable inferring emscripten path by looking in PATH when EMSCRIPTEN is not set in env
|
|
|
| |
Update readme for stack machine plans, see #663.
|
|
|
|
|
|
|
| |
This brings in LLVM changes up to r28025, which includes a fix for
PR29127 and includes disabling the store-result optimization.
* remove extraneous wasm-interpreter.h change
|
|\
| |
| | |
Change calls to emscripten_longjmp_jmpbuf to emscripten_longjmp (imported from JS).
|
| | |
|
|/
|
|
| |
emscripten_longjmp_jmpbuf name
|
|
|
|
|
|
|
| |
This needs to export realloc as well, in addition to malloc and free
handled in #4469. To support asm.js style setjmp/longjmp, wasm
needs to export realloc as well, in addition to malloc and free
handled in #4469. saveSetjmp() uses realloc within it, and realloc is
not implemented in JS glue code.
|
|\
| |
| | |
Fix asm2wasm dead lock caused by empty module
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit fixes an asm2wasm dead lock when asm2wasm is compiling an
empty module, i.e. a module without any functions.
Without this commit, worker threads are likely to leave `workerMain()`
and decrease `liveWorkers` early. Consequently, `waitUntilAllReady()`
will never observe `liveWorkers == numWorkers`.
|
| |
| |
| |
| |
| | |
std::thread can forward the arguments to main function properly. We
don't have to cast them from/to void*.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit modernize the code base by replacing:
std::unique_ptr<T>(new T(...))
with:
make_unique<T>(...)
or:
wasm::make_unique<T>(...)
This is a step closer to adopt C++14 std::make_unique<T>(...).
|
|/
|
|
|
|
|
|
|
|
|
|
| |
When parsing .lcomm directives, s2wasm does not parse the alignment
number and skip it. This causes alignment bugs in some cases. (In the
test case attached, 'buf' should be 4 bytes aligned, but it does not
align it properly, so this code was generated:
```
(call $foo
(i32.const 13)
)
```
13 is not 4-bytes aligned. This patch fixes this bug.
|
|\
| |
| | |
Update README.md with full hello_world.asm.js source
|
|/
|
| |
This tripped me up as a complete beginner, since I had copied out the example code from the README rather than the test file.
|