Merge branch 'master' into feature/more-wasi-syscalls

This commit is contained in:
Mark McCaskey 2019-07-31 21:41:19 -07:00 committed by GitHub
commit bca1ffc8d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 54 additions and 57 deletions

View File

@ -75,9 +75,6 @@ jobs:
make cranelift make cranelift
make llvm make llvm
make test-rest make test-rest
- run:
name: Release
command: make release-fast
- run: - run:
name: Integration Tests name: Integration Tests
command: make integration-tests command: make integration-tests
@ -116,10 +113,8 @@ jobs:
command: | command: |
make check make check
make compile-bench-singlepass make compile-bench-singlepass
# TODO: add compile-bench-llvm and compile-bench-clif when they work make compile-bench-llvm
- run: # TODO: add compile-bench-clif when it works
name: Release
command: make release-fast
- run: - run:
name: Integration Tests name: Integration Tests
command: make integration-tests command: make integration-tests
@ -195,11 +190,6 @@ jobs:
export PATH="$HOME/.cargo/bin:$PATH" export PATH="$HOME/.cargo/bin:$PATH"
export LLVM_SYS_80_PREFIX="`pwd`/clang+llvm-8.0.0-x86_64-apple-darwin/" export LLVM_SYS_80_PREFIX="`pwd`/clang+llvm-8.0.0-x86_64-apple-darwin/"
make check make check
- run:
name: Release
command: |
export PATH="$HOME/.cargo/bin:$PATH"
make release-fast
- run: - run:
name: Integration Tests name: Integration Tests
command: | command: |

28
Cargo.lock generated
View File

