fix smoke from builds produced by --all-features
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
parent
fdc9a9a1b8
commit
74832bdc47
9 changed files with 21 additions and 22 deletions
11
Cargo.toml
11
Cargo.toml
|
@ -526,7 +526,6 @@ inherits = "release"
|
||||||
# To enable hot-reloading:
|
# To enable hot-reloading:
|
||||||
# 1. Uncomment all of the rustflags here.
|
# 1. Uncomment all of the rustflags here.
|
||||||
# 2. Uncomment crate-type=dylib in src/*/Cargo.toml and deps/rust-rocksdb/Cargo.toml
|
# 2. Uncomment crate-type=dylib in src/*/Cargo.toml and deps/rust-rocksdb/Cargo.toml
|
||||||
# 2. Build with the 'mods' feature.
|
|
||||||
#
|
#
|
||||||
# opt-level, mir-opt-level, validate-mir are not known to interfere with reloading
|
# opt-level, mir-opt-level, validate-mir are not known to interfere with reloading
|
||||||
# and can be raised if build times are tolerable.
|
# and can be raised if build times are tolerable.
|
||||||
|
@ -540,6 +539,7 @@ incremental = true
|
||||||
codegen-units = 64
|
codegen-units = 64
|
||||||
rpath = true
|
rpath = true
|
||||||
#rustflags = [
|
#rustflags = [
|
||||||
|
# '--cfg', 'conduit_mods',
|
||||||
# '-Ztime-passes',
|
# '-Ztime-passes',
|
||||||
# '-Zmir-opt-level=0',
|
# '-Zmir-opt-level=0',
|
||||||
# '-Zvalidate-mir=false',
|
# '-Zvalidate-mir=false',
|
||||||
|
@ -560,6 +560,7 @@ rpath = true
|
||||||
inherits = "dev"
|
inherits = "dev"
|
||||||
incremental = false
|
incremental = false
|
||||||
#rustflags = [
|
#rustflags = [
|
||||||
|
# '--cfg', 'conduit_mods',
|
||||||
# '-Ztime-passes',
|
# '-Ztime-passes',
|
||||||
# '-Zmir-opt-level=0',
|
# '-Zmir-opt-level=0',
|
||||||
# '-Ztls-model=initial-exec',
|
# '-Ztls-model=initial-exec',
|
||||||
|
@ -580,6 +581,7 @@ incremental = false
|
||||||
inherits = "dev"
|
inherits = "dev"
|
||||||
incremental = false
|
incremental = false
|
||||||
#rustflags = [
|
#rustflags = [
|
||||||
|
# '--cfg', 'conduit_mods',
|
||||||
# '-Ztime-passes',
|
# '-Ztime-passes',
|
||||||
# '-Zmir-opt-level=0',
|
# '-Zmir-opt-level=0',
|
||||||
# '-Zvalidate-mir=false',
|
# '-Zvalidate-mir=false',
|
||||||
|
@ -601,6 +603,7 @@ incremental = false
|
||||||
codegen-units = 1
|
codegen-units = 1
|
||||||
opt-level = 'z'
|
opt-level = 'z'
|
||||||
#rustflags = [
|
#rustflags = [
|
||||||
|
# '--cfg', 'conduit_mods',
|
||||||
# '-Ztls-model=initial-exec',
|
# '-Ztls-model=initial-exec',
|
||||||
# '-Cprefer-dynamic=true',
|
# '-Cprefer-dynamic=true',
|
||||||
# '-Zstaticlib-prefer-dynamic=true',
|
# '-Zstaticlib-prefer-dynamic=true',
|
||||||
|
@ -621,6 +624,7 @@ incremental = false
|
||||||
codegen-units = 1
|
codegen-units = 1
|
||||||
opt-level = 'z'
|
opt-level = 'z'
|
||||||
#rustflags = [
|
#rustflags = [
|
||||||
|
# '--cfg', 'conduit_mods',
|
||||||
# '-Ztls-model=global-dynamic',
|
# '-Ztls-model=global-dynamic',
|
||||||
# '-Cprefer-dynamic=true',
|
# '-Cprefer-dynamic=true',
|
||||||
# '-Zstaticlib-prefer-dynamic=true',
|
# '-Zstaticlib-prefer-dynamic=true',
|
||||||
|
@ -655,6 +659,11 @@ unreachable_pub = "warn"
|
||||||
# this seems to suggest broken code and is not working correctly
|
# this seems to suggest broken code and is not working correctly
|
||||||
unused_braces = "allow"
|
unused_braces = "allow"
|
||||||
|
|
||||||
|
# cfgs cannot be limited to features or cargo build --all-features panics for unsuspecting users.
|
||||||
|
# cfgs cannot be limited to expected cfgs or their de facto non-transitive/opt-in use-case e.g.
|
||||||
|
# tokio_unstable will warn.
|
||||||
|
unexpected_cfgs = "allow"
|
||||||
|
|
||||||
# some sadness
|
# some sadness
|
||||||
missing_docs = "allow"
|
missing_docs = "allow"
|
||||||
|
|
||||||
|
|
|
@ -63,10 +63,6 @@ brotli_compression = [
|
||||||
]
|
]
|
||||||
perf_measurements = []
|
perf_measurements = []
|
||||||
sentry_telemetry = []
|
sentry_telemetry = []
|
||||||
mods = [
|
|
||||||
"dep:libloading"
|
|
||||||
]
|
|
||||||
panic_trap = []
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
async-trait.workspace = true
|
async-trait.workspace = true
|
||||||
|
@ -86,7 +82,6 @@ infer.workspace = true
|
||||||
ipaddress.workspace = true
|
ipaddress.workspace = true
|
||||||
itertools.workspace = true
|
itertools.workspace = true
|
||||||
libloading.workspace = true
|
libloading.workspace = true
|
||||||
libloading.optional = true
|
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
lru-cache.workspace = true
|
lru-cache.workspace = true
|
||||||
parking_lot.optional = true
|
parking_lot.optional = true
|
||||||
|
|
|
@ -62,7 +62,6 @@ fn panic_handler(info: &PanicInfo<'_>, next: &dyn Fn(&PanicInfo<'_>)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
#[allow(unexpected_cfgs)]
|
|
||||||
pub fn trap() {
|
pub fn trap() {
|
||||||
#[cfg(core_intrinsics)]
|
#[cfg(core_intrinsics)]
|
||||||
//SAFETY: embeds llvm intrinsic for hardware breakpoint
|
//SAFETY: embeds llvm intrinsic for hardware breakpoint
|
||||||
|
|
|
@ -14,8 +14,8 @@ pub use pducount::PduCount;
|
||||||
pub use server::Server;
|
pub use server::Server;
|
||||||
pub use utils::conduwuit_version;
|
pub use utils::conduwuit_version;
|
||||||
|
|
||||||
#[cfg(not(feature = "mods"))]
|
#[cfg(not(conduit_mods))]
|
||||||
mod mods {
|
pub mod mods {
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! mod_ctor {
|
macro_rules! mod_ctor {
|
||||||
() => {};
|
() => {};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#![cfg(feature = "mods")]
|
#![cfg(conduit_mods)]
|
||||||
|
|
||||||
pub(crate) use libloading::os::unix::{Library, Symbol};
|
pub(crate) use libloading::os::unix::{Library, Symbol};
|
||||||
|
|
||||||
|
|
|
@ -67,8 +67,6 @@ perf_measurements = [
|
||||||
jemalloc = [
|
jemalloc = [
|
||||||
"dep:tikv-jemallocator",
|
"dep:tikv-jemallocator",
|
||||||
]
|
]
|
||||||
panic_trap = []
|
|
||||||
mods = []
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
conduit-router.workspace = true
|
conduit-router.workspace = true
|
||||||
|
|
|
@ -37,7 +37,7 @@ fn main() -> Result<(), Error> {
|
||||||
|
|
||||||
/// Operate the server normally in release-mode static builds. This will start,
|
/// Operate the server normally in release-mode static builds. This will start,
|
||||||
/// run and stop the server within the asynchronous runtime.
|
/// run and stop the server within the asynchronous runtime.
|
||||||
#[cfg(not(feature = "mods"))]
|
#[cfg(not(conduit_mods))]
|
||||||
async fn async_main(server: Arc<Server>) -> Result<(), Error> {
|
async fn async_main(server: Arc<Server>) -> Result<(), Error> {
|
||||||
extern crate conduit_router as router;
|
extern crate conduit_router as router;
|
||||||
use tracing::error;
|
use tracing::error;
|
||||||
|
@ -64,7 +64,7 @@ async fn async_main(server: Arc<Server>) -> Result<(), Error> {
|
||||||
/// Operate the server in developer-mode dynamic builds. This will start, run,
|
/// Operate the server in developer-mode dynamic builds. This will start, run,
|
||||||
/// and hot-reload portions of the server as-needed before returning for an
|
/// and hot-reload portions of the server as-needed before returning for an
|
||||||
/// actual shutdown. This is not available in release-mode or static builds.
|
/// actual shutdown. This is not available in release-mode or static builds.
|
||||||
#[cfg(feature = "mods")]
|
#[cfg(conduit_mods)]
|
||||||
async fn async_main(server: Arc<Server>) -> Result<(), Error> {
|
async fn async_main(server: Arc<Server>) -> Result<(), Error> {
|
||||||
let mut starts = true;
|
let mut starts = true;
|
||||||
let mut reloads = true;
|
let mut reloads = true;
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
#![cfg(feature = "mods")]
|
#![cfg(conduit_mods)]
|
||||||
#[cfg(not(any(clippy, debug_assertions, doctest, test)))]
|
|
||||||
compile_error!("Feature 'mods' is only available in developer builds");
|
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
future::Future,
|
future::Future,
|
||||||
|
@ -26,7 +24,7 @@ const MODULE_NAMES: &[&str] = &[
|
||||||
"conduit_router",
|
"conduit_router",
|
||||||
];
|
];
|
||||||
|
|
||||||
#[cfg(feature = "panic_trap")]
|
#[cfg(panic_trap)]
|
||||||
conduit::mod_init! {{
|
conduit::mod_init! {{
|
||||||
conduit::debug::set_panic_trap();
|
conduit::debug::set_panic_trap();
|
||||||
}}
|
}}
|
||||||
|
|
|
@ -21,8 +21,8 @@ pub(crate) struct Server {
|
||||||
#[cfg(feature = "sentry_telemetry")]
|
#[cfg(feature = "sentry_telemetry")]
|
||||||
_sentry_guard: Option<sentry::ClientInitGuard>,
|
_sentry_guard: Option<sentry::ClientInitGuard>,
|
||||||
|
|
||||||
|
#[cfg(conduit_mods)]
|
||||||
// Module instances; TODO: move to mods::loaded mgmt vector
|
// Module instances; TODO: move to mods::loaded mgmt vector
|
||||||
#[cfg(feature = "mods")]
|
|
||||||
pub(crate) mods: tokio::sync::RwLock<Vec<conduit::mods::Module>>,
|
pub(crate) mods: tokio::sync::RwLock<Vec<conduit::mods::Module>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ impl Server {
|
||||||
#[cfg(feature = "sentry_telemetry")]
|
#[cfg(feature = "sentry_telemetry")]
|
||||||
_sentry_guard: sentry_guard,
|
_sentry_guard: sentry_guard,
|
||||||
|
|
||||||
#[cfg(feature = "mods")]
|
#[cfg(conduit_mods)]
|
||||||
mods: tokio::sync::RwLock::new(Vec::new()),
|
mods: tokio::sync::RwLock::new(Vec::new()),
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,7 @@ fn init_tracing(config: &Config) -> (LogLevelReloadHandles, TracingFlameGuard) {
|
||||||
let mut reload_handles = Vec::<Box<dyn ReloadHandle<EnvFilter> + Send + Sync>>::new();
|
let mut reload_handles = Vec::<Box<dyn ReloadHandle<EnvFilter> + Send + Sync>>::new();
|
||||||
let subscriber = registry;
|
let subscriber = registry;
|
||||||
|
|
||||||
#[cfg(feature = "tokio_console")]
|
#[cfg(all(feature = "tokio_console", tokio_unstable))]
|
||||||
let subscriber = {
|
let subscriber = {
|
||||||
let console_layer = console_subscriber::spawn();
|
let console_layer = console_subscriber::spawn();
|
||||||
subscriber.with(console_layer)
|
subscriber.with(console_layer)
|
||||||
|
@ -176,7 +176,7 @@ fn init_tracing(config: &Config) -> (LogLevelReloadHandles, TracingFlameGuard) {
|
||||||
|
|
||||||
tracing::subscriber::set_global_default(subscriber).unwrap();
|
tracing::subscriber::set_global_default(subscriber).unwrap();
|
||||||
|
|
||||||
#[cfg(all(feature = "tokio_console", feature = "release_max_log_level"))]
|
#[cfg(all(feature = "tokio_console", feature = "release_max_log_level", tokio_unstable))]
|
||||||
tracing::error!(
|
tracing::error!(
|
||||||
"'tokio_console' feature and 'release_max_log_level' feature are incompatible, because console-subscriber \
|
"'tokio_console' feature and 'release_max_log_level' feature are incompatible, because console-subscriber \
|
||||||
needs access to trace-level events. 'release_max_log_level' must be disabled to use tokio-console."
|
needs access to trace-level events. 'release_max_log_level' must be disabled to use tokio-console."
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue