From 7370bbf4e2658bf8b35e196c6141ad644720faa8 Mon Sep 17 00:00:00 2001 From: Guillaume Lagrange Date: Tue, 23 Jun 2026 11:03:46 +0200 Subject: [PATCH 1/3] chore!: bump MSRV to 1.85 --- crates/bencher_compat/Cargo.toml | 2 +- crates/cargo-codspeed/Cargo.toml | 2 +- crates/codspeed/Cargo.toml | 2 +- crates/criterion_compat/Cargo.toml | 2 +- crates/divan_compat/Cargo.toml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/bencher_compat/Cargo.toml b/crates/bencher_compat/Cargo.toml index 667e7ceb..67cc34fa 100644 --- a/crates/bencher_compat/Cargo.toml +++ b/crates/bencher_compat/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "codspeed-bencher-compat" version = "4.7.0" -rust-version = "1.80" # MSRV +rust-version = "1.85" # MSRV edition = "2021" description = "Bencher compatibility layer for CodSpeed" authors = ["Arthur Pastel "] diff --git a/crates/cargo-codspeed/Cargo.toml b/crates/cargo-codspeed/Cargo.toml index 3f2f6bee..cfcbc567 100644 --- a/crates/cargo-codspeed/Cargo.toml +++ b/crates/cargo-codspeed/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "cargo-codspeed" version = "4.7.0" -rust-version = "1.80" # MSRV +rust-version = "1.85" # MSRV edition = "2021" description = "Cargo extension to build & run your codspeed benchmarks" authors = ["Arthur Pastel "] diff --git a/crates/codspeed/Cargo.toml b/crates/codspeed/Cargo.toml index b6f105dd..e90535cc 100644 --- a/crates/codspeed/Cargo.toml +++ b/crates/codspeed/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "codspeed" version = "4.7.0" -rust-version = "1.80" # MSRV +rust-version = "1.85" # MSRV edition = "2021" description = "Core instrumentation library for CodSpeed" authors = ["Arthur Pastel "] diff --git a/crates/criterion_compat/Cargo.toml b/crates/criterion_compat/Cargo.toml index ed1513f0..d649412e 100644 --- a/crates/criterion_compat/Cargo.toml +++ b/crates/criterion_compat/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "codspeed-criterion-compat" version = "4.7.0" -rust-version = "1.80" # MSRV +rust-version = "1.85" # MSRV edition = "2021" description = "Criterion.rs compatibility layer for CodSpeed" authors = ["Arthur Pastel "] diff --git a/crates/divan_compat/Cargo.toml b/crates/divan_compat/Cargo.toml index 003c1424..d59986d1 100644 --- a/crates/divan_compat/Cargo.toml +++ b/crates/divan_compat/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "codspeed-divan-compat" version = "4.7.0" -rust-version = "1.80" +rust-version = "1.85" edition = "2021" description = "Divan compatibility layer for CodSpeed" authors = ["Arthur Pastel "] From c42d392f277db1d5ff92af9dc63d1bc1f1cdee54 Mon Sep 17 00:00:00 2001 From: Ludea Date: Thu, 23 Apr 2026 12:36:09 +0200 Subject: [PATCH 2/3] chore: update getrandom to 0.4 Signed-off-by: Guillaume Lagrange --- Cargo.lock | 21 +++++++++++++++++++-- crates/codspeed/Cargo.toml | 2 +- crates/codspeed/src/utils.rs | 2 +- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index acb02235..b12aa0e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -588,7 +588,7 @@ dependencies = [ "anyhow", "cc", "colored", - "getrandom", + "getrandom 0.4.3", "glob", "libc", "nix", @@ -1029,6 +1029,17 @@ dependencies = [ "wasi", ] +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi", +] + [[package]] name = "gimli" version = "0.29.0" @@ -1467,6 +1478,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "rand" version = "0.8.5" @@ -1494,7 +1511,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", ] [[package]] diff --git a/crates/codspeed/Cargo.toml b/crates/codspeed/Cargo.toml index e90535cc..ef8ee179 100644 --- a/crates/codspeed/Cargo.toml +++ b/crates/codspeed/Cargo.toml @@ -23,7 +23,7 @@ colored = "3.0.0" glob = "0.3.2" libc = "^0.2" nix = { version = "0.31.1", features = ["time"] } -getrandom = "0.2" +getrandom = "0.4" serde = { workspace = true } serde_json = { workspace = true } statrs = { version = "0.18.0", default-features = false } diff --git a/crates/codspeed/src/utils.rs b/crates/codspeed/src/utils.rs index a5b4228e..872a1513 100644 --- a/crates/codspeed/src/utils.rs +++ b/crates/codspeed/src/utils.rs @@ -81,7 +81,7 @@ pub fn is_perf_enabled() -> bool { pub fn generate_unique_id() -> String { // Generate random bytes for UUID v4 let mut bytes = [0u8; 16]; - getrandom::getrandom(&mut bytes).expect("Failed to generate random bytes"); + getrandom::fill(&mut bytes).expect("Failed to generate random bytes"); // Extract values from bytes let r1 = u32::from_be_bytes([bytes[0], bytes[1], bytes[2], bytes[3]]); From b79f04014ae82e45aae1eef53ec7cde5816db3c8 Mon Sep 17 00:00:00 2001 From: Guillaume Lagrange Date: Tue, 23 Jun 2026 11:09:29 +0200 Subject: [PATCH 3/3] chore: bump repo toolchain to 1.96 --- .../benches/criterion_integration/with_inputs.rs | 4 ++-- .../criterion_fork/src/plot/gnuplot_backend/summary.rs | 2 +- .../criterion_fork/src/plot/plotters_backend/summary.rs | 2 +- crates/criterion_compat/src/compat/criterion.rs | 2 +- crates/divan_compat/divan_fork/src/counter/any_counter.rs | 2 +- crates/divan_compat/divan_fork/src/entry/meta.rs | 2 +- crates/divan_compat/divan_fork/src/entry/tree.rs | 2 +- crates/divan_compat/divan_fork/tests/weird_usage.rs | 2 +- rust-toolchain.toml | 3 ++- 9 files changed, 11 insertions(+), 10 deletions(-) diff --git a/crates/criterion_compat/benches/criterion_integration/with_inputs.rs b/crates/criterion_compat/benches/criterion_integration/with_inputs.rs index 7b439068..0947d3c4 100644 --- a/crates/criterion_compat/benches/criterion_integration/with_inputs.rs +++ b/crates/criterion_compat/benches/criterion_integration/with_inputs.rs @@ -9,7 +9,7 @@ fn from_elem(c: &mut Criterion) { for size in [KB, 2 * KB, 4 * KB, 8 * KB, 16 * KB].iter() { group.throughput(Throughput::Bytes(*size as u64)); group.bench_with_input(BenchmarkId::from_parameter(size), size, |b, &size| { - b.iter(|| iter::repeat(0u8).take(size).collect::>()); + b.iter(|| iter::repeat_n(0u8, size).collect::>()); }); } group.finish(); @@ -18,7 +18,7 @@ fn from_elem(c: &mut Criterion) { for size in [KB, 2 * KB].iter() { group.throughput(Throughput::BytesDecimal(*size as u64)); group.bench_with_input(BenchmarkId::from_parameter(size), size, |b, &size| { - b.iter(|| iter::repeat(0u8).take(size).collect::>()); + b.iter(|| iter::repeat_n(0u8, size).collect::>()); }); } group.finish(); diff --git a/crates/criterion_compat/criterion_fork/src/plot/gnuplot_backend/summary.rs b/crates/criterion_compat/criterion_fork/src/plot/gnuplot_backend/summary.rs index e5d2ab6b..d611f702 100644 --- a/crates/criterion_compat/criterion_fork/src/plot/gnuplot_backend/summary.rs +++ b/crates/criterion_compat/criterion_fork/src/plot/gnuplot_backend/summary.rs @@ -94,7 +94,7 @@ pub fn line_comparison( (x, y) }) .collect(); - tuples.sort_by(|&(ax, _), &(bx, _)| (ax.partial_cmp(&bx).unwrap_or(Ordering::Less))); + tuples.sort_by(|&(ax, _), &(bx, _)| ax.partial_cmp(&bx).unwrap_or(Ordering::Less)); let (xs, mut ys): (Vec<_>, Vec<_>) = tuples.into_iter().unzip(); formatter.scale_values(max, &mut ys); diff --git a/crates/criterion_compat/criterion_fork/src/plot/plotters_backend/summary.rs b/crates/criterion_compat/criterion_fork/src/plot/plotters_backend/summary.rs index 0ebb851e..6ececc33 100644 --- a/crates/criterion_compat/criterion_fork/src/plot/plotters_backend/summary.rs +++ b/crates/criterion_compat/criterion_fork/src/plot/plotters_backend/summary.rs @@ -142,7 +142,7 @@ fn line_comparison_series_data<'a>( (x, y) }) .collect(); - tuples.sort_by(|&(ax, _), &(bx, _)| (ax.partial_cmp(&bx).unwrap_or(Ordering::Less))); + tuples.sort_by(|&(ax, _), &(bx, _)| ax.partial_cmp(&bx).unwrap_or(Ordering::Less)); let function_name = key.as_ref(); let (xs, mut ys): (Vec<_>, Vec<_>) = tuples.into_iter().unzip(); formatter.scale_values(max, &mut ys); diff --git a/crates/criterion_compat/src/compat/criterion.rs b/crates/criterion_compat/src/compat/criterion.rs index c117bc96..8031930f 100644 --- a/crates/criterion_compat/src/compat/criterion.rs +++ b/crates/criterion_compat/src/compat/criterion.rs @@ -121,7 +121,7 @@ impl Criterion { } #[track_caller] - pub fn benchmark_group>(&mut self, group_name: S) -> BenchmarkGroup { + pub fn benchmark_group>(&mut self, group_name: S) -> BenchmarkGroup<'_, M> { self.ensure_current_file(); BenchmarkGroup::::new(self, group_name.into()) } diff --git a/crates/divan_compat/divan_fork/src/counter/any_counter.rs b/crates/divan_compat/divan_fork/src/counter/any_counter.rs index 57f60dce..ae0d36ad 100644 --- a/crates/divan_compat/divan_fork/src/counter/any_counter.rs +++ b/crates/divan_compat/divan_fork/src/counter/any_counter.rs @@ -65,7 +65,7 @@ impl AnyCounter { &self, duration: FineDuration, bytes_format: BytesFormat, - ) -> DisplayThroughput { + ) -> DisplayThroughput<'_> { DisplayThroughput { counter: self, picos: duration.picos as f64, bytes_format } } diff --git a/crates/divan_compat/divan_fork/src/entry/meta.rs b/crates/divan_compat/divan_fork/src/entry/meta.rs index be75c855..ac3ec810 100644 --- a/crates/divan_compat/divan_fork/src/entry/meta.rs +++ b/crates/divan_compat/divan_fork/src/entry/meta.rs @@ -33,7 +33,7 @@ pub struct EntryLocation { impl EntryMeta { #[inline] - pub(crate) fn bench_options(&self) -> Option<&BenchOptions> { + pub(crate) fn bench_options(&self) -> Option<&BenchOptions<'_>> { self.bench_options.as_deref() } diff --git a/crates/divan_compat/divan_fork/src/entry/tree.rs b/crates/divan_compat/divan_fork/src/entry/tree.rs index 1cd31ee8..e66c80a4 100644 --- a/crates/divan_compat/divan_fork/src/entry/tree.rs +++ b/crates/divan_compat/divan_fork/src/entry/tree.rs @@ -335,7 +335,7 @@ impl<'a> EntryTree<'a> { } } - pub fn bench_options(&self) -> Option<&'a BenchOptions> { + pub fn bench_options(&self) -> Option<&'a BenchOptions<'_>> { self.meta()?.bench_options() } diff --git a/crates/divan_compat/divan_fork/tests/weird_usage.rs b/crates/divan_compat/divan_fork/tests/weird_usage.rs index 28eb4af5..1f8b53da 100644 --- a/crates/divan_compat/divan_fork/tests/weird_usage.rs +++ b/crates/divan_compat/divan_fork/tests/weird_usage.rs @@ -6,7 +6,7 @@ use std::time::Duration; extern crate codspeed_divan_compat_walltime as divan; -use divan::{Divan, __private::BENCH_ENTRIES}; +use divan::{__private::BENCH_ENTRIES, Divan}; #[divan::bench(bytes_count = 0u8, chars_count = 0u16, cycles_count = 0u32, items_count = 0u64)] fn zero_throughput() {} diff --git a/rust-toolchain.toml b/rust-toolchain.toml index c95c9057..5623ff6d 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,3 @@ [toolchain] -channel = "1.88" +channel = "1.96" +components = ["rustfmt", "clippy", "rust-analyzer"]