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
{{ message }}
Repository navigation
RFC: Use --cfg reduce_unsafe to signal preference of safe code over fast code #35
Alternatively a feature flag could be used instead and could be fine-grain for certain code.
Context: I've been using a custom RUSTC_WRAPPER and plan to promote this shell with Rust and add some more features. This complements cargo geiger, cargo crev and could be an early feature of cargo sandbox.
In addition to showing all unsafe code this also shows deprecation warnings and any other warnings or errors which are normally hidden because cargo uses --cap-lints allow (before RUSTFLAGS where it cannot be overridden without RUSTC_WRAPPER) to minimize damage of rustc's own changes.
(Use -Funsafe-code to catch uses of #[allow(unsafe_code)])
changed the title [-]Use `--cfg reduce_unsafe` to signal preference of safe code over fast code[/-][+]RFC: Use `--cfg reduce_unsafe` to signal preference of safe code over fast code[/+]on Jan 17, 2020
# if this crate is not forbidden, then
[package.metadata.unsafe_policy]
# default is forbid (when the meta entry is present)# allow foo to use unsafe codefoo = "allow"# ask bar to reduce its unsafe codebar = "reduce"# forbid bar's dependency 'baz' from using unsafe codebar.baz = "forbid"
[package.metadata.unsafe_policy.'cfg(feature="something_which_needs_unsafe")']
quz = "allow"
I think reduce_unsafe might mean wildly varying things to different crates, but your cargo wrapper and unsafe_policy idea give the right direction.
You might permit the unsafe code within a specific version or with a specific digital signature, but accept future crate versions that left alone the modules satisfying that restriction. I suppose micro crates like arrayref that release new versions rarely help achieve this more simply.
Activity
[-]Use `--cfg reduce_unsafe` to signal preference of safe code over fast code[/-][+]RFC: Use `--cfg reduce_unsafe` to signal preference of safe code over fast code[/+]WildCryptoFox commentedon Jan 18, 2020
Perhaps respect the following hints from crates.
burdges commentedon Jun 15, 2020
I think
reduce_unsafemight mean wildly varying things to different crates, but your cargo wrapper andunsafe_policyidea give the right direction.You might permit the unsafe code within a specific version or with a specific digital signature, but accept future crate versions that left alone the modules satisfying that restriction. I suppose micro crates like arrayref that release new versions rarely help achieve this more simply.