From 8f47a06fdf8c63f3d1638869e4b0c54f186bb3cc Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Thu, 6 Mar 2025 08:50:35 +0000 Subject: [PATCH] Migrate `testcrate` and `panic-handler` to edition 2024 Includes `extern` -> `unsafe extern` blocks and formatting updates. --- crates/panic-handler/Cargo.toml | 2 +- testcrate/Cargo.toml | 2 +- testcrate/benches/float_add.rs | 2 +- testcrate/benches/float_cmp.rs | 2 +- testcrate/benches/float_conv.rs | 2 +- testcrate/benches/float_div.rs | 2 +- testcrate/benches/float_extend.rs | 2 +- testcrate/benches/float_mul.rs | 2 +- testcrate/benches/float_pow.rs | 2 +- testcrate/benches/float_sub.rs | 2 +- testcrate/benches/float_trunc.rs | 2 +- testcrate/benches/mem.rs | 2 +- testcrate/src/bench.rs | 7 ++++++- testcrate/src/lib.rs | 2 +- testcrate/tests/big.rs | 2 +- 15 files changed, 20 insertions(+), 15 deletions(-) diff --git a/crates/panic-handler/Cargo.toml b/crates/panic-handler/Cargo.toml index 2ad858409..96b83eaa2 100644 --- a/crates/panic-handler/Cargo.toml +++ b/crates/panic-handler/Cargo.toml @@ -2,7 +2,7 @@ name = "panic-handler" version = "0.1.0" authors = ["Alex Crichton "] -edition = "2021" +edition = "2024" publish = false [dependencies] diff --git a/testcrate/Cargo.toml b/testcrate/Cargo.toml index 91e2f668f..71c461c57 100644 --- a/testcrate/Cargo.toml +++ b/testcrate/Cargo.toml @@ -2,7 +2,7 @@ name = "testcrate" version = "0.1.0" authors = ["Alex Crichton "] -edition = "2021" +edition = "2024" publish = false [lib] diff --git a/testcrate/benches/float_add.rs b/testcrate/benches/float_add.rs index 3311e7b5b..a578655f8 100644 --- a/testcrate/benches/float_add.rs +++ b/testcrate/benches/float_add.rs @@ -1,7 +1,7 @@ #![cfg_attr(f128_enabled, feature(f128))] use compiler_builtins::float::add; -use criterion::{criterion_main, Criterion}; +use criterion::{Criterion, criterion_main}; use testcrate::float_bench; float_bench! { diff --git a/testcrate/benches/float_cmp.rs b/testcrate/benches/float_cmp.rs index 400c09b42..4c269e488 100644 --- a/testcrate/benches/float_cmp.rs +++ b/testcrate/benches/float_cmp.rs @@ -1,6 +1,6 @@ #![cfg_attr(f128_enabled, feature(f128))] -use criterion::{criterion_main, Criterion}; +use criterion::{Criterion, criterion_main}; use testcrate::float_bench; use compiler_builtins::float::cmp; diff --git a/testcrate/benches/float_conv.rs b/testcrate/benches/float_conv.rs index 7d8549b43..e3f2af863 100644 --- a/testcrate/benches/float_conv.rs +++ b/testcrate/benches/float_conv.rs @@ -2,7 +2,7 @@ #![cfg_attr(f128_enabled, feature(f128))] use compiler_builtins::float::conv; -use criterion::{criterion_main, Criterion}; +use criterion::{Criterion, criterion_main}; use testcrate::float_bench; /* unsigned int -> float */ diff --git a/testcrate/benches/float_div.rs b/testcrate/benches/float_div.rs index 6a039a82a..c42f3f386 100644 --- a/testcrate/benches/float_div.rs +++ b/testcrate/benches/float_div.rs @@ -1,7 +1,7 @@ #![cfg_attr(f128_enabled, feature(f128))] use compiler_builtins::float::div; -use criterion::{criterion_main, Criterion}; +use criterion::{Criterion, criterion_main}; use testcrate::float_bench; float_bench! { diff --git a/testcrate/benches/float_extend.rs b/testcrate/benches/float_extend.rs index 12f195984..1e7fedefe 100644 --- a/testcrate/benches/float_extend.rs +++ b/testcrate/benches/float_extend.rs @@ -3,7 +3,7 @@ #![cfg_attr(f16_enabled, feature(f16))] use compiler_builtins::float::extend; -use criterion::{criterion_main, Criterion}; +use criterion::{Criterion, criterion_main}; use testcrate::float_bench; #[cfg(f16_enabled)] diff --git a/testcrate/benches/float_mul.rs b/testcrate/benches/float_mul.rs index 6e30b7866..0857a68a2 100644 --- a/testcrate/benches/float_mul.rs +++ b/testcrate/benches/float_mul.rs @@ -1,7 +1,7 @@ #![cfg_attr(f128_enabled, feature(f128))] use compiler_builtins::float::mul; -use criterion::{criterion_main, Criterion}; +use criterion::{Criterion, criterion_main}; use testcrate::float_bench; float_bench! { diff --git a/testcrate/benches/float_pow.rs b/testcrate/benches/float_pow.rs index 46da3f25c..e84fee51c 100644 --- a/testcrate/benches/float_pow.rs +++ b/testcrate/benches/float_pow.rs @@ -1,7 +1,7 @@ #![cfg_attr(f128_enabled, feature(f128))] use compiler_builtins::float::pow; -use criterion::{criterion_main, Criterion}; +use criterion::{Criterion, criterion_main}; use testcrate::float_bench; float_bench! { diff --git a/testcrate/benches/float_sub.rs b/testcrate/benches/float_sub.rs index cdb678eef..7a6c05ea5 100644 --- a/testcrate/benches/float_sub.rs +++ b/testcrate/benches/float_sub.rs @@ -1,7 +1,7 @@ #![cfg_attr(f128_enabled, feature(f128))] use compiler_builtins::float::sub; -use criterion::{criterion_main, Criterion}; +use criterion::{Criterion, criterion_main}; use testcrate::float_bench; float_bench! { diff --git a/testcrate/benches/float_trunc.rs b/testcrate/benches/float_trunc.rs index cb6aee13a..4ceb62ab0 100644 --- a/testcrate/benches/float_trunc.rs +++ b/testcrate/benches/float_trunc.rs @@ -2,7 +2,7 @@ #![cfg_attr(f16_enabled, feature(f16))] use compiler_builtins::float::trunc; -use criterion::{criterion_main, Criterion}; +use criterion::{Criterion, criterion_main}; use testcrate::float_bench; #[cfg(f16_enabled)] diff --git a/testcrate/benches/mem.rs b/testcrate/benches/mem.rs index 98a040958..3f83926b6 100644 --- a/testcrate/benches/mem.rs +++ b/testcrate/benches/mem.rs @@ -1,7 +1,7 @@ #![feature(test)] extern crate test; -use test::{black_box, Bencher}; +use test::{Bencher, black_box}; extern crate compiler_builtins; use compiler_builtins::mem::{memcmp, memcpy, memmove, memset}; diff --git a/testcrate/src/bench.rs b/testcrate/src/bench.rs index f5da1f3ae..45a3a1ad4 100644 --- a/testcrate/src/bench.rs +++ b/testcrate/src/bench.rs @@ -89,6 +89,10 @@ pub fn skip_asm_checks(_test_name: &str) -> bool { /// Create a comparison of the system symbol, compiler_builtins, and optionally handwritten /// assembly. +/// +/// # Safety +/// +/// The signature must be correct and any assembly must be sound. #[macro_export] macro_rules! float_bench { ( @@ -120,8 +124,9 @@ macro_rules! float_bench { ] $(,)? ) => {paste::paste! { + // SAFETY: macro invocation must use the correct signature #[cfg($sys_available)] - extern "C" { + unsafe extern "C" { /// Binding for the system function #[cfg(not(any(target_arch = "powerpc", target_arch = "powerpc64")))] fn $sys_fn($($arg: $arg_ty),*) -> $ret_ty; diff --git a/testcrate/src/lib.rs b/testcrate/src/lib.rs index 894c2782a..c61618755 100644 --- a/testcrate/src/lib.rs +++ b/testcrate/src/lib.rs @@ -22,8 +22,8 @@ extern crate alloc; use compiler_builtins::float::Float; use compiler_builtins::int::{Int, MinInt}; -use rand_xoshiro::rand_core::{RngCore, SeedableRng}; use rand_xoshiro::Xoshiro128StarStar; +use rand_xoshiro::rand_core::{RngCore, SeedableRng}; /// Sets the number of fuzz iterations run for most tests. In practice, the vast majority of bugs /// are caught by the edge case testers. Most of the remaining bugs triggered by more complex diff --git a/testcrate/tests/big.rs b/testcrate/tests/big.rs index 595f62256..d1ae88bd1 100644 --- a/testcrate/tests/big.rs +++ b/testcrate/tests/big.rs @@ -1,4 +1,4 @@ -use compiler_builtins::int::{i256, u256, HInt, MinInt}; +use compiler_builtins::int::{HInt, MinInt, i256, u256}; const LOHI_SPLIT: u128 = 0xaaaaaaaaaaaaaaaaffffffffffffffff;