Commit Graph

2351 Commits

Author SHA1 Message Date
Brandon Fish
f0cdb97320 Add invoke action and imports 2019-08-04 10:19:50 -06:00
Brandon Fish
7d376e18ee Add debug line info 2019-08-03 18:07:23 -06:00
Brandon Fish
021fefcdee Disable unlinkable spec temporarily, specs timeout 2019-08-03 17:57:34 -06:00
Brandon Fish
f46d07b5b3 Add more assertions 2019-08-03 17:31:43 -06:00
Yaron Wittenstein
8d583ad4d4 runtime-c-api: Cargo.toml - adding default-features=false for wasmer-runtime and wasmer-runtime-core dependencies 2019-08-03 22:47:36 +03:00
Yaron Wittenstein
a06fa40faa runtime-c-api: adding feature default-backend-singlepass to Cargo.toml 2019-08-03 22:03:21 +03:00
Yaron Wittenstein
9e51c39144 Cargo.toml - configuring singlepass feature 2019-08-03 11:54:59 +03:00
Nick Lewycky
9fcb06a270 Missed a line! 2019-08-02 16:49:28 -07:00
Nick Lewycky
59ef811b46 Update readme. 2019-08-02 16:48:34 -07:00
Brandon Fish
22808d1dba Implement spectests summary report 2019-08-02 16:00:35 -06:00
Nick Lewycky
546969a742 These tests are fixed too. 2019-08-02 14:33:11 -07:00
Nick Lewycky
2fabb5bc20 Add support for (register) command in spec tests and enable importing mutable globals.
Enable the part of the simd spec tests that now pass.
2019-08-02 14:18:07 -07:00
Syrus Akbary
17b5082c9b
Merge pull request #621 from wasmerio/feature/add-deny-dead_code-lint
Add deny dead_code lint and fix one error
2019-08-02 13:36:53 -07:00
Brandon Fish
b358605791 One CamelCase style cleanup and allow dead code warning 2019-08-02 14:14:59 -06:00
Brandon Fish
e2e096117a Allow dead_code for existing arch specific methods 2019-08-02 14:07:10 -06:00
Yaron Wittenstein
c67df1c954 Merge branch 'master' into c-api-import_object_t 2019-08-02 22:54:54 +03:00
Yaron Wittenstein
eed3b28eab comment cleanup 2019-08-02 22:54:00 +03:00
Brandon Fish
21ea2465c0 Catch panicking tests 2019-08-02 11:36:38 -06:00
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
Ivan Enderlin
36098189b3 doc(runtime-c-api) Document and reorganize exports.rs.
This patch moves all structs at the beginning of the file, and
documents them.
2019-07-17 11:01:42 +02: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
Syrus
798ad03182 Improved formatting in unix syscalls 2019-07-07 19:35:46 -07:00
Syrus
f4e60c09c1 Squashed commit of the following:
commit 62d9da4e3e02251a0f61c904e826bc06cf964ff7
Author: Syrus <me@syrusakbary.com>
Date:   Sun Jul 7 18:16:34 2019 -0700

    Fixed syscall221

commit a8fde9148d50d89616d8a85a68110b89e3273229
Author: Syrus <me@syrusakbary.com>
Date:   Sun Jul 7 18:16:04 2019 -0700

    Improved ioctl use case

commit 5ad109d39838624ad84232a4c17714b885835893
Merge: 61526e2c 5cab8161
Author: Syrus <me@syrusakbary.com>
Date:   Sun Jul 7 17:44:25 2019 -0700

    Merge branch 'command/dash' into feature/emscripten-update

commit 5cab816193
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date:   Sat Jul 6 20:11:49 2019 +0200

    Generic IOCTLs mapping

commit 5a0dc0374c
Merge: 61cfed79 9d120ed3
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date:   Sat Jul 6 17:15:02 2019 +0200

    Merge remote-tracking branch 'origin/master' into command/dash

commit 61cfed7916
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date:   Sat Jul 6 13:04:04 2019 +0200

    Fixed implementation for syscalls 200, 201 and 202

commit 91e26d1a0e
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date:   Sat Jul 6 13:03:26 2019 +0200

    Improved debug messages

commit 53a8fbeb2a
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date:   Sat Jul 6 13:03:04 2019 +0200

    [___syscall146] Move loop out of `unsafe` zone

commit d6dd3696f1
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date:   Sat Jul 6 13:01:31 2019 +0200

    [___syscall140] Fixed types

commit c827a6a993
Merge: 2bc16826 5e18d04d
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date:   Sat Jul 6 12:21:33 2019 +0200

    Merge remote-tracking branch 'origin/master' into command/dash

commit 2bc16826b5
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date:   Thu Jul 4 07:05:00 2019 +0200

    Implement `getpgid` syscall

commit d464954f58
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date:   Thu Jul 4 07:04:36 2019 +0200

    [fcntl64] Replace mock for real implementation

commit 3fe0183d85
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date:   Thu Jul 4 07:03:39 2019 +0200

    [ioctl] No-of for `TIOCSPGRP` command & code clean-up

commit cc83ec9ac1
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date:   Thu Jul 4 07:02:47 2019 +0200

    [___syscall5] debug messages

commit 91587c8bde
Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
Date:   Thu Jul 4 07:02:20 2019 +0200

    [___syscall57] debug messages
