Commit Graph

2386 Commits

Author SHA1 Message Date
Syrus Akbary
862a4c5448
Merge pull request #814 from confio/fix-linux-image-link-error
Fix issues with testing/linking singlepass in runtime-c-api
2019-09-20 16:33:30 -07:00
Mark McCaskey
bf396ec76d Remove patch version in deps when not necessary 2019-09-20 16:11:09 -07:00
Mark McCaskey
7f2c532594 Allow dead code in emscripten WasmPtr 2019-09-20 13:19:31 -07:00
Mark McCaskey
882a77ccf9 Remove null pointer checks generally, re-add them in Emscripten 2019-09-20 12:02:12 -07:00
Patrick Ventuzelo
7deed3160b cargo fmt 2019-09-20 18:59:36 +02:00
Patrick Ventuzelo
ca409f78c5 fix spectest 2019-09-20 18:54:05 +02:00
bors[bot]
0790ebff0c
Merge #803
803: Add method to call function at index on Ctx r=MarkMcCaskey a=MarkMcCaskey

For #638 and #670

```Rust
fn call_guest_fn(ctx: &mut Ctx, guest_fn: u32) -> u32 {
    println!("{}", guest_fn);

    let guest_fn_typed = unsafe { std::mem::transmute(guest_fn) };

    let result = ctx.call_with_table_index(guest_fn_typed, &[]).unwrap();
    println!("  -> {:?}", result);

    0
}
```
is what this looks like from the Host side

See `examples/callback.rs` for an example that doesn't require `transmute`


# Review

- [x] Create a short description of the the change in the CHANGELOG.md file


Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Mark McCaskey <markmccaskey@users.noreply.github.com>
2019-09-19 20:55:09 +00:00
Ivan Enderlin
9a49fb59e0
Merge branch 'master' into fix-test-typo 2019-09-19 22:15:32 +02:00
bors[bot]
dd1a4a6c10
Merge #805
805: Replace panic! & unimplemented! in runtime-code and llvm-backend r=nlewycky a=pventuzelo

# Description

Replace `unimplemented!` by already used `CodegenError` in `lib/llvm-backend/src/code.rs`
Replace `unimplemented!` by `Err` in `lib/llvm-backend/src/trampolines.rs`
Replace `panic!` by already used `BinaryReaderError` in `lib/runtime-core/src/parse.rs`

# Review

- [ ] Create a short description of the the change in the CHANGELOG.md file


Co-authored-by: Patrick Ventuzelo <ventuzelo.patrick@gmail.com>
2019-09-19 19:20:04 +00:00
Johan Andersson
8d0edc61df Merge master 2019-09-19 11:16:14 +02:00
Mark McCaskey
a9d8b22fe7
Merge branch 'master' into feature/call-function-at-index-on-just-ctx 2019-09-18 16:46:08 -07:00
Mark McCaskey
ccd369ff0c Add example, rename Ctx fn, make things pub(crate), misc changes 2019-09-18 16:43:47 -07:00
Mark McCaskey
5741a2cf70 Implement function lookups using the table 2019-09-18 16:06:46 -07:00
Ethan Frey
8ae255b51a Fix issues with testing/linking singlepass in runtime-c-api 2019-09-19 00:19:17 +02:00
Ethan Frey
e8a918e2e5 %lld -> %ld fixes cargo test compile error 2019-09-18 23:25:35 +02:00
losfair
a124d87d0f Fix Operator::MemorySize. 2019-09-19 01:10:23 +08:00
losfair
5f8b289751 movzx/movsx 2019-09-19 01:04:20 +08:00
losfair
8a91f801b9 Fix return from homomorphic host redirection trampoline. 2019-09-18 21:47:31 +08:00
Patrick Ventuzelo
315b87c718 check index before accessing imports.globals 2019-09-18 10:28:49 +02:00
Mark McCaskey
9c205e05a2 Add comments explaining the unsafe impls and simplify the code, too 2019-09-17 18:35:12 -07:00
Mark McCaskey
83c3909b00 Implement it for memory and make Instance Send 2019-09-17 14:58:26 -07:00
Mark McCaskey
9e9343878d Implement Send for everything except Memory 2019-09-17 11:45:13 -07:00
losfair
72b6123def Fix memory grow 2019-09-18 02:38:35 +08:00
losfair
e40600533e Add missing emit_mov variants. 2019-09-18 02:30:45 +08:00
losfair
97b75d0124 Ensure callee-saved registers are properly preserved. 2019-09-18 02:21:35 +08:00
losfair
b57aba4ae7 Add homomorphic host redirection abstraction for vm->host calls. 2019-09-18 02:14:13 +08:00
Mark McCaskey
17a0e78cef Implement Send for Instance 2019-09-17 10:37:37 -07:00
Patrick Ventuzelo
374f81972a remove panic from UnsharedMemory 2019-09-17 17:46:36 +02:00
Patrick Ventuzelo
c660aa9fce fix 653 panic in memoryDescriptor 2019-09-17 17:42:06 +02:00
Patrick Ventuzelo
726269a52c fix missing info error 2019-09-17 12:05:00 +02:00
Patrick Ventuzelo
4190f01195 remove panic and unimplemented in llvm-backend and runtime-core 2019-09-17 12:03:03 +02:00
Mark McCaskey
b35a522d28 Add method to call function at index on Ctx 2019-09-16 15:01:18 -07:00
Johan Andersson
ba488adb8f
Merge branch 'master' into remove-colored 2019-09-16 22:17:34 +02:00
Nick Lewycky
05816e3221 This is no longer referring to the correct line.
It's supposed to be 352 which is already there.
2019-09-16 13:13:21 -07:00
Nick Lewycky
2108c908a4 Depending on the micro-arch, this function may trigger emission of a stack realignment. If it does, OSR can't statically prove that it's safe to insert a function call and asserts. 2019-09-16 12:14:10 -07:00
Nick Lewycky
59597b9e83 Switch from PIC+Default (small) to Static+Large. Should fix flaky test failures. 2019-09-16 10:49:39 -07:00
losfair
d8b313e3fd Fix emit_lea. 2019-09-17 00:49:21 +08:00
losfair
05557fc9ad Bump dynasm to v0.5.1 2019-09-16 23:46:10 +08:00
Patrick Ventuzelo
00c2e09f43 fix CodeGen message type 2019-09-16 11:00:03 +02:00
Patrick Ventuzelo
33ba6768bc replace panics by CodeGen Error in codegen_x64 2019-09-16 09:56:41 +02:00
losfair
96163a07a6 Temporarily disable all lints in runtime-core. 2019-09-15 18:33:53 +08:00
losfair
2af69f6710 Fixed compilation on aarch64. 2019-09-15 18:32:02 +08:00
losfair
9b77677e4b Relax constraints a bit to compile on aarch64. 2019-09-15 18:23:42 +08:00
losfair
d3227f830c More instructions & aarch64 trampolines. 2019-09-15 17:57:40 +08:00
Johan Andersson
21bcac2159 Rustfmt 2019-09-15 03:31:05 +02:00
Johan Andersson
ad70caff83 Remove colored CLI output from runtime-core lib.
When the colored output was originally added in https://github.com/wasmerio/wasmer/pull/489 and there was a discussion then about that it should ideally be in a higher-level crate rather than in the runtime-core library crate.

