From 392239c7f522acb7ca5847a48dd9ab2480242924 Mon Sep 17 00:00:00 2001 From: Brian Cully Date: Tue, 6 Aug 2019 16:31:34 -0400 Subject: Add compatibilty with rust-stable. * Add feature flag for const-fn functionality, which simplifies some things and lets this crate run on architectures where atomic CAS isn't available (e.g., thumbv6). * Remove `const fn` where necessary to compile under rust-stable. * BREAKING CHANGE - Change signature of `Handler::replace` to take a mutable borrow. This is required because the underlying type is now a NonNull, which needs `mut`. The old behavior was never desired, but a consequence of trying to avoid `Option` by using a default handler. * Use lazy_static crate for initialization of Handler/HandlerArray. * Specify Sync for Handler. This is not amazing, since it isn't, but it's necessary for initialization in static contexts inside `lazy_static`. This should be fine, because any actual manipulation of the handler is done in unsafe functions. --- Cargo.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Cargo.toml') diff --git a/Cargo.toml b/Cargo.toml index 6d6f192..81c783b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,12 +14,13 @@ readme = "README.md" cortex-m = "~0.6" cortex-m-rt = "~0.6" compiletest_rs = "~0.3" +lazy_static = "~1.3" [target.'cfg(all(target_arch = "arm", target_os = "none"))'.dependencies] cortex-m = "~0.6" [features] -default = ["isr-32"] +default = ["isr-32", "compiletest_rs/stable"] const-fn = [] # Number of ISR closures to hold in a HandlerTable. This is pretty -- cgit v1.2.3