2019-07-07 19:35:09 -07:00
Syrus
61526e2c45 Improved code format 2019-07-07 17:10:55 -07:00
Syrus
d9eee3f35a Added contains_key method to Namespace 2019-07-07 17:10:34 -07:00
Syrus
cb7a1f4486 Improved emscripten code based on comments 2019-07-07 17:10:13 -07:00
Syrus
9c96f01494 Fixed emscripten ns collision. Added ctime implementation 2019-07-07 15:55:52 -07:00
Syrus
d0b186b939 Added emscripten sbrk implementation 2019-07-06 22:05:45 -07:00
Syrus
d3d84cbc22 Formatted emscripten files 2019-07-06 17:46:48 -07:00
Syrus
15d1fd4bbb Move emscripten pthread into its own module 2019-07-06 17:45:56 -07:00
Syrus
f5af920724 Added pthread_self emscripten method 2019-07-06 17:41:03 -07:00
Syrus
b1f868dc52 Enable shared memory in emscripten 2019-07-06 17:29:24 -07:00
Syrus
24e7c1b263 Updated compatibility with latest emscripten 2019-07-06 17:15:35 -07:00
Syrus Akbary
4d21d2485c
Merge branch 'master' into update-0.5.4 2019-07-06 00:53:02 -07:00
Syrus
5a2a3f65df Trying to fix tests 2019-07-05 20:38:19 -07:00
Syrus
7a120f48d7 Fixed capi 2019-07-05 19:55:03 -07:00
Syrus
2569d3b40c Added LLVM compiler to WASI tests 2019-07-05 19:27:33 -07:00
Syrus
b9237a9f00 Fixed WASI tests 2019-07-05 19:15:10 -07:00
Mark McCaskey
99ebb782dc update to version 0.5.4 2019-07-05 13:35:55 -07:00
Syrus
9c2250dd41 Improved WASI path_readlink function signature 2019-07-05 03:27:13 -07:00
losfair
a3dcc0e240 Merge remote-tracking branch 'origin/master' into feature/osr 2019-07-04 23:56:45 +08:00
Mark McCaskey
535da4c34a update to version 0.5.3 for wapm bug fix 2019-07-03 14:35:39 -07:00
losfair
02464991da Cargo fmt 2019-07-04 01:45:54 +08:00
losfair
f32b22d571 Bkpt* -> Breakpoint* 2019-07-04 01:45:06 +08:00
losfair
7f28a4dbef Cleanup constants and comments. 2019-07-04 01:42:11 +08:00
losfair
5c5ecfff7d Rename alternative_stack to fault. 2019-07-04 01:27:19 +08:00
Mark McCaskey
83da82d844 update for release wasmer 0.5.2 2019-07-02 14:13:45 -07:00
nlewycky
edb674d84b
Merge branch 'master' into update-cranelift 2019-07-02 10:07:22 -07:00
Nick Lewycky
b8f0292c0a Update to wasmpaser 0.32.1. 2019-07-02 10:00:19 -07:00
Nick Lewycky
75faae2912 Disable jump tables. We don't have an implementation of reloc_jt yet. 2019-07-02 09:55:46 -07:00
Mark McCaskey
d407606db4 fix issue with linux 2019-07-01 16:59:25 -07:00
Mark McCaskey
a4171892ea move unix code to unix only location 2019-07-01 16:50:55 -07:00
Mark McCaskey
623bec001f improve networking in emscripten 2019-07-01 16:36:30 -07:00
Nick Lewycky
adb257a40f Reformat. 2019-07-01 16:15:13 -07:00
Nick Lewycky
9fc713f9b1 Update for new wasmparser.rs version. 2019-07-01 16:11:38 -07:00
nlewycky
35c2325571
Merge branch 'master' into update-cranelift 2019-07-01 15:30:35 -07:00
Nick Lewycky
fe38cc915b Update to newer cranelift which also requires an update to wasmparser 0.31.0. 2019-07-01 15:27:17 -07:00
bors[bot]
fada36a72c Merge #514
514: improve emscripten sockets and networking r=MarkMcCaskey a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-07-01 20:29:52 +00:00
Mark McCaskey
6afc2e4fd9 fix warnings; rm dbg statements 2019-07-01 12:57:33 -07:00
Mark McCaskey
d825fe9eb2 remove unix-specific code from code windows sees 2019-07-01 11:42:50 -07:00
Mark McCaskey
01491fd986 add instance creation benchmark 2019-07-01 11:17:31 -07:00
losfair
c67405ffe5 Add workaround for singlepass miscompilation on GetLocal. 2019-07-01 21:20:35 +08:00
losfair
650f67a339 Merge remote-tracking branch 'origin/master' into feature/osr 2019-07-01 21:15:35 +08:00
losfair
adada7e751 Only print backtrace if frames are detected 2019-07-01 21:12:19 +08:00
Syrus
a2b723d37e Added more emscripten dyncalls 2019-06-30 11:10:54 -07:00
losfair
614b3b9918 Run middlewares after begin_body. 2019-06-30 11:50:21 +08:00
losfair
80509e3f78 Fix singlepass miscompilation. 2019-06-30 11:50:06 +08:00
Syrus
299d41cfea Improved emscripten dyncalls 2019-06-29 17:39:01 -07:00
Mark McCaskey
4fcb3c4c83 improve emscripten sockets and networking 2019-06-28 17:14:00 -07:00
Syrus
6cc41f82c8 Fixed lseek error in Windows 2019-06-27 12:42:27 -07:00
Syrus
6aec631774 Improved lseek assignment 2019-06-27 12:37:29 -07:00
Syrus
73367ef6e9 Fixed cast alignment issue 2019-06-27 11:31:08 -07:00
Syrus
10eab1ca68 Improved code 2019-06-27 11:21:03 -07:00
Syrus
47e38f0b2a Fixed formatting 2019-06-27 11:18:49 -07:00
Syrus
7ba646a792 Merge branch 'master' into feature/emscripten-fix-lseek 2019-06-27 11:15:22 -07:00
Syrus
dda438ebd1 Fixed lseek 2019-06-27 11:14:38 -07:00
losfair
db117d2f26 Cleanup internal logic. 2019-06-27 17:54:06 +08:00
losfair
1bd30bed4b Implement XMM register reading on Linux. 2019-06-27 16:00:04 +08:00
losfair
967027003d Full preemptive snapshot/resume. 2019-06-27 15:49:43 +08:00
losfair
f048dc2ff6 Cleanup & fix memory leaks. 2019-06-27 01:04:59 +08:00
losfair
63f9818cf6 Move more logic into runtime-core and add an interactive shell. 2019-06-27 00:41:07 +08:00
losfair
a792ac6a48 Wrap alternative stack functions properly. 2019-06-26 20:45:32 +08:00
losfair
183571927c Merge remote-tracking branch 'origin/master' into feature/osr 2019-06-26 13:02:41 +08:00
losfair
f81464142a Fix unused import error on Windows. 2019-06-26 12:56:37 +08:00
losfair
1bdf0d5ad7 Fix clippy error. 2019-06-26 12:50:34 +08:00
losfair
03e6311446 Require backend:singlepass for suspend/resume. 2019-06-26 12:46:01 +08:00
losfair
9b4343eac5 Fix compilation on Linux. 2019-06-26 12:33:50 +08:00
losfair
2373d371ae Optimize backtraces. 2019-06-26 11:28:46 +08:00
Nick Lewycky
70247a0c6e Simplify construction of floating point constants. 2019-06-25 16:05:22 -07:00
Nick Lewycky
55394b4f06 Void type in llvm may only be used as a function return type. You may not form a pointer to void or use it as a structure member.
Fixes assertion failure initializing llvm backend.
2019-06-25 16:05:22 -07:00
losfair
2730efcc6c Cargo fmt 2019-06-26 01:39:30 +08:00
losfair
0937e53801 Fully persist program state. 2019-06-26 01:38:39 +08:00
losfair
3f2aeec9bc Suspend & restore. 2019-06-25 20:01:56 +08:00
Syrus
d4634dfdb9 Removed unused llvm file 2019-06-25 01:40:15 -07:00
losfair
8303853227 Cargo fmt 2019-06-25 03:56:20 +08:00
losfair
fb7c3eee8a Improve stack trace collection and rendering. 2019-06-25 03:55:33 +08:00
Mark McCaskey
09177ac3ae update version numbers to 0.5.1, add changelog entry 2019-06-24 12:45:40 -07:00
losfair
73eb04d269 Merge remote-tracking branch 'origin/master' into feature/osr 2019-06-24 23:35:47 +08:00
Nick Lewycky
3e0a2a05e2 Fix typo in panic! 2019-06-18 15:15:49 -07:00
Nick Lewycky
e3af924391 Fix typo in comment. No functionality change. 2019-06-18 15:00:19 -07:00
Mark McCaskey
7bdfb2be51 update version numbers and changelog for 0.5.0 2019-06-17 12:56:28 -07:00
Syrus
5c64d8053f Merge branch 'master' into command/pyodide
# Conflicts:
#	CHANGELOG.md
2019-06-14 10:32:16 +02:00
Syrus
6467816ea8 Fixed asseertion of alignment 2019-06-14 10:27:06 +02:00
Syrus Akbary
13a2773372
Merge branch 'master' into command/pyodide 2019-06-14 10:09:53 +02:00
Ivan Enderlin
04c9d25194
Merge branch 'master' into fix-runtime-c-api-warnings 2019-06-14 10:07:53 +02:00
Syrus
95f39cedec Fixed last linting issues
(hopefully)
2019-06-14 09:53:07 +02:00
Syrus
b9fa698a73 Assert alignment 2019-06-13 21:53:37 +02:00
Syrus
4059562560 Updated nightly version 2019-06-13 21:37:55 +02:00
Syrus
86b78c6b14 Fixed clippy issues 2019-06-13 21:32:05 +02:00
Syrus
7ebb90527c Fixes remaining clippy issues 2019-06-13 21:23:41 +02:00
Syrus
675caf042c Various lint fixes 2019-06-13 21:01:37 +02:00
Syrus
1560849e40 Fix lint errors and windows build 2019-06-13 20:46:05 +02:00
Syrus
8829e1d901 Make Python running 🎉 2019-06-13 14:05:57 +02:00
Syrus
58d75868f4 Fixed syscall220 alignment 2019-06-13 12:17:17 +02:00
Jesús Leganés-Combarro 'piranna
f12d6f8dd2 Merge branch 'command/pyodide' of github.com:wasmerio/wasmer into command/pyodide 2019-06-12 23:26:02 +02:00
Jesús Leganés-Combarro 'piranna
cc740040d2 Merge branch 'master' into command/pyodide 2019-06-12 22:52:05 +02:00
losfair
9585b89705 Fix bugs in state reading. 2019-06-12 23:54:15 +08:00
losfair
32008eba88 Read stack values based on state map. 2019-06-12 22:02:15 +08:00
Ivan Enderlin
63ec73aacc fix(runtime-c-api) Remove deprecated types from libc.
Since https://github.com/rust-lang/libc/pull/1379, fixed width integer
type aliases are deprecated. Thus, this patch uses Rust types instead
of libc aliases.
2019-06-12 12:10:49 +02:00
Ivan Enderlin
81d8e4ee2e feat(runtime-c-api) Improve error message when compiling a module. 2019-06-12 11:35:29 +02:00
losfair
00b6bf632a Dumping stack through import. 2019-06-12 13:38:58 +08:00
Syrus
109acd2fa3 Trying to fix ___syscall220 2019-06-12 01:01:47 +02:00
Syrus
6ce4f5dca4 Minor fixes 2019-06-12 00:13:06 +02:00
losfair
ddd0653a25 Make singlepass backend emit state mapping information. 2019-06-12 00:21:43 +08:00
Syrus
0b416e14c3 Improved syscall220 debug 2019-06-11 17:38:16 +02:00
losfair
da9bf05218 Machine state diff 2019-06-11 20:49:30 +08:00
Mark McCaskey
b36783fc50 remove duplicated code, wrap WasmPtr on wasi side 2019-06-11 11:10:42 +02:00
Mark McCaskey
7965ed2746 fix newly introduced bug in wasmptr array access 2019-06-10 13:32:33 +02:00
Jesús Leganés-Combarro 'piranna
d165763b4d Merge branch 'master' into command/pyodide 2019-06-10 12:35:11 +02:00
Mark McCaskey
7a66a5285d
Merge branch 'master' into feature/better-memory-access-for-emscripten 2019-06-10 03:26:50 -07:00
Brandon Fish
c6786474a7 Add MiddlewareChain and StreamingCompiler to runtime 2019-06-09 23:24:10 -05:00
losfair
082b8376ae State representation. 2019-06-09 21:21:18 +08:00
Jesús Leganés-Combarro 'piranna
5d93d9a904 Added fb and gb symbols 2019-06-08 19:53:21 +02:00
Jesús Leganés-Combarro 'piranna
ff21d9e95f Merge branch 'master' into command/pyodide 2019-06-08 19:48:25 +02:00
losfair
61786a370a Fix typo in machine. 2019-06-08 22:56:13 +08:00
laizy
1780d57df1 add Mechine::release_locations_keep_state test 2019-06-08 22:25:20 +08:00
laizy
8105c0c16f fix stack offset check 2019-06-08 15:03:56 +08:00
Brandon Fish
f6ecfa40cb
Merge branch 'master' into feature/metering 2019-06-06 23:33:31 -05:00
Brandon Fish
e87d507162 Add black_box to benchmarking 2019-06-06 23:30:31 -05:00
Brandon Fish
418764a15f Add get/set gas used for benchmark 2019-06-06 23:25:11 -05:00
Syrus Akbary
98e04193af
Merge branch 'master' into feature/better-memory-access-for-emscripten 2019-06-06 18:03:55 -07:00
Mark McCaskey
811acd7e68 probably actually fix the wasi ptr array bug now 2019-06-06 16:19:15 -07:00
Mark McCaskey
d7ea46bab7 add wasmptr memory abstraction to emscripten; update wasi array access 2019-06-06 15:45:19 -07:00
Mark McCaskey
6f633cee6f fix pointer casting lint in emscripten syscall191 2019-06-06 12:07:19 -07:00
Mark McCaskey
8df63b1b6e fix bugs in emscripten socket syscalls 2019-06-06 11:55:05 -07:00
Jesús Leganés-Combarro 'piranna
a9bcb7d932 Merge branch 'master' into command/pyodide 2019-06-06 18:41:06 +02:00
losfair
c6cd49a370 Support getting/setting metering points and internal fields with a Ctx. 2019-06-06 14:10:57 +08:00
Brandon Fish
27eacf0c4f Add metering benchmark 2019-06-06 00:37:04 -05:00
losfair
f5243aff5e Cargo fmt 2019-06-05 11:52:25 +08:00
losfair
f2d8aad73a Support checking the execution limit exceeded error. 2019-06-05 11:51:33 +08:00
losfair
0867208e0c Implement {get,set}_points_used. 2019-06-05 02:28:19 +08:00
losfair
69944c1dc2 Fix ctx layout in LLVM. 2019-06-05 02:13:10 +08:00
losfair
66dcec91c4 Add comments for trampoline_x64. 2019-06-05 01:59:20 +08:00
losfair
f4df568e41 Naming fixes and documentation for trampoline API. 2019-06-05 01:38:35 +08:00
losfair
f1b27d5774 Cargo fmt 2019-06-05 01:26:35 +08:00
losfair
669f76025c Add callinfo trampoline into the C API. 2019-06-05 01:25:37 +08:00
losfair
b2869e181c Cargo fmt 2019-06-05 01:11:54 +08:00
losfair
8a74399c6e Add callinfo trampoline support. 2019-06-05 01:11:10 +08:00
losfair
06280e225e Fix unused_imports error on lazy_static. 2019-06-03 15:31:42 -07:00
losfair
0a44add31c Fix clippy errors. 2019-06-03 15:31:42 -07:00
losfair
d70cb9695e Add trampoline-related functions to C API. 2019-06-03 15:31:42 -07:00
losfair
7808c68cb2 Cargo fmt 2019-06-03 15:31:42 -07:00
losfair
ae19e7f71b Trampoline for calling with context. 2019-06-03 15:31:42 -07:00
Brandon Fish
66f9049a06 Reset LLVM related code to master 2019-06-02 19:36:26 -05:00
Brandon Fish
0c3109fb55 Update Makefile and test configuration 2019-06-02 15:43:02 -05:00
Brandon Fish
8fdc4f9bc2 Start documenting Metering 2019-06-02 15:42:25 -05:00
Brandon Fish
f9c8f41232 Remove points_limit and update tests 2019-06-02 13:37:51 -05:00
Brandon Fish
c020c39193 Move get/set points used to middleware 2019-06-02 13:21:00 -05:00
Brandon Fish
e533a8a7b5 Add tests for metering, add option to compiler config 2019-06-02 11:37:02 -05:00
Brandon Fish
995ecefa92 Cargo fmt 2019-06-02 09:49:21 -05:00
Brandon Fish
f029ea6231 Merge branch 'master' into feature/metering 2019-06-02 09:31:34 -05:00
Jesús Leganés-Combarro 'piranna
222b582207 Merge remote-tracking branch 'origin/master' into command/pyodide 2019-06-02 14:10:25 +02:00
Brandon Fish
3a00f779e8 Try using dependency git revision to see if it fixes CI dependency error 2019-06-01 15:29:49 -05:00
Brandon Fish
2860c4996c
Merge branch 'master' into feature/clif-cgapi 2019-06-01 12:04:20 -05:00
Brandon Fish
fd373dbf63 Add cache store, load, and execute test for cranelift and llvm 2019-06-01 11:35:26 -05:00
Brandon Fish
0567032bef
Merge branch 'master' into feature/clif-cgapi 2019-05-31 23:40:42 -05:00
losfair
c1e817b3fb Add missing relaxed moves. 2019-05-31 19:29:28 +08:00
losfair
8019505e65 Merge remote-tracking branch 'origin/feature/clif-cgapi' into feature/metering 2019-05-31 15:40:05 +08:00
losfair
b834b4ff36 Metering for LLVM. 2019-05-31 15:36:08 +08:00
Mark McCaskey
6a9515d13d improve wasi envvar test 2019-05-30 12:25:14 -07:00
Mark McCaskey
2a94a6933f add envvar opt, add test, rm binaries from wasitests, clean up 2019-05-30 11:58:52 -07:00
Brandon Fish
b2e37cecfa
Merge branch 'master' into feature/clif-cgapi 2019-05-29 22:45:31 -05:00
Mark McCaskey
792ebc06fc fix bug in wasi::environ_get, fix off by one error in env_size_get 2019-05-29 18:04:55 -07:00
Mark McCaskey
281c5ff45d fix bugs in em mapdir, improve it for relative paths, use it more 2019-05-29 14:20:52 -07:00
Mark McCaskey
7a7aa4608a fix emscripten regression tests 2019-05-29 11:41:29 -07:00
losfair
fd8675324c Merge remote-tracking branch 'origin/master' into feature/metering 2019-05-29 11:16:05 +08:00
Mark McCaskey
6606a7c7b0 silence clippy on pointer alignment 2019-05-28 14:06:24 -07:00
Mark McCaskey
f8b94b7469 Merge remote-tracking branch 'origin/master' into feature/add-mapdir-for-emscripten 2019-05-28 13:48:12 -07:00
Mark McCaskey
3a4517d5d6 clean up code, verify it behaves the same as emscripten with js 2019-05-28 10:06:22 -07:00
Jesús Leganés-Combarro 'piranna
b78a8af228 Added missing functions for pyodide
Since Pyodide is focused on running on desktop, this pull-request lacks
Javascript runtime functions. It also sorted alphabetically some functions
2019-05-28 09:39:49 +02:00
Syrus
fe3db46173 Fixed time ptr 2019-05-27 12:47:15 -07:00
Syrus
12299cdbf0 Merge branch 'master' into feature/jq 2019-05-27 12:13:19 -07:00
Syrus
6fd6ad92fa Trying to fix timegm 2019-05-27 12:09:04 -07:00
Brandon Fish
921e95035f Cleanup expect messages used for debugging 2019-05-26 22:50:23 -05:00
Brandon Fish
00707ea849 Cleanup cranelift validation 2019-05-26 22:44:37 -05:00
Brandon Fish
3f0cafce5c Remove old Cranelift compiler code 2019-05-26 22:32:11 -05:00
Brandon Fish
bf1cfc2578 Re-enable deny warnings in clif backend 2019-05-26 22:17:49 -05:00
Brandon Fish
f42ca84480 Add calling convention to function signatures 2019-05-26 14:44:17 -05:00
Brandon Fish
cc4b1871d0 Fix get global type 2019-05-26 14:15:30 -05:00
Brandon Fish
8069cdac16 Merge branch 'master' into feature/clif-cgapi 2019-05-26 12:04:45 -05:00
Brandon Fish
6ca311f92d Fix compilation errors and warnings 2019-05-26 11:13:37 -05:00
Brandon Fish
5da0c4766a Update to Arc<RwLock<ModuleInfo>> for interior mutability 2019-05-25 19:30:44 -05:00
Brandon Fish
d440776bc0 Update lifetime of function builder references 2019-05-25 18:06:41 -05:00
Mark McCaskey
fc15bc58f6 add mapdir for emscripten; implement getdents, etc. 2019-05-24 18:00:07 -07:00
Johan Andersson
8018453266 Update wasmparser 0.29.2 -> 0.30.0 2019-05-24 23:18:08 +02:00
Syrus
dd30595358 Trying to fix issues 2019-05-24 13:30:41 -07:00
Syrus
dd9c5774f3 Separate fpathconf from pathconf 2019-05-24 12:15:52 -07:00
Syrus
c7dceba0d8 Improved formatting 2019-05-24 12:09:00 -07:00
Syrus
e0895aadf1 Merge branch 'master' into feature/jq 2019-05-24 12:08:28 -07:00
Syrus Akbary
4dab51f620
Merge branch 'master' into feat-runtime-error 2019-05-24 11:18:50 -07:00
Syrus
02a92562f6 Removed zbox requirement 2019-05-24 10:13:08 -07:00
Ivan Enderlin
90676b5c5b feat(runtime-c-api) wasmer_instantiate raises the source error.
Instead of returning only “error instanting”, `wasmer_instantiate` can
return the real error message.
2019-05-24 14:24:00 +02:00
Brandon Fish
9f2e068ff4 Implement conversion of signatures into clif signatures 2019-05-23 20:04:55 -05:00
Syrus Akbary
dc6092edd5
Merge branch 'master' into feature/jq 2019-05-23 09:50:02 -07:00
losfair
68a8800f99 Temporarily use the original zbox. 2019-05-23 20:28:57 +08:00
losfair
9919dd73c8 Merge remote-tracking branch 'origin/master' into feature/metering 2019-05-23 20:18:11 +08:00
losfair
dcf52ef1a7 Cargo fmt 2019-05-23 20:10:34 +08:00
losfair
cf58305889 Dynamically allocate internal fields. 2019-05-23 20:10:17 +08:00
Brandon Fish
a713043360 Update translate_operator op argument 2019-05-22 23:46:38 -05:00
Mark McCaskey
dc3ac156a4 add test, update changelog 2019-05-22 15:57:12 -07:00
Mark McCaskey
b7abc44648 Prevent parent directory from being opened without being preopened wasi 2019-05-22 15:30:38 -07:00
Brandon Fish
5d3f6ea167 Fixing lifetime issues in clif codegen refactor 2019-05-22 17:21:16 -05:00
Ivan Enderlin
11f1bbaf9a chore(runtime-c-api) Update C/C++ header files. 2019-05-22 16:45:59 +02:00
Ivan Enderlin
c92230e18e fix(runtime-c-api) Lengths cannot be negative.
This patch prevents receiving negative length in various places.
2019-05-22 16:44:03 +02:00
Brandon Fish
04d6ccc95c Pass module info to FCG as Arc 2019-05-21 23:44:31 -05:00
Syrus
f79ff8b542 Merge branch 'master' into feature/jq 2019-05-21 17:15:12 -07:00
bors[bot]
32c2ad1916 Merge #447
447: add trace macro for more verbose debug statements r=MarkMcCaskey a=MarkMcCaskey

