From 768c1f8074d77a4d4603ddff7a587ad22b87e20c Mon Sep 17 00:00:00 2001 From: Vinzent Steinberg Date: Tue, 16 Sep 2025 12:26:13 +0200 Subject: [PATCH 1/4] Upgrade MSRV to 1.85 This allows us to use the MSRV-aware resolver. --- .github/workflows/test.yml | 2 +- Cargo.toml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fbbb25b..28f556c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: toolchain: nightly - os: ubuntu-latest target: x86_64-unknown-linux-gnu - toolchain: 1.63.0 # MSRV + toolchain: 1.85.0 # MSRV - os: ubuntu-latest deps: sudo apt-get update ; sudo apt install gcc-multilib target: i686-unknown-linux-gnu diff --git a/Cargo.toml b/Cargo.toml index 71695d4..4b3efc0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ readme = "README.md" repository = "https://github.com/vks/average" version = "0.16.0" edition = "2021" -rust-version = "1.63" +rust-version = "1.85" include = ["src/**/*", "benches/*", "LICENSE-*", "README.md"] [features] @@ -38,8 +38,8 @@ float-ord = "0.3" easy-cast = { version = "0.5", default-features = false, optional = true } serde_derive = { version = "1", optional = true } serde-big-array = { version = "0.5", optional = true } -rayon = { version = "=1.10", optional = true } # MSRV 1.63 -rayon-core = { version = "=1.12", optional = true } # MSRV 1.63 +rayon = { version = "1", optional = true } +rayon-core = { version = "1", optional = true } [dependencies.serde] version = "1" From e92d36a8baa4036ca7c7dc31a66524a377486fe0 Mon Sep 17 00:00:00 2001 From: Vinzent Steinberg Date: Tue, 16 Sep 2025 12:30:34 +0200 Subject: [PATCH 2/4] Upgrade to Rust 2024 --- Cargo.toml | 2 +- src/histogram.rs | 6 +++--- src/macros.rs | 2 +- src/moments/mod.rs | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 4b3efc0..f5e53aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ name = "average" readme = "README.md" repository = "https://github.com/vks/average" version = "0.16.0" -edition = "2021" +edition = "2024" rust-version = "1.85" include = ["src/**/*", "benches/*", "LICENSE-*", "README.md"] diff --git a/src/histogram.rs b/src/histogram.rs index 913a758..996d2f3 100644 --- a/src/histogram.rs +++ b/src/histogram.rs @@ -17,7 +17,7 @@ pub struct SampleOutOfRangeError; #[doc(hidden)] #[macro_export] macro_rules! define_histogram_common { - ($LEN:expr) => { + ($LEN:expr_2021) => { use $crate::Histogram as Trait; /// The number of bins of the histogram. @@ -252,7 +252,7 @@ macro_rules! define_histogram_inner { #[doc(hidden)] #[macro_export] macro_rules! define_histogram_inner { - ($name:ident, $LEN:expr) => { + ($name:ident, $LEN:expr_2021) => { mod $name { $crate::define_histogram_common!($LEN); @@ -291,7 +291,7 @@ macro_rules! define_histogram_inner { /// ``` #[macro_export] macro_rules! define_histogram { - ($name:ident, $LEN:expr) => { + ($name:ident, $LEN:expr_2021) => { $crate::define_histogram_inner!($name, $LEN); }; } diff --git a/src/macros.rs b/src/macros.rs index c09d17e..77c8257 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -4,7 +4,7 @@ /// debug representations. #[macro_export] macro_rules! assert_almost_eq { - ($a:expr, $b:expr, $prec:expr) => { + ($a:expr_2021, $b:expr_2021, $prec:expr_2021) => { let diff = ($a - $b).abs(); if diff > $prec { panic!( diff --git a/src/moments/mod.rs b/src/moments/mod.rs index 8b08a16..8e8168b 100644 --- a/src/moments/mod.rs +++ b/src/moments/mod.rs @@ -17,7 +17,7 @@ pub type MeanWithError = Variance; #[doc(hidden)] #[macro_export] macro_rules! define_moments_common { - ($name:ident, $MAX_MOMENT:expr) => { + ($name:ident, $MAX_MOMENT:expr_2021) => { use num_traits::{pow, ToPrimitive}; /// An iterator over binomial coefficients. @@ -295,7 +295,7 @@ macro_rules! define_moments_inner { #[doc(hidden)] #[macro_export] macro_rules! define_moments_inner { - ($name:ident, $MAX_MOMENT:expr) => { + ($name:ident, $MAX_MOMENT:expr_2021) => { $crate::define_moments_common!($name, $MAX_MOMENT); /// Estimate the first N moments of a sequence of numbers ("population"). @@ -356,7 +356,7 @@ macro_rules! define_moments_inner { /// ``` #[macro_export] macro_rules! define_moments { - ($name:ident, $MAX_MOMENT:expr) => { + ($name:ident, $MAX_MOMENT:expr_2021) => { $crate::define_moments_inner!($name, $MAX_MOMENT); }; } From 32303f77c80e3a0d91f775446f337a98cc359365 Mon Sep 17 00:00:00 2001 From: Vinzent Steinberg Date: Tue, 16 Sep 2025 12:34:41 +0200 Subject: [PATCH 3/4] Opt into new macro expr --- src/histogram.rs | 6 +++--- src/macros.rs | 2 +- src/moments/mod.rs | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/histogram.rs b/src/histogram.rs index 996d2f3..913a758 100644 --- a/src/histogram.rs +++ b/src/histogram.rs @@ -17,7 +17,7 @@ pub struct SampleOutOfRangeError; #[doc(hidden)] #[macro_export] macro_rules! define_histogram_common { - ($LEN:expr_2021) => { + ($LEN:expr) => { use $crate::Histogram as Trait; /// The number of bins of the histogram. @@ -252,7 +252,7 @@ macro_rules! define_histogram_inner { #[doc(hidden)] #[macro_export] macro_rules! define_histogram_inner { - ($name:ident, $LEN:expr_2021) => { + ($name:ident, $LEN:expr) => { mod $name { $crate::define_histogram_common!($LEN); @@ -291,7 +291,7 @@ macro_rules! define_histogram_inner { /// ``` #[macro_export] macro_rules! define_histogram { - ($name:ident, $LEN:expr_2021) => { + ($name:ident, $LEN:expr) => { $crate::define_histogram_inner!($name, $LEN); }; } diff --git a/src/macros.rs b/src/macros.rs index 77c8257..c09d17e 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -4,7 +4,7 @@ /// debug representations. #[macro_export] macro_rules! assert_almost_eq { - ($a:expr_2021, $b:expr_2021, $prec:expr_2021) => { + ($a:expr, $b:expr, $prec:expr) => { let diff = ($a - $b).abs(); if diff > $prec { panic!( diff --git a/src/moments/mod.rs b/src/moments/mod.rs index 8e8168b..8b08a16 100644 --- a/src/moments/mod.rs +++ b/src/moments/mod.rs @@ -17,7 +17,7 @@ pub type MeanWithError = Variance; #[doc(hidden)] #[macro_export] macro_rules! define_moments_common { - ($name:ident, $MAX_MOMENT:expr_2021) => { + ($name:ident, $MAX_MOMENT:expr) => { use num_traits::{pow, ToPrimitive}; /// An iterator over binomial coefficients. @@ -295,7 +295,7 @@ macro_rules! define_moments_inner { #[doc(hidden)] #[macro_export] macro_rules! define_moments_inner { - ($name:ident, $MAX_MOMENT:expr_2021) => { + ($name:ident, $MAX_MOMENT:expr) => { $crate::define_moments_common!($name, $MAX_MOMENT); /// Estimate the first N moments of a sequence of numbers ("population"). @@ -356,7 +356,7 @@ macro_rules! define_moments_inner { /// ``` #[macro_export] macro_rules! define_moments { - ($name:ident, $MAX_MOMENT:expr_2021) => { + ($name:ident, $MAX_MOMENT:expr) => { $crate::define_moments_inner!($name, $MAX_MOMENT); }; } From 6ae553471726b79a4b3dc6a94eccc3d5574dd647 Mon Sep 17 00:00:00 2001 From: Vinzent Steinberg Date: Tue, 16 Sep 2025 12:42:25 +0200 Subject: [PATCH 4/4] Increase minimum rayon version --- Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f5e53aa..4b0d92b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,8 +38,8 @@ float-ord = "0.3" easy-cast = { version = "0.5", default-features = false, optional = true } serde_derive = { version = "1", optional = true } serde-big-array = { version = "0.5", optional = true } -rayon = { version = "1", optional = true } -rayon-core = { version = "1", optional = true } +rayon = { version = "1.10", optional = true } +rayon-core = { version = "1.12", optional = true } [dependencies.serde] version = "1"