Commit Graph

6542 Commits

Author SHA1 Message Date
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
data-pup
0c4a44db70 pr review 2019-11-26 17:40:36 -05:00
data-pup
2011eab7b2 unit test doesn't run if placed in tests/regressions 2019-11-26 17:13:19 -05:00
data-pup
8a53e76c71 move regression test 2019-11-26 17:07:52 -05:00
data-pup
d3f3aa04d7 misc. cleanup 2019-11-26 17:02:15 -05:00
data-pup
4f47a4f607 only collect functions if defined memories exist 2019-11-26 17:02:15 -05:00
data-pup
bbea2855be wip - fix #636, check memory before calculating offset 2019-11-26 17:02:15 -05:00
data-pup
46766ed925 add failing test for #636 2019-11-26 17:02:15 -05:00
Peter Huene
0cf54ffeba Implement __wasi_fd_fdstat_get for Windows.
This commit fully implements `__wasi_fd_fdstat_get` on Windows so that
the descriptor flags can be determined.

It does this by calling into `NtQueryInformationFile` (safe to call from
user mode) to get the open mode and access of the underlying OS handle.

`NtQueryInformationFile` isn't included in the `winapi` crate, so it is
manually being linked against.

This commit also fixes several bugs on Windows:

* Ignore `__WASI_FDFLAG_NONBLOCK` by not setting `FILE_FLAG_OVERLAPPED`
  on file handles (the POSIX behavior for `O_NONBLOCK` on files).
* Use `FILE_FLAG_WRITE_THROUGH` for the `__WASI_FDFLAG_?SYNC` flags.
* `__WASI_FDFLAG_APPEND` should disallow `FILE_WRITE_DATA` access to
  force append-only on write operations.
* Use `GENERIC_READ` and `GENERIC_WRITE` access flags.  The
  latter is required when opening a file for truncation.
2019-11-26 22:24:12 +01:00
Peter Huene
3e7bc745a2 Merge pull request #624 from peterhuene/wasmtime-for-dotnet
Move Wasmtime for .NET to the Wasmtime repo.
2019-11-26 12:47:04 -08:00
Nick Fitzgerald
4659f791ff Merge pull request #637 from fitzgen/print-test-cases-when-fuzzing
Fuzzing: Add test case logging and regression test template
2019-11-26 11:40:00 -08:00