The next step is to implement these in terms of `log`

Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Mark McCaskey <markmccaskey@users.noreply.github.com>
2019-05-21 19:28:34 +00:00
Mark McCaskey
3bedf6218c
Merge branch 'master' into feature/trace-macro 2019-05-21 11:44:50 -07:00
bors[bot]
699d65bddb Merge #459
459: add realtime and monotonic clock support for wasi on windows r=MarkMcCaskey a=MarkMcCaskey

resolves #455 

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-05-21 18:36:08 +00:00
bors[bot]
7b9e289f68 Merge #456
456: Command/openssl r=syrusakbary a=piranna

Mocks for missing functions needed by `openssl` command.

Co-authored-by: Jesús Leganés-Combarro 'piranna <piranna@gmail.com>
2019-05-21 18:23:59 +00:00
Mark McCaskey
deb00c886c change to depend on winapi only on windows 2019-05-21 11:23:24 -07:00
Mark McCaskey
8857e6d320 move check with debug build higher in CI, fix bug in debug macro 2019-05-21 11:15:13 -07:00
Mark McCaskey
e989a86d33 properly handle bad input on windows clocks 2019-05-21 10:55:54 -07:00
Mark McCaskey
2a30fc3f1b wrap call in unsafe, unconditionally depend on winapi 2019-05-21 10:41:40 -07:00
Mark McCaskey
736bddfe17 debug log error in windows clock, conditionally pull in winapi 2019-05-21 10:35:51 -07:00
Mark McCaskey
08b4b639f4 add realtime and monotonic clock support for wasi on windows 2019-05-21 10:24:06 -07:00
Jesús Leganés-Combarro 'piranna
490b94b814 Fix linting 2019-05-21 19:12:35 +02:00
Mark McCaskey
6b81ec0aa7 add mapdir regression test; add testfs; add arg passing system 2019-05-20 17:43:50 -07:00
Mark McCaskey
7cc967e709 flip order of args in mapdir 2019-05-20 16:46:08 -07:00
Mark McCaskey
be4dd453c2 clean up and fix bugs 2019-05-20 16:39:02 -07:00
Mark McCaskey
97a2237255
Merge branch 'master' into feature/map-dir 2019-05-20 15:23:13 -07:00
Mark McCaskey
f2001fea50 fix file creation ts for WASI Linux 2019-05-20 15:02:22 -07:00
Mark McCaskey
d7d17bd647 add expect to call entrypoint in wasi tests 2019-05-20 13:55:29 -07:00
Jesús Leganés-Combarro 'piranna
34e16d4a84 Move ucontext related functions to their own namespace 2019-05-20 22:54:58 +02:00
Mark McCaskey
7a4b47d651 update compiled tests 2019-05-20 13:28:31 -07:00
Mark McCaskey
2c5f72805e fix WASI clock bugs 2019-05-20 11:01:28 -07:00
Mark McCaskey
8a177363f4 fix file metadata wasi test 2019-05-20 09:24:55 -07:00
Brandon Fish
5db575e8ef Fix clif_signatures in function codegen 2019-05-19 15:22:02 -05:00
Brandon Fish
db669f7eb7 Fix more codegen compilation issues 2019-05-19 15:01:25 -05:00
Jesús Leganés-Combarro 'piranna
8995060f9b Mocks for _getcontext, _makecontext, _setcontext and _swapcontext 2019-05-19 20:53:24 +02:00
Jesús Leganés-Combarro 'piranna
f8cfb04e29 _alarm() 2019-05-19 20:24:49 +02:00
Jesús Leganés-Combarro 'piranna
2eb5ca1e48 _gai_strerror() 2019-05-19 20:16:00 +02:00
Brandon Fish
d547beda72 Fix self.info compilation error in MCG.finalize 2019-05-19 13:05:35 -05:00
Jesús Leganés-Combarro 'piranna
7690febe77 getnameinfo() 2019-05-19 19:37:57 +02:00
Jesús Leganés-Combarro 'piranna
ad8178bb2a [pthread] rwlock_destroy(), rwlock_init() and rwlock_wrlock() 2019-05-19 19:16:04 +02:00
Brandon Fish
e34e625009 Implement MCG.next_function in other backends 2019-05-19 11:45:16 -05:00
Brandon Fish
47479b547f Implement MCG.{finalize, from_cache} 2019-05-19 10:53:33 -05:00
Brandon Fish
6d5dd5ff21 Implement more function codegen 2019-05-19 00:27:39 -05:00
Brandon Fish
2d10306c87 Add copyright notice 2019-05-18 16:32:22 -05:00
Brandon Fish
74a758d39e Add progress on next_event 2019-05-18 16:31:08 -05:00
Syrus
8f345dc284 Updated imports required for jq. Added get_str method in VarArgs 2019-05-18 12:38:22 -07:00
Mark McCaskey
4b03abafcc
Merge branch 'master' into feature/map-dir 2019-05-17 16:24:26 -07:00
Mark McCaskey
4760840a77 move stdout capture from runtime core to dev-utils 2019-05-17 15:48:30 -07:00
Mark McCaskey
542e47ff82 add more wasi tests 2019-05-17 15:31:02 -07:00
Mark McCaskey
b3b5716dbb add files in runtime_Core 2019-05-17 13:31:41 -07:00
Mark McCaskey
ec9c5360ef move stdio capture into runtime_core; rm emscripten dep in wasi 2019-05-17 13:30:10 -07:00
Mark McCaskey
b9bb310215 add wasi regression test system 2019-05-17 12:09:31 -07:00
Mark McCaskey
f9beef276d implement map-dir for WASI; fix bug in path_open 2019-05-16 17:35:13 -07:00
Syrus
4ddffb8285 Update libraries versions to 0.4.2 2019-05-16 14:39:13 -07:00
losfair
6aec1c4b5f Use INTERNALS_SIZE 2019-05-17 01:33:33 +08:00
losfair
8e0d71b2bc Fix missing internals in test. 2019-05-17 01:32:41 +08:00
losfair
b830f10fa0 Update metering data on return 2019-05-17 01:20:09 +08:00
losfair
14fcd78b30 Update bin/wasmer and run cargo fmt. 2019-05-17 01:15:05 +08:00
losfair
e7297b9465 Update singlepass backend to support metering. 2019-05-17 01:11:22 +08:00
losfair
7e79dd2cfe Metering middleware. 2019-05-17 01:10:45 +08:00
losfair
6aa87a0bbf Add the internals field and necessary structures for metering. 2019-05-17 01:10:21 +08:00
losfair
100039afd6 Merge remote-tracking branch 'origin/master' into feature/remote-code-load 2019-05-16 09:28:02 +08:00
losfair
b28992932e Rename wasmer-kernel-net to kernel-net. 2019-05-16 09:22:40 +08:00
Mark McCaskey
83deae80dc update changelog; clean up 2019-05-15 15:16:52 -07:00
Mark McCaskey
b2752735db avoid opening files when not needed in WASI, check for write permissions 2019-05-15 15:11:29 -07:00
Mark McCaskey
a9f643f774 add trace macro for more verbose debug statements 2019-05-15 11:46:17 -07:00
Syrus
3bbf7753cb Renamed kwasm-net to wasmer-kernel-net 2019-05-15 10:34:56 -07:00
Mark McCaskey
ace7a19a7b apply base path update to wasi::path_filestat_get 2019-05-15 10:25:31 -07:00
losfair
a1a58d4a50 Merge remote-tracking branch 'origin/master' into feature/remote-code-load 2019-05-15 21:44:11 +08:00
losfair
d72abf3203 Rename kwasm-loader to wasmer-kernel-loader. 2019-05-15 21:43:19 +08:00
Brandon Fish
ac3fafae9a
Merge branch 'master' into feature/clif-cgapi 2019-05-14 23:01:28 -05:00
bors[bot]
03671ab5ac Merge #442
442: Fix/misc wasi fs issues r=MarkMcCaskey a=MarkMcCaskey

