You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace backtrace crate with stabilized std::backtrace implementation (#186)
* Replace `backtrace` crate with stabilized `std::backtrace` implementation
Rust 1.65 [stabilized `std::backtrace::Backtrace`], which we can use in
place of the `backtrace` crate to reduce our dependency stack.
Normally `Backtrace::capture()` would listen to the `RUST_BACKTRACE`
and `RUST_LIB_BACKTRACE` environment variables, but this is unsuitable
for us as capturing backtraces is configured via boolean debug
feature flags in the `AllocatorDebugSettings` struct. Fortunately
`Backtrace::force_capture()` exists which circumvents these env var
checks and always returns a backtrace, and is hence used in the codebase
here.
Unfortuantely the type no longer implements `Clone` like
`backtrace::Backtrace`, requiring us to wrap it in an `Arc` (because
most of our types are thread-safe) to clone the `Backtrace` around
various (sub)allocations and statistics reports.
[stabilized `std::backtrace::Backtrace`]: https://blog.rust-lang.org/2022/11/03/Rust-1.65.0.html#stabilized-apis
* Test MSRV in CI
* Bump edition to 2021 to match MSRV 1.65
The MSRV for this crate and the `vulkan` and `d3d12` features is Rust 1.65. Any other features such as the `visualizer` (with all the `egui` dependencies) may have a higher requirement and are not tested in our CI.
The MSRV for this crate and the `vulkan` and `d3d12` features is Rust 1.65. Any other features such as the `visualizer` (with all the `egui` dependencies) may have a higher requirement and are not tested in our CI.
0 commit comments