Commit Graph

4311 Commits

Author SHA1 Message Date
bors[bot]
3489001b79
Merge #1027
1027: Bump libc from 0.2.65 to 0.2.66 r=nlewycky a=dependabot-preview[bot]

Bumps [libc](https://github.com/rust-lang/libc) from 0.2.65 to 0.2.66.
<details>
<summary>Commits</summary>

- [`4f11029`](4f11029a68) Bump patch version to 0.2.66
- [`bba019b`](bba019bff5) Auto merge of [#1610](https://github-redirect.dependabot.com/rust-lang/libc/issues/1610) - GrayJack:utmp_netbsd, r=gnzlbg
- [`ea0a54a`](ea0a54a661) Auto merge of [#1608](https://github-redirect.dependabot.com/rust-lang/libc/issues/1608) - lzutao:netbsd-mut-pthread_setname_np, r=gnzlbg
- [`42289eb`](42289eb64f) Implement utmp for NetBSD
- [`cfd561c`](cfd561c289) Auto merge of [#1605](https://github-redirect.dependabot.com/rust-lang/libc/issues/1605) - zvirja:fix-mipsel-unknown-linux-uclibc, r=gnzlbg
- [`51ae96a`](51ae96a5b0) Auto merge of [#1576](https://github-redirect.dependabot.com/rust-lang/libc/issues/1576) - GrayJack:utmpx_netbsd, r=gnzlbg
- [`096d868`](096d868a2f) Auto merge of [#1584](https://github-redirect.dependabot.com/rust-lang/libc/issues/1584) - psumbera:master, r=gnzlbg
- [`88f6587`](88f6587631) Auto merge of [#1607](https://github-redirect.dependabot.com/rust-lang/libc/issues/1607) - jclulow:futimens, r=gnzlbg
- [`5130285`](5130285ccd) Auto merge of [#1606](https://github-redirect.dependabot.com/rust-lang/libc/issues/1606) - msizanoen1:riscv, r=gnzlbg
- [`a06978b`](a06978b7c0) Fix breakage due to [rust-lang/cargo#7560](https://github-redirect.dependabot.com/rust-lang/cargo/pull/7560) and rust-lan...
- Additional commits viewable in [compare view](https://github.com/rust-lang/libc/compare/0.2.65...0.2.66)
</details>
<br />

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

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)
- Pull request limits (per update run and/or open at any time)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)



</details>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2019-12-11 01:12:38 +00:00
bors[bot]
19937ce154
Merge #1054
1054: Improve wasmer invoke function r=syrusakbary a=syrusakbary

<!-- 
Prior to submitting a PR, review the CONTRIBUTING.md document for recommendations on how to test:
https://github.com/wasmerio/wasmer/blob/master/CONTRIBUTING.md#pull-requests

-->

# Description
Prior to this PR, when executing wasmer, we will have this in the stdout:
 
```bash
➜  wasmer fib32.wasm --invoke fib 30
main() returned: [I32(832040)]
```

Note that it says `main()` returned even if the function called is `fib`.
This PR fixes this and improves the messaging also for WASI invoked functions

<!-- 
Provide details regarding the change including motivation,
links to related issues, and the context of the PR.
-->

# Review

- [x] Add a short description of the the change to the CHANGELOG.md file


Co-authored-by: Syrus Akbary <me@syrusakbary.com>
2019-12-11 00:22:57 +00:00
Syrus Akbary
55c7df2af6
Merge branch 'master' into invoke-print-result 2019-12-10 16:22:30 -08:00
Syrus Akbary
c783b7ce90
Merge pull request #1055 from wasmerio/fix/arm-ci-should-block-shipping
Add ARM CI to bors's list
2019-12-10 16:15:11 -08:00
Mark McCaskey
727ea3ba45 Add ARM CI to bors's list 2019-12-10 16:13:09 -08:00
Syrus Akbary
6364c56d63
Update CHANGELOG.md 2019-12-10 16:12:56 -08:00
Syrus Akbary
8e4fdcf5f1
Update src/bin/wasmer.rs 2019-12-10 16:10:33 -08:00
Syrus Akbary
a52fadf54e
Improve wasmer invoke function 2019-12-10 16:07:14 -08:00
bors[bot]
8a13917ec5
Merge #1053
1053: For RuntimeError and breakpoints, use Box<Any + Send> instead of Box<Any>. r=syrusakbary a=nlewycky

# Description
For RuntimeError and breakpoints, use Box<Any + Send> instead of Box\<Any\>.

# Review

- [x] Add a short description of the the change to the CHANGELOG.md file

Fixes #1049 

Co-authored-by: Nick Lewycky <nick@wasmer.io>
Co-authored-by: Syrus Akbary <me@syrusakbary.com>
2019-12-10 22:00:02 +00:00
Syrus Akbary
298adfd338
Merge branch 'master' into feature/runtime-error-send 2019-12-10 13:59:12 -08:00
Nick Lewycky
5198c7ed50 Add changelog entry. 2019-12-10 13:24:59 -08:00
bors[bot]
7da70a3d34
Merge #1052
1052: Fix issue #1051 + replace assert, unreachable in singlepass codegen code r=syrusakbary a=pventuzelo

# Description

This pull request: 
- fix the issue #1051 
- replace `asserts` by Errors 
- replace `unreachable!` by Errors 
- Improve Error handling in singlepass codegen code

# Review

- [x] Add a short description of the the change to the CHANGELOG.md file


Co-authored-by: Patrick Ventuzelo <ventuzelo.patrick@gmail.com>
Co-authored-by: Patrick Ventuzelo <9038181+pventuzelo@users.noreply.github.com>
2019-12-10 20:24:42 +00:00
Patrick Ventuzelo
0cda11f632
Merge branch 'master' into ventuzelo/fix_unwrap_panic_singlepass 2019-12-10 09:12:17 +01:00
Nick Lewycky
0a278c55ee For error handling and breakpoints, use Box<Any + Send> instead of Box<Any>. 2019-12-09 21:00:01 -08:00
bors[bot]
12daaba3fd
Merge #1050
1050: feat(github) Attach C & C++ headers to releases r=syrusakbary a=Hywan

This patch copies the generated C and C++ headers of `wasmer-runtime-c-api` in the `artifacts` directory, so that they are attached to releases as assets.

Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2019-12-10 00:37:37 +00:00
Patrick Ventuzelo
ae568686cb add changelog entry 2019-12-09 15:48:43 +01:00
Patrick Ventuzelo
a0c628c063 fix unwrap bug + replace assert, unreachable in singlepass codegen 2019-12-09 15:18:08 +01:00
Ivan Enderlin
03082a6960 doc(changelog) Add #1050. 2019-12-09 13:41:35 +01:00
Ivan Enderlin
4a27dd34a2 feat(github) Attach C & C++ headers to releases. 2019-12-09 13:39:21 +01:00
bors[bot]
71b342e5b1
Merge #1045
1045: super:: in this case is just crate:: in disguise. r=MarkMcCaskey a=nlewycky



Co-authored-by: Nick Lewycky <nick@wasmer.io>
2019-12-07 04:48:32 +00:00
Nick Lewycky
d227f19f8d super:: in this case is just crate:: in disguise. 2019-12-06 17:51:15 -08:00
bors[bot]
a180721eb9
Merge #1042
1042: Make regression test work in release builds too. r=nlewycky a=nlewycky

Fix this regression test to detect the bug it was looking for in release builds too.

This bug triggered an assertion failure in debug, and by examining the pre-opt IR, we can check for the bug in release mode too.


Co-authored-by: Nick Lewycky <nick@wasmer.io>
2019-12-06 23:36:48 +00:00
dependabot-preview[bot]
87ef0d6f25
Bump libc from 0.2.65 to 0.2.66
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.65 to 0.2.66.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.65...0.2.66)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-06 22:09:04 +00:00
bors[bot]
2139357021
Merge #709
709: new feature flag: `deterministic` r=MarkMcCaskey a=YaronWittenstein

The motivation for the PR is for introducing a new feature flag called `deterministic`.

When `deterministic` will be enabled (turned-off by default) it'll guarantee deterministic
execution of wasm programs across different hardware/circumstances.

This is critical for Blockchain projects that require execution to be deterministic
in order to reach a consensus of the state transition of each smart-contract transaction.

Co-authored-by: Yaron Wittenstein <yaron.wittenstein@gmail.com>
Co-authored-by: Yaron Wittenstein <yaronwittenstein@users.noreply.github.com>
Co-authored-by: Mark McCaskey <5770194+markmccaskey@users.noreply.github.com>
Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-12-06 21:24:40 +00:00
Nick Lewycky
a221f1e570 Provide a default empty implementation for the LLVMCallbacks trait. 2019-12-06 12:09:34 -08:00
Yaron Wittenstein
6da3b22936
Merge pull request #1 from MarkMcCaskey/deterministic
Deterministic
2019-12-06 22:06:59 +02:00
bors[bot]
63a588780c
Merge #1033
1033: Improve default compiler story for wasmer cli r=MarkMcCaskey a=MarkMcCaskey

This PR needs the following to be ready to ship:

- [x] Verified make commands are still fine
- [x] Verified this doesn't do anything bad in CI

This PR adds:
- compile_error if no backend is specified in wasmer.rs
- readds clif as the default
- improves the error message saying "specified backend not found" to include the name of the backend that it couldn't find

Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Mark McCaskey <5770194+markmccaskey@users.noreply.github.com>
2019-12-06 19:55:04 +00:00
Mark McCaskey
0580a117da
Improve compile error message when no backends set 2019-12-06 11:54:33 -08:00
bors[bot]
b336726177
Merge #1036
1036: Add experimental invoke support to WASI in wasmer cli r=MarkMcCaskey a=MarkMcCaskey

Resolves #1024 

This PR also does a bit of code clean up

# Review

- [ ] Add a short description of the the change to the CHANGELOG.md file


Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Mark McCaskey <5770194+markmccaskey@users.noreply.github.com>
2019-12-06 18:37:16 +00:00
Mark McCaskey
d2f5690cae
Improve warning message when invoking WASI functions 2019-12-06 10:36:45 -08:00
Mark McCaskey
448faafd0d Apply cargo fmt after GitHub merge 2019-12-06 10:28:20 -08:00
Mark McCaskey
d237bda463
Merge branch 'master' into fix/default-compiler-wasmer-cli 2019-12-06 10:27:53 -08:00
Mark McCaskey
e32a1a6378 Update from feedback; add changelog entry 2019-12-06 10:24:43 -08:00
bors[bot]
59d2b8b381
Merge #1030
1030: feat(runtime-c-api) Ability to generate `ImportObject` for a specific WASI version r=Hywan a=Hywan

⚠️ Contains #1028, must be merged before this one.

This patch introduces 2 new functions:

* `wasmer_wasi_generate_import_object_for_version` and
* `wasmer_wasi_get_version`.

It mimics the current API provided by `wasmer_wasi`, nothing fancy
here. It's just a regular port to C/C++.

Because `wasmer_wasi::get_wasi_version` returns an option, and in
order to simplify the C/C++ API, `wasmer_wasi_get_version` can return
`Version::Unknown` in case of an error. It's up to the user to check
the version is valid (i.e. not unknown).

To see only the changes provided by this PR (excluding #1028), check https://github.com/Hywan/wasmer/compare/fix-wasi-get-version...feat-runtime-c-api-wasi-version.

Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2019-12-06 14:09:39 +00:00
Ivan Enderlin
45e4081e4b doc(changelog) Remove a duplication. 2019-12-06 15:02:48 +01:00
Ivan Enderlin
dfd1253260 Merge branch 'master' into feat-runtime-c-api-wasi-version 2019-12-06 15:02:24 +01:00
bors[bot]
ee16823d5c
Merge #1028
1028: feat(wasi) Introduce strict/non-strict modes for `get_wasi_version` r=Hywan a=Hywan

Sequel of https://github.com/wasmerio/wasmer/pull/957.

If a module has multiple import namespaces, `get_wasi_version` is
broken because it assumes a module must only have a single namespace.

This patch updates `get_wasi_version` to introduce a `strict` flag:

* In strict mode, the previous behavior applies; only one namespace is expected to be found, and this namespace must be a WASI namespace to detect the version,
* In non-strict mode, at least one WASI namespace must be declared, and the first one is used to detect the version if any.

The non-strict mode is slower because it compares namespace strings.

2 new private constants have been declared: `SNAPSHOT0_NAMESPACE` and `SNAPSHOT1_NAMESPACE` to avoid repetition and bugs.

Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2019-12-06 13:06:19 +00:00
Ivan Enderlin
8aa49f540a test(wasi) Update get_wasi_version signature. 2019-12-06 14:04:30 +01:00
Ivan Enderlin
72c8b66a08 Merge branch 'fix-wasi-get-version' of github.com:Hywan/wasmer into fix-wasi-get-version 2019-12-06 14:02:49 +01:00
Ivan Enderlin
f8385e2757 feat(bin) wasmer requires a strict WASI version detection. 2019-12-06 14:02:02 +01:00
Ivan Enderlin
dc418a78da
Merge branch 'master' into fix-wasi-get-version 2019-12-06 13:37:34 +01:00
Nick Lewycky
27fe50ce9e Fix this regression test to detect the bug it was looking for in release builds too.
This bug triggered an assertion failure in debug, and by examining the pre-opt IR, we can check for the bug in release mode too.
2019-12-05 16:38:26 -08:00
bors[bot]
bf04864020
Merge #1040
1040: Add the ability to pass backend specific options through CompilerConfig. r=nlewycky a=nlewycky

# Description
Add the ability to pass backend specific options through CompilerConfig.

Use this to replace wasmer_llvm_backend::GLOBAL_OPTIONS.

This adds a new item to CompilerConfig which can be any struct defined by a backend for backend specific configuration options. So far, we only implement the options that were previously in GLOBAL_OPTIONS, these move to wasmer.rs. The plan is to use these same callbacks for testing in llvm-backend-tests.

# Review

- [ ] Add a short description of the the change to the CHANGELOG.md file


Co-authored-by: Nick Lewycky <nick@wasmer.io>
2019-12-05 23:48:08 +00:00
Mark McCaskey
3ba355dda4 Remove deterministic flag setting default compiler; add auto logic 2019-12-05 15:04:05 -08:00
Nick Lewycky
8d3cf874cd Add the ability to pass backend specific options through CompilerConfig.
Use this to replace wasmer_llvm_backend::GLOBAL_OPTIONS.
2019-12-05 12:13:51 -08:00
Mark McCaskey
d144976da0
Manually apply formatting to cfg statement 2019-12-05 12:01:46 -08:00
Mark McCaskey
176b938cb6
Remove wasmparser dep from singlepass 2019-12-05 11:59:26 -08:00
Mark McCaskey
c7f3abd27e
Merge branch 'master' into deterministic 2019-12-05 11:50:16 -08:00
Syrus Akbary
af7a368320
Added docs to Readme and removed WAPM usage 2019-12-04 13:11:11 -08:00
Ivan Enderlin
4ef799f23d feat(runtime-c-api) Support WasiVersion::Latest. 2019-12-04 15:34:56 +01:00