resolves #434 

Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Mark McCaskey <markmccaskey@users.noreply.github.com>
2019-05-15 00:40:50 +00:00
Mark McCaskey
216d09b7c7 Merge branch 'fix/misc-wasi-fs-issues' of github.com:wasmerio/wasmer into fix/misc-wasi-fs-issues 2019-05-14 17:40:09 -07:00
Mark McCaskey
c402c0350c return EIO if internal data structures are corrupt 2019-05-14 17:39:19 -07:00
Mark McCaskey
593255021d
Merge branch 'master' into fix/misc-wasi-fs-issues 2019-05-14 16:42:42 -07:00
Mark McCaskey
87d9940a23 implement readdir! 2019-05-14 16:33:54 -07:00
Brandon Fish
89f3998b49
Merge branch 'master' into feature/fix-default_compiler-compilation 2019-05-14 18:22:44 -05:00
Brandon Fish
bef9f1244a Return impl Compiler from default_compiler to fix compilation with features 2019-05-14 18:19:58 -05:00
Mark McCaskey
3bf550055f rm from entry in fd_renumber -- thanks Brandon! 2019-05-14 15:10:01 -07:00
Mark McCaskey
84ea25241a fix opening directories in path_open 2019-05-14 15:08:45 -07:00
Mark McCaskey
5114d42237 fix borrowing warning on nightly 2019-05-14 14:05:41 -07:00
Ivan Enderlin
8bd9bbb508 chore(runtime-c-api) Update C/C++ header files. 2019-05-14 16:19:32 +02:00
Ivan Enderlin
f04e77323b fix(runtime-c-api) Update wasmer_export_func_params_arity signature.
The `returns_len` argument type of `wasmer_export_func_returns_params`
must be `uint32_t` to match the `wasmer_export_func_returns_arity` results,
so that casts are not required.
2019-05-14 16:18:41 +02:00
Ivan Enderlin
53661385ed chore(runtime-c-api) Update C/C++ header files. 2019-05-14 16:17:13 +02:00
Ivan Enderlin
91006bab53 fix(runtime-c-api) Update wasmer_export_func_params_arity signature.
The `params_len` argument type of `wasmer_export_func_params_arity`
must be `uint32_t` to match the `wasmer_export_func_*_arity` results,
so that casts are not required.
2019-05-14 16:15:36 +02:00
losfair
fac4c452c6 Fix LLVM backend. 2019-05-14 18:49:02 +08:00
Ivan Enderlin
2b250c30f3 chore(runtime-c-api) Regenerate C/C++ header files. 2019-05-14 11:50:10 +02:00
Ivan Enderlin
f68379a6df test(runtime-c-api) Use *_arity variables when calling wasmer_export_func_call. 2019-05-14 11:49:40 +02:00
Ivan Enderlin
d3c75a38fa fix(runtime-c-api) wasmer_instance_call types matches wasmer_export_func_*_arity.
The `wasmer_export_func_params_arity` and
`wasmer_export_func_returns_arity` functions store the arity in a
`uint32_t`. The `wasmer_instance_call` expects `c_int`. There is a
type mismatch here. It's not annoying in C or C++, but in some other
languages that have bindings to C/C++, it can imply useless casting.

