Commit Graph

6452 Commits

Author SHA1 Message Date
Patrick Ventuzelo
e968b9313b improve format 2019-12-05 15:18:53 +01:00
Patrick Ventuzelo
2b24d17425 replace assert by if/error in function_body 2019-12-05 15:17:20 +01:00
Patrick Ventuzelo
b664428da7 cargo fmt 2019-12-05 15:16:32 +01:00
Patrick Ventuzelo
3d6b1876ac replace assert with if - Err 2019-12-05 14:53:21 +01:00
Patrick Ventuzelo
f212d9ce6a replace expect by Error for backend code 2019-12-05 13:47:59 +01:00
Patrick Ventuzelo
362469e5a9 remove unreachable! + cargo fmt 2019-12-05 13:24:33 +01:00
Patrick Ventuzelo
07c850051d fix all warning, cargo test OK 2019-12-05 13:16:02 +01:00
Patrick Ventuzelo
b8f33c3c94 remove expect from pop func and add return value other wasm opcode functions 2019-12-05 10:41:10 +01:00
Patrick Ventuzelo
dcc68dfafc use Result for a lot of lightbeam func, refactoring error handling 2019-12-05 10:22:36 +01:00
Pat Hickey
dbc4eebbfe wig: update to latest witx 2019-12-04 17:16:29 -08:00
Andrew Brown
3558d41cea Fix wast error line numbers; previously off by one (#666) 2019-12-04 17:46:05 -06:00
Jakub Konka
570bd7ec56 Add sections on WASI integration tests
This commit adds relevant sections on contributing new WASI
integration tests to `wasmtime`.
2019-12-04 22:27:24 +01:00
Benjamin Bouvier
81782f8efa Ensure builds are deterministic in CI.
This introduces a script that has a high probability of failing if the
Rust source code generated by the meta crate is not consistent accross
build script runs.

It also adds a new CI job to run it on each push, on a single platform.
2019-12-04 19:57:37 +01:00
Nick Fitzgerald
bbebfb3056 Merge pull request #663 from fitzgen/contributing-docs
Contributing docs
2019-12-04 09:28:55 -08:00
bjorn3
4cc0241f37 More i8 legalizations (#1253)
* Legalize stack_{load,store}.i8, fixes #433
* Legalize select.i8, cc: #466
* Legalize brz.i8 and brnz.i8, cc: #1117
2019-12-04 09:16:22 -08:00
Nick Fitzgerald
06280401e0 docs: Wordsmith the specification-style tests contributing docs 2019-12-04 08:57:58 -08:00
Jakub Konka
45f41b3c8e Deny warnings in the CI by default (#616)
* Deny warnings in the CI by default

This commit passes `-D warnings` flag to `rustc` in the Test stage
of the CI in order to deny warnings on _all_ tested platforms.

* Fix warnings

* Fix warnings
2019-12-04 17:43:36 +01:00
Yury Delendik
991592c4ba [wasmtime-api] Record original Trap from API callback. (#657)
* Record original Trap from API callback.

Fixes #645

* use TrapRegistry

* comment about magic number
2019-12-04 07:57:24 -06:00
Mike Hommey
b342cbdd64 Sort the list of instruction formats by name
This makes opcodes.rs and inst_builders.rs deterministic.
2019-12-04 12:15:48 +01:00
Icy Defiance
31cc184c34 Pin actions/checkout to v1 because v2 doesn't support submodules yet
Fixes error: "The input 'submodules' is not supported in actions/checkout@v2"
2019-12-04 10:15:19 +01:00
Benjamin Bouvier
de7c0dddc6 Fix #1247: Tweak enable_verifier doc comment so it's true 2019-12-04 09:42:55 +01:00
Nick Fitzgerald
9c7079fd15 docs: Add a section about how to fuzz Wasmtime 2019-12-03 17:31:31 -08:00
Nick Fitzgerald
b74b0bc49e docs: Add a section about how to test Wasmtime 2019-12-03 17:31:10 -08:00
Nick Fitzgerald
aaa0dc4f19 docs: Add initial how-to-build documentation 2019-12-03 16:14:59 -08:00
Nick Fitzgerald
4ba52205d7 docs: Fill out the top-level contributing page a little 2019-12-03 15:15:43 -08:00
Nick Fitzgerald
14823de237 docs: Include the code of conduct directly into the mdbook
Also update the link to the organizational code of conduct so that it works in
the rendered mdbook as well as when viewed on github.
2019-12-03 15:15:43 -08:00
Nick Fitzgerald
fd8a5f62ed Merge pull request #662 from fitzgen/run-fuzz-corpora-in-ci
Run our fuzz targets on our corpora in CI
2019-12-03 14:24:07 -08:00
Nick Fitzgerald
75c8ad6685 CI: Run our fuzz targets on our corpora
This doesn't have libFuzzer generate new inputs in CI, only verifies that we can
still successfully process our existing seed inputs in each of our targets'
corpora.
2019-12-03 13:52:14 -08:00
Nick Fitzgerald
7f30359547 Add a README explaining our libFuzzer and cargo fuzz setup 2019-12-03 13:26:47 -08:00
Nick Fitzgerald
f8e26f14bf Merge pull request #660 from fitzgen/dummy-imports-for-fuzzing
fuzzing: Provide dummy imports for instantion oracle
2019-12-03 12:17:33 -08:00
Patrick Ventuzelo
027f6117d6 remove panic, expect and unimplemented from microwasm + use Result as return value for some functions (#652) 2019-12-03 11:58:29 -08:00
Nick Fitzgerald
5429a9391d fuzzing: Provide dummy imports for instantion oracle 2019-12-03 11:39:46 -08:00
Jakub Konka
4fd56de4df Use actions/checkout@v1 to support submodules: true
This commit fixes the CI by setting `actions/checkout` at version `v1`.
The current master of `actions/checkout` now obsoleted the
`with: submodules: true` input.
See [actions/checkout/releases/tag/v2-beta] for more info.

[actions/checkout/releases/tag/v2-beta]: https://github.com/actions/checkout/releases/tag/v2-beta
2019-12-03 17:43:28 +01:00
XAMPPRocky
2109935fef Remove custom TryInto (#646) 2019-12-02 17:36:13 -08:00
Josh Triplett
4b001912ce Update rayon dependencies to avoid duplicate crossbeam dependencies (#651)
rayon 1.2.1 avoids introducing two different versions of crossbeam
crates into the dependency tree (one through rayon, the other through
rayon-core).
2019-12-02 17:32:00 -08:00
Andrew Brown
3e5f039333 Remove macros from verifier; fixes #1248
This removes `report!`, `fatal!`, and `nonfatal!` from the verifier code and replaces them with methods on `VerifierErrors`. In order to maintain similar ease-of-use, `VerifierError` is expanded with several `From` implementations that convert a tuple to a verifier error.
2019-12-02 14:44:18 -08:00
Andrew Brown
e1e4e0bfc6 Update build badge (#1264) 2019-12-02 21:33:11 +01:00
Luiz Irber
e87a489535 Build py38 wheels (#648)
- update setup script for python 3.7 and 3.8 installation
2019-12-02 09:27:01 -06:00
Joshua Nelson
9775c4be1d publish cranelift-object to crates.io 2019-12-02 15:29:26 +01:00
Joshua Nelson
eac124970c Use a published version of object
This allows publishing `cranelift-object` since it no longer depends on
a git version of a dependency.

See https://github.com/bytecodealliance/cranelift/issues/1254 for
context.
2019-12-02 15:29:26 +01:00
Jakub Konka
d733ebf3ab Fast-forward snapshot_0 to match wasi-common upstream
While we are waiting for the Rust toolchain to use the new ABI,
I thought it might be useful to sync `snapshot_0` with the latest
code in `wasi-common` "upstream". This mainly includes the latest
refactoring effort to unify the machinery for `fd_readdir` between
Linux, Windows and BSD.
2019-11-28 17:53:42 +01:00
Dan Gohman
1f9d764d5d Support fd_fdstat_get and fd_renumber on stdin/stdout/stderr (#631)
* Support fd_fdstat_get on stdin/stdout/stderr.

Add a routine for obtaining an `OsFile` containing a file descriptor for
stdin/stdout/stderr so that we can do fd_fdstat_get on them.

* Add a testcase for fd_fdstat_get etc. on stdin etc.

* Don't dup file descriptors in fd_renumber.

* Fix compilation on macOS

* Rename OsFile to OsHandle

This commits renames `OsFile` to `OsHandle` which seems to make
more sense semantically as it is permitted to hold a valid OS handle
to OS entities other than simply file/dir (e.g., socket, stream, etc.).
As such, this commit also renames methods on `Descriptor` struct
from `as_actual_file` to `as_file` as this in reality does pertain
ops on FS entities such as files/dirs, and `as_file` to `as_os_handle`
as in this case it can be anything, from file, through a socket, to
a stream.

* Fix compilation on Linux

* Introduce `OsHandleRef` for borrowing OS resources.

To prevent a `ManuallyDrop<OsHandleRef>` from outliving the resource it
holds on to, create an `OsHandleRef` class parameterized on the lifetime
of the `Descriptor`.

* Fix scoping to pub-priv and backport to snapshot_0
2019-11-28 14:36:18 +01:00
Marcin Mielniczuk
b69758f672 Correctly handle possibly misaligned pointers in readdir (#615) 2019-11-27 19:11:32 -08:00
data-pup
dbdeb788f0 Fix jump table comment grammar (#1259) 2019-11-27 18:41:37 -05:00
Dan Gohman
16b8b3e58d Make Module::new perform validation. (#621)
* Make `Module::new` perform validation.

As noticed in #602, `Module::new` did not perform validation, which
turns out to be error-prone in practice. Rename it to
`Module::new_unchecked`, and add a new `Module::new` which does
perform validation.

Preserve wasm-c-api's `wasm_module_new`'s behavior by using
`Module::new_unchecked`, and implement `wasm_module_validate`.

* Change `validate`'s store argument to `&HostRef<Store>`.

* Enable multi-value in validation.
2019-11-27 10:58:38 -06:00
Yury Delendik
e71ab6b846 Fix build dependency for make run-hello-c (#622) 2019-11-27 10:56:31 -06:00
Nick Fitzgerald
4c77563a97 Merge pull request #643 from fitzgen/remove-in-repo-fuzz-corpus
Remove in-repo fuzz corpus
2019-11-26 16:36:01 -08:00
Nick Fitzgerald
f931243cee Remove allow pragma now that it is unnecessary 2019-11-26 15:58:34 -08:00
Nick Fitzgerald
e874a7277e fuzzing: remove the in-repo corpus
We will be using https://github.com/bytecodealliance/wasmtime-libfuzzer-corpus
from now on instead.
2019-11-26 15:49:07 -08:00
Nick Fitzgerald
11f6ff9dd0 Merge pull request #641 from data-pup/instantiate_empty
Instantiate empty module
2019-11-26 15:22:23 -08:00