Files
wasmtime/Cargo.toml
Peter Huene a2c439117a Implement user fault handling with userfaultfd on Linux.
This commit implements the `uffd` feature which turns on support for utilizing
the `userfaultfd` system call on Linux for the pooling instance allocator.

By handling page faults in userland, we are able to detect guard page accesses
without having to constantly change memory page protections.

This should help reduce the number of syscalls as well as kernel lock
contentions when many threads are allocating and deallocating instances.

Additionally, the user fault handler can lazy initialize linear
memories of an instance (implementation to come).
2021-03-04 18:18:52 -08:00

107 lines
3.1 KiB
TOML

[package]
name = "wasmtime-cli"
version = "0.24.0"
authors = ["The Wasmtime Project Developers"]
description = "Command-line interface for Wasmtime"
license = "Apache-2.0 WITH LLVM-exception"
documentation = "https://bytecodealliance.github.io/wasmtime/cli.html"
categories = ["wasm"]
keywords = ["webassembly", "wasm"]
repository = "https://github.com/bytecodealliance/wasmtime"
readme = "README.md"
edition = "2018"
default-run = "wasmtime"
[lib]
doctest = false
[[bin]]
name = "wasmtime"
path = "src/bin/wasmtime.rs"
doc = false
[dependencies]
# Enable all supported architectures by default.
wasmtime = { path = "crates/wasmtime", version = "0.24.0", default-features = false, features = ['cache'] }
wasmtime-cache = { path = "crates/cache", version = "0.24.0" }
wasmtime-debug = { path = "crates/debug", version = "0.24.0" }
wasmtime-environ = { path = "crates/environ", version = "0.24.0" }
wasmtime-jit = { path = "crates/jit", version = "0.24.0" }
wasmtime-obj = { path = "crates/obj", version = "0.24.0" }
wasmtime-wast = { path = "crates/wast", version = "0.24.0" }
wasmtime-wasi = { path = "crates/wasi", version = "0.24.0" }
wasmtime-wasi-crypto = { path = "crates/wasi-crypto", version = "0.24.0", optional = true }
wasmtime-wasi-nn = { path = "crates/wasi-nn", version = "0.24.0", optional = true }
wasi-common = { path = "crates/wasi-common", version = "0.24.0" }
wasi-cap-std-sync = { path = "crates/wasi-common/cap-std-sync", version = "0.24.0" }
structopt = { version = "0.3.5", features = ["color", "suggestions"] }
object = { version = "0.23.0", default-features = false, features = ["write"] }
anyhow = "1.0.19"
target-lexicon = { version = "0.11.0", default-features = false }
pretty_env_logger = "0.4.0"
file-per-thread-logger = "0.1.1"
wat = "1.0.36"
libc = "0.2.60"
log = "0.4.8"
rayon = "1.2.1"
humantime = "2.0.0"
wasmparser = "0.76.0"
cap-std = "0.13"
[dev-dependencies]
env_logger = "0.8.1"
filecheck = "0.5.0"
more-asserts = "0.2.1"
tempfile = "3.1.0"
test-programs = { path = "crates/test-programs" }
wasmtime-fuzzing = { path = "crates/fuzzing" }
wasmtime-runtime = { path = "crates/runtime" }
tracing-subscriber = "0.2.16"
wast = "35.0.0"
[build-dependencies]
anyhow = "1.0.19"
[profile.release.build-override]
opt-level = 0
[workspace]
members = [
"cranelift",
"crates/bench-api",
"crates/c-api",
"crates/fuzzing",
"crates/misc/run-examples",
"crates/misc/rust",
"crates/wiggle",
"crates/wiggle/wasmtime",
"crates/wasi-common",
"crates/wasi-common/cap-std-sync",
"examples/fib-debug/wasm",
"examples/wasi/wasm",
"fuzz",
]
[features]
default = ["jitdump", "wasmtime/wat", "wasmtime/parallel-compilation"]
lightbeam = ["wasmtime/lightbeam"]
jitdump = ["wasmtime/jitdump"]
vtune = ["wasmtime/vtune"]
wasi-crypto = ["wasmtime-wasi-crypto"]
wasi-nn = ["wasmtime-wasi-nn"]
uffd = ["wasmtime/uffd"]
# Try the experimental, work-in-progress new x86_64 backend. This is not stable
# as of June 2020.
experimental_x64 = ["wasmtime-jit/experimental_x64"]
[badges]
maintenance = { status = "actively-developed" }
[[test]]
name = "host_segfault"
harness = false
[profile.dev.package.backtrace]
debug = false # FIXME(#1813)