Brandon Fish
2f70a199e4
Add deny dead_code lint and fix one error
2019-08-01 20:46:35 -06:00
Nick Lewycky
83aa9c67c7
Replace throw() with noexcept. Unlike throw(), noexcept indicates that the function does not throw.
...
Before C++17, throw() was equivalent to wrapping the function in a try {} catch
{ std::unexpected(); }. In C++17 throw() was made equivalent to noexcept and
in C++20 throw() was removed.
2019-08-01 17:13:23 -07:00
Nick Lewycky
ac49e57c2d
Run clang-format-8 over the C++ code. No functionality change.
2019-08-01 17:12:46 -07:00
Nick Lewycky
5fed2cef03
Fix typos.
2019-08-01 16:24:40 -07:00
nlewycky
bebc3eefe4
Merge branch 'master' into features/llvm-metering
2019-08-01 13:01:10 -07:00
Nick Lewycky
536f9813dc
Implement InternalEvent::Breakpoint in the llvm backend.
...
Enable now-working metering unit tests when run with the llvm backend.
2019-08-01 12:44:25 -07:00
Yaron Wittenstein
18c7f96188
Merge branch 'master' into c-api-import_object_t
2019-08-01 22:27:41 +03:00
Brandon Fish
dfef2b6899
Merge branch 'master' into clif-backend
2019-08-01 11:59:02 -06:00
Yaron Wittenstein
f64eee894e
[FIX] test-context.c
imports contains now the expected mul
import too
2019-08-01 19:31:33 +03:00
losfair
9ed5094f86
Resolve semantics for more values.
2019-08-01 23:28:39 +08:00
Yaron Wittenstein
3f4ffb0e2d
Merge branch 'develop' into c-api-import_object_t
2019-08-01 18:15:21 +03:00
Pekka Enberg
869ac21f7b
clif-backend: Eliminate FunctionEnvironment construction in feed_event()
...
The feed_event() function is called for every wasm binary instruction.
Let's optimize it by storing FunctionEnvironment object in
CraneliftFunctionCodeGenerator, rather than constructing it for every
feed_event() invocation.
This change reduces the time to run "ngix compile" benchmark by 68%:
Before:
nginx compile time: [1.4152 s 1.4186 s 1.4222 s]
Found 1 outliers among 10 measurements (10.00%)
1 (10.00%) high mild
After:
nginx compile time: [447.76 ms 448.32 ms 448.80 ms]
change: [-68.542% -68.440% -68.352%] (p = 0.00 < 0.05)
Performance has improved.
I assume some of the clone() calls are very expensive (Vec::clone(),
likely). I did see libc malloc()/free() high up in "perf top" profiles,
which are eliminted by this change.
I also looked into eliminating FunctionBuilder construction from
feed_event(). That turns out to be painful on lifetime rules because it
borrows bunch of other objects, so I am leaving it for someone who knows
the code better than I do.
2019-08-01 18:06:40 +03:00
Yaron Wittenstein
524585942a
deleting test-context binary
2019-08-01 17:24:51 +03:00
Yaron Wittenstein
09d704d053
Merge branch 'master' into c-api-extract-instance_context-from-instance
2019-08-01 14:08:47 +03:00
Yaron Wittenstein
f73180f45e
wasmer-c-api:
...
* adding `wasmer_import_object_new` and `wasmer_import_object_extend`
* adding test file `test-module-import-instantiate.c`
2019-08-01 14:06:25 +03:00
Syrus
70a767e204
Improved exported memory tests
2019-08-01 01:28:11 -07:00
Syrus
2c6fbcba1f
Improved runtime_c_api_tests
2019-08-01 01:27:36 -07:00
Syrus
052ad1381d
Use ordered IndexMap for exports in runtime-core
2019-08-01 01:27:21 -07:00
Yaron Wittenstein
ab76755ade
runtime-c-api:
...
* import.rs - adding `import_object_t` and `wasmer_import_object_destroy`
* instance.rs - adding `wasmer_module_import_instantiate`
2019-08-01 10:48:03 +03:00
Mark McCaskey
a12d0ada1a
add wasi::fd_pread test
2019-08-01 16:38:34 +09:00
Syrus
676bccff3c
Tryin gto make c_api_tests verbose mitigates the flaky error
...
Each time `make capi` is run, there is a flaky error:
```
Running target/release/deps/runtime_c_api_tests-3df0f74fcea1252d
running 1 test
test test_c_api ... FAILED
failures:
---- test_c_api stdout ----
Running command: `cmake` arg: Some(".")
output:
status: 0
stdout:
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/syrusakbary/Development/wasmer/lib/runtime-c-api/tests
stderr:
Running command: `make` arg: Some("-Wdev -Werror=dev")
output:
status: 0
stdout:
[ 7%] Built target test-tables
[ 15%] Built target test-module-exports
[ 23%] Built target test-module-imports
[ 30%] Built target test-globals
[ 38%] Built target test-imports
[ 46%] Built target test-module
[ 53%] Built target test-module-serialize
[ 61%] Built target test-memory
[ 69%] Built target test-validate
[ 76%] Built target test-import-function
[ 84%] Built target test-instantiate
[ 92%] Built target test-exports
[100%] Built target test-exported-memory
stderr:
Running command: `make` arg: Some("test")
output:
status: 2
stdout:
Running tests...
Test project /Users/syrusakbary/Development/wasmer/lib/runtime-c-api/tests
Start 1: test-exported-memory
1/13 Test #1 : test-exported-memory .............Child aborted***Exception: 0.00 sec
Start 2: test-exports
2/13 Test #2 : test-exports ..................... Passed 0.01 sec
Start 3: test-globals
3/13 Test #3 : test-globals ..................... Passed 0.00 sec
Start 4: test-import-function
4/13 Test #4 : test-import-function ............. Passed 0.01 sec
Start 5: test-imports
5/13 Test #5 : test-imports ..................... Passed 0.01 sec
Start 6: test-instantiate
6/13 Test #6 : test-instantiate ................. Passed 0.01 sec
Start 7: test-memory
7/13 Test #7 : test-memory ...................... Passed 0.00 sec
Start 8: test-module
8/13 Test #8 : test-module ...................... Passed 0.01 sec
Start 9: test-module-exports
9/13 Test #9 : test-module-exports .............. Passed 0.01 sec
Start 10: test-module-imports
10/13 Test #10 : test-module-imports .............. Passed 0.01 sec
Start 11: test-module-serialize
11/13 Test #11 : test-module-serialize ............ Passed 0.01 sec
Start 12: test-tables
12/13 Test #12 : test-tables ...................... Passed 0.00 sec
Start 13: test-validate
13/13 Test #13 : test-validate .................... Passed 0.00 sec
92% tests passed, 1 tests failed out of 13
Total Test time (real) = 0.08 sec
The following tests FAILED:
1 - test-exported-memory (Child aborted)
stderr:
Errors while running CTest
make[1]: *** [test] Error 8
thread 'test_c_api' panicked at 'Command failed with exit status: ExitStatus(ExitStatus(512))', lib/runtime-c-api/tests/runtime_c_api_tests.rs:43:17
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
```
2019-08-01 00:22:52 -07:00
Syrus
0dfa1f68a8
Formatted code
2019-07-31 23:51:12 -07:00
Syrus
ebce7d0371
Updated dependencies
2019-07-31 23:42:54 -07:00
Syrus
a6461c3b14
Removed explicit hashbrown dependency
2019-07-31 23:18:38 -07:00
Syrus
6245daaa84
Update dependencies to latest versions
2019-07-31 23:04:03 -07:00
Mark McCaskey
d24c4a9c1a
Merge branch 'feature/more-wasi-syscalls' of github.com:wasmerio/wasmer into feature/more-wasi-syscalls
2019-08-01 14:58:59 +09:00
Mark McCaskey
e6f188286b
Implement wasi::fd_pread
2019-08-01 14:58:17 +09:00
Yaron Wittenstein
3a84288fd9
Merge branch 'master' into c-api-extract-instance_context-from-instance
2019-08-01 08:54:52 +03:00
Yaron Wittenstein
dd91a8208a
changes after PR review https://github.com/wasmerio/wasmer/pull/602#pullrequestreview-269368270
2019-08-01 08:48:20 +03:00
Mark McCaskey
61d72a179b
implement updating times in wasi::fd_filestat_set_times
2019-08-01 14:06:28 +09:00
Mark McCaskey
bca1ffc8d6
Merge branch 'master' into feature/more-wasi-syscalls
2019-07-31 21:41:19 -07:00
Mark McCaskey
a824d8d4d8
Implement wasi::{fd_allocation, fd_filestat_set_size}
2019-08-01 13:34:42 +09:00
Syrus
a83b6eccfa
Fixed middleware linting
2019-07-31 21:24:46 -07:00
Syrus
5e7a20ef94
Improved metering codebase
2019-07-31 21:20:39 -07:00
bors[bot]
33166eaf66
Merge #607
...
607: Feature/update wasmparser and clif fork deps r=MarkMcCaskey a=MarkMcCaskey
Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-08-01 02:28:35 +00:00
Brandon Fish
a832a4c787
Merge branch 'master' into wasmer-c-api-error-visibility
2019-07-31 19:58:23 -06:00
Brandon Fish
d9e1609616
Merge branch 'master' into wasmer-c-api-changes
2019-07-31 19:15:39 -06:00
Mark McCaskey
20e424c11e
update wasmparser and clif-fork dependencies
2019-08-01 10:13:25 +09:00
nlewycky
54b5c642dc
Merge branch 'master' into features/llvm-metering
2019-07-31 13:13:07 -07:00
Nick Lewycky
931d556de1
Add support for internal fields.
2019-07-31 13:10:51 -07:00
Nick Lewycky
0e1fedceef
Fix build of metering_benchmark with the llvm backend.
2019-07-31 13:04:40 -07:00
Syrus
fccf68c734
Updated version to 0.6.0
2019-07-31 10:28:45 -07:00
Yaron Wittenstein
0fb7eb1e19
tests/test-context.c - destroying resources in the end
2019-07-31 14:48:22 +03:00
Yaron Wittenstein
f6b5f1ba1b
wasmer-c-api: adding asserts
to tests/test-context.c
2019-07-31 14:32:38 +03:00
Yaron Wittenstein
351977690b
adding a document for wasmer_instance_context_get
2019-07-31 14:15:16 +03:00
Yaron Wittenstein
847dd6f65e
c-api: adding wasmer_instance_context_get
(instance.rs
)
2019-07-31 14:12:25 +03:00
Mark McCaskey
7760d5a4a2
simplify example and make public get_wasi_state unsafe
2019-07-31 15:59:08 +09:00
Syrus Akbary
6a4091e78e
Merge branch 'master' into feature/no-mem-uninit
2019-07-30 22:28:56 -07:00
Mark McCaskey
0ab8a0de09
Remove all uses of mem::uninitialized for Rust 1.38
2019-07-31 13:21:20 +09:00
Mark McCaskey
b407633366
add logging to plugin example, improve swap, and add some consts
2019-07-31 12:51:55 +09:00
Mark McCaskey
c099ed54e9
Merge branch 'master' into feature/public-api-wasi-fs
2019-07-30 19:26:19 -07:00
Mark McCaskey
620a521690
clean up wasi fs public api changes
2019-07-31 09:58:39 +09:00
Syrus Akbary
0256a6eb88
Merge branch 'master' into features/llvm-windows
2019-07-30 17:38:36 -07:00
bors[bot]
7106a4f3cc
Merge #599
...
599: Fix llvm backend failures in fat spec tests and simd_binaryen spec test. r=syrusakbary a=nlewycky
Co-authored-by: Nick Lewycky <nick@wasmer.io>
Co-authored-by: nlewycky <nick@wasmer.io>
2019-07-31 00:13:23 +00:00
Syrus
97c6956d98
Added llvm in windows support to Changelog
2019-07-30 15:56:25 -07:00
nlewycky
9b815cb518
Merge branch 'master' into features/llvm
2019-07-30 15:50:55 -07:00
Nick Lewycky
c42f47da34
Adjust simd_binaryen.wast until it works with LLVM except for known issues.
...
This doesn't yet work as of this commit, we'll need to pick up a new version of wasmparser.rs too.
2019-07-30 15:47:00 -07:00
Syrus
22f8b3f3dc
Improved LLVM compilation for Unix
2019-07-30 15:32:21 -07:00
Syrus
89178732cc
Fixed unix errors
2019-07-30 15:23:03 -07:00
Syrus
180e4766fe
Merge branch 'master' into features/llvm-windows
2019-07-30 15:09:21 -07:00
Nick Lewycky
bdb1c4c44e
Fix inkwell assertion due to treating vector as float. Fix llvm backend fatal error due to missing support for fminimum/fmaximum.
2019-07-30 14:59:04 -07:00
Syrus Akbary
12f8f3d085
First working version of LLVM in Windows
2019-07-30 14:47:53 -07:00
Nick Lewycky
3e7545a278
Fix the Trunc[SU] operations, makes conversions.wast pass.
2019-07-30 12:42:25 -07:00
losfair
4f56703657
Support runtime tier switching.
2019-07-30 22:25:58 +08:00
losfair
283676af2b
Add .clone() to fix singlepass.
2019-07-30 22:25:37 +08:00
losfair
0a7f95ee06
Allow a range of instruction offsets to be used in ip lookup.
2019-07-30 22:25:15 +08:00
Mark McCaskey
741fffedb0
fix metering benchmark
2019-07-30 15:59:21 +09:00
Mark McCaskey
fba09bef1a
Add useful functions for external use of WASI filesystem
2019-07-30 14:53:42 +09:00
bors[bot]
e0e92dbb79
Merge #594
...
594: Improvement cache in Windows r=syrusakbary a=syrusakbary
Caching was disabled on Windows, but can be re-enabled easily by improving the folder cache naming.
Reason why caching was disabled on Windows: We use a very long string (64 chars) for the wasmer version (hash). But we can use the version directly (no need to hashing)
Co-authored-by: Syrus Akbary <me@syrusakbary.com>
2019-07-30 01:36:44 +00:00
Syrus Akbary
98b20d9240
Fixed Caching in Windows lint and improved code
2019-07-29 18:29:20 -07:00
Syrus Akbary
13901cc665
Improvement cache in Windows
2019-07-29 17:33:50 -07:00
Nick Lewycky
5f0ce6ef2f
Enable SIMD when parsing the spec tests.
2019-07-29 15:47:38 -07:00
Nick Lewycky
7a1ddc0b5a
Rename validate to validate_with_features.
2019-07-29 12:11:23 -07:00
Nick Lewycky
86316c474a
Use --enable-simd to control whether SIMD is enabled in the wasmparser.
...
Before this change, 'wasmer run --backend=llvm some-simd.wasm' would run without complaint.
Also, note that the flag is not part of the cache key, so after any successful run, we can run it again without passing the flag.
2019-07-29 12:11:23 -07:00
Yaron Wittenstein
784e65d587
making wasmer_byte_array
fields public
2019-07-29 17:24:43 +03:00
Yaron Wittenstein
8408260edd
wasmer-c-api: adding #[derive(Debug)]
for wasmer_result_t
(so that we can do assert_eq!
)
2019-07-29 17:10:17 +03:00
Yaron Wittenstein
a8d2469689
wasmer-c-api: returning back pub(crate) fn inner
for export.rs
2019-07-29 13:44:56 +03:00
Yaron Wittenstein
10fc660aad
wasmer_byte_array
visibility revert (see PR: "wasmer-c-api-changes: making wasmer_byte_array
fields public
#589 ")
2019-07-29 13:41:28 +03:00
Nick Lewycky
11f66d287b
Improve NaN handling by canonicalizing NaNs before most operations.
...
Not handled here is @llvm.minnum and @llvm.maxnum which should be replaced with
@llvm.minimum and @llvm.maximum, but using those currently leads to LLVM backend
fatal errors.
2019-07-28 22:53:48 -07:00
Nick Lewycky
2f021f0e2a
LLVM srem is undefined in cases where i32.rem_s and i64.rem_s are defined.
2019-07-28 22:53:48 -07:00
Brandon Fish
8098b7e44d
Merge branch 'master' into feature/spectests-runner
2019-07-26 22:15:42 -05:00
Brandon Fish
d7c11bcf5f
Fixes case with empty module, handle case with no signatures
2019-07-26 17:58:57 -05:00
bors[bot]
53c343bc6f
Merge #579
...
579: fix caching for other backends, improve default compiler code r=MarkMcCaskey a=MarkMcCaskey
Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Syrus Akbary <me@syrusakbary.com>
2019-07-26 22:21:00 +00:00
losfair
efb5277d1d
Stack parsing now works with LLVM.
2019-07-27 02:50:49 +08:00
Nick Lewycky
6cddc25ddd
Derive Debug on these small structs.
2019-07-26 11:12:13 -07:00
Nick Lewycky
8f417f3d59
Add --enable-simd flag to wasmer run and wasmer validate.
2019-07-26 00:34:02 -07:00
Brandon Fish
459837f412
Initial commit of wast spectest runner
2019-07-25 22:31:19 -05:00
Syrus Akbary
ab5f28851a
Merge pull request #578 from vavrusa/master
...
llvm-backend: export FunctionCodeGenerator and ModuleCodeGenerator
2019-07-25 17:08:50 -07:00
Mark McCaskey
d1a5cc9139
fix semver issue with clif 0.31 + new version of wasmparser
2019-07-25 10:38:20 -07:00
Yaron Wittenstein
f04d552361
wasmer-c-api:
...
* error.rs - changing `update_last_error` visibility to `pub`.
* error.rs - changing `CApiError` `msg` field visibility to `pub`.
2019-07-25 15:46:57 +03:00
Yaron Wittenstein
015616b541
export.rs - changing FuncPointer
inner
visibility to pub
2019-07-25 14:59:59 +03:00
Yaron Wittenstein
6cc31d3b49
lib.rs - making wasmer_byte_array
fields public
2019-07-25 11:42:47 +03:00
Syrus Akbary
4ada51957d
Merge branch 'master' into feature/caching-fix-and-better-default-compiler
2019-07-24 18:58:45 -07:00
Marek Vavruša
659f088c4f
llvm-backend: export FunctionCodeGenerator and ModuleCodeGenerator
...
This is in line with the singlepass-backend to be able to use LLVM MCG with
a StreamingCompiler.
2019-07-24 18:46:35 -07:00
Syrus
76daa7b3fd
Improved Wasmer Backends documentation
2019-07-24 18:06:59 -07:00
Mark McCaskey
a3089a4501
fix caching for other backends, improve default compiler code
2019-07-24 17:31:59 -07:00
nlewycky
624f3459ab
Merge branch 'master' into simd
2019-07-24 14:44:52 -07:00
nlewycky
f6240721ea
Merge branch 'master' into simd
2019-07-24 14:08:24 -07:00
Nick Lewycky
4b1bc24a2b
Update cranelift to the version crates.io.
...
This is needed in order for the resulting wasmer to be releasable.
2019-07-24 14:06:19 -07:00
Mark McCaskey
610c5bfe1f
Merge branch 'master' into ctx-drop-finalizer
2019-07-24 13:52:57 -07:00
Nick Lewycky
5c1b7d2e5b
Adds the SIMD tests from binaryren, updated to work with wasmer.
...
This test is too large and therefore does not run by default, see
`fn is_fat_test` in spectests.rs.
2019-07-24 13:48:38 -07:00
Mark McCaskey
ce9bea402c
Merge branch 'master' into fix/dropping-bad-data
2019-07-24 13:32:42 -07:00
losfair
cc4f0e31a6
TwoHalves & trying to get cowsay to compile again
2019-07-25 02:44:28 +08:00
Mark McCaskey
3c952f307e
fix Drop of uninit Ctx; use MaybeUninit
2019-07-24 11:29:16 -07:00
Nick Lewycky
f763de94ab
Update to wabt 0.9.0.
2019-07-24 10:03:08 -07:00
Nick Lewycky
0ed104b543
Remove incorrect comment -- wasmer does support mutable globals.
...
The reason this test needed to be disabled is correctly documented in the comment above.
2019-07-23 17:13:02 -07:00
Nick Lewycky
16fe3ce0af
Merge branch 'master' into simd
2019-07-23 13:51:15 -07:00
Nick Lewycky
fe2bd6ad6c
Add missing names to LLVM instructions.
2019-07-23 13:19:27 -07:00
Mark McCaskey
ad7e3b52d3
Prepare for release of 0.5.7
2019-07-23 11:20:59 -07:00
Nick Lewycky
18307bb79c
Improve panic/unreachable/unimplemented usage. Refactor a little.
2019-07-22 12:15:56 -07:00
losfair
0133b92bec
Populating LLVM stack maps into MSM/FSM.
2019-07-23 02:55:43 +08:00
Nick Lewycky
4535274cf3
Update the loader interface for 128 bit types.
2019-07-22 11:23:41 -07:00
Nick Lewycky
f8e8b1cdea
Update to latest wasmer clif branch.
2019-07-22 10:59:27 -07:00
Yaron Wittenstein
c3ced14e46
Merge branch 'master' into ctx-drop-finalizer
2019-07-22 14:13:11 +03:00
Nick Lewycky
775c120b38
Update to newer wasmerio/wabt-rs.
2019-07-19 15:48:50 -07:00
Nick Lewycky
fc935710c7
Merge branch 'master' of github.com:wasmerio/wasmer into simd
2019-07-19 15:37:36 -07:00
Nick Lewycky
cd25356858
Fix shuffle and enable tests. Add support for new load_splat instructions.
...
Updates to wasmparser 0.34.0 and picks up a newer wasmerio/wabt.
2019-07-19 15:19:58 -07:00
Mark McCaskey
f15e90f8f3
Merge branch 'master' into feature/wasi-readlink
2019-07-19 13:36:27 -07:00
Mark McCaskey
a0672b3fa2
updates from code review
2019-07-19 13:36:05 -07:00
Mark McCaskey
328ef4e66e
use correct debug macro on Windows
2019-07-19 12:55:58 -07:00
Mark McCaskey
d74560e1d4
impl fd_close
2019-07-19 12:10:45 -07:00
Mark McCaskey
a8a0dbed91
improve abstraction impl rm syscalls, properly finish create_dir
2019-07-19 11:47:31 -07:00
Mark McCaskey
9910527b30
further improve sandbox, rework syscalls, add tests
2019-07-18 17:14:01 -07:00
Nick Lewycky
3e009c5971
Reformat.
2019-07-18 13:40:24 -07:00
Nick Lewycky
ea93b68165
Bump size of global up to 128 bits.
...
Fixes last spec test failure from the WAVM SIMD spec test.
2019-07-18 13:39:41 -07:00
Nick Lewycky
3be6a024aa
Fix bugs in V128 support based on results from testing against simd spec test.
...
These is one test failure remaining with V128 global variables.
* Fix trunc_sat. We need both the largest float that can be converted to an int
and the largest int, they are not the same number.
* Implement calling of functions that take V128 by passing in two i64's.
* Improve support for V128 in spectests. Parse binary modules with the same
features as the outer spectest. Fix compilation error involving Result in
emitted .rs file. Handle V128 in more cases when producing .rs file. Parse
the wast script with SIMD enabled.
* Adjust the WAVM spectest so that it parses with WABT and mostly passes with
wasmer. Wabt is particular about ints not having decimal places and floats
having decimal places. Wasmer does not support mutable globals or shared
memory. Tests of shuffles are disabled. Some assert_invalid tests that wabt
won't even parse are disabled.
2019-07-18 12:52:59 -07:00
nlewycky
3f3bf38d94
Fix typo in comment.
...
"Then thou must count to three. Three shall be the number of the counting and the number of the counting shall be three. Four shalt thou not count, neither shalt thou count two, excepting that thou then proceedeth to three."
2019-07-18 11:24:25 -07:00
losfair
2e030c9c4a
Parsing LLVM stackmaps.
2019-07-19 02:02:15 +08:00
Mark McCaskey
dc19bf32b9
fmt
2019-07-17 15:47:59 -07:00
Mark McCaskey
e7e1b8c7d3
get tests passing! (more tests and clean up required)
2019-07-17 15:32:47 -07:00
Mark McCaskey
65bc9a5203
massive fs rewrite; add virtual root, tests
2019-07-17 14:00:51 -07:00
losfair
a14a8e4c50
Emit stack map at critical points.
2019-07-18 02:43:04 +08:00
Nick Lewycky
eeac6d5d2d
Merge branch 'master' of github.com:wasmerio/wasmer into simd
2019-07-16 19:16:45 -07:00
Mark McCaskey
78702fc1a0
Merge remote-tracking branch 'origin/master' into feature/wasi-readlink
2019-07-16 13:50:56 -07:00
Mark McCaskey
cea7d5da7d
add readlink test
2019-07-16 13:49:45 -07:00
Mark McCaskey
19f544e489
update to 0.5.6
2019-07-16 13:12:21 -07:00
Mark McCaskey
dd1ddea37b
wip fs improvements
2019-07-15 17:37:11 -07:00
Syrus Akbary
193665461b
Merge branch 'master' into improve-wasi-tests
2019-07-15 12:43:21 -07:00
nlewycky
42780042ef
Fix typo in comment.
2019-07-15 10:55:26 -07:00
Mark McCaskey
affb9465d5
update rustfmt.toml to ignore and fmt
2019-07-15 10:43:30 -07:00
Mark McCaskey
53d7ecba2c
improve wasitest infra and fix fseek test
2019-07-15 10:36:12 -07:00
Mark McCaskey
122963909f
symlink code from last week
2019-07-15 09:59:07 -07:00
Yaron Wittenstein
ad10152982
* vm.rs - calling Ctx
data_finalizer
upon destruction
2019-07-15 15:14:09 +03:00
Syrus
24f1e99ead
Fixed WASI tests
2019-07-13 16:00:18 -07:00
Syrus
b0ead8fc04
Merge branch 'master' into feature/complete-fd-seek
2019-07-13 15:40:51 -07:00
Brandon Fish
ed19fd2913
Update loader-kernel feature name, fix compilation track state, cargo fmt
2019-07-12 23:02:57 -05:00
Mark McCaskey
5119f07ea3
implement wasi::readlink
2019-07-12 15:58:28 -07:00
Mark McCaskey
a608f3aad0
fix wasi test template code
2019-07-12 15:17:10 -07:00
Mark McCaskey
cbac3ed92d
finish implementation of wasi::fd_seek, fix bug in filestat
2019-07-12 15:10:16 -07:00
losfair
977fd1e25e
Fix trap offset lookup.
2019-07-13 00:17:33 +08:00
losfair
450109e2bb
Fix singlepass compilation error.
2019-07-13 00:17:21 +08:00
losfair
08cdc9a42f
Allow disabling state tracking for faster startup.
2019-07-12 23:37:40 +08:00
losfair
f327feccef
Merge remote-tracking branch 'origin/master' into fix/imul-relax
2019-07-12 23:37:01 +08:00
nlewycky
278adf678a
Merge branch 'master' into nlewycky/llvm
2019-07-11 16:48:46 -07:00
Nick Lewycky
7fb88251d4
Simplify trap_if_not_representable_as_int.
...
Fix typo in function name. Use two fcmp instructions instead of unpacking the bits of the IEEE float and using integer arithmetic to determine details about its value.
2019-07-11 16:46:37 -07:00
Nick Lewycky
7045030532
Try a new list of optimization passes.
...
A few notes:
a) the inliner doesn't help because all the calls are indirect and not even opt -O2 can figure out which functions they're actually calling.
b) aggressive instruction combining is not a super-set of the instruction combiner. Instcombine is made up of a large number (probably 10,000s) of patterns, and some particularly slow ones were taken out and moved to the aggressive instruction combiner. Aggressive instcombine *only* runs that handful of optimizations, which fired zero times on our example wasm files.
c) NewGVN is not ready for production, it has asserts that fire when building sqlite or cowsay. This is why sqlite didn't build with the llvm backend.
d) Scalar-replacement-of-aggregates (sroa) is a strict superset of promote-memory-to-registers (mem2reg), and you probably want sroa because it's usually faster. It also fires 10,000s more times than mem2reg on lua.wasm.
e) Aggressive-dead-code-elimination was only deleting as much regular dead-code-elimination, but is slower because it depends on a postdominator tree (PDT) analysis that. Other passes don't need PDT so we'll have to build it for just this one pass (as opposed to regular dominator-tree which is reused by many passes). I've replaced this with bit-tracking dead-code-elimination which deletes more code than dce/adce.
2019-07-11 14:48:07 -07:00
losfair
c186e0244e
Fix compile error on imul
.
2019-07-11 20:26:20 +08:00
Johan Andersson
b41040cc59
Update to nix 0.14.
...
Instead of using a mix of nix 0.12 & 0.13
2019-07-11 12:28:56 +02:00
bors[bot]
0c4a8f77d2
Merge #543 #544
...
543: update version numbers to 0.5.5 r=MarkMcCaskey a=MarkMcCaskey
544: Use bitcast instead of alloca+load+ptrcast+store sequence. r=MarkMcCaskey a=nlewycky
Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Mark McCaskey <markmccaskey@users.noreply.github.com>
Co-authored-by: Nick Lewycky <nick@wasmer.io>
Co-authored-by: nlewycky <nick@wasmer.io>
2019-07-11 00:51:31 +00:00
nlewycky
3795b48401
Merge branch 'master' into llvm-cleanup
2019-07-10 16:58:27 -07:00
Mark McCaskey
7789d1b096
Merge branch 'master' into release-0.5.5
2019-07-10 16:35:00 -07:00
Nick Lewycky
7f00dc3cdb
Reformat.
2019-07-10 15:33:32 -07:00
Nick Lewycky
8faff26c31
Give float_bits bitcast instruction a name.
2019-07-10 15:31:18 -07:00
Mark McCaskey
50302d5d4e
use published forks of clif so we can publish again
2019-07-10 15:10:00 -07:00
Syrus
e980931329
Added simd spectest file
2019-07-10 14:43:54 -07:00
Syrus
a14d2b27b4
Added simd tests for llvm
2019-07-10 14:41:15 -07:00
Nick Lewycky
e4123433a1
Reformat.
2019-07-10 14:28:07 -07:00
Nick Lewycky
53907b0ab2
Update inkwell to our own copy until upstream supports LLVM 8.
...
LLVM 8 support from https://github.com/lumen/inkwell/tree/llvm8 .
2019-07-10 14:23:47 -07:00
Nick Lewycky
f4af4e387d
Stub out support for V128 in the C API for now.
2019-07-10 13:54:36 -07:00
Nick Lewycky
bb30434392
This .into_iter() call is equivalent to .iter() and will not move the array.
2019-07-10 13:54:36 -07:00
Nick Lewycky
fdc13563b8
Initial implementation of SIMD in the LLVM backend.
2019-07-10 13:54:32 -07:00
Nick Lewycky
3ba8100e98
Add V128 stubs to allow singlepass backend to build again.
2019-07-10 13:48:12 -07:00
Nick Lewycky
77afcea9dc
Add V128 stubs to allow LLVM backend to build again.
2019-07-10 13:48:12 -07:00
Nick Lewycky
df5c12cbe1
Add V128 to wasmer runtime. Unimplemented in clif-backend. Other backends don't build.
2019-07-10 13:48:12 -07:00
Nick Lewycky
0a1bdd449e
Update to @llvm.minimum/@llvm.maximum which requires LLVM 8.
...
The @llvm.minnum/@llvm.maxnum intrinsics don't produce correct (for wasm) outputs in all cases.
2019-07-10 13:48:12 -07:00
Nick Lewycky
ea83924547
Update to LLVM 8.0.
2019-07-10 13:48:12 -07:00
Nick Lewycky
b8d2aee80f
Update wabt to 0.8 release.
2019-07-10 13:48:12 -07:00
Nick Lewycky
9579b07a54
Enable SIMD support in wasmparser.
2019-07-10 13:48:12 -07:00
Nick Lewycky
acbface4be
Factor out creating wasmparser::ValidatingParserConfig to its own function.
2019-07-10 13:48:08 -07:00
nlewycky
d1f3fb2ec2
Merge branch 'master' into llvm-cleanup
2019-07-10 13:32:17 -07:00
Mark McCaskey
ad3d4a4679
rm clif submodule; fix master
2019-07-10 10:38:38 -07:00
Nick Lewycky
1e86e32d40
Use bitcast instead of alloca+load+ptrcast+store sequence.
2019-07-10 10:24:14 -07:00
Mark McCaskey
2ef7448e62
remove colons from feature names
2019-07-09 17:57:31 -07:00
Mark McCaskey
4752492974
update version numbers to 0.5.5
2019-07-09 17:43:04 -07:00
Mark McCaskey
74ce33919f
Merge branch 'master' into fix/abi-crate-deps
2019-07-09 15:31:45 -07:00
Mark McCaskey
4612b2bf9a
add cranelift as submodule to clif-backend
2019-07-09 14:30:31 -07:00
Mark McCaskey
6d494a297f
fix emscripten tests
2019-07-09 13:41:40 -07:00
Mark McCaskey
e0c285c652
fix emscripten dependencies by making separate test crate
2019-07-09 12:07:05 -07:00
Mark McCaskey
5bf491857b
fix abi crates depending on compilers
2019-07-09 11:58:03 -07:00
Mark McCaskey
30add2481e
do backend caching with a directory
2019-07-08 17:05:54 -07:00
Mark McCaskey
4407a7cf93
Add hidden flag --cache-key
to use prehashed modules for speed
2019-07-08 15:46:28 -07:00
Mark McCaskey
62798fd966
fix test
...
fix doc test
2019-07-08 13:21:34 -07:00
Mark McCaskey
9a3fd82a4b
Keep WashHash::generate function the same
2019-07-08 12:22:17 -07:00
Mark McCaskey
f45d523012
update tests to use backend as in cache key gen
2019-07-08 11:11:27 -07:00
Mark McCaskey
b746a88138
Update cache key generation to use backend compiler name too
2019-07-08 10:50:28 -07:00
Syrus
b67b051a4a
Updated emscripten with comment
2019-07-08 09:39:19 -07:00
Syrus
6f1a8995ca
Fixed emscripten windows vars format
2019-07-08 00:35:18 -07:00
Syrus
680b833e94
Move emscripten ___syscall221 to the unix implementation
2019-07-07 23:36:50 -07:00
Syrus
72a80a6122
FIxed emscripten windows issues
2019-07-07 22:50:50 -07:00
Syrus
69be61c9cb
Remove this calls in windows
2019-07-07 19:51:11 -07:00