Bump version to 0.2.0
This commit is contained in:
10
Cargo.toml
10
Cargo.toml
@@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "wasmtime"
|
name = "wasmtime"
|
||||||
authors = ["The Wasmtime Project Developers"]
|
authors = ["The Wasmtime Project Developers"]
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
description = "Command-line interface for Wasmtime"
|
description = "Command-line interface for Wasmtime"
|
||||||
license = "Apache-2.0 WITH LLVM-exception"
|
license = "Apache-2.0 WITH LLVM-exception"
|
||||||
documentation = "https://cranelift.readthedocs.io/"
|
documentation = "https://cranelift.readthedocs.io/"
|
||||||
@@ -11,10 +11,10 @@ edition = "2018"
|
|||||||
default-run = "wasmtime"
|
default-run = "wasmtime"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
cranelift-codegen = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-codegen = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-native = "0.38.0"
|
cranelift-native = "0.40.0"
|
||||||
cranelift-entity = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-entity = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-wasm = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-wasm = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
wasmtime-debug = { path = "wasmtime-debug" }
|
wasmtime-debug = { path = "wasmtime-debug" }
|
||||||
wasmtime-environ = { path = "wasmtime-environ" }
|
wasmtime-environ = { path = "wasmtime-environ" }
|
||||||
wasmtime-interface-types = { path = "wasmtime-interface-types" }
|
wasmtime-interface-types = { path = "wasmtime-interface-types" }
|
||||||
|
|||||||
@@ -11,11 +11,11 @@ cargo-fuzz = true
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
wasmtime-environ = { path = "../wasmtime-environ" }
|
wasmtime-environ = { path = "../wasmtime-environ" }
|
||||||
wasmtime-jit = { path = "../wasmtime-jit" }
|
wasmtime-jit = { path = "../wasmtime-jit" }
|
||||||
cranelift-codegen = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-codegen = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-wasm = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-wasm = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-native = "0.38.0"
|
cranelift-native = "0.40.0"
|
||||||
libfuzzer-sys = { git = "https://github.com/rust-fuzz/libfuzzer-sys.git" }
|
libfuzzer-sys = { git = "https://github.com/rust-fuzz/libfuzzer-sys.git" }
|
||||||
wasmparser = { version = "0.32.1", default-features = false }
|
wasmparser = { version = "0.36.0", default-features = false }
|
||||||
binaryen = "0.5.0"
|
binaryen = "0.5.0"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name = "wasmtime-py"
|
name = "wasmtime-py"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
authors = ["The Wasmtime Project Developers"]
|
authors = ["The Wasmtime Project Developers"]
|
||||||
description = "Python extension for the wasmtime"
|
description = "Python extension for Wasmtime"
|
||||||
license = "Apache-2.0 WITH LLVM-exception"
|
license = "Apache-2.0 WITH LLVM-exception"
|
||||||
categories = ["wasm", "python"]
|
categories = ["wasm", "python"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
@@ -13,11 +13,11 @@ name = "_wasmtime"
|
|||||||
crate-type = ["cdylib"]
|
crate-type = ["cdylib"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
cranelift-codegen = "0.38.0"
|
cranelift-codegen = "0.40.0"
|
||||||
cranelift-native = "0.38.0"
|
cranelift-native = "0.40.0"
|
||||||
cranelift-entity = "0.38.0"
|
cranelift-entity = "0.40.0"
|
||||||
cranelift-wasm = "0.38.0"
|
cranelift-wasm = "0.40.0"
|
||||||
cranelift-frontend = "0.38.0"
|
cranelift-frontend = "0.40.0"
|
||||||
wasmtime-environ = { path = "../../wasmtime-environ" }
|
wasmtime-environ = { path = "../../wasmtime-environ" }
|
||||||
wasmtime-interface-types = { path = "../../wasmtime-interface-types" }
|
wasmtime-interface-types = { path = "../../wasmtime-interface-types" }
|
||||||
wasmtime-jit = { path = "../../wasmtime-jit" }
|
wasmtime-jit = { path = "../../wasmtime-jit" }
|
||||||
@@ -25,7 +25,7 @@ wasmtime-runtime = { path = "../../wasmtime-runtime" }
|
|||||||
target-lexicon = { version = "0.4.0", default-features = false }
|
target-lexicon = { version = "0.4.0", default-features = false }
|
||||||
failure = "0.1"
|
failure = "0.1"
|
||||||
region = "2.0.0"
|
region = "2.0.0"
|
||||||
wasmparser = "0.35.3"
|
wasmparser = "0.36.0"
|
||||||
|
|
||||||
[dependencies.pyo3]
|
[dependencies.pyo3]
|
||||||
version = "0.7.0-alpha.1"
|
version = "0.7.0-alpha.1"
|
||||||
|
|||||||
@@ -3,14 +3,16 @@ name = "wasmtime-rust"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Alex Crichton <alex@alexcrichton.com>"]
|
authors = ["Alex Crichton <alex@alexcrichton.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
categories = ["wasm", "rust"]
|
||||||
|
license = "Apache-2.0 WITH LLVM-exception"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
test = false
|
test = false
|
||||||
doctest = false
|
doctest = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
cranelift-codegen = "0.38.0"
|
cranelift-codegen = "0.40.0"
|
||||||
cranelift-native = "0.38.0"
|
cranelift-native = "0.40.0"
|
||||||
failure = "0.1.5"
|
failure = "0.1.5"
|
||||||
wasmtime-interface-types = { path = "../../wasmtime-interface-types" }
|
wasmtime-interface-types = { path = "../../wasmtime-interface-types" }
|
||||||
wasmtime-jit = { path = "../../wasmtime-jit" }
|
wasmtime-jit = { path = "../../wasmtime-jit" }
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ topdir=$(dirname "$0")
|
|||||||
cd "$topdir"
|
cd "$topdir"
|
||||||
|
|
||||||
# All the wasmtime-* crates have the same version number
|
# All the wasmtime-* crates have the same version number
|
||||||
version="0.1.0"
|
version="0.2.0"
|
||||||
|
|
||||||
# Update all of the Cargo.toml files.
|
# Update all of the Cargo.toml files.
|
||||||
#
|
#
|
||||||
@@ -34,9 +34,26 @@ cargo update
|
|||||||
# Note that libraries need to be published in topological order.
|
# Note that libraries need to be published in topological order.
|
||||||
|
|
||||||
echo git commit -a -m "\"Bump version to $version"\"
|
echo git commit -a -m "\"Bump version to $version"\"
|
||||||
|
echo git tag v$version
|
||||||
echo git push
|
echo git push
|
||||||
|
echo git push origin v$version
|
||||||
for crate in \
|
for crate in \
|
||||||
wasmtime-environ
|
wasmtime \
|
||||||
|
wasmtime-wasi \
|
||||||
|
wasmtime-wasi-c \
|
||||||
|
wasmtime-wast \
|
||||||
|
wasmtime-debug \
|
||||||
|
wasmtime-environ \
|
||||||
|
wasmtime-runtime \
|
||||||
|
wasmtime-jit \
|
||||||
|
wasmtime-interface-types \
|
||||||
|
wasmtime-obj \
|
||||||
|
wasmtime-py \
|
||||||
|
wasmtime-rust
|
||||||
do
|
do
|
||||||
echo cargo publish --manifest-path "$crate/Cargo.toml"
|
echo cargo publish --manifest-path "$crate/Cargo.toml"
|
||||||
|
|
||||||
|
# Sleep for a few seconds to allow the server to update the index.
|
||||||
|
# https://internals.rust-lang.org/t/changes-to-how-crates-io-handles-index-updates/9608
|
||||||
|
echo sleep 10
|
||||||
done
|
done
|
||||||
|
|||||||
Submodule spec_testsuite updated: b2800641d6...0ec9e194f7
@@ -53,12 +53,18 @@ banner "Rust unit tests"
|
|||||||
RUST_BACKTRACE=1 cargo test \
|
RUST_BACKTRACE=1 cargo test \
|
||||||
--package wasmtime \
|
--package wasmtime \
|
||||||
--package wasmtime-wasi \
|
--package wasmtime-wasi \
|
||||||
|
--package wasmtime-wasi-c \
|
||||||
--package wasmtime-wast \
|
--package wasmtime-wast \
|
||||||
--package wasmtime-debug \
|
--package wasmtime-debug \
|
||||||
--package wasmtime-environ \
|
--package wasmtime-environ \
|
||||||
--package wasmtime-runtime \
|
--package wasmtime-runtime \
|
||||||
--package wasmtime-jit \
|
--package wasmtime-jit \
|
||||||
--package wasmtime-obj
|
--package wasmtime-interface-types \
|
||||||
|
--package wasmtime-obj \
|
||||||
|
|
||||||
|
RUST_BACKTRACE=1 cargo +nightly test \
|
||||||
|
--package wasmtime-py \
|
||||||
|
--package wasmtime-rust
|
||||||
|
|
||||||
# Make sure the documentation builds.
|
# Make sure the documentation builds.
|
||||||
banner "Rust documentation: $topdir/target/doc/wasmtime/index.html"
|
banner "Rust documentation: $topdir/target/doc/wasmtime/index.html"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "wasmtime-debug"
|
name = "wasmtime-debug"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
authors = ["The Wasmtime Project Developers"]
|
authors = ["The Wasmtime Project Developers"]
|
||||||
description = "Debug utils for WebAsssembly code in Cranelift"
|
description = "Debug utils for WebAsssembly code in Cranelift"
|
||||||
repository = "https://github.com/CraneStation/wasmtime"
|
repository = "https://github.com/CraneStation/wasmtime"
|
||||||
@@ -13,10 +13,10 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
gimli = "0.19.0"
|
gimli = "0.19.0"
|
||||||
wasmparser = { version = "0.35.1" }
|
wasmparser = { version = "0.36.0" }
|
||||||
cranelift-codegen = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-codegen = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-entity = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-entity = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-wasm = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-wasm = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
faerie = "0.10.1"
|
faerie = "0.10.1"
|
||||||
wasmtime-environ = { path = "../wasmtime-environ", default-features = false }
|
wasmtime-environ = { path = "../wasmtime-environ", default-features = false }
|
||||||
target-lexicon = { version = "0.4.0", default-features = false }
|
target-lexicon = { version = "0.4.0", default-features = false }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "wasmtime-environ"
|
name = "wasmtime-environ"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
authors = ["The Wasmtime Project Developers"]
|
authors = ["The Wasmtime Project Developers"]
|
||||||
description = "Standalone environment support for WebAsssembly code in Cranelift"
|
description = "Standalone environment support for WebAsssembly code in Cranelift"
|
||||||
repository = "https://github.com/CraneStation/wasmtime"
|
repository = "https://github.com/CraneStation/wasmtime"
|
||||||
@@ -12,9 +12,9 @@ readme = "README.md"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
cranelift-codegen = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-codegen = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-entity = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-entity = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-wasm = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-wasm = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
lightbeam = { path = "../lightbeam", optional = true }
|
lightbeam = { path = "../lightbeam", optional = true }
|
||||||
failure = { version = "0.1.3", default-features = false }
|
failure = { version = "0.1.3", default-features = false }
|
||||||
failure_derive = { version = "0.1.3", default-features = false }
|
failure_derive = { version = "0.1.3", default-features = false }
|
||||||
|
|||||||
@@ -197,8 +197,15 @@ impl crate::compilation::Compiler for Cranelift {
|
|||||||
let mut code_buf: Vec<u8> = Vec::new();
|
let mut code_buf: Vec<u8> = Vec::new();
|
||||||
let mut reloc_sink = RelocSink::new(func_index);
|
let mut reloc_sink = RelocSink::new(func_index);
|
||||||
let mut trap_sink = binemit::NullTrapSink {};
|
let mut trap_sink = binemit::NullTrapSink {};
|
||||||
|
let mut stackmap_sink = binemit::NullStackmapSink {};
|
||||||
context
|
context
|
||||||
.compile_and_emit(isa, &mut code_buf, &mut reloc_sink, &mut trap_sink)
|
.compile_and_emit(
|
||||||
|
isa,
|
||||||
|
&mut code_buf,
|
||||||
|
&mut reloc_sink,
|
||||||
|
&mut trap_sink,
|
||||||
|
&mut stackmap_sink,
|
||||||
|
)
|
||||||
.map_err(CompileError::Codegen)?;
|
.map_err(CompileError::Codegen)?;
|
||||||
|
|
||||||
let jt_offsets = context.func.jt_offsets.clone();
|
let jt_offsets = context.func.jt_offsets.clone();
|
||||||
|
|||||||
@@ -91,20 +91,27 @@ impl<'data> cranelift_wasm::ModuleEnvironment<'data> for ModuleEnvironment<'data
|
|||||||
self.result.target_config
|
self.result.target_config
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reserve_signatures(&mut self, num: u32) {
|
fn reserve_signatures(&mut self, num: u32) -> WasmResult<()> {
|
||||||
self.result
|
self.result
|
||||||
.module
|
.module
|
||||||
.signatures
|
.signatures
|
||||||
.reserve_exact(usize::try_from(num).unwrap());
|
.reserve_exact(usize::try_from(num).unwrap());
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_signature(&mut self, sig: ir::Signature) {
|
fn declare_signature(&mut self, sig: ir::Signature) -> WasmResult<()> {
|
||||||
let sig = translate_signature(sig, self.pointer_type());
|
let sig = translate_signature(sig, self.pointer_type());
|
||||||
// TODO: Deduplicate signatures.
|
// TODO: Deduplicate signatures.
|
||||||
self.result.module.signatures.push(sig);
|
self.result.module.signatures.push(sig);
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_func_import(&mut self, sig_index: SignatureIndex, module: &str, field: &str) {
|
fn declare_func_import(
|
||||||
|
&mut self,
|
||||||
|
sig_index: SignatureIndex,
|
||||||
|
module: &str,
|
||||||
|
field: &str,
|
||||||
|
) -> WasmResult<()> {
|
||||||
debug_assert_eq!(
|
debug_assert_eq!(
|
||||||
self.result.module.functions.len(),
|
self.result.module.functions.len(),
|
||||||
self.result.module.imported_funcs.len(),
|
self.result.module.imported_funcs.len(),
|
||||||
@@ -116,9 +123,10 @@ impl<'data> cranelift_wasm::ModuleEnvironment<'data> for ModuleEnvironment<'data
|
|||||||
.module
|
.module
|
||||||
.imported_funcs
|
.imported_funcs
|
||||||
.push((String::from(module), String::from(field)));
|
.push((String::from(module), String::from(field)));
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_table_import(&mut self, table: Table, module: &str, field: &str) {
|
fn declare_table_import(&mut self, table: Table, module: &str, field: &str) -> WasmResult<()> {
|
||||||
debug_assert_eq!(
|
debug_assert_eq!(
|
||||||
self.result.module.table_plans.len(),
|
self.result.module.table_plans.len(),
|
||||||
self.result.module.imported_tables.len(),
|
self.result.module.imported_tables.len(),
|
||||||
@@ -131,9 +139,15 @@ impl<'data> cranelift_wasm::ModuleEnvironment<'data> for ModuleEnvironment<'data
|
|||||||
.module
|
.module
|
||||||
.imported_tables
|
.imported_tables
|
||||||
.push((String::from(module), String::from(field)));
|
.push((String::from(module), String::from(field)));
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_memory_import(&mut self, memory: Memory, module: &str, field: &str) {
|
fn declare_memory_import(
|
||||||
|
&mut self,
|
||||||
|
memory: Memory,
|
||||||
|
module: &str,
|
||||||
|
field: &str,
|
||||||
|
) -> WasmResult<()> {
|
||||||
debug_assert_eq!(
|
debug_assert_eq!(
|
||||||
self.result.module.memory_plans.len(),
|
self.result.module.memory_plans.len(),
|
||||||
self.result.module.imported_memories.len(),
|
self.result.module.imported_memories.len(),
|
||||||
@@ -146,9 +160,15 @@ impl<'data> cranelift_wasm::ModuleEnvironment<'data> for ModuleEnvironment<'data
|
|||||||
.module
|
.module
|
||||||
.imported_memories
|
.imported_memories
|
||||||
.push((String::from(module), String::from(field)));
|
.push((String::from(module), String::from(field)));
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_global_import(&mut self, global: Global, module: &str, field: &str) {
|
fn declare_global_import(
|
||||||
|
&mut self,
|
||||||
|
global: Global,
|
||||||
|
module: &str,
|
||||||
|
field: &str,
|
||||||
|
) -> WasmResult<()> {
|
||||||
debug_assert_eq!(
|
debug_assert_eq!(
|
||||||
self.result.module.globals.len(),
|
self.result.module.globals.len(),
|
||||||
self.result.module.imported_globals.len(),
|
self.result.module.imported_globals.len(),
|
||||||
@@ -160,16 +180,18 @@ impl<'data> cranelift_wasm::ModuleEnvironment<'data> for ModuleEnvironment<'data
|
|||||||
.module
|
.module
|
||||||
.imported_globals
|
.imported_globals
|
||||||
.push((String::from(module), String::from(field)));
|
.push((String::from(module), String::from(field)));
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn finish_imports(&mut self) {
|
fn finish_imports(&mut self) -> WasmResult<()> {
|
||||||
self.result.module.imported_funcs.shrink_to_fit();
|
self.result.module.imported_funcs.shrink_to_fit();
|
||||||
self.result.module.imported_tables.shrink_to_fit();
|
self.result.module.imported_tables.shrink_to_fit();
|
||||||
self.result.module.imported_memories.shrink_to_fit();
|
self.result.module.imported_memories.shrink_to_fit();
|
||||||
self.result.module.imported_globals.shrink_to_fit();
|
self.result.module.imported_globals.shrink_to_fit();
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reserve_func_types(&mut self, num: u32) {
|
fn reserve_func_types(&mut self, num: u32) -> WasmResult<()> {
|
||||||
self.result
|
self.result
|
||||||
.module
|
.module
|
||||||
.functions
|
.functions
|
||||||
@@ -177,92 +199,107 @@ impl<'data> cranelift_wasm::ModuleEnvironment<'data> for ModuleEnvironment<'data
|
|||||||
self.result
|
self.result
|
||||||
.function_body_inputs
|
.function_body_inputs
|
||||||
.reserve_exact(usize::try_from(num).unwrap());
|
.reserve_exact(usize::try_from(num).unwrap());
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_func_type(&mut self, sig_index: SignatureIndex) {
|
fn declare_func_type(&mut self, sig_index: SignatureIndex) -> WasmResult<()> {
|
||||||
self.result.module.functions.push(sig_index);
|
self.result.module.functions.push(sig_index);
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reserve_tables(&mut self, num: u32) {
|
fn reserve_tables(&mut self, num: u32) -> WasmResult<()> {
|
||||||
self.result
|
self.result
|
||||||
.module
|
.module
|
||||||
.table_plans
|
.table_plans
|
||||||
.reserve_exact(usize::try_from(num).unwrap());
|
.reserve_exact(usize::try_from(num).unwrap());
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_table(&mut self, table: Table) {
|
fn declare_table(&mut self, table: Table) -> WasmResult<()> {
|
||||||
let plan = TablePlan::for_table(table, &self.result.tunables);
|
let plan = TablePlan::for_table(table, &self.result.tunables);
|
||||||
self.result.module.table_plans.push(plan);
|
self.result.module.table_plans.push(plan);
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reserve_memories(&mut self, num: u32) {
|
fn reserve_memories(&mut self, num: u32) -> WasmResult<()> {
|
||||||
self.result
|
self.result
|
||||||
.module
|
.module
|
||||||
.memory_plans
|
.memory_plans
|
||||||
.reserve_exact(usize::try_from(num).unwrap());
|
.reserve_exact(usize::try_from(num).unwrap());
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_memory(&mut self, memory: Memory) {
|
fn declare_memory(&mut self, memory: Memory) -> WasmResult<()> {
|
||||||
let plan = MemoryPlan::for_memory(memory, &self.result.tunables);
|
let plan = MemoryPlan::for_memory(memory, &self.result.tunables);
|
||||||
self.result.module.memory_plans.push(plan);
|
self.result.module.memory_plans.push(plan);
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reserve_globals(&mut self, num: u32) {
|
fn reserve_globals(&mut self, num: u32) -> WasmResult<()> {
|
||||||
self.result
|
self.result
|
||||||
.module
|
.module
|
||||||
.globals
|
.globals
|
||||||
.reserve_exact(usize::try_from(num).unwrap());
|
.reserve_exact(usize::try_from(num).unwrap());
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_global(&mut self, global: Global) {
|
fn declare_global(&mut self, global: Global) -> WasmResult<()> {
|
||||||
self.result.module.globals.push(global);
|
self.result.module.globals.push(global);
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reserve_exports(&mut self, num: u32) {
|
fn reserve_exports(&mut self, num: u32) -> WasmResult<()> {
|
||||||
self.result
|
self.result
|
||||||
.module
|
.module
|
||||||
.exports
|
.exports
|
||||||
.reserve(usize::try_from(num).unwrap());
|
.reserve(usize::try_from(num).unwrap());
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_func_export(&mut self, func_index: FuncIndex, name: &str) {
|
fn declare_func_export(&mut self, func_index: FuncIndex, name: &str) -> WasmResult<()> {
|
||||||
self.result
|
self.result
|
||||||
.module
|
.module
|
||||||
.exports
|
.exports
|
||||||
.insert(String::from(name), Export::Function(func_index));
|
.insert(String::from(name), Export::Function(func_index));
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_table_export(&mut self, table_index: TableIndex, name: &str) {
|
fn declare_table_export(&mut self, table_index: TableIndex, name: &str) -> WasmResult<()> {
|
||||||
self.result
|
self.result
|
||||||
.module
|
.module
|
||||||
.exports
|
.exports
|
||||||
.insert(String::from(name), Export::Table(table_index));
|
.insert(String::from(name), Export::Table(table_index));
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_memory_export(&mut self, memory_index: MemoryIndex, name: &str) {
|
fn declare_memory_export(&mut self, memory_index: MemoryIndex, name: &str) -> WasmResult<()> {
|
||||||
self.result
|
self.result
|
||||||
.module
|
.module
|
||||||
.exports
|
.exports
|
||||||
.insert(String::from(name), Export::Memory(memory_index));
|
.insert(String::from(name), Export::Memory(memory_index));
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_global_export(&mut self, global_index: GlobalIndex, name: &str) {
|
fn declare_global_export(&mut self, global_index: GlobalIndex, name: &str) -> WasmResult<()> {
|
||||||
self.result
|
self.result
|
||||||
.module
|
.module
|
||||||
.exports
|
.exports
|
||||||
.insert(String::from(name), Export::Global(global_index));
|
.insert(String::from(name), Export::Global(global_index));
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_start_func(&mut self, func_index: FuncIndex) {
|
fn declare_start_func(&mut self, func_index: FuncIndex) -> WasmResult<()> {
|
||||||
debug_assert!(self.result.module.start_func.is_none());
|
debug_assert!(self.result.module.start_func.is_none());
|
||||||
self.result.module.start_func = Some(func_index);
|
self.result.module.start_func = Some(func_index);
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reserve_table_elements(&mut self, num: u32) {
|
fn reserve_table_elements(&mut self, num: u32) -> WasmResult<()> {
|
||||||
self.result
|
self.result
|
||||||
.module
|
.module
|
||||||
.table_elements
|
.table_elements
|
||||||
.reserve_exact(usize::try_from(num).unwrap());
|
.reserve_exact(usize::try_from(num).unwrap());
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_table_elements(
|
fn declare_table_elements(
|
||||||
@@ -271,13 +308,14 @@ impl<'data> cranelift_wasm::ModuleEnvironment<'data> for ModuleEnvironment<'data
|
|||||||
base: Option<GlobalIndex>,
|
base: Option<GlobalIndex>,
|
||||||
offset: usize,
|
offset: usize,
|
||||||
elements: Box<[FuncIndex]>,
|
elements: Box<[FuncIndex]>,
|
||||||
) {
|
) -> WasmResult<()> {
|
||||||
self.result.module.table_elements.push(TableElements {
|
self.result.module.table_elements.push(TableElements {
|
||||||
table_index,
|
table_index,
|
||||||
base,
|
base,
|
||||||
offset,
|
offset,
|
||||||
elements,
|
elements,
|
||||||
});
|
});
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn define_function_body(
|
fn define_function_body(
|
||||||
@@ -292,10 +330,11 @@ impl<'data> cranelift_wasm::ModuleEnvironment<'data> for ModuleEnvironment<'data
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reserve_data_initializers(&mut self, num: u32) {
|
fn reserve_data_initializers(&mut self, num: u32) -> WasmResult<()> {
|
||||||
self.result
|
self.result
|
||||||
.data_initializers
|
.data_initializers
|
||||||
.reserve_exact(usize::try_from(num).unwrap());
|
.reserve_exact(usize::try_from(num).unwrap());
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn declare_data_initialization(
|
fn declare_data_initialization(
|
||||||
@@ -304,7 +343,7 @@ impl<'data> cranelift_wasm::ModuleEnvironment<'data> for ModuleEnvironment<'data
|
|||||||
base: Option<GlobalIndex>,
|
base: Option<GlobalIndex>,
|
||||||
offset: usize,
|
offset: usize,
|
||||||
data: &'data [u8],
|
data: &'data [u8],
|
||||||
) {
|
) -> WasmResult<()> {
|
||||||
self.result.data_initializers.push(DataInitializer {
|
self.result.data_initializers.push(DataInitializer {
|
||||||
location: DataInitializerLocation {
|
location: DataInitializerLocation {
|
||||||
memory_index,
|
memory_index,
|
||||||
@@ -313,6 +352,7 @@ impl<'data> cranelift_wasm::ModuleEnvironment<'data> for ModuleEnvironment<'data
|
|||||||
},
|
},
|
||||||
data,
|
data,
|
||||||
});
|
});
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "wasmtime-interface-types"
|
name = "wasmtime-interface-types"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
authors = ["The Wasmtime Project Developers"]
|
authors = ["The Wasmtime Project Developers"]
|
||||||
publish = false
|
publish = false
|
||||||
description = "Support for wasm interface types with wasmtime"
|
description = "Support for wasm interface types with wasmtime"
|
||||||
@@ -12,10 +12,10 @@ readme = "README.md"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
cranelift-codegen = "0.38.0"
|
cranelift-codegen = "0.40.0"
|
||||||
failure = "0.1"
|
failure = "0.1"
|
||||||
walrus = "0.11.0"
|
walrus = "0.11.0"
|
||||||
wasmparser = "0.35"
|
wasmparser = "0.36.0"
|
||||||
wasm-webidl-bindings = "0.4.0"
|
wasm-webidl-bindings = "0.4.0"
|
||||||
wasmtime-jit = { path = '../wasmtime-jit' }
|
wasmtime-jit = { path = '../wasmtime-jit' }
|
||||||
wasmtime-runtime = { path = '../wasmtime-runtime' }
|
wasmtime-runtime = { path = '../wasmtime-runtime' }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "wasmtime-jit"
|
name = "wasmtime-jit"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
authors = ["The Wasmtime Project Developers"]
|
authors = ["The Wasmtime Project Developers"]
|
||||||
publish = false
|
publish = false
|
||||||
description = "JIT-style execution for WebAsssembly code in Cranelift"
|
description = "JIT-style execution for WebAsssembly code in Cranelift"
|
||||||
@@ -12,10 +12,10 @@ readme = "README.md"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
cranelift-codegen = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-codegen = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-entity = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-entity = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-wasm = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-wasm = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-frontend = "0.38.0"
|
cranelift-frontend = "0.40.0"
|
||||||
wasmtime-environ = { path = "../wasmtime-environ", default-features = false }
|
wasmtime-environ = { path = "../wasmtime-environ", default-features = false }
|
||||||
wasmtime-runtime = { path = "../wasmtime-runtime", default-features = false }
|
wasmtime-runtime = { path = "../wasmtime-runtime", default-features = false }
|
||||||
wasmtime-debug = { path = "../wasmtime-debug", default-features = false }
|
wasmtime-debug = { path = "../wasmtime-debug", default-features = false }
|
||||||
@@ -24,7 +24,7 @@ failure = { version = "0.1.3", default-features = false }
|
|||||||
failure_derive = { version = "0.1.3", default-features = false }
|
failure_derive = { version = "0.1.3", default-features = false }
|
||||||
target-lexicon = { version = "0.4.0", default-features = false }
|
target-lexicon = { version = "0.4.0", default-features = false }
|
||||||
hashbrown = { version = "0.6.0", optional = true }
|
hashbrown = { version = "0.6.0", optional = true }
|
||||||
wasmparser = "0.35.1"
|
wasmparser = "0.36.0"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["std"]
|
default = ["std"]
|
||||||
|
|||||||
@@ -270,8 +270,15 @@ fn make_trampoline(
|
|||||||
let mut code_buf: Vec<u8> = Vec::new();
|
let mut code_buf: Vec<u8> = Vec::new();
|
||||||
let mut reloc_sink = RelocSink {};
|
let mut reloc_sink = RelocSink {};
|
||||||
let mut trap_sink = binemit::NullTrapSink {};
|
let mut trap_sink = binemit::NullTrapSink {};
|
||||||
|
let mut stackmap_sink = binemit::NullStackmapSink {};
|
||||||
context
|
context
|
||||||
.compile_and_emit(isa, &mut code_buf, &mut reloc_sink, &mut trap_sink)
|
.compile_and_emit(
|
||||||
|
isa,
|
||||||
|
&mut code_buf,
|
||||||
|
&mut reloc_sink,
|
||||||
|
&mut trap_sink,
|
||||||
|
&mut stackmap_sink,
|
||||||
|
)
|
||||||
.map_err(|error| SetupError::Compile(CompileError::Codegen(error)))?;
|
.map_err(|error| SetupError::Compile(CompileError::Codegen(error)))?;
|
||||||
|
|
||||||
Ok(code_memory
|
Ok(code_memory
|
||||||
|
|||||||
@@ -68,7 +68,6 @@ impl Into<ValidatingParserConfig> for Features {
|
|||||||
enable_simd: self.simd,
|
enable_simd: self.simd,
|
||||||
enable_multi_value: self.multi_value,
|
enable_multi_value: self.multi_value,
|
||||||
},
|
},
|
||||||
mutable_global_imports: true,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "wasmtime-obj"
|
name = "wasmtime-obj"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
authors = ["The Wasmtime Project Developers"]
|
authors = ["The Wasmtime Project Developers"]
|
||||||
description = "Native object file output for WebAsssembly code in Wasmtime"
|
description = "Native object file output for WebAsssembly code in Wasmtime"
|
||||||
publish = false
|
publish = false
|
||||||
@@ -12,8 +12,8 @@ readme = "README.md"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
cranelift-codegen = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-codegen = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-entity = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-entity = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-wasm = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-wasm = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
wasmtime-environ = { path = "../wasmtime-environ" }
|
wasmtime-environ = { path = "../wasmtime-environ" }
|
||||||
faerie = "0.10.1"
|
faerie = "0.10.1"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "wasmtime-runtime"
|
name = "wasmtime-runtime"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
authors = ["The Wasmtime Project Developers"]
|
authors = ["The Wasmtime Project Developers"]
|
||||||
publish = false
|
publish = false
|
||||||
description = "Runtime library support for Wasmtime"
|
description = "Runtime library support for Wasmtime"
|
||||||
@@ -12,9 +12,9 @@ readme = "README.md"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
cranelift-codegen = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-codegen = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-entity = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-entity = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-wasm = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-wasm = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
wasmtime-environ = { path = "../wasmtime-environ", default-features = false }
|
wasmtime-environ = { path = "../wasmtime-environ", default-features = false }
|
||||||
region = "2.0.0"
|
region = "2.0.0"
|
||||||
lazy_static = "1.2.0"
|
lazy_static = "1.2.0"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "wasmtime-wasi-c"
|
name = "wasmtime-wasi-c"
|
||||||
version = "0.0.0"
|
version = "0.2.0"
|
||||||
authors = ["The Cranelift Project Developers"]
|
authors = ["The Cranelift Project Developers"]
|
||||||
publish = false
|
publish = false
|
||||||
description = "WASI API support for Wasmtime"
|
description = "WASI API support for Wasmtime"
|
||||||
@@ -13,9 +13,9 @@ readme = "README.md"
|
|||||||
wasmtime-runtime = { path = "../wasmtime-runtime" }
|
wasmtime-runtime = { path = "../wasmtime-runtime" }
|
||||||
wasmtime-environ = { path = "../wasmtime-environ" }
|
wasmtime-environ = { path = "../wasmtime-environ" }
|
||||||
wasmtime-jit = { path = "../wasmtime-jit" }
|
wasmtime-jit = { path = "../wasmtime-jit" }
|
||||||
cranelift-codegen = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-codegen = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-entity = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-entity = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-wasm = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-wasm = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
target-lexicon = "0.4.0"
|
target-lexicon = "0.4.0"
|
||||||
log = { version = "0.4.8", default-features = false }
|
log = { version = "0.4.8", default-features = false }
|
||||||
libc = "0.2.60"
|
libc = "0.2.60"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "wasmtime-wasi"
|
name = "wasmtime-wasi"
|
||||||
version = "0.0.0"
|
version = "0.2.0"
|
||||||
authors = ["The Cranelift Project Developers"]
|
authors = ["The Cranelift Project Developers"]
|
||||||
publish = false
|
publish = false
|
||||||
description = "WASI API support for Wasmtime"
|
description = "WASI API support for Wasmtime"
|
||||||
@@ -14,9 +14,9 @@ wasmtime-runtime = { path = "../wasmtime-runtime" }
|
|||||||
wasmtime-environ = { path = "../wasmtime-environ" }
|
wasmtime-environ = { path = "../wasmtime-environ" }
|
||||||
wasmtime-jit = { path = "../wasmtime-jit" }
|
wasmtime-jit = { path = "../wasmtime-jit" }
|
||||||
wasi-common = { git = "https://github.com/CraneStation/wasi-common", rev = "8ea7a983d8b1364e5f62d2adf0e74b3b8db1c9b3"}
|
wasi-common = { git = "https://github.com/CraneStation/wasi-common", rev = "8ea7a983d8b1364e5f62d2adf0e74b3b8db1c9b3"}
|
||||||
cranelift-codegen = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-codegen = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-entity = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-entity = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-wasm = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-wasm = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
target-lexicon = "0.4.0"
|
target-lexicon = "0.4.0"
|
||||||
log = { version = "0.4.8", default-features = false }
|
log = { version = "0.4.8", default-features = false }
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "wasmtime-wast"
|
name = "wasmtime-wast"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
authors = ["The Wasmtime Project Developers"]
|
authors = ["The Wasmtime Project Developers"]
|
||||||
publish = false
|
publish = false
|
||||||
description = "wast testing support for wasmtime"
|
description = "wast testing support for wasmtime"
|
||||||
@@ -12,13 +12,13 @@ readme = "README.md"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
cranelift-codegen = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-codegen = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-wasm = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-wasm = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
cranelift-entity = { version = "0.38.0", features = ["enable-serde"] }
|
cranelift-entity = { version = "0.40.0", features = ["enable-serde"] }
|
||||||
wasmtime-jit = { path = "../wasmtime-jit" }
|
wasmtime-jit = { path = "../wasmtime-jit" }
|
||||||
wasmtime-runtime = { path = "../wasmtime-runtime" }
|
wasmtime-runtime = { path = "../wasmtime-runtime" }
|
||||||
wasmtime-environ = { path = "../wasmtime-environ" }
|
wasmtime-environ = { path = "../wasmtime-environ" }
|
||||||
wabt = "0.7"
|
wabt = "0.9.1"
|
||||||
target-lexicon = "0.4.0"
|
target-lexicon = "0.4.0"
|
||||||
failure = { version = "0.1.3", default-features = false }
|
failure = { version = "0.1.3", default-features = false }
|
||||||
failure_derive = { version = "0.1.3", default-features = false }
|
failure_derive = { version = "0.1.3", default-features = false }
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ fn runtime_value(v: Value) -> RuntimeValue {
|
|||||||
Value::I64(x) => RuntimeValue::I64(x),
|
Value::I64(x) => RuntimeValue::I64(x),
|
||||||
Value::F32(x) => RuntimeValue::F32(x.to_bits()),
|
Value::F32(x) => RuntimeValue::F32(x.to_bits()),
|
||||||
Value::F64(x) => RuntimeValue::F64(x.to_bits()),
|
Value::F64(x) => RuntimeValue::F64(x.to_bits()),
|
||||||
|
Value::V128(_) => unimplemented!("SIMD"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -295,7 +296,7 @@ impl WastContext {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CommandKind::AssertExhaustion { action } => {
|
CommandKind::AssertExhaustion { action, message } => {
|
||||||
match self.perform_action(action).map_err(|error| WastFileError {
|
match self.perform_action(action).map_err(|error| WastFileError {
|
||||||
filename: filename.to_string(),
|
filename: filename.to_string(),
|
||||||
line,
|
line,
|
||||||
@@ -311,10 +312,12 @@ impl WastContext {
|
|||||||
)),
|
)),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
ActionOutcome::Trapped { message } => {
|
ActionOutcome::Trapped {
|
||||||
|
message: trap_message,
|
||||||
|
} => {
|
||||||
println!(
|
println!(
|
||||||
"{}:{}: TODO: Check the assert_exhaustion message: {}",
|
"{}:{}: TODO: Check the assert_exhaustion message: expected {}, got {}",
|
||||||
filename, line, message
|
filename, line, message, trap_message
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user