Rename wasmtime-runtime to wasmtime-environ.
This mirrors changes in cranelift.
This commit is contained in:
@@ -19,7 +19,7 @@ path = "src/wasm2obj.rs"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
cranelift-codegen = "0.18.1"
|
cranelift-codegen = "0.18.1"
|
||||||
cranelift-native = "0.18.1"
|
cranelift-native = "0.18.1"
|
||||||
wasmtime-runtime = { path = "lib/runtime" }
|
wasmtime-environ = { path = "lib/environ" }
|
||||||
wasmtime-execute = { path = "lib/execute" }
|
wasmtime-execute = { path = "lib/execute" }
|
||||||
wasmtime-obj = { path = "lib/obj" }
|
wasmtime-obj = { path = "lib/obj" }
|
||||||
docopt = "1.0.0"
|
docopt = "1.0.0"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ publish = false
|
|||||||
cargo-fuzz = true
|
cargo-fuzz = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
wasmtime-runtime = { path = "../lib/runtime" }
|
wasmtime-environ = { path = "../lib/environ" }
|
||||||
wasmtime-execute = { path = "../lib/execute" }
|
wasmtime-execute = { path = "../lib/execute" }
|
||||||
cranelift-codegen = "0.18.1"
|
cranelift-codegen = "0.18.1"
|
||||||
cranelift-wasm = "0.18.1"
|
cranelift-wasm = "0.18.1"
|
||||||
|
|||||||
@@ -5,13 +5,13 @@ extern crate libfuzzer_sys;
|
|||||||
extern crate cranelift_codegen;
|
extern crate cranelift_codegen;
|
||||||
extern crate cranelift_wasm;
|
extern crate cranelift_wasm;
|
||||||
extern crate cranelift_native;
|
extern crate cranelift_native;
|
||||||
extern crate wasmtime_runtime;
|
extern crate wasmtime_environ;
|
||||||
extern crate wasmtime_execute;
|
extern crate wasmtime_execute;
|
||||||
extern crate wasmparser;
|
extern crate wasmparser;
|
||||||
|
|
||||||
use cranelift_codegen::settings;
|
use cranelift_codegen::settings;
|
||||||
use cranelift_wasm::translate_module;
|
use cranelift_wasm::translate_module;
|
||||||
use wasmtime_runtime::{ModuleEnvironment, Module};
|
use wasmtime_environ::{ModuleEnvironment, Module};
|
||||||
use wasmparser::{validate};
|
use wasmparser::{validate};
|
||||||
|
|
||||||
fuzz_target!(|data: &[u8]| {
|
fuzz_target!(|data: &[u8]| {
|
||||||
@@ -23,8 +23,8 @@ fuzz_target!(|data: &[u8]| {
|
|||||||
});
|
});
|
||||||
let isa = isa_builder.finish(settings::Flags::new(flag_builder));
|
let isa = isa_builder.finish(settings::Flags::new(flag_builder));
|
||||||
let mut module = Module::new();
|
let mut module = Module::new();
|
||||||
let mut runtime = ModuleEnvironment::new(&*isa, &mut module);
|
let mut environment = ModuleEnvironment::new(&*isa, &mut module);
|
||||||
let translation = match translate_module(&data, &mut runtime) {
|
let translation = match translate_module(&data, &mut environment) {
|
||||||
Ok(()) => (),
|
Ok(()) => (),
|
||||||
Err(_) => return,
|
Err(_) => return,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "wasmtime-runtime"
|
name = "wasmtime-environ"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
authors = ["The Cranelift Project Developers"]
|
authors = ["The Cranelift Project Developers"]
|
||||||
publish = false
|
publish = false
|
||||||
description = "Standalone runtime support for WebAsssembly code in Cranelift"
|
description = "Standalone environment support for WebAsssembly code in Cranelift"
|
||||||
repository = "https://github.com/sunfishcode/wasmtime"
|
repository = "https://github.com/sunfishcode/wasmtime"
|
||||||
license = "Apache-2.0 WITH LLVM-exception"
|
license = "Apache-2.0 WITH LLVM-exception"
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ pub struct Compilation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Compilation {
|
impl Compilation {
|
||||||
/// Allocates the runtime data structures with the given flags.
|
/// Allocates the compilation result with the given function bodies.
|
||||||
pub fn new(functions: Vec<Vec<u8>>) -> Self {
|
pub fn new(functions: Vec<Vec<u8>>) -> Self {
|
||||||
Self { functions }
|
Self { functions }
|
||||||
}
|
}
|
||||||
@@ -21,8 +21,8 @@ pub fn get_func_name(func_index: FunctionIndex) -> ir::ExternalName {
|
|||||||
ir::ExternalName::user(0, func_index as u32)
|
ir::ExternalName::user(0, func_index as u32)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Object containing the standalone runtime information. To be passed after creation as argument
|
/// Object containing the standalone environment information. To be passed after creation as
|
||||||
/// to `compile_module`.
|
/// argument to `compile_module`.
|
||||||
pub struct ModuleEnvironment<'data, 'module> {
|
pub struct ModuleEnvironment<'data, 'module> {
|
||||||
/// Compilation setting flags.
|
/// Compilation setting flags.
|
||||||
pub isa: &'module isa::TargetIsa,
|
pub isa: &'module isa::TargetIsa,
|
||||||
@@ -35,7 +35,7 @@ pub struct ModuleEnvironment<'data, 'module> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'data, 'module> ModuleEnvironment<'data, 'module> {
|
impl<'data, 'module> ModuleEnvironment<'data, 'module> {
|
||||||
/// Allocates the runtime data structures with the given isa.
|
/// Allocates the enironment data structures with the given isa.
|
||||||
pub fn new(isa: &'module isa::TargetIsa, module: &'module mut Module) -> Self {
|
pub fn new(isa: &'module isa::TargetIsa, module: &'module mut Module) -> Self {
|
||||||
Self {
|
Self {
|
||||||
isa,
|
isa,
|
||||||
@@ -119,7 +119,7 @@ impl<'module_environment> FuncEnvironment<'module_environment> {
|
|||||||
|
|
||||||
/// This trait is useful for
|
/// This trait is useful for
|
||||||
/// `cranelift_wasm::translate_module` because it
|
/// `cranelift_wasm::translate_module` because it
|
||||||
/// tells how to translate runtime-dependent wasm instructions. These functions should not be
|
/// tells how to translate enironment-dependent wasm instructions. These functions should not be
|
||||||
/// called by the user.
|
/// called by the user.
|
||||||
impl<'data, 'module> cranelift_wasm::ModuleEnvironment<'data>
|
impl<'data, 'module> cranelift_wasm::ModuleEnvironment<'data>
|
||||||
for ModuleEnvironment<'data, 'module>
|
for ModuleEnvironment<'data, 'module>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
//! Standalone runtime for WebAssembly using Cranelift. Provides functions to translate
|
//! Standalone environment for WebAssembly using Cranelift. Provides functions to translate
|
||||||
//! `get_global`, `set_global`, `current_memory`, `grow_memory`, `call_indirect` that hardcode in
|
//! `get_global`, `set_global`, `current_memory`, `grow_memory`, `call_indirect` that hardcode in
|
||||||
//! the translation the base addresses of regions of memory that will hold the globals, tables and
|
//! the translation the base addresses of regions of memory that will hold the globals, tables and
|
||||||
//! linear memories.
|
//! linear memories.
|
||||||
@@ -3,7 +3,7 @@ name = "wasmtime-execute"
|
|||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
authors = ["The Cranelift Project Developers"]
|
authors = ["The Cranelift Project Developers"]
|
||||||
publish = false
|
publish = false
|
||||||
description = "JIT-style runtime support for WebAsssembly code in Cranelift"
|
description = "JIT-style execution for WebAsssembly code in Cranelift"
|
||||||
repository = "https://github.com/sunfishcode/wasmtime"
|
repository = "https://github.com/sunfishcode/wasmtime"
|
||||||
license = "Apache-2.0 WITH LLVM-exception"
|
license = "Apache-2.0 WITH LLVM-exception"
|
||||||
|
|
||||||
@@ -11,4 +11,4 @@ license = "Apache-2.0 WITH LLVM-exception"
|
|||||||
cranelift-codegen = "0.18.1"
|
cranelift-codegen = "0.18.1"
|
||||||
cranelift-wasm = "0.18.1"
|
cranelift-wasm = "0.18.1"
|
||||||
region = "0.3.0"
|
region = "0.3.0"
|
||||||
wasmtime-runtime = { path = "../runtime" }
|
wasmtime-environ = { path = "../environ" }
|
||||||
|
|||||||
@@ -5,9 +5,10 @@ use region::protect;
|
|||||||
use region::Protection;
|
use region::Protection;
|
||||||
use std::mem::transmute;
|
use std::mem::transmute;
|
||||||
use std::ptr::write_unaligned;
|
use std::ptr::write_unaligned;
|
||||||
use wasmtime_runtime::{compile_module, Compilation, Module, ModuleTranslation, Relocation};
|
use wasmtime_environ::{compile_module, Compilation, Module, ModuleTranslation, Relocation};
|
||||||
|
|
||||||
/// Executes a module that has been translated with the `standalone::Runtime` runtime implementation.
|
/// Executes a module that has been translated with the `wasmtime-environ` environment
|
||||||
|
/// implementation.
|
||||||
pub fn compile_and_link_module<'data, 'module>(
|
pub fn compile_and_link_module<'data, 'module>(
|
||||||
isa: &TargetIsa,
|
isa: &TargetIsa,
|
||||||
translation: &ModuleTranslation<'data, 'module>,
|
translation: &ModuleTranslation<'data, 'module>,
|
||||||
@@ -56,7 +57,7 @@ fn relocate(compilation: &mut Compilation, relocations: &[Vec<Relocation>]) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Create the VmCtx data structure for the JIT'd code to use. This must
|
/// Create the VmCtx data structure for the JIT'd code to use. This must
|
||||||
/// match the VmCtx layout in the runtime.
|
/// match the VmCtx layout in the environment.
|
||||||
fn make_vmctx(instance: &mut Instance) -> Vec<*mut u8> {
|
fn make_vmctx(instance: &mut Instance) -> Vec<*mut u8> {
|
||||||
let mut memories = Vec::new();
|
let mut memories = Vec::new();
|
||||||
let mut vmctx = Vec::new();
|
let mut vmctx = Vec::new();
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
use cranelift_codegen::ir;
|
use cranelift_codegen::ir;
|
||||||
use cranelift_wasm::GlobalIndex;
|
use cranelift_wasm::GlobalIndex;
|
||||||
use wasmtime_runtime::{DataInitializer, Module, TableElements};
|
use wasmtime_environ::{DataInitializer, Module, TableElements};
|
||||||
|
|
||||||
const PAGE_SIZE: usize = 65536;
|
const PAGE_SIZE: usize = 65536;
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
extern crate cranelift_codegen;
|
extern crate cranelift_codegen;
|
||||||
extern crate cranelift_wasm;
|
extern crate cranelift_wasm;
|
||||||
extern crate region;
|
extern crate region;
|
||||||
extern crate wasmtime_runtime;
|
extern crate wasmtime_environ;
|
||||||
|
|
||||||
mod execute;
|
mod execute;
|
||||||
mod instance;
|
mod instance;
|
||||||
|
|||||||
@@ -7,5 +7,5 @@ license = "Apache-2.0 WITH LLVM-exception"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
cranelift-codegen = "0.18.1"
|
cranelift-codegen = "0.18.1"
|
||||||
wasmtime-runtime = { path = "../runtime" }
|
wasmtime-environ = { path = "../environ" }
|
||||||
faerie = "0.4.4"
|
faerie = "0.4.4"
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
use cranelift_codegen::settings;
|
use cranelift_codegen::settings;
|
||||||
use cranelift_codegen::settings::Configurable;
|
use cranelift_codegen::settings::Configurable;
|
||||||
use faerie::Artifact;
|
use faerie::Artifact;
|
||||||
use wasmtime_runtime;
|
use wasmtime_environ::{Module, Compilation, Relocations};
|
||||||
|
|
||||||
/// Emits a module that has been emitted with the `WasmRuntime` runtime
|
/// Emits a module that has been emitted with the `wasmtime-environ` environment
|
||||||
/// implementation to a native object file.
|
/// implementation to a native object file.
|
||||||
pub fn emit_module(
|
pub fn emit_module(
|
||||||
obj: &mut Artifact,
|
obj: &mut Artifact,
|
||||||
module: &wasmtime_runtime::Module,
|
module: &Module,
|
||||||
compilation: &wasmtime_runtime::Compilation,
|
compilation: &Compilation,
|
||||||
relocations: &wasmtime_runtime::Relocations,
|
relocations: &Relocations,
|
||||||
) -> Result<(), String> {
|
) -> Result<(), String> {
|
||||||
debug_assert!(
|
debug_assert!(
|
||||||
module.start_func.is_none() || module.start_func.unwrap() >= module.imported_funcs.len(),
|
module.start_func.is_none() || module.start_func.unwrap() >= module.imported_funcs.len(),
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
//! Object-file writing library using the wasmtime runtime.
|
//! Object-file writing library using the wasmtime environment.
|
||||||
|
|
||||||
#![deny(missing_docs, trivial_numeric_casts, unused_extern_crates, unstable_features)]
|
#![deny(missing_docs, trivial_numeric_casts, unused_extern_crates, unstable_features)]
|
||||||
#![warn(unused_import_braces)]
|
#![warn(unused_import_braces)]
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
extern crate cranelift_codegen;
|
extern crate cranelift_codegen;
|
||||||
extern crate faerie;
|
extern crate faerie;
|
||||||
extern crate wasmtime_runtime;
|
extern crate wasmtime_environ;
|
||||||
|
|
||||||
mod emit_module;
|
mod emit_module;
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ extern crate cranelift_codegen;
|
|||||||
extern crate cranelift_native;
|
extern crate cranelift_native;
|
||||||
extern crate docopt;
|
extern crate docopt;
|
||||||
extern crate wasmtime_execute;
|
extern crate wasmtime_execute;
|
||||||
extern crate wasmtime_runtime;
|
extern crate wasmtime_environ;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
extern crate tempdir;
|
extern crate tempdir;
|
||||||
@@ -40,7 +40,7 @@ use std::path::PathBuf;
|
|||||||
use std::process::{exit, Command};
|
use std::process::{exit, Command};
|
||||||
use tempdir::TempDir;
|
use tempdir::TempDir;
|
||||||
use wasmtime_execute::{compile_and_link_module, execute, Instance};
|
use wasmtime_execute::{compile_and_link_module, execute, Instance};
|
||||||
use wasmtime_runtime::{Module, ModuleEnvironment};
|
use wasmtime_environ::{Module, ModuleEnvironment};
|
||||||
|
|
||||||
const USAGE: &str = "
|
const USAGE: &str = "
|
||||||
Wasm to Cranelift IL translation utility.
|
Wasm to Cranelift IL translation utility.
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ extern crate cranelift_codegen;
|
|||||||
extern crate cranelift_native;
|
extern crate cranelift_native;
|
||||||
extern crate docopt;
|
extern crate docopt;
|
||||||
extern crate wasmtime_obj;
|
extern crate wasmtime_obj;
|
||||||
extern crate wasmtime_runtime;
|
extern crate wasmtime_environ;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
extern crate faerie;
|
extern crate faerie;
|
||||||
@@ -37,13 +37,13 @@ use std::path::Path;
|
|||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use std::process;
|
use std::process;
|
||||||
use wasmtime_obj::emit_module;
|
use wasmtime_obj::emit_module;
|
||||||
use wasmtime_runtime::compile_module;
|
use wasmtime_environ::{compile_module, Module, ModuleEnvironment};
|
||||||
|
|
||||||
const USAGE: &str = "
|
const USAGE: &str = "
|
||||||
Wasm to native object translation utility.
|
Wasm to native object translation utility.
|
||||||
Takes a binary WebAssembly module into a native object file.
|
Takes a binary WebAssembly module into a native object file.
|
||||||
The translation is dependent on the runtime chosen.
|
The translation is dependent on the environment chosen.
|
||||||
The default is a dummy runtime that produces placeholder values.
|
The default is a dummy environment that produces placeholder values.
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
wasm2obj <file> -o <output>
|
wasm2obj <file> -o <output>
|
||||||
@@ -103,8 +103,8 @@ fn handle_module(path: PathBuf, output: &str) -> Result<(), String> {
|
|||||||
|
|
||||||
let mut obj = Artifact::new(isa.triple().clone(), String::from(output));
|
let mut obj = Artifact::new(isa.triple().clone(), String::from(output));
|
||||||
|
|
||||||
let mut module = wasmtime_runtime::Module::new();
|
let mut module = Module::new();
|
||||||
let environ = wasmtime_runtime::ModuleEnvironment::new(&*isa, &mut module);
|
let environ = ModuleEnvironment::new(&*isa, &mut module);
|
||||||
let translation = environ.translate(&data).map_err(|e| e.to_string())?;
|
let translation = environ.translate(&data).map_err(|e| e.to_string())?;
|
||||||
|
|
||||||
// FIXME: We need to initialize memory in a way that supports alternate
|
// FIXME: We need to initialize memory in a way that supports alternate
|
||||||
|
|||||||
Reference in New Issue
Block a user