Make regalloc2 #![no_std] (#119)
* Make regalloc2 `#![no_std]` This crate doesn't require any features from the standard library, so it can be made `no_std` to allow it to be used in environments that can't use the Rust standard library. This PR mainly performs the following mechanical changes: - `std::collections` is replaced with `alloc::collections`. - `std::*` is replaced with `core::*`. - `Vec`, `vec!`, `format!` and `ToString` are imported when needed since they are no longer in the prelude. - `HashSet` and `HashMap` are taken from the `hashbrown` crate, which is the same implementation that the standard library uses. - `FxHashSet` and `FxHashMap` are typedefs in `lib.rs` that are based on the `hashbrown` types. The only functional change is that `RegAllocError` no longer implements the `Error` trait since that is not available in `core`. Dependencies were adjusted to not require `std` and this is tested in CI by building against the `thumbv6m-none-eabi` target that doesn't have `std`. * Add the Error trait impl back under a "std" feature
This commit is contained in:
15
Cargo.toml
15
Cargo.toml
@@ -13,11 +13,15 @@ repository = "https://github.com/bytecodealliance/regalloc2"
|
||||
[dependencies]
|
||||
log = { version = "0.4.8", default-features = false }
|
||||
smallvec = { version = "1.6.1", features = ["union"] }
|
||||
fxhash = "0.2.1"
|
||||
slice-group-by = "0.3.0"
|
||||
rustc-hash = { version = "1.1.0", default-features = false }
|
||||
slice-group-by = { version = "0.3.0", default-features = false }
|
||||
hashbrown = "0.13.2"
|
||||
|
||||
# Optional serde support, enabled by feature below.
|
||||
serde = { version = "1.0.136", features = ["derive"], optional = true }
|
||||
serde = { version = "1.0.136", features = [
|
||||
"derive",
|
||||
"alloc",
|
||||
], default-features = false, optional = true }
|
||||
|
||||
# The below are only needed for fuzzing.
|
||||
libfuzzer-sys = { version = "0.4.2", optional = true }
|
||||
@@ -29,7 +33,10 @@ debug-assertions = true
|
||||
overflow-checks = true
|
||||
|
||||
[features]
|
||||
default = []
|
||||
default = ["std"]
|
||||
|
||||
# Enables std-specific features such as the Error trait for RegAllocError.
|
||||
std = []
|
||||
|
||||
# Enables generation of DefAlloc edits for the checker.
|
||||
checker = []
|
||||
|
||||
Reference in New Issue
Block a user