This patch changes `wasmer_instance_call` to expect `uint32_t` for
`params_len` and `results_len` to match the
`wasmer_export_func_*_arity` functions.
2019-05-14 11:46:43 +02:00
losfair
d641909c63 Fix clippy error 2019-05-14 17:13:17 +08:00
losfair
ee09209bfb Fix clippy error. 2019-05-14 16:59:18 +08:00
losfair
d60e2377c1 Only compile kwasm-net for wasm32-wasi. 2019-05-14 16:45:26 +08:00
losfair
1e7a928d64 Add comments. 2019-05-14 16:13:42 +08:00
losfair
32f9aee6fe Cargo fmt 2019-05-14 16:04:08 +08:00
losfair
722ea39877 Cleanup loader code. 2019-05-14 16:02:27 +08:00
losfair
2a160c74ad Fix wasmer-runtime-core dependency version. 2019-05-14 15:47:19 +08:00
losfair
db9705f00c Merge remote-tracking branch 'origin/master' into feature/remote-code-load 2019-05-14 15:46:15 +08:00
Heyang Zhou
2963b0a2eb Make schedule() faster. 2019-05-14 00:04:32 -07:00
Syrus
19eba19603 Merge branch 'master' into doc-runtime-c-api
# Conflicts:
#	lib/runtime-c-api/src/lib.rs
2019-05-13 15:55:20 -07:00
Syrus
8218e550fc Improved docs and fixed few typos 2019-05-13 11:18:57 -07:00
Syrus
5a6cb96714 Merge branch 'master' into docs/better-runtime-docs
# Conflicts:
#	lib/runtime-core/src/vm.rs
2019-05-13 11:08:00 -07:00
Heyang Zhou
884a7e1713 kwasm-net fixes and optimizations. 2019-05-13 10:15:03 -07:00
Heyang Zhou
3bcdfb4263 Asynchronous networking extension. 2019-05-13 06:14:28 -07:00
Heyang Zhou
af1ac9af96 Improve performance of memory access. 2019-05-13 05:11:08 -07:00
Ivan Enderlin
b050144898 Merge branch 'master' into fix-runtime-c-api-error-length 2019-05-13 10:59:11 +02:00
Ivan Enderlin
8c8586faaa test(runtime-c-api) Assert returned value from wasmer_last_error_message. 2019-05-13 10:52:55 +02:00
Ivan Enderlin
bedd305b06 doc(runtime-c-api) Fix inline comment. 2019-05-13 10:52:43 +02:00
Brandon Fish
7315cd1100 Add some basic partial implementation of Cranelift codegen 2019-05-12 19:16:01 -05:00
bors[bot]
b2227314a7 Merge #436
436: Add deny for unreachable patterns and unused unsafe r=syrusakbary a=bjfish



Co-authored-by: Brandon Fish <brandon.j.fish@gmail.com>
2019-05-12 22:16:44 +00:00
Brandon Fish
d9cd4fc3e0 Add scaffold to use new code generator API for Cranelift 2019-05-12 11:05:26 -05:00
Brandon Fish
2aefa731a6 Add deny for unreachable patterns and unused unsafe 2019-05-12 00:33:02 -05:00
Brandon Fish
a96d5cb975 Fix f32/f64 conversion, add tests, and rename conversion method 2019-05-11 19:26:17 -05:00
Brandon Fish
85158ac22a Add some initial deny for unused_imports and unused_variables
Additional unused variable fix on unix

Remove unused import on unix

Remove unused windows import
2019-05-11 09:23:25 -05:00
Mark McCaskey
02f3349cb1 clean up, update changelog 2019-05-10 10:58:06 -07:00
Mark McCaskey
a527154c62 major improvements to wasi fs calls; include explanation in unimpl!s 2019-05-10 10:54:36 -07:00
Ivan Enderlin
7d2721ef7a fix(runtime-c-api) wasmer_last_error_message returns the length + 1.
Returning the error message's length + 1 mimics the
`wasmer_last_error_length` function that counts the trailing null
byte.
2019-05-10 16:00:13 +02:00
Ivan Enderlin
1d555301f7 feat(runtime-c-api) Check buffer size before creating the slice.
It's safer to check the buffer size is large enough to hold the error
message before creating the slice from raw parts.

Also, this patch remove the need for `last_error`, simplifying the
code a little bit. The `length` variable is casted to `usize` once.
2019-05-10 15:55:02 +02:00
Mark McCaskey
1f99ef8377 implement some FS operations for rsign2 2019-05-09 16:01:36 -07:00
Brandon Fish
080220c6a7
Merge branch 'master' into feature/llvm-cgapi 2019-05-08 17:33:06 -07:00
Heyang Zhou
620a6ddd85 Disable memory bound checking for kernel loader. 2019-05-08 10:25:29 -07:00
Johan Andersson
36a78a23b6 Fix Windows crash on caching compiled artifact.
Memory clone function wasn't able to write to new reserved memory object.