@ -1430,17 +1430,17 @@ dependencies = [
"serde_bytes 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde_bytes 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
"target-lexicon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "target-lexicon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmer-clif-fork-frontend 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "wasmer-clif-fork-frontend 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmer-clif-fork-wasm 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "wasmer-clif-fork-wasm 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmer-runtime-core 0.6.0", "wasmer-runtime-core 0.6.0",
"wasmer-win-exception-handler 0.6.0", "wasmer-win-exception-handler 0.6.0",
"wasmparser 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)", "wasmparser 0.35.1 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "wasmer-clif-fork-frontend" name = "wasmer-clif-fork-frontend"
version = "0.32.0" version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cranelift-codegen 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", "cranelift-codegen 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1450,7 +1450,7 @@ dependencies = [
[[package]] [[package]]
name = "wasmer-clif-fork-wasm" name = "wasmer-clif-fork-wasm"
version = "0.32.0" version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cranelift-codegen 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", "cranelift-codegen 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1458,8 +1458,8 @@ dependencies = [
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmer-clif-fork-frontend 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "wasmer-clif-fork-frontend 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmparser 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)", "wasmparser 0.35.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -1522,7 +1522,7 @@ dependencies = [
"smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
"wabt 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "wabt 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmer-runtime-core 0.6.0", "wasmer-runtime-core 0.6.0",
"wasmparser 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)", "wasmparser 0.35.1 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1588,7 +1588,7 @@ dependencies = [
"serde_bytes 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde_bytes 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
"smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmparser 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)", "wasmparser 0.35.1 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1606,7 +1606,7 @@ dependencies = [
"nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)",
"smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmer-runtime-core 0.6.0", "wasmer-runtime-core 0.6.0",
"wasmparser 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)", "wasmparser 0.35.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -1661,7 +1661,7 @@ dependencies = [
[[package]] [[package]]
name = "wasmparser" name = "wasmparser"
version = "0.34.0" version = "0.35.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
@ -1895,9 +1895,9 @@ dependencies = [
"checksum wabt 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d07edd40d190ddcbd0113c2150ccb214f47a02ff36958630ba0e5b8138ece1c1" "checksum wabt 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d07edd40d190ddcbd0113c2150ccb214f47a02ff36958630ba0e5b8138ece1c1"
"checksum wabt-sys 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b064c81821100adb4b71923cecfc67fef083db21c3bbd454b0162c7ffe63eeaa" "checksum wabt-sys 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b064c81821100adb4b71923cecfc67fef083db21c3bbd454b0162c7ffe63eeaa"
"checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1" "checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1"
"checksum wasmer-clif-fork-frontend 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "be2e38b16377f93ac485b6045fdc135dd3f165d25d4992e7b67c5cbc3ca8c760" "checksum wasmer-clif-fork-frontend 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3bd6bec1587a3b11222f4ff129fd119785713c41de413f54f99d3c03743812f4"
"checksum wasmer-clif-fork-wasm 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "88becfcf874d7587750e1a1c30c47a16ed220f28c433c4b81db4c4626455a6a1" "checksum wasmer-clif-fork-wasm 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a8f323e612fe2549391255a09f89c927d7feb0ec4bf0c2cad9e3c089bdca42fc"
"checksum wasmparser 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8030ec5a7c242a91941947fdb752e9a7c0929aced954ea23c54dad1cd2611850" "checksum wasmparser 0.35.1 (registry+https://github.com/rust-lang/crates.io-index)" = "29f51d6103c622680dc4e17fb8173371efda8e529d97a2ba10ddf847d07705f8"
"checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164" "checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164"
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
"checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" "checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"

View File

@ -104,7 +104,7 @@ test: spectests emtests middleware wasitests circleci-clean test-rest
# Integration tests # Integration tests
integration-tests: release-fast integration-tests: release-clif
echo "Running Integration Tests" echo "Running Integration Tests"
./integration_tests/lua/test.sh ./integration_tests/lua/test.sh
./integration_tests/nginx/test.sh ./integration_tests/nginx/test.sh
@ -130,7 +130,7 @@ release:
cargo build --release --features backend-singlepass,backend-llvm,loader-kernel cargo build --release --features backend-singlepass,backend-llvm,loader-kernel
# Only one backend (cranelift) # Only one backend (cranelift)
release-fast: release-clif:
# If you are in OS-X, you will need mingw-w64 for cross compiling to windows # If you are in OS-X, you will need mingw-w64 for cross compiling to windows
# brew install mingw-w64 # brew install mingw-w64
cargo build --release cargo build --release

View File

@ -29,10 +29,13 @@ Install Wasmer with:
curl https://get.wasmer.io -sSfL | sh curl https://get.wasmer.io -sSfL | sh
``` ```
> Note: *Wasmer is also available on Windows. Download the [`WasmerInstaller.exe` from the Github Releases](https://github.com/wasmerio/wasmer/releases) page.*
Wasmer runtime can also be embedded in different languages, so you can use WebAssembly anywhere ✨: Wasmer runtime can also be embedded in different languages, so you can use WebAssembly anywhere ✨:
* [🦀 **Rust**](https://github.com/wasmerio/wasmer-rust-example) * [**🦀 Rust**](https://github.com/wasmerio/wasmer-rust-example)
* [**C/C++**](https://github.com/wasmerio/wasmer-c-api) * [**🔗 C/C++**](https://github.com/wasmerio/wasmer-c-api)
* [**#️⃣ C#**](https://github.com/migueldeicaza/WasmerSharp)
* [**🐘 PHP**](https://github.com/wasmerio/php-ext-wasm) * [**🐘 PHP**](https://github.com/wasmerio/php-ext-wasm)
* [**🐍 Python**](https://github.com/wasmerio/python-ext-wasm) * [**🐍 Python**](https://github.com/wasmerio/python-ext-wasm)
* [**💎 Ruby**](https://github.com/wasmerio/ruby-ext-wasm) * [**💎 Ruby**](https://github.com/wasmerio/ruby-ext-wasm)
@ -82,7 +85,7 @@ Wasmer is structured into different directories:
Building Wasmer requires [rustup](https://rustup.rs/). Building Wasmer requires [rustup](https://rustup.rs/).
To build on Windows, download and run [`rustup-init.exe`](https://win.rustup.rs/) To build Wasmer on Windows, download and run [`rustup-init.exe`](https://win.rustup.rs/)
then follow the onscreen instructions. then follow the onscreen instructions.
To build on other systems, run: To build on other systems, run:
@ -146,8 +149,8 @@ pkg install cmake
#### Windows (MSVC) #### Windows (MSVC)
Windows support is _highly experimental_. Only simple Wasm programs may be run, and no syscalls are allowed. This means Windows support is _experimental_. WASI is fully supported, but Emscripten support is on the works (this means
nginx and Lua do not work on Windows. See [this issue](https://github.com/wasmerio/wasmer/issues/176) regarding Emscripten syscall polyfills for Windows. nginx and Lua do not work on Windows - you can track the progress on [this issue](https://github.com/wasmerio/wasmer/issues/176)).
1. Install [Visual Studio](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=15) 1. Install [Visual Studio](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=15)
@ -181,8 +184,14 @@ git clone https://github.com/wasmerio/wasmer.git
cd wasmer cd wasmer
# install tools # install tools
# make sure that `python` is accessible. make release-clif # To build with cranelift (default)
make install
make release-llvm # To build with llvm support
make release-singlepass # To build with singlepass support
# or
make release # To build with singlepass, cranelift and llvm support
``` ```
## Testing ## Testing
@ -240,7 +249,7 @@ Below are some of the goals of this project (in order of priority):
## Architecture ## Architecture
If you would like to know how Wasmer works under the hood, please see [ARCHITECTURE.md](./ARCHITECTURE.md). If you would like to know how Wasmer works under the hood, please see [docs/architecture.md](./docs/architecture.md).
## License ## License

View File

@ -13,11 +13,11 @@ wasmer-runtime-core = { path = "../runtime-core", version = "0.6.0" }
cranelift-native = { version = "0.31" } cranelift-native = { version = "0.31" }
cranelift-codegen = { version = "0.31" } cranelift-codegen = { version = "0.31" }
cranelift-entity = { version = "0.31" } cranelift-entity = { version = "0.31" }
cranelift-frontend = { package = "wasmer-clif-fork-frontend", version = "0.32" } cranelift-frontend = { package = "wasmer-clif-fork-frontend", version = "0.33" }
cranelift-wasm = { package = "wasmer-clif-fork-wasm", version = "0.32" } cranelift-wasm = { package = "wasmer-clif-fork-wasm", version = "0.33" }
hashbrown = "0.1" hashbrown = "0.1"
target-lexicon = "0.4.0" target-lexicon = "0.4.0"
wasmparser = "0.34.0" wasmparser = "0.35.1"
byteorder = "1" byteorder = "1"
nix = "0.14.0" nix = "0.14.0"
libc = "0.2.49" libc = "0.2.49"

View File

@ -7,7 +7,7 @@ readme = "README.md"
[dependencies] [dependencies]
wasmer-runtime-core = { path = "../runtime-core", version = "0.6.0" } wasmer-runtime-core = { path = "../runtime-core", version = "0.6.0" }
wasmparser = "0.34.0" wasmparser = "0.35.1"
hashbrown = "0.1.8" hashbrown = "0.1.8"
smallvec = "0.6.8" smallvec = "0.6.8"
goblin = "0.0.20" goblin = "0.0.20"

View File

@ -134,14 +134,13 @@ mod tests {
use super::*; use super::*;
use wabt::wat2wasm; use wabt::wat2wasm;
use wasmer_runtime_core::codegen::{MiddlewareChain, StreamingCompiler};
use wasmer_runtime_core::{backend::Compiler, compile_with, imports, Func}; use wasmer_runtime_core::{backend::Compiler, compile_with, imports, Func};
#[cfg(feature = "llvm")] #[cfg(feature = "llvm")]
fn get_compiler(limit: u64) -> impl Compiler { fn get_compiler(limit: u64) -> impl Compiler {
use wasmer_llvm_backend::code::LLVMModuleCodeGenerator; use wasmer_llvm_backend::ModuleCodeGenerator as LLVMMCG;
use wasmer_runtime_core::codegen::{MiddlewareChain, StreamingCompiler}; let c: StreamingCompiler<LLVMMCG, _, _, _, _> = StreamingCompiler::new(move || {
let c: StreamingCompiler<LLVMModuleCodeGenerator, _, _, _, _> =
StreamingCompiler::new(move || {
let mut chain = MiddlewareChain::new(); let mut chain = MiddlewareChain::new();
chain.push(Metering::new(limit)); chain.push(Metering::new(limit));
chain chain
@ -151,7 +150,6 @@ mod tests {
#[cfg(feature = "singlepass")] #[cfg(feature = "singlepass")]
fn get_compiler(limit: u64) -> impl Compiler { fn get_compiler(limit: u64) -> impl Compiler {
use wasmer_runtime_core::codegen::{MiddlewareChain, StreamingCompiler};
use wasmer_singlepass_backend::ModuleCodeGenerator as SinglePassMCG; use wasmer_singlepass_backend::ModuleCodeGenerator as SinglePassMCG;
let c: StreamingCompiler<SinglePassMCG, _, _, _, _> = StreamingCompiler::new(move || { let c: StreamingCompiler<SinglePassMCG, _, _, _, _> = StreamingCompiler::new(move || {
let mut chain = MiddlewareChain::new(); let mut chain = MiddlewareChain::new();

View File

@ -11,7 +11,7 @@ thread_local! {
static LAST_ERROR: RefCell<Option<Box<Error>>> = RefCell::new(None); static LAST_ERROR: RefCell<Option<Box<Error>>> = RefCell::new(None);
} }
pub(crate) fn update_last_error<E: Error + 'static>(err: E) { pub fn update_last_error<E: Error + 'static>(err: E) {
LAST_ERROR.with(|prev| { LAST_ERROR.with(|prev| {
*prev.borrow_mut() = Some(Box::new(err)); *prev.borrow_mut() = Some(Box::new(err));
}); });
@ -89,8 +89,8 @@ pub unsafe extern "C" fn wasmer_last_error_message(buffer: *mut c_char, length:
} }
#[derive(Debug)] #[derive(Debug)]
pub(crate) struct CApiError { pub struct CApiError {
pub(crate) msg: String, pub msg: String,
} }
impl Display for CApiError { impl Display for CApiError {

View File

@ -10,7 +10,7 @@ edition = "2018"
[dependencies] [dependencies]
nix = "0.14.0" nix = "0.14.0"
page_size = "0.4.1" page_size = "0.4.1"
wasmparser = "0.34.0" wasmparser = "0.35.1"
parking_lot = "0.7.1" parking_lot = "0.7.1"
lazy_static = "1.2.0" lazy_static = "1.2.0"
indexmap = "1.0.2" indexmap = "1.0.2"

View File

@ -10,7 +10,7 @@ readme = "README.md"
[dependencies] [dependencies]
wasmer-runtime-core = { path = "../runtime-core", version = "0.6.0" } wasmer-runtime-core = { path = "../runtime-core", version = "0.6.0" }
wasmparser = "0.34.0" wasmparser = "0.35.1"
dynasm = "0.3.2" dynasm = "0.3.2"
dynasmrt = "0.3.1" dynasmrt = "0.3.1"
lazy_static = "1.2.0" lazy_static = "1.2.0"

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

Before

Width:  |  Height:  |  Size: 958 KiB

After

Width:  |  Height:  |  Size: 958 KiB

View File

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -9,9 +9,9 @@ OutputDir=.\
DisableProgramGroupPage=yes DisableProgramGroupPage=yes
ChangesEnvironment=yes ChangesEnvironment=yes
OutputBaseFilename=WasmerInstaller OutputBaseFilename=WasmerInstaller
WizardImageFile=..\..\media\wizard_logo_2.bmp WizardImageFile=media\wizard_logo_2.bmp
WizardSmallImageFile=..\..\media\wizard_logo_small.bmp WizardSmallImageFile=media\wizard_logo_small.bmp
SetupIconFile=..\..\media\wizard_logo.ico SetupIconFile=media\wizard_logo.ico
DisableWelcomePage=no DisableWelcomePage=no
[Files] [Files]