Remove dependency on the region crate (#4407)
This commit removes Wasmtime's dependency on the `region` crate. The motivation for this came about when I was updating dependencies and saw that `region` had a new major version at 3.0.0 as opposed to our currently used 2.3 track. In reviewing the use cases of `region` within Wasmtime I found two trends in particular which motivated this commit: * Some unix-specific areas of `wasmtime_runtime` use `rustix::mm::mprotect` instead of `region::protect` already. This means that the usage of `region::protect` for changing virtual memory protections was already inconsistent. * Many uses of `region::protect` were already in unix-specific regions which could make use of `rustix`. Overall I opted to remove the dependency on the `region` crate to avoid chasing its versions over time. Unix-specific changes of protections were easily changed to `rustix::mm::mprotect`. There were two locations where a windows/unix split is now required and I subjectively ruled "that seems ok". Finally removing `region` also meant that the "what is the current page size" query needed to be inlined into `wasmtime_runtime`, which I have also subjectively ruled "that seems fine". Finally one final refactoring here was that the `unix.rs` and `linux.rs` split for the pooling allocator was merged. These two files already only differed in one function so I slapped a `cfg_if!` in there to help reduce the duplication.
This commit is contained in:
@@ -14,7 +14,6 @@ edition = "2021"
|
||||
wasmtime-environ = { path = "../environ", version = "=0.40.0" }
|
||||
wasmtime-jit-debug = { path = "../jit-debug", version = "=0.40.0", features = ["perf_jitdump"], optional = true }
|
||||
wasmtime-runtime = { path = "../runtime", version = "=0.40.0" }
|
||||
region = "2.2.0"
|
||||
thiserror = "1.0.4"
|
||||
target-lexicon = { version = "0.12.0", default-features = false }
|
||||
anyhow = "1.0"
|
||||
|
||||
@@ -26,7 +26,7 @@ impl UnwindRegistration {
|
||||
unwind_len: usize,
|
||||
) -> Result<UnwindRegistration> {
|
||||
debug_assert_eq!(
|
||||
unwind_info as usize % region::page::size(),
|
||||
unwind_info as usize % wasmtime_runtime::page_size(),
|
||||
0,
|
||||
"The unwind info must always be aligned to a page"
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user