diff --git a/Cargo.lock b/Cargo.lock index 1acd8b9..c0116f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -797,6 +797,21 @@ dependencies = [ "slab", ] +[[package]] +name = "generator" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3b854b0e584ead1a33f18b2fcad7cf7be18b3875c78816b753639aa501513ae" +dependencies = [ + "cc", + "cfg-if", + "libc", + "log", + "rustversion", + "windows-link", + "windows-result", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -1178,6 +1193,19 @@ version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + [[package]] name = "lru" version = "0.18.2" @@ -1197,6 +1225,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + [[package]] name = "memchr" version = "2.8.3" @@ -2615,6 +2652,7 @@ dependencies = [ "konst", "midly", "palette", + "parking_lot", "profiling", "proptest", "proptest-derive", @@ -2625,6 +2663,7 @@ dependencies = [ "tracing", "tracing-flame", "tracing-subscriber", + "tracing-tracy", "unicode-width", "winit", ] @@ -2890,14 +2929,50 @@ version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ + "matchers", "nu-ansi-term", + "once_cell", + "regex-automata", "sharded-slab", "smallvec", "thread_local", + "tracing", "tracing-core", "tracing-log", ] +[[package]] +name = "tracing-tracy" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eaa1852afa96e0fe9e44caa53dc0bd2d9d05e0f2611ce09f97f8677af56e4ba" +dependencies = [ + "tracing-core", + "tracing-subscriber", + "tracy-client", +] + +[[package]] +name = "tracy-client" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4f6fc3baeac5d86ab90c772e9e30620fc653bf1864295029921a15ef478e6a5" +dependencies = [ + "loom", + "once_cell", + "tracy-client-sys", +] + +[[package]] +name = "tracy-client-sys" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f7c95348f20c1c913d72157b3c6dee6ea3e30b3d19502c5a7f6d3f160dacbf" +dependencies = [ + "cc", + "windows-targets", +] + [[package]] name = "ttf-parser" version = "0.25.1" @@ -3332,6 +3407,15 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-sys" version = "0.52.0" diff --git a/Cargo.toml b/Cargo.toml index fea5807..984508f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,6 +27,7 @@ anyhow = { version = "1.0" } atomic_float = { version = "1" } better-panic = { version = "0.3.0" } konst = { version = "0.3.16", features = [ "rust_1_83" ] } +parking_lot = { version = "0.12.5" } bumpalo = { optional = true, version = "3.19.0" } crossterm = { optional = true, version = "0.29.0" } @@ -44,6 +45,8 @@ profiling = { version = "1.0.18", optional = true, features = ["profile tracing = { version = "0.1", optional = true, default-features = false, features = [ "std" ] } tracing-subscriber = { version = "0.3", optional = true } tracing-flame = { version = "0.2", optional = true } +tracing-tracy = { version = "0.11.4", optional = true } + [dev-dependencies] proptest = { version = "^1" } diff --git a/src/deps.rs b/src/deps.rs new file mode 100644 index 0000000..5b3dd7f --- /dev/null +++ b/src/deps.rs @@ -0,0 +1,29 @@ +pub extern crate atomic_float; +pub extern crate palette; +pub extern crate better_panic; +pub extern crate unicode_width; +pub extern crate parking_lot; +pub(crate) use ::{ + std::fmt::{Debug, Display}, + std::ops::{Add, Sub, Mul, Div}, + std::sync::Arc, + std::sync::atomic::{AtomicBool, AtomicUsize, Ordering::*}, + std::marker::PhantomData +}; + +pub(crate) use ::parking_lot::RwLock; + +#[cfg(feature = "lang")] pub use ::dizzle::*; +#[cfg(feature = "prof")] pub extern crate profiling; +#[cfg(feature = "prof")] pub extern crate tracing; +#[cfg(feature = "prof")] pub extern crate tracing_subscriber; +#[cfg(feature = "prof")] pub extern crate tracing_flame; +//#[cfg(feature = "prof")] pub extern crate tracing_tracy; +#[cfg(feature = "sing")] pub extern crate jack; +#[cfg(feature = "midi")] pub extern crate midly; +#[cfg(feature = "term")] pub extern crate ratatui; +#[cfg(feature = "term")] pub extern crate crossterm; +#[cfg(feature = "lang")] pub extern crate dizzle; + +#[cfg(test)] #[macro_use] pub extern crate proptest; +#[cfg(test)] pub(crate) use proptest_derive::Arbitrary; diff --git a/src/lib.rs b/src/lib.rs index aad88f6..e4efc8d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,28 +9,7 @@ //#![feature(trait_alias)] //#![feature(type_alias_impl_trait)] //#![feature(type_changing_struct_update)] -pub extern crate atomic_float; -pub extern crate palette; -pub extern crate better_panic; -pub extern crate unicode_width; -#[cfg(feature = "sing")] pub extern crate jack; -#[cfg(feature = "midi")] pub extern crate midly; -#[cfg(feature = "term")] pub extern crate ratatui; -#[cfg(feature = "term")] pub extern crate crossterm; -#[cfg(feature = "lang")] pub extern crate dizzle; -#[cfg(test)] #[macro_use] pub extern crate proptest; -#[cfg(test)] pub(crate) use proptest_derive::Arbitrary; - -pub(crate) use ::{ - std::fmt::{Debug, Display}, - std::ops::{Add, Sub, Mul, Div}, - std::sync::{Arc, RwLock}, - std::sync::atomic::{AtomicBool, AtomicUsize, Ordering::*}, - std::marker::PhantomData -}; - -#[cfg(feature = "lang")] pub use ::dizzle::{Usually, Perhaps}; -#[cfg(feature = "lang")] use ::dizzle::*; +mod deps; pub use self::deps::*; /// Define a trait an implement it for various mutation-enabled wrapper types. */ #[macro_export] macro_rules! flex_trait_mut (