Changed so allocating Memory objects with protection flag allocates commited memory.
2019-05-08 15:59:00 +02:00
Brandon Fish
54095fcd67 Clean up commented out code in LLVM codegen 2019-05-07 22:53:48 -05:00
Heyang Zhou
0bbd6e6970 Fix function offset. 2019-05-07 08:25:46 -07:00
losfair
e53d5a91ca Remove transmutes. 2019-05-07 19:20:18 +08:00
Brandon Fish
9c0cbc9775 Remove previous LLVM parser code 2019-05-06 23:41:31 -05:00
Brandon Fish
87a94657d0
Merge branch 'master' into feature/llvm-cgapi 2019-05-06 22:39:20 -05:00
Mark McCaskey
e5dc94c7d6 update version number to 0.4.1 2019-05-06 18:02:39 -07:00
Mark McCaskey
e40b4a2c39 fix debug code 2019-05-06 14:58:44 -07:00
bors[bot]
94e6c7318f Merge #424
424: Update emscripten to run JSC r=syrusakbary a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-05-06 21:19:27 +00:00
Mark McCaskey
91d01d1c05 clean up warnings 2019-05-06 14:17:23 -07:00
Mark McCaskey
ab184aceea Update emscripten to run JSC 2019-05-06 14:05:04 -07:00
bors[bot]
704c783b54 Merge #414
414: Exception logging (win32): Handle error codes correctly, add some more strings r=syrusakbary a=hrydgard

Ran into a situation with an unknown exception from Cranelift (will probably report that one separately). Turns out the signum was "1" though which does not seem to correspond to any of the Windows error codes, except possibly STATUS_GUARD_PAGE which is 0x80000001, but only if we lost the top bit somewhere.

On Windows, exceptions seemed to be trapped by callProtected, which is implemented here: cade9a666f/lib/win-exception-handler/exception_handling/exception_handling.c . It did not seem to correctly store and retrieve the exception code, instead always returning 1: ```longjmp(jmpBuf, 1);```

So I fixed it. And now the log output looks like this:

```
unhandled trap at 1560d5e7bab - code #c0000005: segmentation violation
```


Co-authored-by: Henrik Rydgård <henrik.rydgard@embark-studios.com>
Co-authored-by: Syrus Akbary <me@syrusakbary.com>
Co-authored-by: Mackenzie Clark <mackenzie.a.z.c@gmail.com>
2019-05-06 19:54:21 +00:00
Pekka Enberg
089aab296d codegen: Remove unused LoadError import
Rustc complains that:

  warning: unused import: `parse::LoadError`
   --> lib/runtime-core/src/codegen.rs:7:5
    |
  7 |     parse::LoadError,
    |     ^^^^^^^^^^^^^^^^
    |
2019-05-06 20:42:35 +03:00
Heyang Zhou
0895dc60c2 Check param count. 2019-05-06 09:19:56 -07:00
Heyang Zhou
b343fd40bc Pass in param count for import functions in kernel loader. 2019-05-06 08:28:12 -07:00
Mackenzie Clark
10b4a08ca6
Merge branch 'master' into improve-exception-logging 2019-05-06 08:09:24 -07:00
Heyang Zhou
61510f8116 Enforce runtime memory and stack bound check when using kernel loader. 2019-05-06 07:15:30 -07:00
Brandon Fish
0926a5020e Implement caching for parser refactor 2019-05-05 20:11:47 -05:00
Syrus
8f345e9e8c Fixed ioctl in Unix. Fixed provied main arguments 2019-05-05 13:55:40 -07:00
Syrus
789af39f9e Improved ioctl calls 2019-05-05 12:31:31 -07:00
Brandon Fish
4770277b15 Remove parser refactor commented out code, unused imports and fields 2019-05-05 14:28:40 -05:00
Syrus
f076c04b76 Moved from println to debug the emscripten entrypoint statement 2019-05-05 12:14:25 -07:00
Syrus
341766dee5 Fixed format 2019-05-05 12:09:55 -07:00
Syrus
2ba680ad2f Improved rename function 2019-05-05 12:09:27 -07:00
Brandon Fish
e1138a553b Fix LLVM refactor unreachable depth 2019-05-05 13:56:02 -05:00
Brandon Fish
31acf81762 cargo fmt 2019-05-05 13:37:36 -05:00
Brandon Fish
1864733ab8 Merge branch 'master' into feature/llvm-cgapi 2019-05-05 13:25:51 -05:00
Syrus
10a965cc1e Added few syscalls to run optipng 2019-05-05 11:24:57 -07:00
Syrus
90dd4bc458 Fix emtests 2019-05-05 11:21:28 -07:00
Heyang Zhou
7bc09ee220 kwasmd. 2019-05-05 09:32:35 -07:00
Heyang Zhou
cc01e40dc5 Split load/run 2019-05-05 05:03:07 -07:00
Heyang Zhou
46e4cb05bc Get memory intrinsics at runtime. 2019-05-04 10:33:12 -07:00
Brandon Fish
60c0504bdf Implement llvm returns in function code generator finalize 2019-05-04 12:07:21 -05:00
Heyang Zhou
a590d7cd07 Tables 2019-05-04 09:56:52 -07:00
Heyang Zhou
c4e4efc694 kwasm imports 2019-05-04 08:28:13 -07:00
Heyang Zhou
af0b1476f3 Add emit_u64 to Emitter API 2019-05-04 07:25:29 -07:00
Heyang Zhou
7a4b2172a5 Remove runtime dependence for BrTable 2019-05-04 07:25:11 -07:00
Heyang Zhou
af58ea5642 Kernel mode code loading. 2019-05-03 23:07:07 -07:00
Mark McCaskey
353ff60c0f add misc changes while debugging 2019-05-03 17:34:57 -07:00
Brandon Fish
c5caf9b6db Update LLVM FCG begin_body 2019-05-03 00:14:25 -05:00
losfair
14bfd75ac9 Code loader framework. 2019-05-03 00:23:41 +08:00
Henrik Rydgård
5e37368ec9 Exception logging (win32): Handle error codes correctly, add some more strings. 2019-05-02 12:45:52 +02:00
Syrus Akbary
c0a5f74d0c
Update lib/middleware-common/Cargo.toml 2019-05-01 11:32:57 -07:00
Syrus Akbary
67c4d74eb4
Update middleware version to 0.4.0 2019-05-01 11:28:14 -07:00
Brandon Fish
8d86844c5f
Merge branch 'master' into parser-middleware 2019-05-01 13:10:44 -05:00
losfair
99c101f312 Merge remote-tracking branch 'origin/master' into parser-middleware 2019-05-02 00:30:58 +08:00
Mark McCaskey
2646765671
Merge branch 'master' into update-version-numbers-to-4 2019-05-01 09:27:38 -07:00
Brandon Fish
b016ec6b34 Add start_of_code_block to function 2019-04-30 23:44:34 -05:00
Brandon Fish
0ee2ba0ee6 Implement more of next_function and finalize 2019-04-30 23:22:41 -05:00
Brandon Fish
ec253c73ab Implement feed_local 2019-04-30 20:11:44 -05:00
Brandon Fish
39b6b05f71
Merge branch 'master' into atomic-transparent-repr 2019-04-30 17:09:18 -07:00
Syrus
747e5321a2 Fixed issues. Updated CHANGELOG 2019-04-30 12:05:13 -07:00
Syrus
ce140463d6 Merge branch 'master' into feature/jsc-emscripten 2019-04-30 11:47:28 -07:00
Syrus
e68f5e10e4 Improved emscripten functions to be able to run jsc 2019-04-30 11:47:03 -07:00
bors[bot]
82cf572245 Merge #404 #406
404: Update to newer common wasmparser version r=xmclark a=bjfish

- versions should match to have matching types in a common parser
- the `0.29.2` version matches the current parser version of cranelift-wasm

406: Cleanup some clippy warnings r=xmclark a=bjfish

Cleaned up some
- long literal lacking separators
- unneeded return

Co-authored-by: Brandon Fish <brandon.j.fish@gmail.com>
2019-04-30 15:37:12 +00:00
losfair
21dd01c3aa Fix LLVM backend compilation and segfaults. 2019-04-30 15:52:43 +08:00
Brandon Fish
01ba789eed Cleanup some long literal lacking separators 2019-04-29 23:49:00 -05:00
Brandon Fish
8acf9edf67 Remove unneeded returns 2019-04-29 23:45:38 -05:00
Brandon Fish
da807ed2a1 Remove unused imports 2019-04-29 23:40:16 -05:00
Brandon Fish
a127b770b3 Update to newer common wasmparser version 2019-04-29 23:34:48 -05:00
Mark McCaskey
d020ffd759 update version to 0.4.0 2019-04-29 13:26:51 -07:00
Brandon Fish
53bebf9c73 Add initial progress to add LLVM to module refactor 2019-04-29 00:13:34 -05:00
losfair
305e1801ff Fix incomplete data section 2019-04-28 15:38:18 +08:00
losfair
46fb72af9d Add missing .rev() on parameter list and simulate "red zone". 2019-04-28 13:31:22 +08:00
losfair
e63d7fd531 Merge 2019-04-28 12:58:27 +08:00
losfair
480308c62c Cargo fmt 2019-04-28 12:54:45 +08:00
losfair
cf83a9785f Print call trace to stderr. 2019-04-28 12:51:51 +08:00
losfair
6beb76c3ae Various cleanups. 2019-04-28 12:48:01 +08:00
Syrus
a4170d4495 Improved fault debugging with emscripten 2019-04-27 12:53:13 -07:00
losfair
2262c8a6da Finished middleware impl and made a CallTrace middleware 2019-04-27 16:31:47 +08:00
losfair
eca8ccdbd4 Move out parser and codegen traits. 2019-04-27 12:31:04 +08:00
Syrus Akbary
a6b8c1b0fa
Fix debug issue 2019-04-26 17:40:55 -07:00
Mark McCaskey
655188a788 Fix WASI FS abstraction for Windows 2019-04-26 13:17:36 -07:00
Syrus Akbary
1ed4142333
Merge branch 'master' into feature/cleanup-imports-unsafe 2019-04-25 16:00:27 -07:00
bors[bot]
e86e542da7 Merge #392
392: Remove unused function memory_offset_addr r=syrusakbary a=bjfish



