* cranelift: Add FlushInstructionCache for AArch64 on Windows This was previously done on #3426 for linux. * wasmtime: Add FlushInstructionCache for AArch64 on Windows This was previously done on #3426 for linux. * cranelift: Add MemoryUse flag to JIT Memory Manager This allows us to keep the icache flushing code self-contained and not leak implementation details. This also changes the windows icache flushing code to only flush pages that were previously unflushed. * Add jit-icache-coherence crate * cranelift: Use `jit-icache-coherence` * wasmtime: Use `jit-icache-coherence` * jit-icache-coherence: Make rustix feature additive Mutually exclusive features cause issues. * wasmtime: Remove rustix from wasmtime-jit We now use it via jit-icache-coherence * Rename wasmtime-jit-icache-coherency crate * Use cfg-if in wasmtime-jit-icache-coherency crate * Use inline instead of inline(always) * Add unsafe marker to clear_cache * Conditionally compile all rustix operations membarrier does not exist on MacOS * Publish `wasmtime-jit-icache-coherence` * Remove explicit windows check This is implied by the target_os = "windows" above * cranelift: Remove len != 0 check This is redundant as it is done in non_protected_allocations_iter * Comment cleanups Thanks @akirilov-arm! * Make clear_cache safe * Rename pipeline_flush to pipeline_flush_mt * Revert "Make clear_cache safe" This reverts commit 21165d81c9030ed9b291a1021a367214d2942c90. * More docs! * Fix pipeline_flush reference on clear_cache * Update more docs! * Move pipeline flush after `mprotect` calls Technically the `clear_cache` operation is a lie in AArch64, so move the pipeline flush after the `mprotect` calls so that it benefits from the implicit cache cleaning done by it. * wasmtime: Remove rustix backend from icache crate * wasmtime: Use libc for macos * wasmtime: Flush icache on all arch's for windows * wasmtime: Add flags to membarrier call
46 lines
1.3 KiB
TOML
46 lines
1.3 KiB
TOML
[package]
|
|
name = "wasmtime-jit"
|
|
version.workspace = true
|
|
authors.workspace = true
|
|
description = "JIT-style execution for WebAsssembly code in Cranelift"
|
|
documentation = "https://docs.rs/wasmtime-jit"
|
|
license = "Apache-2.0 WITH LLVM-exception"
|
|
categories = ["wasm"]
|
|
keywords = ["webassembly", "wasm"]
|
|
repository = "https://github.com/bytecodealliance/wasmtime"
|
|
edition.workspace = true
|
|
|
|
[dependencies]
|
|
wasmtime-environ = { workspace = true }
|
|
wasmtime-jit-debug = { workspace = true, features = ["perf_jitdump"], optional = true }
|
|
wasmtime-runtime = { workspace = true }
|
|
thiserror = "1.0.4"
|
|
target-lexicon = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
cfg-if = "1.0"
|
|
gimli = { workspace = true }
|
|
object = { workspace = true }
|
|
serde = { version = "1.0.94", features = ["derive"] }
|
|
addr2line = { version = "0.17.0", default-features = false }
|
|
bincode = "1.2.1"
|
|
rustc-demangle = "0.1.16"
|
|
cpp_demangle = "0.3.2"
|
|
log = { workspace = true }
|
|
wasmtime-jit-icache-coherence = { workspace = true }
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies.windows-sys]
|
|
workspace = true
|
|
features = [
|
|
"Win32_System_Diagnostics_Debug",
|
|
]
|
|
|
|
[target.'cfg(target_arch = "x86_64")'.dependencies]
|
|
ittapi = { version = "0.3.0", optional = true }
|
|
|
|
[features]
|
|
jitdump = ['wasmtime-jit-debug']
|
|
vtune = ['ittapi']
|
|
|
|
[badges]
|
|
maintenance = { status = "actively-developed" }
|