I agree with that, users of the library shouldn't be required to bring in the colored crate dependency and ideally also not have stdout/stderr output either, that should be controlled by the application that uses wasmer-runtime-core, not the library.

Disabling stdout/stderr output would be more intrusive but I wanted to at least not have colored output and another crate dependency so this change removes the colored output and the "colored" crate.
2019-09-15 03:21:04 +02:00
Nick Lewycky
0387c3ff93 Turn this unreachable into a panic with an error message. 2019-09-13 14:44:54 -07:00
Nick Lewycky
afe22dfafc Copy the spectest repository license from the official WebAssembly testsuite. These tests are under that license.
Remove our own license statements on a few files since they're now redundant. They were all referencing this license.
2019-09-13 13:37:48 -07:00
Nick Lewycky
8dd82c05e6 Implement atomic load and store instructions with actual atomics in the LLVM backend.
Includes a run of `cargo update` to pick up the newer inkwell required.
2019-09-13 12:05:55 -07:00
dependabot-preview[bot]
0e96c35998
Bump indexmap from 1.1.0 to 1.2.0
Bumps [indexmap](https://github.com/bluss/indexmap) from 1.1.0 to 1.2.0.
- [Release notes](https://github.com/bluss/indexmap/releases)
- [Commits](https://github.com/bluss/indexmap/compare/1.1.0...1.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-12 20:39:52 +00:00
Mark McCaskey
35bb3879a4 Add required-by-cargo version pinning in manifest for middleware-common 2019-09-12 12:51:39 -07:00
Mark McCaskey
33811cde37 Fix mistake in version update; generate lock file 2019-09-12 12:49:11 -07:00
Mark McCaskey
0f4d266e4e Prepare for 0.7.0 release 2019-09-12 12:44:38 -07:00
bors[bot]
38048b6acf
Merge #774
774: Introduce some breaking changes to WasiFS API for next release r=MarkMcCaskey a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-09-12 18:55:29 +00:00
bors[bot]
9016cb166c
Merge #720 #765
720: Bump lazy_static from 1.3.0 to 1.4.0 r=Hywan a=dependabot-preview[bot]

Bumps [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs) from 1.3.0 to 1.4.0.
<details>
<summary>Release notes</summary>

*Sourced from [lazy_static's releases](https://github.com/rust-lang-nursery/lazy-static.rs/releases).*

> ## 1.4.0
> **Bumps the minimum supported version of `rustc` to `1.27.2`**
> 
> - [Fix typo in lib.rs](https://github-redirect.dependabot.com/rust-lang-nursery/lazy-static.rs/pull/144) (thanks [@&#8203;fbruetting](https://github.com/fbruetting))
> - [Automatically check if README.md examples are working when running "cargo test"](https://github-redirect.dependabot.com/rust-lang-nursery/lazy-static.rs/pull/145) (thanks [@&#8203;GuillaumeGomez](https://github.com/GuillaumeGomez))
> - [Allow deprecated to remove warnings in nightly](https://github-redirect.dependabot.com/rust-lang-nursery/lazy-static.rs/pull/152) (thanks [@&#8203;Schaeff](https://github.com/Schaeff))
> - [bump MSRV to 1.27.2](https://github-redirect.dependabot.com/rust-lang-nursery/lazy-static.rs/pull/155) (thanks [@&#8203;matklad](https://github.com/matklad))
</details>
<details>
<summary>Commits</summary>

- [`4216696`](421669662b) Merge pull request [#156](https://github-redirect.dependabot.com/rust-lang-nursery/lazy-static.rs/issues/156) from rust-lang-nursery/cargo/1.4.0
- [`1651fde`](1651fdeee8) prepare for 1.4.0 release
- [`d9c9689`](d9c96890da) Merge pull request [#155](https://github-redirect.dependabot.com/rust-lang-nursery/lazy-static.rs/issues/155) from matklad/hints
- [`d59c784`](d59c7848d4) adjust FIXME comment
- [`90baadd`](90baaddd61) comment typo
- [`42fa58e`](42fa58ea68) bump MSRV to 1.27.2
- [`8a5f404`](8a5f404fc8) Merge pull request [#152](https://github-redirect.dependabot.com/rust-lang-nursery/lazy-static.rs/issues/152) from Schaeff/allow-deprecated
- [`1dbd5ae`](1dbd5ae6cc) allow deprecated to remove warning in nightly
- [`65d58f1`](65d58f1a60) Merge pull request [#145](https://github-redirect.dependabot.com/rust-lang-nursery/lazy-static.rs/issues/145) from GuillaumeGomez/doc-tests
- [`e519fd4`](e519fd42c3) Automatically check if README.md examples are working when running "cargo test"
- Additional commits viewable in [compare view](https://github.com/rust-lang-nursery/lazy-static.rs/compare/1.3.0...1.4.0)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=lazy_static&package-manager=cargo&previous-version=1.3.0&new-version=1.4.0)](https://dependabot.com/compatibility-score.html?dependency-name=lazy_static&package-manager=cargo&previous-version=1.3.0&new-version=1.4.0)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>

765: Bump blake2b_simd from 0.5.7 to 0.5.8 r=Hywan a=dependabot-preview[bot]

Bumps [blake2b_simd](https://github.com/oconnor663/blake2_simd) from 0.5.7 to 0.5.8.
<details>
<summary>Commits</summary>

- [`296d75e`](296d75e502) version 0.5.8
- [`3706393`](3706393fd9) Merge pull request [#12](https://github-redirect.dependabot.com/oconnor663/blake2_simd/issues/12) from kobigurk/master
- [`1ee274d`](1ee274d775) Addresses Jack's comments
- [`ec7c0fc`](ec7c0fc1d3) Adds test vectors for blake2x
- [`2bcd7bf`](2bcd7bfa12) Adds support for max depth 0 for blake2b and fixes tests
- [`0ce1995`](0ce1995ff0) adds support for max depth 0
- See full diff in [compare view](https://github.com/oconnor663/blake2_simd/compare/0.5.7...0.5.8)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=blake2b_simd&package-manager=cargo&previous-version=0.5.7&new-version=0.5.8)](https://dependabot.com/compatibility-score.html?dependency-name=blake2b_simd&package-manager=cargo&previous-version=0.5.7&new-version=0.5.8)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2019-09-12 13:47:43 +00:00
Mark McCaskey
f5803f04e1 Add comment to generated code saying that it's generated code for wasi 2019-09-11 17:41:25 -07:00
Mark McCaskey
35ee83d5ca og -> original 2019-09-11 16:31:43 -07:00
Mark McCaskey
6fe3719e8e Add test for closing wasi preopen fd 2019-09-11 14:25:53 -07:00
Mark McCaskey
7e640c0dfb Introduce some breaking changes to WasiFS API for next release 2019-09-10 13:52:02 -07:00
losfair
ce7c903c23 Add impl for more instructions for aarch64 translator. 2019-09-11 01:13:52 +08:00
dependabot-preview[bot]
009bb67686
Bump lazy_static from 1.3.0 to 1.4.0
Bumps [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs) from 1.3.0 to 1.4.0.
- [Release notes](https://github.com/rust-lang-nursery/lazy-static.rs/releases)
- [Commits](https://github.com/rust-lang-nursery/lazy-static.rs/compare/1.3.0...1.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-09 23:02:16 +00:00
dependabot-preview[bot]
301d7a313e
Bump blake2b_simd from 0.5.7 to 0.5.8
Bumps [blake2b_simd](https://github.com/oconnor663/blake2_simd) from 0.5.7 to 0.5.8.
- [Release notes](https://github.com/oconnor663/blake2_simd/releases)
- [Commits](https://github.com/oconnor663/blake2_simd/compare/0.5.7...0.5.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-09 23:02:16 +00:00
Syrus Akbary
d3a9c5edb7
Merge branch 'master' into ventuzelo/fix-panics-backing 2019-09-09 19:29:08 -03:00
nlewycky
ea3d7272d9
The VM callbacks for shared static are the same as those for unshared static memory. 2019-09-09 08:34:47 -07:00
Patrick Ventuzelo
ba5c43e09d fix issue 725, remove panics 2019-09-09 16:58:26 +02:00
Patrick Ventuzelo
3a54111988 replace unimplemented by Err 2019-09-09 13:50:30 +02:00
losfair
4210715070 AArch64 translation module. 2019-09-07 01:32:21 +08:00
Ivan Enderlin
1f1ecb7e00 test(runtime-c-api) Use calloc and simplify code. 2019-09-06 10:20:36 +02:00
Ivan Enderlin
a67ce539ef test: Fix CS. 2019-09-05 15:10:09 +02:00
Ivan Enderlin
86ec75fd98 chore(runtime-c-api) Update C & C++ headers. 2019-09-05 15:09:21 +02:00
Ivan Enderlin
a2343f9f0d test(runtime-c-api) Fully test all kind of exports. 2019-09-05 15:08:23 +02:00
Ivan Enderlin
2d63e25075 feat(runtime-c-api) Arity cannot be negative when calling wasmer_export_func_call. 2019-09-05 14:31:43 +02:00
Mark McCaskey
7a9afbffe9
Merge branch 'master' into feature/serialization-of-wasi-state 2019-09-04 14:36:25 -07:00
Syrus
d8471e2b6a Improved docs with custom logo and favicon 2019-09-03 17:06:31 -07:00
Syrus Akbary
777833ee05
Merge pull request #743 from wasmerio/dependabot/cargo/cbindgen-0.9.1
Bump cbindgen from 0.9.0 to 0.9.1
2019-09-02 10:23:44 -07:00
dependabot-preview[bot]
616b768529
Bump winapi from 0.3.7 to 0.3.8
Bumps [winapi](https://github.com/retep998/winapi-rs) from 0.3.7 to 0.3.8.
- [Release notes](https://github.com/retep998/winapi-rs/releases)
- [Commits](https://github.com/retep998/winapi-rs/compare/0.3.7...0.3.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-02 09:11:48 +00:00
dependabot-preview[bot]
8a2017cce3
Bump cbindgen from 0.9.0 to 0.9.1
Bumps [cbindgen](https://github.com/eqrion/cbindgen) from 0.9.0 to 0.9.1.
- [Release notes](https://github.com/eqrion/cbindgen/releases)
- [Changelog](https://github.com/eqrion/cbindgen/blob/master/CHANGES)
- [Commits](https://github.com/eqrion/cbindgen/compare/v0.9.0...v0.9.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-02 09:11:25 +00:00
Syrus
20c296ef2b Fixed excludes 2019-09-01 10:21:46 -07:00
Syrus
416d8d13d1 Fix tests exclusion 2019-09-01 09:31:02 -07:00
Syrus
bc990cc18a Updated Runtime C API comments 2019-09-01 08:52:19 -07:00
Syrus
dc02d0e401 Comment LLVM SIMD spectests on Linux after OSR 2019-09-01 08:52:03 -07:00
losfair
9015b79091 Cargo fmt 2019-09-01 18:17:47 +08:00
losfair
45040650dd Fix the missing Copy trait error 2019-09-01 18:17:31 +08:00
losfair
7dd5c92c21 Merge remote-tracking branch 'origin/master' into feature/llvm-osr 2019-09-01 17:58:44 +08:00
Syrus Akbary
b48766535a
Merge branch 'master' into feature/serialization-of-wasi-state 2019-09-01 00:05:00 -07:00
Syrus Akbary
329b283937
Merge pull request #656 from wasmerio/feature/azure-pipelines
Initial version of Azure pipelines
2019-08-31 23:51:37 -07:00
bors[bot]
6d351b514c
Merge #733
733: Split middleware-common tests into separate subcrate r=MarkMcCaskey a=MarkMcCaskey

New depgraph:
![wasmer_depgraph](https://user-images.githubusercontent.com/5770194/63965617-8719c000-cad4-11e9-8d46-ad8799caad6a.png)


Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-08-29 20:48:53 +00:00
Mark McCaskey
8b32a838f7
Merge branch 'master' into feature/serialization-of-wasi-state 2019-08-30 05:16:50 +09:00
Mark McCaskey
91b199fe12 Split middleware-common tests into separate subcrate 2019-08-29 11:14:57 -07:00
Mark McCaskey
7027d7b2c8 Improve code reuse in polling, reduce cfg usage too 2019-08-29 10:54:27 -07:00
Mark McCaskey
fba6dbff78 Add tests for stdin, stdout, stderr; implement bytes_available too 2019-08-29 10:42:38 -07:00
Mark McCaskey
0776da7e22 Remove fd_entry lookup on stdin,out,err for wasi::poll_oneoff 2019-08-28 16:14:14 -07:00
Mark McCaskey
6767087004 Always flush when writing, even if we get invalid pointers 2019-08-28 15:13:30 -07:00
Mark McCaskey
8a2dba534a Improve error handling, fix probable lifetime issue 2019-08-28 13:19:06 -07:00
Mark McCaskey
a188e7f652 Add debug code for CI 2019-08-28 11:19:59 -07:00
Mark McCaskey
634aca8b9d Add WASI serializing test 2019-08-28 10:50:59 -07:00
Mark McCaskey
e88a08f973 Use typetag so that we can still use serde 2019-08-27 15:18:12 -07:00
Mark McCaskey
538bba5638 Add comment explaining why WasmHash is implemented the way it is 2019-08-27 11:50:03 -07:00
Mark McCaskey
51faeed2cf Add serialization for WASI state - wip 2019-08-26 17:11:56 -07:00
Syrus
998a25e2d1 Fixed windows tests 2019-08-25 00:24:21 -07:00
losfair
212e2be166 Remove -fno-rtti 2019-08-22 22:58:08 -07:00
losfair
613e4de9fc Fix LLVM object loader exceptions. 2019-08-22 18:57:26 -07:00
losfair
dcb16a2ae9 Disable test_indirect_many as a mitigation for issue #717 . 2019-08-22 17:57:22 -07:00
losfair
bdcd73cd63 Unblock signals in LLVM trap handler. 2019-08-22 17:45:52 -07:00
losfair
f503764780 Restore previous unwind_state. 2019-08-22 17:22:33 -07:00
losfair
d7c5bb904e Only disallow dead code in llvm-backend for non-Windows environments. 2019-08-22 13:32:35 -07:00
losfair
6534c28aed Allow dead code in llvm-backend. 2019-08-22 13:30:50 -07:00
losfair
e89ab43b98 Fix unused 'stackmaps' and 'module_info' on Windows 2019-08-22 13:25:52 -07:00
losfair
d868445d09 Fix unused import 'vm' on Windows 2019-08-22 13:19:46 -07:00
losfair
eef38429fc Fix unused imports on Windows. 2019-08-22 13:14:05 -07:00
losfair
7491b360ac Fix CodeMemory::new(0) 2019-08-22 11:57:58 -07:00
losfair
86814a1920 Merge remote-tracking branch 'origin/master' into feature/llvm-osr 2019-08-22 10:47:39 -07:00
Yaron Wittenstein
86a3a75fe7 adding to llvm-backend feature: "wasmer-runtime/default-backend-llvm" 2019-08-22 17:21:13 +03:00
Yaron Wittenstein
ad49e98183 Merge branch 'master' into c-api-cargo-singlepass-feature 2019-08-22 17:09:29 +03:00
Yaron Wittenstein
dd705d8031 Cargo.toml - building singlepass-backend without default features works 2019-08-22 16:36:01 +03:00
Yaron Wittenstein
4fcf61f3a0 Cargo.toml - fix 2019-08-22 15:52:23 +03:00
Yaron Wittenstein
0d888824cd Cargo.toml - renaming features 2019-08-22 14:36:12 +03:00
Ivan Enderlin
6403159b57
Merge branch 'master' into doc-runtime-c-api-exports-1 2019-08-22 13:29:54 +02:00
Ivan Enderlin
a9bb8fea16
doc(runtime-c-api) Fix a typo.
Co-Authored-By: Syrus Akbary <me@syrusakbary.com>
2019-08-22 13:29:26 +02:00
Ivan Enderlin
8ad181f94c
doc(runtime-c-api) Fix a typo.
Co-Authored-By: Syrus Akbary <me@syrusakbary.com>
2019-08-22 13:29:11 +02:00
Yaron Wittenstein
2c3e5f06d0 Cargo.toml - renaming feature default-backend-singlepass to singlepass. 2019-08-22 14:23:13 +03:00
Yaron Wittenstein
0b84d9b5af Cargo.toml - installing cranelif by default. 2019-08-22 13:24:25 +03:00
Yaron Wittenstein
4a74023793 Merge branch 'master' into c-api-cargo-singlepass-feature 2019-08-22 13:06:45 +03:00
Yaron Wittenstein
2370553f3b Merge branch 'master' into c-api-cargo-singlepass-feature 2019-08-22 11:12:04 +03:00
Yaron Wittenstein
ad0cf47812 Merge branch 'develop' into c-api-cargo-singlepass-feature 2019-08-22 11:05:08 +03:00
Yaron Wittenstein
e6387ec7c3 Merge branch 'master' into c-api-cargo-singlepass-feature 2019-08-22 11:02:57 +03:00
losfair
c7377a465f Merge remote-tracking branch 'origin/master' into feature/llvm-osr 2019-08-21 15:49:25 -07:00
dependabot-preview[bot]
5d4b78e880
Bump nix from 0.14.1 to 0.15.0
Bumps [nix](https://github.com/nix-rust/nix) from 0.14.1 to 0.15.0.
- [Release notes](https://github.com/nix-rust/nix/releases)
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nix-rust/nix/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-21 22:36:56 +00:00
losfair
b0beb28ea7 Fix unused import on Windows. 2019-08-21 15:32:20 -07:00
losfair
56e735349d Format everything 2019-08-21 15:23:56 -07:00
losfair
53ebcc355a Disable LLVM stackmap on Windows 2019-08-21 15:23:11 -07:00
losfair
6d7a91a271 Remove a.out in lib/runtime-c-api/tests. 2019-08-21 15:10:27 -07:00
losfair
08ab8d16e1 Handle SIGILL in LLVM. 2019-08-21 15:05:10 -07:00
Nick Lewycky
8705fe172d Merge branch 'master' of github.com:wasmerio/wasmer into feature/shared-memory 2019-08-21 15:04:38 -07:00
losfair
74faaa3be8 Merge branch 'fix/llvm-trap-windows' into feature/llvm-osr 2019-08-21 15:02:17 -07:00
Nick Lewycky
e6ec261cd5 Remove commented out code. 2019-08-21 15:01:21 -07:00
losfair
bf9d915635 Fix a few issues from PR comments. 2019-08-21 14:53:33 -07:00
losfair
bf471fbc24 Cleanup LLVM object loader. 2019-08-21 11:08:23 -07:00
bors[bot]
31365510ed
Merge #703
703: Fix compilation on AArch64 Linux. r=losfair a=losfair

This only fixes compilation. Cranelift still reports many `not yet implemented` on AArch64.

Co-authored-by: losfair <zhy20000919@hotmail.com>
2019-08-21 17:51:48 +00:00
bors[bot]
15913a946f
Merge #666 #695
666: Bump serde_bytes from 0.11.1 to 0.11.2 r=Hywan a=dependabot-preview[bot]

Bumps [serde_bytes](https://github.com/serde-rs/bytes) from 0.11.1 to 0.11.2.
<details>
<summary>Release notes</summary>

*Sourced from [serde_bytes's releases](https://github.com/serde-rs/bytes/releases).*

> ## 0.11.2
> - Support "alloc" feature on stable Rust 1.36+ ([#16](https://github-redirect.dependabot.com/serde-rs/bytes/issues/16), thanks [@&#8203;martindisch](https://github.com/martindisch))
</details>
<details>
<summary>Commits</summary>

- [`4856e26`](4856e2611f) Release 0.11.2
- [`1d40bb5`](1d40bb5994) Merge pull request [#16](https://github-redirect.dependabot.com/serde-rs/bytes/issues/16) from martindisch/alloc-stable
- [`a626ecc`](a626ecce86) Remove unstable feature attribute for alloc crate
- See full diff in [compare view](https://github.com/serde-rs/bytes/compare/0.11.1...0.11.2)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=serde_bytes&package-manager=cargo&previous-version=0.11.1&new-version=0.11.2)](https://dependabot.com/compatibility-score.html?dependency-name=serde_bytes&package-manager=cargo&previous-version=0.11.1&new-version=0.11.2)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>

695: Bump serde from 1.0.98 to 1.0.99 r=Hywan a=dependabot-preview[bot]

Bumps [serde](https://github.com/serde-rs/serde) from 1.0.98 to 1.0.99.
<details>
<summary>Release notes</summary>

*Sourced from [serde's releases](https://github.com/serde-rs/serde/releases).*

> ## v1.0.99
> - Update Syn dependency to 1.0.
> 
>     *Note: This raises the minimum required compiler version for serde_derive from rustc 1.15 to rustc 1.31. The minimum required compiler version for serde remains at rustc 1.13.*
</details>
<details>
<summary>Commits</summary>

- [`192f5cd`](192f5cd647) Release 1.0.99
- [`7dceee6`](7dceee64fe) Merge pull request [#1591](https://github-redirect.dependabot.com/serde-rs/serde/issues/1591) from dtolnay/up
- [`8ad6ae7`](8ad6ae71c6) Update serde_derive minimum rustc version to 1.31
- [`3ea85a2`](3ea85a28cf) Update to syn/quote 1.0
- [`273ecdb`](273ecdb786) Update ui tests on nightly-2019-08-16
- [`de40eb7`](de40eb7306) Update serde_derive to use question mark
- [`b9c4407`](b9c44073ce) Update serde_test to use question mark
- [`d6e5947`](d6e5947ad2) Suppress warnings about try! macro
- [`668651e`](668651ee01) Format with rustfmt 2019-07-30
- [`fb1cacc`](fb1cacc10e) Update Attr structs to hold symbols
- Additional commits viewable in [compare view](https://github.com/serde-rs/serde/compare/v1.0.98...v1.0.99)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.98&new-version=1.0.99)](https://dependabot.com/compatibility-score.html?dependency-name=serde&package-manager=cargo&previous-version=1.0.98&new-version=1.0.99)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2019-08-21 07:46:26 +00:00
losfair
3f0dae3329 Fix compilation on AArch64 Linux. 2019-08-20 16:37:32 -07:00
Nick Lewycky
2882c75957 No need to emit any alignment check for byte-aligned accesses. 2019-08-20 11:30:30 -07:00
Nick Lewycky
70d561a1dd Remove SharedStaticMemory and simplify surrounding code. 2019-08-20 11:30:19 -07:00
Nick Lewycky
1568084d42 Add atomic.wast which we have zero failures on with the llvm backend.
Enable shared memory usage in simd.wast.

Exclude atomic.wast on singlepass and clif.
2019-08-20 11:17:52 -07:00
Nick Lewycky
dcf70167da Fix i64.atomic.load32_u and all alignment checks. 2019-08-20 11:03:22 -07:00
Nick Lewycky
0ba73ac50c Correct flipped misalignment test. 2019-08-20 10:39:53 -07:00
losfair
90dcdfec1c Cargo fmt 2019-08-19 19:17:50 -07:00
losfair
4e6267aa57 Correctly handle more than 5 WASM function parameters when reading state of a LLVM context. 2019-08-19 19:12:33 -07:00
Nick Lewycky
172ef77ddd Use the static intrinsics for static shared memory too. 2019-08-19 17:26:35 -07:00
Nick Lewycky
d66b805529 Add misaligned atomic access trap display for WasmTrapInfo. 2019-08-19 17:26:15 -07:00
Nick Lewycky
0eba153232 Implement shared static memory similarly to unshared static memory. 2019-08-19 15:18:22 -07:00
losfair
124ad73e8a Merge remote-tracking branch 'origin/master' into feature/llvm-osr 2019-08-19 13:06:59 -07:00
Nick Lewycky
c8378329c1 Expound upon Fence's empty implementation being correct. 2019-08-19 10:51:14 -07:00
Nick Lewycky
aecce465c7 Implement atomic.rmw operations including atomic.rmw.cmpxchg. 2019-08-19 10:51:14 -07:00
Nick Lewycky
f2077c204b Implement fence correctly, atomic load/store as non-atomic.
Adds trap for misaligned accesses.
2019-08-19 10:51:14 -07:00
Nick Lewycky
7f3837abc5 Enable threads in spectests. 2019-08-19 10:51:14 -07:00
Nick Lewycky
86346d6ebe Thread the feature support through to wasmparser. 2019-08-19 10:51:14 -07:00
Nick Lewycky
cca419c982 Add the --enable-threads flag and thread it as far as runtime-core. 2019-08-19 10:51:14 -07:00
dependabot-preview[bot]
d6fce6cf67
Bump serde_bytes from 0.11.1 to 0.11.2
Bumps [serde_bytes](https://github.com/serde-rs/bytes) from 0.11.1 to 0.11.2.
- [Release notes](https://github.com/serde-rs/bytes/releases)
- [Commits](https://github.com/serde-rs/bytes/compare/0.11.1...0.11.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 16:36:27 +00:00
dependabot-preview[bot]
92dff871b4
Bump serde from 1.0.98 to 1.0.99
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.98 to 1.0.99.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.98...v1.0.99)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 16:36:26 +00:00
bors[bot]
6b2cd7e9cc
Merge #680
680: Fix singlepass error when no function code present r=bjfish a=bjfish



Co-authored-by: Brandon Fish <brandon.j.fish@gmail.com>
Co-authored-by: Brandon Fish <bjfish@users.noreply.github.com>
2019-08-19 16:20:09 +00:00
Brandon Fish
38b1e3d25e
Merge branch 'master' into feature/fix-singlepass-panic-no-functions 2019-08-19 09:24:55 -06:00
Brandon Fish
1886760eba Fix issue with emscripten memory out of range 2019-08-19 09:45:14 -05:00
nlewycky
8b22d40988
Merge branch 'master' into nlewycky/std-atomic 2019-08-17 10:40:34 -07:00
Brandon Fish
7b7f55306c
Merge branch 'master' into feature/fix-singlepass-panic-no-functions 2019-08-17 00:34:06 -06:00
Brandon Fish
d89990951e Convert panic to error when calling emscripten main 2019-08-16 22:18:13 -06:00
Nick Lewycky
3040ec90ad cargo fmt 2019-08-16 18:00:20 -07:00
Nick Lewycky
a3fe372beb Replace wasmer_runtime_code::memory::Atomic with std::sync::atomic atomics.
This means we lose op_new(), op_weak() and proxy() from the interface.
2019-08-16 17:36:11 -07:00
losfair
dbaa000e96 Re-enable snapshotting. 2019-08-16 13:08:10 -07:00
Brandon Fish
57e621d307 Fix emscripten test usage and fix error conditional 2019-08-16 09:57:36 -06:00
Brandon Fish
d1c9ab3539 Convert emscripten memory assertion to error 2019-08-16 09:18:51 -06:00
Brandon Fish
03cabce2d5 Fix emscripten table assertion panic 2019-08-16 09:12:46 -06:00
Brandon Fish
bccbbb3d8b Add deny nonstandard-style and unused-mut lints 2019-08-15 20:18:29 -06:00
losfair
afa0600701 Cargo fmt 2019-08-15 19:13:00 -07:00
losfair
6a24485999 Insert trampolines to preserve callee-saved registers for backends without register save area information. 2019-08-15 19:10:24 -07:00
Brandon Fish
98d3e04137 Fix unused mut warning 2019-08-15 20:09:51 -06:00
losfair
0a54213d4f register_preservation_trampoline 2019-08-15 19:08:11 -07:00
losfair
7028df23ef Allow only integers for LLVM function param/return values. 2019-08-15 19:07:03 -07:00
Brandon Fish
439e81d41e Fix singlepass error when no function code present 2019-08-15 10:15:58 -06:00
bors[bot]
995f40564e Merge #671
671: Add wasi::poll_oneoff for Unix r=MarkMcCaskey a=MarkMcCaskey

Part of #570

Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Mark McCaskey <markmccaskey@users.noreply.github.com>
2019-08-15 07:58:35 +00:00
Mark McCaskey
0c45707d33 implement wasi::poll_oneoff for write on Unix-like platforms 2019-08-15 15:51:16 +09:00
Mark McCaskey
d733989657 Add wasi::poll_oneoff file read test 2019-08-15 13:13:20 +09:00
losfair
1582224d61 Cargo fmt 2019-08-14 17:16:30 -07:00
losfair
9edd9ffdfe Make lookup_*_ip public. 2019-08-14 17:14:01 -07:00
losfair
c9e3db3d94 Remove feature(core_intrinsics) 2019-08-14 16:41:44 -07:00
losfair
98ef9182d7 Run clang-format and cargo fmt 2019-08-14 16:35:40 -07:00
losfair
0e0573c73c Merge remote-tracking branch 'origin/master' into feature/llvm-osr 2019-08-14 16:33:26 -07:00
Mark McCaskey
ec20e325fb Feature gate Unix-specific polling code 2019-08-14 16:38:57 +09:00
Mark McCaskey
34340692bf
Merge branch 'master' into feature/wasi-polloneoff 2019-08-14 16:14:47 +09:00
Mark McCaskey
8c03338330 Implement wasi::poll_oneoff more properly for Unix 2019-08-14 15:51:39 +09:00
Nick Lewycky
2f3c9c3e2f Mark memory.size VM intrinsics as not modifying state, and throw.trap/breakpoint as functions which do not return. 2019-08-13 21:50:54 -07:00
Brandon Fish
8e46e797ac Compare float bits in spectests assert return 2019-08-13 22:14:10 -06:00
Brandon Fish
0bf33662d1 Add missing LLVM imported memory functions 2019-08-13 20:07:55 -06:00
Brandon Fish
137ac206af Return compile error (llvm) for setting immutable global 2019-08-13 17:59:04 -06:00
Brandon Fish
de8fe32dbe Add memory validation 2019-08-13 13:04:13 -06:00
Mark McCaskey
09b056cc40 Add wip wasi::poll_oneoff work 2019-08-13 16:59:01 +09:00
Syrus Akbary
5239cdb85a
Merge pull request #668 from wasmerio/feature/update-wabt-to-fix-names-spectests
Update WABT dep to fix names spectests
2019-08-13 00:13:36 -07:00
Brandon Fish
f22250d85a Refactor func_count in parser 2019-08-12 21:36:17 -06:00
Brandon Fish
e76777ed9b Finalize signatures & names when no function bodies 2019-08-12 20:22:54 -06:00
Brandon Fish
d695bd0c84 Update WABT dep to fixe names spectests 2019-08-12 15:35:32 -06:00
Brandon Fish
20cb7c0048
Merge branch 'master' into feature/unexclude-passing-elem-spec 2019-08-11 18:04:54 -06:00
Brandon Fish
9b4ba66e11 Add code comment explanation of validation 2019-08-11 13:59:48 -06:00
Brandon Fish
c837b56678 Unexclude passing elem spec 2019-08-11 13:52:57 -06:00
Brandon Fish
f61fc5c298 Validate all initializers before finalizing 2019-08-11 13:28:47 -06:00
Brandon Fish
38a8a0eb01 Minimize unsafe block to unsafe code 2019-08-10 17:20:27 -06:00
Brandon Fish
b7970fb982 Uncomment slow exclude test again 2019-08-10 17:11:32 -06:00
Brandon Fish
0b73776c84 Validate all memory data initializers before writing 2019-08-10 17:10:24 -06:00
Brandon Fish
228d562a3b Re-use registered module instances in spectests 2019-08-10 15:56:25 -06:00
Brandon Fish
db5d8a5bf8 Push debug print to debug CI failure 2019-08-10 15:33:08 -06:00
Brandon Fish
4651b43078
Merge branch 'master' into feature/fix-table-init-error 2019-08-10 15:19:02 -06:00
Brandon Fish
a621b86286 Update windows excludes 2019-08-10 15:04:24 -06:00
Brandon Fish
b484ebb848 cargo fmt 2019-08-10 14:01:50 -06:00
Brandon Fish
bb8b4960b8 Remove filter which prevents initializer offset check 2019-08-10 13:59:31 -06:00
Brandon Fish
1584beebe6 Invalid table size for elems should produce link error 2019-08-10 12:13:14 -06:00
Brandon Fish
6372e0947c Fix more bare dyn traits in runtime-c-api 2019-08-10 11:20:22 -06:00
Brandon Fish
8ec4c0e01d
Merge branch 'master' into feature/fix-namespace-table-issue 2019-08-09 14:12:25 -06:00
losfair
44f71759f6 Use Vec::with_capacity in various places. 2019-08-10 03:23:29 +08:00
losfair
9cade2b441 singlepass: Skip patchpoint. 2019-08-10 03:10:32 +08:00
losfair
d61a8bb6d2 Prevent continueing execution on unreliable stack. (LLVM register save area information is missing) 2019-08-10 03:10:12 +08:00
losfair
2e89f02191 Cargo fmt 2019-08-10 02:44:44 +08:00
losfair
b8c18215aa Refactor tier switching code 2019-08-10 02:32:14 +08:00
Syrus Akbary
f909f7ed1f
Merge pull request #650 from wasmerio/feature/wasi-path-rename
implement wasi::path_rename
2019-08-09 01:09:23 -07:00
Mark McCaskey
61f1df06d1 implement wasi::path_rename 2019-08-09 15:40:04 +09:00
Brandon Fish
7f0c48b354 Add windows clif excludes 2019-08-08 21:12:36 -06:00
Brandon Fish
a7ff120dd9 Fix some spectest imports and namespace_table issue 2019-08-08 21:03:00 -06:00
Syrus
d39d4b5f6d Remove structopt dependency from LLVM 2019-08-08 19:42:41 -07:00
bors[bot]
27d8506a46 Merge #643
643: Improve error reporting of IO errors, implement path_symlink r=MarkMcCaskey a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-08-09 00:34:22 +00:00
Nick Lewycky
b2c4501357 Add support for backend flags. Backend flags are opaque to src/bin/wasmer.rs.
Use them to implement three features in the LLVM backend, getting a valid ELF object file, the post-optimization LLVM IR and the pre-optimization LLVM IR.

Presently they are also global to the backend which is not ideal.
2019-08-08 17:05:31 -07:00
bors[bot]
77fe15db31 Merge #646
646: Fix bare_trait_objects warnings r=bjfish a=bjfish

These appear to be coming to stable soon:
https://github.com/rust-lang/rust/blob/master/RELEASES.md#compatibility-notes

Co-authored-by: Brandon Fish <brandon.j.fish@gmail.com>
2019-08-08 23:25:07 +00:00
Brandon Fish
5a41686192 Fix bare_trait_objects warnings 2019-08-08 16:46:52 -06:00
Nick Lewycky
02f1d73f88 Reformat. 2019-08-08 13:55:44 -07:00
Nick Lewycky
c4d4a6888c Fix a bug where we would fail to find llvm-config-M or llvm-config-M-N when llvm-sys would.
Update to match features in newer llvm-sys.
2019-08-08 13:46:40 -07:00
losfair
c1619026d5 Swap code lazily when tiering up from singlepass to LLVM.
Does not handle long-running functions, but should work at least.
2019-08-09 04:26:17 +08:00
losfair
0d604b754b Commented out code for saving semantics of internal values. 2019-08-08 21:54:39 +08:00
Mark McCaskey
d0696a0c0e implement wasi::path_symlink test & fix readlink test 2019-08-08 16:42:27 +09:00
Brandon Fish
55f214b3ac
Merge branch 'master' into feature/unexclude-some-passing-unlinkable 2019-08-07 23:19:40 -06:00
Brandon Fish
1c32e2a4af Add windows specific clif failures 2019-08-07 23:10:50 -06:00
Mark McCaskey
cdfd9afccc Improve error reporting of IO errors, begin implementation of path_symlink 2019-08-08 11:59:35 +09:00
Brandon Fish
0b0a77413e Unexclude some now passing assert_unlinkable 2019-08-07 19:45:31 -06:00
bors[bot]
205d7081f5 Merge #640
640: Protect::ReadWriteExec is readable and writable. r=syrusakbary a=nlewycky

Also assert that page size is a power of two in two places we assume it is.

Co-authored-by: Nick Lewycky <nick@wasmer.io>
2019-08-08 01:36:19 +00:00
bors[bot]
321ca4e565 Merge #635
635: Update spectests and runner r=bjfish a=bjfish



Co-authored-by: Brandon Fish <brandon.j.fish@gmail.com>
Co-authored-by: Nick Lewycky <nick@wasmer.io>
Co-authored-by: Syrus <me@syrusakbary.com>
2019-08-08 00:51:59 +00:00
Mark McCaskey
b8f8a637c1
Merge branch 'master' into feature/more-wasi-syscalls 2019-08-07 16:55:03 -07:00
Nick Lewycky
75959577c3 Protect::ReadWriteExec is readable and writable.
Also assert that page size is a power of two in two places we assume it is.
2019-08-07 16:49:29 -07:00
Brandon Fish
8763d2cbde
Merge branch 'master' into feature/spectests-runner 2019-08-07 16:50:06 -06:00
Brandon Fish
5d9aa1f986 Return link error instead of assertion failure for bad data initialization 2019-08-07 15:40:42 -06:00
losfair
b113f5a24b longjmp turns out to work on Windows. Remove custom unwinding code. 2019-08-08 03:19:19 +08:00
Mark McCaskey
ddb0b99f12 implement path_link updated unlink, fix tests, add new test 2019-08-07 16:11:38 +09:00
Mark McCaskey
6ad0be1e02 add fd_sync test 2019-08-07 12:41:35 +09:00
Mark McCaskey
dbe96bbce9 add wasi::fd_sync 2019-08-07 12:17:52 +09:00
Brandon Fish
dc8384ed22 Add windows specific excludes 2019-08-06 21:03:09 -06:00
Brandon Fish
b7236a58fc Add support for platform star key skip exclude 2019-08-06 20:06:34 -06:00
losfair
4b1d337ebe Custom setjmp/longjmp to avoid SEH. (will it work?) 2019-08-07 00:38:42 +08:00
losfair
b50fd31adb Use setjmp/longjmp to handle LLVM exceptions. 2019-08-07 00:06:35 +08:00
Brandon Fish
8c13eae2b8 Allow platform specific excludes 2019-08-05 20:57:07 -06:00
Brandon Fish
a56aaeaaa3 Add additional spectest imports 2019-08-05 19:25:12 -06:00
Brandon Fish
03e1b3d8e8 Remove unnecessary println and make spectest runs nocapture 2019-08-05 18:58:51 -06:00
Brandon Fish
540520e54e cargo fmt 2019-08-05 17:55:41 -06:00
Brandon Fish
dc94cfb7b8 Merge branch 'master' into feature/spectests-runner 2019-08-05 17:53:04 -06:00
Brandon Fish
c65abf8ff5 Delete unused commented out println 2019-08-05 17:52:44 -06:00
Brandon Fish
08eb113394 Output failures in exclude format and add all failures as excludes 2019-08-05 17:51:02 -06:00
Nick Lewycky
1d54a938f6 Fix a couple bugs testing NaNs. Add an exclusion list for LLVM min/max. 2019-08-05 15:38:03 -07:00
Syrus Akbary
07e6599a28
Merge branch 'master' into feature/instance-benchmark 2019-08-05 15:07:58 -07:00
Syrus
47456b5baa Fixed formatting 2019-08-05 14:37:08 -07:00
Syrus
fed7c79923 Added extra assertions in Emscripten. Fixed #244 2019-08-05 14:15:36 -07:00
Syrus
ea5affc05d Remove svm mentions in wasmer c api codebase 2019-08-05 11:49:16 -07:00
Syrus Akbary
6692978926
Merge branch 'master' into dependabot/cargo/blake2b_simd-0.5.6 2019-08-05 10:57:06 -07:00
dependabot-preview[bot]
50ebbc500f
Bump blake2b_simd from 0.5.5 to 0.5.6
Bumps [blake2b_simd](https://github.com/oconnor663/blake2_simd) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/oconnor663/blake2_simd/releases)
- [Commits](https://github.com/oconnor663/blake2_simd/compare/0.5.5...0.5.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-05 08:38:35 +00:00
dependabot-preview[bot]
a036a306d5
Bump regex from 1.2.0 to 1.2.1
Bumps [regex](https://github.com/rust-lang/regex) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.2.0...1.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-05 08:36:27 +00:00
Mark McCaskey
061d540627 Implement wasi::path_filestat_set_times 2019-08-05 15:53:42 +09:00
Mark McCaskey
6db7bd8f07 get fd_allocate test working 2019-08-05 14:01:04 +09:00
Mark McCaskey
f0eb85a919 refactor wasi state file to hide boilerplate 2019-08-05 11:59:32 +09:00
Mark McCaskey
c2e3847e9a add check for fd_allocate, improve debug str for filestat_t 2019-08-05 11:24:06 +09:00
Mark McCaskey
8f06db45a1 format emitter with current stable Rust 2019-08-05 09:58:54 +09:00
Mark McCaskey
09acf3e581
Merge branch 'master' into feature/more-wasi-syscalls 2019-08-05 09:55:40 +09:00
Brandon Fish
43ae30985c Cleanup test runner 2019-08-04 16:44:27 -06:00
Brandon Fish
e3d78a1343 Implement allowed failures 2019-08-04 16:13:47 -06:00
Brandon Fish
b8610e799f Update README.md, remove old README.md, remove old spectest code 2019-08-04 15:53:48 -06:00
Brandon Fish
93233eb4b4 Implement registered modules 2019-08-04 15:36:17 -06:00
Brandon Fish
5c3edabb7c Enable simd compile 2019-08-04 14:44:55 -06:00
Brandon Fish
665f8707dc Implement named modules 2019-08-04 14:20:09 -06:00
Brandon Fish
8c911cb1c3 Implement action get for assert return 2019-08-04 13:37:39 -06:00
Brandon Fish
7060785d8d Implement assert_exhaustion 2019-08-04 13:18:57 -06:00
Brandon Fish
36bcda711f Update spectests and run by globbing wast files 2019-08-04 12:42:20 -06:00
Brandon Fish
9a33ece373 Merge branch 'master' into feature/spectests-runner 2019-08-04 11:34:22 -06:00
Brandon Fish
0583ae4846 Add system to skip wast commands to allow failures or skipping 2019-08-04 11:25:46 -06:00
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