Commit Graph

2042 Commits

Author SHA1 Message Date
Till Schneidereit
46721f3f92 Make it a Bytecode Alliance project (#549) 2019-11-12 07:51:26 -08:00
Jakub Konka
093629f7eb Refactor common clockid conversion on *nix (#548) 2019-11-12 09:22:19 -06:00
Nick Fitzgerald
79864d0db7 Merge pull request #542 from alexcrichton/doc-rust
Fill out book chapter on writing WebAssembly with Rust
2019-11-11 16:31:59 -08:00
Nick Fitzgerald
ca04e33771 Merge pull request #467 from fitzgen/update-cranelift-for-full-multi-value
Update cranelift for full multi-value
2019-11-11 16:17:54 -08:00
Nick Fitzgerald
01ab20e372 Bump cranelift deps to 0.50.0 2019-11-11 15:52:49 -08:00
Nick Fitzgerald
4c4699a226 Test the multi-value example on windows 2019-11-11 15:39:48 -08:00
Nick Fitzgerald
a29303dedd Expand the muli-value example for wasmtime-api to use many return values
This should exercise the Rust-calling-Wasm code path for when there are more
return values than fit into return registers.
2019-11-11 15:39:48 -08:00
Nick Fitzgerald
b3b7ce4f6b Enable all Wasm multi-value proposal tests! 2019-11-11 15:39:48 -08:00
Alex Crichton
cd8cc4d375 Enable multi-value in the Python extension (#541)
This commit enables the multi-value features in the Python extension
to be usable by-default with interface types. Additionally this removes
some code which panics on multi-value but doesn't end up getting used
today.
2019-11-11 17:19:33 -06:00
Alex Crichton
1530f2e1c6 Fill out book chapter on writing WebAssembly with Rust
* Cover `cargo wasi`
* Cover a "Hello, world!" binary
* Cover a "Hello, world!" library
* Cover a more advanced example with WebAssembly interface types
* Importing/exporting functionality basics
2019-11-11 15:09:36 -08:00
Alex Crichton
d9edb95218 Allow using WASI APIs in the Python extension (#533)
* Allow using WASI APIs in the Python extension

This commit adds support to the Python extension to load the WASI
implementation when a WASI module is seen allowing Python to load
WebAssembly modules that use WASI. This is pretty primitive right now
because there's no way to configure the environment/args/preopens/etc,
but it's hoped to be at least a start!

* rustfmt

* Refactor checks for the wasi module name

* Move the check into `wasmtime-wasi` itself
* Make it conservative for now and match anything that says `wasi*`
* Leave a `FIXME` for improving this later on

* Enable missing feature of winapi for `winx`
2019-11-11 11:09:45 -08:00
Jakub Konka
0006a2af95 Dynamically load utimensat if exists on the host (#535)
* Dynamically load utimensat if exists on the host

This commit introduces a change to file time management for *nix based
hosts in that it firstly tries to load `utimensat` symbol, and if it
doesn't exist, then falls back to `utimes` instead. This change is
borrowing very heavily from [filetime] crate, however, it introduces a
couple of helpers and methods specific to WASI use case (or more
generally, to a use case which requires modifying times of entities
specified by a pair `(DirFD, RelativePath)` rather than the typical
file time specification based only absolute path or raw file descriptor
as is the case with [filetime] crate. The trick here is, that on kernels
which do not have `utimensat` symbol, this implementation emulates this
behaviour by a combination of `openat` and `utimes`.

This commit also is meant to address #516.

[filetime]: https://github.com/alexcrichton/filetime

* Fix symlink NOFOLLOW flag setting

* Add docs and specify UTIME_NOW/OMIT on Linux

Previously, we relied on [libc] crate for `UTIME_NOW` and `UTIME_OMIT`
constants on Linux. However, following the convention assumed in
[filetime] crate, this is now changed to directly specified by us
in our crate.

[libc]: https://github.com/rust-lang/libc
[filetime]: https://github.com/alexcrichton/filetime

* Refactor UTIME_NOW/OMIT for BSD

* Address final discussion points
2019-11-11 11:42:28 -06:00
whitequark
5a1845b4ca Add missing x86_64 registers to debug info transformer. (#538) 2019-11-11 08:05:52 -06:00
Marcin Mielniczuk
3206461502 Fix some clippy warnings (#536) 2019-11-10 13:50:19 -08:00
Dan Gohman
ef1cbfdaa8 Merge pull request #534 from sunfishcode/macro_use
Miscellaneous cleanups
2019-11-08 20:42:12 -08:00
Dan Gohman
f5dad66593 Fix a missing use bitflags::bitflags;. 2019-11-08 19:43:17 -08:00
Dan Gohman
061b453255 Remove unneeded extern crate, macro_use, and tidy uses. 2019-11-08 17:55:38 -08:00
Dan Gohman
31f8f124f5 Delete spurious commas. 2019-11-08 17:15:37 -08:00
Dan Gohman
dd27237c74 Avoid capturing a pointer into a temporary CString buffer. 2019-11-08 17:15:37 -08:00
Dan Gohman
5b0031ece8 Use pointer::add instead of pointer::offset with a cast. 2019-11-08 17:15:37 -08:00
Dan Gohman
39b0d670c5 rustfmt and trim trailing whitespace. 2019-11-08 17:15:37 -08:00
Dan Gohman
da89d08fca Update to point to the Wasmtime issue tracker. 2019-11-08 17:15:37 -08:00
Dan Gohman
e8f08193fc Reformat some long lines and macros. 2019-11-08 17:15:37 -08:00
Dan Gohman
9a4992f601 Convert a CRLF file. 2019-11-08 17:15:19 -08:00
Alex Crichton
29c8c4f68f Reduce duplication in error messages (#532)
* Reduce duplication in error messages

This commit removes duplication in error messages where the same text
would show up multiple times in a fully rendered error message.

When using `derive(Error)` when the `#[from]` attribute is used there's
no need to also render that payload into the error string because the
`#[from]` establishes a "backtrace" which means that when the full
context of an error is rendered it will include the `#[from]` in the
lower frames of the backtrace anyway.

This commit audits the `derive(Error)` implementations to avoid
duplication in the rendered error messages, ensuring that if `#[from]`
is used then the `#[from]` field isn't also rendered in the textual
description.

* Search the full error in wast assertions

Don't just search the top error, but search the whole backtrace by using
the `{:?}` format instead of `{}`.
2019-11-08 18:24:02 -06:00
Dan Gohman
b58c2bf2a4 Merge pull request #531 from sunfishcode/more_asserts
Use the more-asserts crate in more places.
2019-11-08 15:54:56 -08:00
Alex Crichton
5a5f241f98 Fix typo in warning message for --invoke (#530)
This was supposed to be `--invoke`, not `--render`
2019-11-08 17:41:05 -06:00
Alex Crichton
7982d02e45 Move top-level installer directory to ci (#527)
A small amount of cleanup for the top-level of this repository, where
the `installer` directory just had one misc file for the Windows
installer which we can put elsewhere inside of `ci`, another misc folder
but one that already has a few files in it.
2019-11-08 17:31:34 -06:00
Dan Gohman
1a0ed6e388 Use the more-asserts crate in more places.
This provides assert_le, assert_lt, and so on, which can print the
values of the operands.
2019-11-08 15:24:53 -08:00
Dan Gohman
a2b4148a91 General Cargo.toml cleanup. (#529)
* General Cargo.toml cleanup.

 - Remove travis-ci attributes.
 - Remove "experimental" badges from actively-developed crates.
 - Reflow some long lines.
 - Use dependency features consistently.
 - Add readme attributes

* Update WASI to the latest trunk.

This notably adds a .gitignore file for the WASI directory.
2019-11-08 17:22:37 -06:00
Alex Crichton
ae86822c37 Move stray top-level misc_testsuite to tests (#528)
I think this may have been a mistake from #523?
2019-11-08 17:03:10 -06:00
Dan Gohman
94044100f9 Merge pull request #526 from alexcrichton/cache-docs
Move cache configuration documentation into book
2019-11-08 14:48:20 -08:00
Dan Gohman
e691bf36f3 Reorganize tests (#523)
* Refactor Lightbeam's tests.

This refactors Lightbeam's tests.rs file into several pieces, separating
quickcheck tests into their own file, and moving tests which can be run as
wast tests into `tests/misc_testsuite`, and creating a tests directory
for the rest.

* Remove the old filetests tests.

These are all covered by misc_testsuite and spec_testsuite tests.

* rustfmt

* Remove the "bench" feature.
2019-11-08 16:16:12 -06:00
Dan Gohman
0f4f9d7832 Use r# to escape strings which may be rust keywords.
This is a minor simplification, replacing a hardcoded list of keywords.
2019-11-08 22:48:57 +01:00
Nick Fitzgerald
c6bd7375f9 Merge pull request #525 from sunfishcode/cargo-keywords
Add a `keywords` field to Cargo.toml files.
2019-11-08 13:33:39 -08:00
Alex Crichton
cf0af20162 Move cache configuration documentation into book
Moves `CACHE_CONFIGURATION.md` into the `cli-cache.md` page of the
book. Additionally removes this from the release tarballs.
2019-11-08 13:29:01 -08:00
Dan Gohman
97d37e9369 Add a keywords field to Cargo.toml files. 2019-11-08 12:34:58 -08:00
Dan Gohman
85cfdd0bb1 Merge pull request #512 from sunfishcode/reorg
Reorganize the codebase
2019-11-08 11:42:43 -08:00
Dan Gohman
e017062da2 Fix a path in build-tarballs.sh. 2019-11-08 10:48:50 -08:00
Dan Gohman
9af562c1ff Update dependencies. 2019-11-08 10:48:50 -08:00
Dan Gohman
7ac115d632 Update publish-all.sh for new paths. 2019-11-08 10:41:21 -08:00
Dan Gohman
b158666f2b Reorganize tests.
- Move spec_testsuite and misc_testsuite under the tests directory.
 - Remove some redundant tests from filetests.
 - Move wat tests to wat/tests.
2019-11-08 10:31:44 -08:00
Dan Gohman
32a71c0645 Update the names of the git submodules. 2019-11-08 10:20:11 -08:00
Dan Gohman
58c5906f5c Fix a path to wasmtime Cargo.toml. 2019-11-08 10:00:08 -08:00
Dan Gohman
24218c960a Move CACHE_CONFIGURATION.md to the docs directory. 2019-11-08 09:56:02 -08:00
Dan Gohman
fff777d4c3 Tidy up the top-level directory by moving misc. scripts into a subdirectory. 2019-11-08 09:56:02 -08:00
Dan Gohman
a40e3b734a Update paths in cranelift-version.sh 2019-11-08 09:46:29 -08:00
Dan Gohman
31e1b1c383 Update the path to wasmtime-py. 2019-11-08 09:45:10 -08:00
Dan Gohman
9253e55321 Update the workflows for the wasmtime-api rename. 2019-11-08 09:41:34 -08:00
Dan Gohman
771e51c5c5 Fix the exclude path for wasi-misc-tests. 2019-11-08 09:37:31 -08:00