Co-authored-by: Brandon Fish <brandon.j.fish@gmail.com>
2019-04-25 21:45:25 +00:00
Mackenzie Clark
3998c9ec17 remove zbox because wasmer will not build on windows nightly 2019-04-25 12:45:45 -07:00
Mackenzie Clark
9ab7199fe5
Merge branch 'master' into feature/cleanup-imports-unsafe 2019-04-24 08:37:06 -07:00
Brandon Fish
389c6a015d Remove unused function memory offset addr 2019-04-24 02:00:07 -05:00
Lachlan Sneff
ff9de181f1 Add error propagation test 2019-04-22 15:53:21 -07:00
Lachlan Sneff
14325c975e Rename internal enum to make less confusing 2019-04-22 15:36:47 -07:00
Lachlan Sneff
706ddabf61 Hook up error propagation 2019-04-22 15:06:40 -07:00
Syrus
3729c4a8b8 Revert "Merge #370"
This reverts commit 48a8391f5d, reversing
changes made to 363b46eca7.
2019-04-22 12:10:39 -07:00
Syrus
878a0e6687 Partial Revert of types “Return type normalization, and change return errors from imported functions"
This reverts commit 74b6ba4eaf.

# Conflicts:
#	lib/wasi/src/syscalls/mod.rs
2019-04-22 12:09:30 -07:00
Lachlan Sneff
7940aa7e42 Fix renamed variable 2019-04-22 11:57:50 -07:00
Lachlan Sneff
ecdcab5de9 Update singlepass to renamed enum discrimant 2019-04-22 11:47:47 -07:00
Lachlan Sneff
74b6ba4eaf Return type normalization, and change return errors from imported functions 2019-04-22 11:42:52 -07:00
Lachlan Sneff
85d9ca9ad2 Add NativeWasmType trait and modify WasmExternType 2019-04-22 10:35:55 -07:00
Clément Renault
21bd55c30d
Make the slice::from_raw_parts call safe 2019-04-21 12:58:48 +02:00
Brandon Fish
9e93565a49 Cleanup build warnings imports and unnecessary unsafe 2019-04-20 20:37:39 -05:00
Brandon Fish
2516a1ee31
Merge branch 'master' into feature/wasi-more-debug 2019-04-20 14:22:59 -05:00
Brandon Fish
962c9c8596 Add more Debug impl for WASI types 2019-04-20 14:22:31 -05:00
Syrus
0aa35a675b Fix WASI by using u32 everywhere instead of u16 2019-04-20 11:47:06 -07:00
Mark McCaskey
8095d70957 fix write to flush buffer; fix warnings 2019-04-19 15:57:51 -07:00
Mark McCaskey
5a575cd64d
Merge branch 'master' into feature/preopen-fd-and-more 2019-04-19 14:24:30 -07:00
Syrus Akbary
b4ded07313
Merge branch 'master' into feature/preopen-fd-and-more 2019-04-19 14:14:40 -07:00
Lachlan Sneff
087a826222 fix tests on more time uh huh 2019-04-19 14:09:41 -07:00
Lachlan Sneff
3b9e12b248 fix test 2019-04-19 14:02:21 -07:00
Lachlan Sneff
c3ef1f8421 Remove commented-out code 2019-04-19 14:00:03 -07:00
Lachlan Sneff
443663aa3f Add caching support to llvm backend 2019-04-19 13:54:48 -07:00
Mark McCaskey
b141d7f80e fix typo 2019-04-19 13:25:23 -07:00
Mark McCaskey
52279afbe2 add comment and reduce code in pre-open loading section 2019-04-19 13:24:41 -07:00
Mark McCaskey
5e504b77cd add support for more complex paths in path_open 2019-04-19 12:48:29 -07:00
Mark McCaskey
c75f055b09 disable ZFS again; clean up simple-path's control-flow-path in path_open 2019-04-19 09:25:29 -07:00
Mark McCaskey
19e830d25a fix memory access in WasmPtr 2019-04-18 17:48:14 -07:00
Mark McCaskey
7e58c4258c Merge remote-tracking branch 'origin/master' into feature/preopen-fd-and-more 2019-04-18 15:43:02 -07:00
Lachlan Sneff
6279dd8e82 Fix test again, whoops 2019-04-18 10:14:25 -07:00
Lachlan Sneff
f0e0255b3f Fix vm test 2019-04-18 10:08:17 -07:00
Lachlan Sneff
4dd64ed72e Remove UserTrapper trait 2019-04-18 10:00:15 -07:00
bors[bot]
ccad8874e9 Merge #360
360: Single-pass fixes and optimizations. r=syrusakbary a=losfair



Co-authored-by: losfair <zhy20000919@hotmail.com>
Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
2019-04-18 15:04:09 +00:00
Syrus
6c158a93bf Added imports to be able to run Imagemagick 2019-04-17 17:42:21 -07:00
Lachlan Sneff
016535ce12 Merge branch 'master' into feature/singlepass-opt 2019-04-17 15:19:51 -07:00
Lachlan Sneff
61f31ae7e8 Fix lint (just two lines) 2019-04-17 15:17:16 -07:00
Lachlan Sneff
088263a604
Merge branch 'master' into feature/remove-call-protected 2019-04-17 14:14:36 -07:00
Lachlan Sneff
f0a20151f6 Fix returning the result from dynamic calls on the singlepass backend 2019-04-17 14:14:01 -07:00
losfair
e71da1cdf1 Some documentation on the code generator. 2019-04-18 02:28:08 +08:00
losfair
5f9aed0103 Merge remote-tracking branch 'origin/master' into feature/singlepass-opt 2019-04-17 02:18:00 +08:00
losfair
0da2442be1 Parse input in a single pass. 2019-04-17 02:10:36 +08:00
losfair
c47eb6eaa2 Fix corner cases. 2019-04-16 22:45:32 +08:00
Mark McCaskey
5771c904f8 add changelog entry 2019-04-12 14:16:42 -07:00
Mark McCaskey
a36ab1cd78 add misc changes to Cargo.tomls for publishing 2019-04-12 14:07:25 -07:00
Lachlan Sneff
57e24c957c
Merge branch 'master' into feature/remove-call-protected 2019-04-12 12:44:59 -07:00
Mark McCaskey
d507253372 update crate version numbers to 0.3.0 2019-04-12 12:19:46 -07:00
Lachlan Sneff
8b2f613649
Merge branch 'master' into feature/remove-call-protected 2019-04-12 11:50:39 -07:00
Mark McCaskey
9c12b3f7f1 update changelog 2019-04-12 11:22:01 -07:00
Lachlan Sneff
0d30c957a2 Fix llvm test 2019-04-12 10:33:30 -07:00
Lachlan Sneff
051d435423 Warnings and unused code cleanup 2019-04-12 10:27:14 -07:00
Lachlan Sneff
4e17ff8571 Update singlepass backend to new backend abstraction 2019-04-12 10:21:40 -07:00
Lachlan Sneff
75cc65a8c5 Update llvm backend to new backend abstraction 2019-04-12 10:05:50 -07:00
Lachlan Sneff
8b5da1d86e Update cranelift backend to new backend abstraction 2019-04-12 09:58:29 -07:00
Lachlan Sneff
d8c6f76846 Redesign the interface between the runtime and the backends.
This removes the ProtectedCaller and FuncResolver traits, simplifying call implementations and improving dynamic call throughput.
2019-04-11 18:01:54 -07:00
Lachlan Sneff
688b6cae26
Merge branch 'master' into feature/nightly-release 2019-04-11 14:36:18 -07:00
Lachlan Sneff
4740b2467f Add backend selection to cli 2019-04-11 14:34:54 -07:00
Syrus
d67bfdb2c5 Renamed dynasm backend to singlepass 2019-04-11 12:44:03 -07:00
Lachlan Sneff
60ac7a5b49 Remove unneeded semicolon 2019-04-11 12:13:36 -07:00
Lachlan Sneff
c898439817 Add well placed unwind(allowed) attribute 2019-04-11 12:07:54 -07:00
bors[bot]
81fcecd705 Merge #290
290: Assembler API for the single-pass backend. r=syrusakbary a=losfair



Co-authored-by: losfair <zhy20000919@hotmail.com>
2019-04-11 18:07:58 +00:00
losfair
394c56b2b4 Added missing was_unreachable check. 2019-04-11 18:59:00 +08:00
Syrus Akbary
527d32b00d
Added WASI to the integrations 2019-04-10 23:14:29 -07:00
losfair
77c1bfa005 Cargo fmt 2019-04-11 11:53:26 +08:00
losfair
759fecf6fd Fix longjmp. 2019-04-11 11:52:57 +08:00
losfair
7e20575e5b Implement get_wasm_trampoline 2019-04-11 11:41:32 +08:00
losfair
ab04f54e72 Merge remote-tracking branch 'origin/master' into dynasm-refactor 2019-04-11 10:06:47 +08:00
losfair
4736028369 Cargo fmt 2019-04-11 09:43:02 +08:00
losfair
799e1d8dec Cleanup. 2019-04-11 09:41:18 +08:00
losfair
2d72bbf834 Smallvec optimization. 2019-04-11 09:31:54 +08:00
Mark McCaskey
91af7cf8a8 add preopened fd and fix/improve fs syscalls (WIP) 2019-04-10 18:23:25 -07:00
losfair
e8fe58d9c6 Implement IxxTrunc{U/S}Fxx bound checks. 2019-04-11 09:14:29 +08:00
losfair
02a305cfbe Fix function pointer offset for resolver. 2019-04-11 08:44:18 +08:00
bors[bot]
72b9939331 Merge #334
334: Added longjmp implementation r=syrusakbary a=syrusakbary

