* Enable jitdump profiling support by default This the result of some of the investigation I was doing for #1017. I've done a number of refactorings here which culminated in a number of changes that all amount to what I think should result in jitdump support being enabled by default: * Pass in a list of finished functions instead of just a range to ensure that we're emitting jit dump data for a specific module rather than a whole `CodeMemory` which may have other modules. * Define `ProfilingStrategy` in the `wasmtime` crate to have everything locally-defined * Add support to the C API to enable profiling * Documentation added for profiling with jitdump to the book * Split out supported/unsupported files in `jitdump.rs` to avoid having lots of `#[cfg]`. * Make dependencies optional that are only used for `jitdump`. * Move initialization up-front to `JitDumpAgent::new()` instead of deferring it to the first module. * Pass around `Arc<dyn ProfilingAgent>` instead of `Option<Arc<Mutex<Box<dyn ProfilingAgent>>>>` The `jitdump` Cargo feature is now enabled by default which means that our published binaries, C API artifacts, and crates will support profiling at runtime by default. The support I don't think is fully fleshed out and working but I think it's probably in a good enough spot we can get users playing around with it!
86 lines
2.2 KiB
TOML
86 lines
2.2 KiB
TOML
[package]
|
|
name = "wasmtime-cli"
|
|
version = "0.12.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"
|
|
publish = false
|
|
|
|
[lib]
|
|
doctest = false
|
|
|
|
[[bin]]
|
|
name = "wasmtime"
|
|
path = "src/bin/wasmtime.rs"
|
|
doc = false
|
|
|
|
[dependencies]
|
|
# Enable all supported architectures by default.
|
|
wasmtime = { path = "crates/api", default-features = false }
|
|
wasmtime-debug = { path = "crates/debug" }
|
|
wasmtime-environ = { path = "crates/environ" }
|
|
wasmtime-jit = { path = "crates/jit" }
|
|
wasmtime-obj = { path = "crates/obj" }
|
|
wasmtime-wast = { path = "crates/wast" }
|
|
wasmtime-wasi = { path = "crates/wasi" }
|
|
wasi-common = { path = "crates/wasi-common" }
|
|
structopt = { version = "0.3.5", features = ["color", "suggestions"] }
|
|
faerie = "0.15.0"
|
|
anyhow = "1.0.19"
|
|
target-lexicon = { version = "0.10.0", default-features = false }
|
|
pretty_env_logger = "0.4.0"
|
|
file-per-thread-logger = "0.1.1"
|
|
wat = "1.0.10"
|
|
libc = "0.2.60"
|
|
rayon = "1.2.1"
|
|
|
|
[dev-dependencies]
|
|
wasmtime-runtime = { path = "crates/runtime" }
|
|
more-asserts = "0.2.1"
|
|
# This feature requires the wasm32-wasi target be installed. It enables
|
|
# wasm32-wasi integration tests. To enable, run
|
|
# `cargo test --features test-programs`.
|
|
test-programs = { path = "crates/test-programs" }
|
|
tempfile = "3.1.0"
|
|
filecheck = "0.5.0"
|
|
|
|
[build-dependencies]
|
|
anyhow = "1.0.19"
|
|
|
|
[profile.release.build-override]
|
|
opt-level = 0
|
|
|
|
[workspace]
|
|
members = [
|
|
"cranelift",
|
|
"crates/c-api",
|
|
"crates/fuzzing",
|
|
"crates/misc/py",
|
|
"crates/misc/run-examples",
|
|
"crates/misc/rust",
|
|
"crates/wiggle",
|
|
"examples/fib-debug/wasm",
|
|
"fuzz",
|
|
]
|
|
|
|
[features]
|
|
default = ["jitdump", "wasmtime/wat"]
|
|
lightbeam = [
|
|
"wasmtime-environ/lightbeam",
|
|
"wasmtime-jit/lightbeam",
|
|
"wasmtime-wast/lightbeam",
|
|
"wasmtime/lightbeam",
|
|
]
|
|
jitdump = ["wasmtime/jitdump"]
|
|
test_programs = ["test-programs/test_programs"]
|
|
|
|
[badges]
|
|
maintenance = { status = "actively-developed" }
|