Added longjmp implementation

Co-authored-by: Syrus <me@syrusakbary.com>
Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
2019-04-11 00:26:30 +00:00
Lachlan Sneff
1cb3fbea0a Add support for panicking/returning err back to llvm 2019-04-10 14:17:10 -07:00
bors[bot]
870faf9838 Merge #341
341: feat(runtime-core) `Instance.exports` takes `&self` instead of `&mut self` r=lachlansneff a=Hywan

There is no reason for `exports` to take a mutable reference. This patch rewrites the `Instance.export` signature a little bit.

Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2019-04-10 19:22:12 +00:00
Ivan Enderlin
20297d1751 feat(runtime-core) Instance.exports takes &self instead of &mut self.
There is no reason for `exports` to take a mutable reference.
2019-04-10 12:17:16 -07:00
losfair
4e09bda745 Fix calling convention. 2019-04-11 02:54:23 +08:00
Syrus
6848e81a77 Merge branch 'master' into feature/longjmp
# Conflicts:
#	lib/runtime-core/src/backend.rs
#	lib/runtime-core/src/typed_func.rs
2019-04-10 10:57:45 -07:00
losfair
13d456aaf2 Fixed ShrU/S and Trunc's. 2019-04-11 01:53:13 +08:00
Lachlan Sneff
2d2a177e9c Fix lint 2019-04-10 10:31:49 -07:00
Syrus
e620d6bef9 Fix formatting 2019-04-10 10:29:35 -07:00
Lachlan Sneff
cfd4758210 Add some documentation 2019-04-10 10:26:16 -07:00
losfair
3300a3b272 Passing all spectests, except traps. 2019-04-11 00:55:55 +08:00
Syrus
1ee5e7cde6 Remove unsafe setjmp / longjmp implementation 2019-04-09 19:01:51 -07:00
Syrus
02ed9f0e5f Reenabled longjmp 🎉 2019-04-09 18:33:53 -07:00
Syrus
b2446b567e Uncommented some longjmp tests 2019-04-09 17:49:26 -07:00
Syrus
ffe00da678 Improved invoke certain functions 2019-04-09 17:48:42 -07:00
Lachlan Sneff
70ab6667c7 Attempt #3 for windows 2019-04-09 17:09:33 -07:00
Lachlan Sneff
50b5da8dd0 Attempt #2 for windows building 2019-04-09 17:09:33 -07:00
Lachlan Sneff
a657315320 Attempt to fix windows build 2019-04-09 17:09:33 -07:00
Lachlan Sneff
a320af4485 Fix runtime test missing method 2019-04-09 17:09:33 -07:00
Lachlan Sneff
782bb384ad Cleanup 2019-04-09 17:09:33 -07:00
Lachlan Sneff
cc656b26a9 Add implementations for typed func errors to cranelift and llvm 2019-04-09 17:09:33 -07:00
Lachlan Sneff
7d09a2ee7e Initial typed func rewrite 2019-04-09 17:09:33 -07:00
Mark McCaskey
fec65a262e implement emscripten resize_heap 2019-04-09 17:09:33 -07:00
Mark McCaskey
8ba5ea2a08 allow resize_heap to grow heap in emscripten 2019-04-09 17:09:33 -07:00
Mark McCaskey
a6c2f7e8e3 change void* to stat* for lstat on linux 2019-04-09 17:09:33 -07:00
Mark McCaskey
95095feb2e try normal lstat on linux 2019-04-09 17:09:33 -07:00
Mark McCaskey
e34874e2d3 fix type errors on Linux/OSX 2019-04-09 17:09:33 -07:00
Mark McCaskey
17686b9a98 revert location of lstat64 2019-04-09 17:09:33 -07:00
Mark McCaskey
18a00e8e8f fix bug in stat, move lstat64 back to unix 2019-04-09 17:09:33 -07:00
Mark McCaskey
79da3e8f3c return total memory size for get_heap_size 2019-04-09 17:09:33 -07:00
Mark McCaskey
e8236cf1c7 fix lstat64; increase num returned by heap size 2019-04-09 17:09:33 -07:00
Lachlan Sneff
b949de2560 Attempt #3 for windows 2019-04-09 16:54:55 -07:00
Lachlan Sneff
654fce9354 Attempt #2 for windows building 2019-04-09 16:50:33 -07:00
Lachlan Sneff
751dff0f9d Attempt to fix windows build 2019-04-09 16:46:01 -07:00
Lachlan Sneff
41129e445d Fix runtime test missing method 2019-04-09 16:15:50 -07:00
Lachlan Sneff
0745274892 Cleanup 2019-04-09 16:07:09 -07:00
Lachlan Sneff
c212ba3619 Add implementations for typed func errors to cranelift and llvm 2019-04-09 15:53:01 -07:00
Lachlan Sneff
5e1a67d835 Initial typed func rewrite 2019-04-09 12:48:41 -07:00
losfair
e78a5ba602 F32ConvertUI64, F64ConvertUI64 2019-04-10 01:38:16 +08:00
losfair
69d6093955 Fix GetGlobal, RemS/U and floating point comparison. 2019-04-10 00:41:32 +08:00
losfair
6b514e110a 1241/1256 tests passing 2019-04-09 19:10:20 +08:00
losfair
f781b0eb02 More floating point operators. 2019-04-09 17:08:31 +08:00
Mark McCaskey
50a22bcae2 implement emscripten resize_heap 2019-04-08 16:17:34 -07:00
Mark McCaskey
6578838acd allow resize_heap to grow heap in emscripten 2019-04-08 14:44:40 -07:00
bors[bot]
7f8b1ea521 Merge #332
332: fix lstat64; heap size; and stat r=MarkMcCaskey a=MarkMcCaskey

- Get https://github.com/nikic/PHP-Parser working 🎉 
- fixes memory issue bug which looked like relative paths didn't work, but was really pointer aliasing corrupting data

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-04-08 18:58:48 +00:00
Mark McCaskey
03f0bf0c49 change void* to stat* for lstat on linux 2019-04-08 11:53:15 -07:00
Mark McCaskey
b2a51b8fbd try normal lstat on linux 2019-04-08 11:48:04 -07:00
Mark McCaskey
7cb2766292 fix type errors on Linux/OSX 2019-04-08 11:36:54 -07:00
Mark McCaskey
134ee3c511 revert location of lstat64 2019-04-08 11:29:55 -07:00
Mark McCaskey
b3a765446a fix bug in stat, move lstat64 back to unix 2019-04-08 11:26:25 -07:00
losfair
e32816b06b Floating point with AVX. 2019-04-09 01:24:30 +08:00
losfair
154f7f8fd3 BrTable, 64-bit memory operations and bug fixes. 2019-04-08 17:47:41 +08:00
losfair
29d93aee2d Indirect calls. 2019-04-07 17:19:23 +08:00
Syrus
3fcc502015 Added temporal code for emscripten target 2019-04-06 17:16:51 -07:00
Syrus
dc3c2227dc Addd stack_save, stack_restore and set_threw for longjmp 2019-04-06 14:32:21 -07:00
Syrus
3b11da91c5 Make DynFunc public 2019-04-06 14:31:39 -07:00
Syrus
a4e1051c25 Fix format 2019-04-05 23:55:04 -07:00
Syrus
ea58e0051b Commented zbox until speed is fixed 2019-04-05 23:48:12 -07:00
Syrus
1193d561e2 Improved debug! macro with timing 2019-04-05 23:47:59 -07:00
Syrus
d0fe506793 Added emscripten dynVall_vj 2019-04-05 22:27:09 -07:00
Mark McCaskey
09a207364b return total memory size for get_heap_size 2019-04-05 17:21:40 -07:00
Mark McCaskey
40deb3e6ed fix lstat64; increase num returned by heap size 2019-04-05 16:50:50 -07:00
bors[bot]
ea08a96b32 Merge #330
330: implement strftime r=syrusakbary a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-04-05 21:38:35 +00:00
Mark McCaskey
b0a83408ec fix debug statement 2019-04-05 14:33:49 -07:00
Mark McCaskey
8015fbfc16 implement strftime 2019-04-05 13:59:33 -07:00
Syrus
b03a05f1b7 Added f64-to-int 2019-04-05 13:33:28 -07:00
Mark McCaskey
516b932a71 rm review comment 2019-04-05 12:11:40 -07:00
Mark McCaskey
9af1206b62 changes to make PHP run better 2019-04-05 12:06:30 -07:00
Mark McCaskey
7f6e4785f0 add test and fix em tests 2019-04-05 11:24:27 -07:00