about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--library/compiler-builtins/libm/.github/workflows/main.yaml13
-rw-r--r--library/compiler-builtins/libm/crates/compiler-builtins-smoke-test/src/math.rs8
-rw-r--r--library/compiler-builtins/libm/crates/libm-macros/Cargo.toml2
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/Cargo.toml2
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/benches/icount.rs2
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/benches/random.rs4
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/examples/plot_domains.rs8
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/src/generate.rs (renamed from library/compiler-builtins/libm/crates/libm-test/src/gen.rs)0
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/src/generate/case_list.rs (renamed from library/compiler-builtins/libm/crates/libm-test/src/gen/case_list.rs)0
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/src/generate/edge_cases.rs (renamed from library/compiler-builtins/libm/crates/libm-test/src/gen/edge_cases.rs)2
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/src/generate/random.rs (renamed from library/compiler-builtins/libm/crates/libm-test/src/gen/random.rs)0
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/src/generate/spaced.rs (renamed from library/compiler-builtins/libm/crates/libm-test/src/gen/spaced.rs)0
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/src/lib.rs2
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/src/run_cfg.rs4
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/tests/compare_built_musl.rs2
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/tests/multiprecision.rs2
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/tests/standalone.rs2
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/tests/u256.rs2
-rw-r--r--library/compiler-builtins/libm/crates/libm-test/tests/z_extensive/run.rs2
-rw-r--r--library/compiler-builtins/libm/crates/musl-math-sys/Cargo.toml2
-rw-r--r--library/compiler-builtins/libm/crates/musl-math-sys/src/lib.rs2
-rw-r--r--library/compiler-builtins/libm/crates/util/Cargo.toml2
-rw-r--r--library/compiler-builtins/libm/libm/src/lib.rs1
23 files changed, 34 insertions, 30 deletions
diff --git a/library/compiler-builtins/libm/.github/workflows/main.yaml b/library/compiler-builtins/libm/.github/workflows/main.yaml
index a717c3ea8f8..5ce0dbc26c8 100644
--- a/library/compiler-builtins/libm/.github/workflows/main.yaml
+++ b/library/compiler-builtins/libm/.github/workflows/main.yaml
@@ -212,14 +212,17 @@ jobs:
       RUSTFLAGS: # No need to check warnings on old MSRV, unset `-Dwarnings`
     steps:
     - uses: actions/checkout@master
-    - run: |
+    - name: Install Rust
+      run: |
         msrv="$(perl -ne 'print if s/rust-version\s*=\s*"(.*)"/\1/g' libm/Cargo.toml)"
         echo "MSRV: $msrv"
-        echo "MSRV=$msrv" >> "$GITHUB_ENV"
-    - name: Install Rust
-      run: rustup update "$MSRV" --no-self-update && rustup default "$MSRV"
+        rustup update "$msrv" --no-self-update && rustup default "$msrv"
     - uses: Swatinem/rust-cache@v2
-    - run: cargo build -p libm
+    - run: |
+        # FIXME(msrv): Remove the workspace Cargo.toml so 1.63 cargo doesn't see
+        # `edition = "2024"` and get spooked.
+        rm Cargo.toml
+        cargo build --manifest-path libm/Cargo.toml
 
   rustfmt:
     name: Rustfmt
diff --git a/library/compiler-builtins/libm/crates/compiler-builtins-smoke-test/src/math.rs b/library/compiler-builtins/libm/crates/compiler-builtins-smoke-test/src/math.rs
index f17fc123168..58a5bfbb90f 100644
--- a/library/compiler-builtins/libm/crates/compiler-builtins-smoke-test/src/math.rs
+++ b/library/compiler-builtins/libm/crates/compiler-builtins-smoke-test/src/math.rs
@@ -14,7 +14,7 @@ macro_rules! no_mangle {
 
     // Handle simple functions with single return types
     (@inner $name:ident( $($arg:ident: $aty:ty),+ ) -> $ret:ty) => {
-        #[no_mangle]
+        #[unsafe(no_mangle)]
         extern "C" fn $name($($arg: $aty),+) -> $ret {
             libm::$name($($arg),+)
         }
@@ -26,7 +26,7 @@ macro_rules! no_mangle {
     (
         @inner $name:ident( $($arg:ident: $aty:ty),+ | $($rarg:ident: $rty:ty),+) -> $ret:ty
     ) => {
-        #[no_mangle]
+        #[unsafe(no_mangle)]
         extern "C" fn $name($($arg: $aty,)+ $($rarg: $rty),+) -> $ret {
             let ret;
             (ret, $(*$rarg),+) = libm::$name($($arg),+);
@@ -166,12 +166,12 @@ no_mangle! {
 
 /* sincos has no direct return type, not worth handling in the macro */
 
-#[no_mangle]
+#[unsafe(no_mangle)]
 extern "C" fn sincos(x: f64, s: &mut f64, c: &mut f64) {
     (*s, *c) = libm::sincos(x);
 }
 
-#[no_mangle]
+#[unsafe(no_mangle)]
 extern "C" fn sincosf(x: f32, s: &mut f32, c: &mut f32) {
     (*s, *c) = libm::sincosf(x);
 }
diff --git a/library/compiler-builtins/libm/crates/libm-macros/Cargo.toml b/library/compiler-builtins/libm/crates/libm-macros/Cargo.toml
index 314f4ae3783..50c869db7ff 100644
--- a/library/compiler-builtins/libm/crates/libm-macros/Cargo.toml
+++ b/library/compiler-builtins/libm/crates/libm-macros/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "libm-macros"
 version = "0.1.0"
-edition = "2021"
+edition = "2024"
 publish = false
 
 [lib]
diff --git a/library/compiler-builtins/libm/crates/libm-test/Cargo.toml b/library/compiler-builtins/libm/crates/libm-test/Cargo.toml
index 1bcc163ed1b..5d150b4aeaa 100644
--- a/library/compiler-builtins/libm/crates/libm-test/Cargo.toml
+++ b/library/compiler-builtins/libm/crates/libm-test/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "libm-test"
 version = "0.1.0"
-edition = "2021"
+edition = "2024"
 publish = false
 
 [features]
diff --git a/library/compiler-builtins/libm/crates/libm-test/benches/icount.rs b/library/compiler-builtins/libm/crates/libm-test/benches/icount.rs
index 4a10ec383ae..da8c6bfd15a 100644
--- a/library/compiler-builtins/libm/crates/libm-test/benches/icount.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/benches/icount.rs
@@ -4,7 +4,7 @@ use std::hint::black_box;
 
 use iai_callgrind::{library_benchmark, library_benchmark_group, main};
 use libm::support::{HInt, u256};
-use libm_test::gen::spaced;
+use libm_test::generate::spaced;
 use libm_test::{CheckBasis, CheckCtx, GeneratorKind, MathOp, OpRustArgs, TupleCall, op};
 
 const BENCH_ITER_ITEMS: u64 = 500;
diff --git a/library/compiler-builtins/libm/crates/libm-test/benches/random.rs b/library/compiler-builtins/libm/crates/libm-test/benches/random.rs
index 17e4e0d55fc..63d7e5c6d20 100644
--- a/library/compiler-builtins/libm/crates/libm-test/benches/random.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/benches/random.rs
@@ -2,8 +2,8 @@ use std::hint::black_box;
 use std::time::Duration;
 
 use criterion::{Criterion, criterion_main};
-use libm_test::gen::random;
-use libm_test::gen::random::RandomInput;
+use libm_test::generate::random;
+use libm_test::generate::random::RandomInput;
 use libm_test::{CheckBasis, CheckCtx, GeneratorKind, MathOp, TupleCall};
 
 /// Benchmark with this many items to get a variety
diff --git a/library/compiler-builtins/libm/crates/libm-test/examples/plot_domains.rs b/library/compiler-builtins/libm/crates/libm-test/examples/plot_domains.rs
index 441889c6941..78524761e2c 100644
--- a/library/compiler-builtins/libm/crates/libm-test/examples/plot_domains.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/examples/plot_domains.rs
@@ -12,8 +12,8 @@ use std::path::Path;
 use std::process::Command;
 use std::{env, fs};
 
-use libm_test::gen::spaced::SpacedInput;
-use libm_test::gen::{edge_cases, spaced};
+use libm_test::generate::spaced::SpacedInput;
+use libm_test::generate::{edge_cases, spaced};
 use libm_test::{CheckBasis, CheckCtx, GeneratorKind, MathOp, op};
 
 const JL_PLOT: &str = "examples/plot_file.jl";
@@ -73,7 +73,7 @@ fn plot_one_generator(
     ctx: &CheckCtx,
     gen_name: &str,
     config: &mut String,
-    gen: impl Iterator<Item = (f32,)>,
+    generator: impl Iterator<Item = (f32,)>,
 ) {
     let fn_name = ctx.base_name_str;
     let text_file = out_dir.join(format!("input-{fn_name}-{gen_name}.txt"));
@@ -82,7 +82,7 @@ fn plot_one_generator(
     let mut w = BufWriter::new(f);
     let mut count = 0u64;
 
-    for input in gen {
+    for input in generator {
         writeln!(w, "{:e}", input.0).unwrap();
         count += 1;
     }
diff --git a/library/compiler-builtins/libm/crates/libm-test/src/gen.rs b/library/compiler-builtins/libm/crates/libm-test/src/generate.rs
index 89ca09a7a0b..89ca09a7a0b 100644
--- a/library/compiler-builtins/libm/crates/libm-test/src/gen.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/src/generate.rs
diff --git a/library/compiler-builtins/libm/crates/libm-test/src/gen/case_list.rs b/library/compiler-builtins/libm/crates/libm-test/src/generate/case_list.rs
index e3628d51c9a..e3628d51c9a 100644
--- a/library/compiler-builtins/libm/crates/libm-test/src/gen/case_list.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/src/generate/case_list.rs
diff --git a/library/compiler-builtins/libm/crates/libm-test/src/gen/edge_cases.rs b/library/compiler-builtins/libm/crates/libm-test/src/generate/edge_cases.rs
index 69b59a10567..56cc9fa9a70 100644
--- a/library/compiler-builtins/libm/crates/libm-test/src/gen/edge_cases.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/src/generate/edge_cases.rs
@@ -3,7 +3,7 @@
 use libm::support::{CastInto, Float, Int, MinInt};
 
 use crate::domain::get_domain;
-use crate::gen::KnownSize;
+use crate::generate::KnownSize;
 use crate::op::OpITy;
 use crate::run_cfg::{check_near_count, check_point_count};
 use crate::{BaseName, CheckCtx, FloatExt, FloatTy, MathOp, test_log};
diff --git a/library/compiler-builtins/libm/crates/libm-test/src/gen/random.rs b/library/compiler-builtins/libm/crates/libm-test/src/generate/random.rs
index e8a7ee9057e..e8a7ee9057e 100644
--- a/library/compiler-builtins/libm/crates/libm-test/src/gen/random.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/src/generate/random.rs
diff --git a/library/compiler-builtins/libm/crates/libm-test/src/gen/spaced.rs b/library/compiler-builtins/libm/crates/libm-test/src/generate/spaced.rs
index bea3f4c7e1b..bea3f4c7e1b 100644
--- a/library/compiler-builtins/libm/crates/libm-test/src/gen/spaced.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/src/generate/spaced.rs
diff --git a/library/compiler-builtins/libm/crates/libm-test/src/lib.rs b/library/compiler-builtins/libm/crates/libm-test/src/lib.rs
index 824f09a3387..485c01a4782 100644
--- a/library/compiler-builtins/libm/crates/libm-test/src/lib.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/src/lib.rs
@@ -4,7 +4,7 @@
 
 pub mod domain;
 mod f8_impl;
-pub mod gen;
+pub mod generate;
 #[cfg(feature = "build-mpfr")]
 pub mod mpfloat;
 mod num;
diff --git a/library/compiler-builtins/libm/crates/libm-test/src/run_cfg.rs b/library/compiler-builtins/libm/crates/libm-test/src/run_cfg.rs
index 8e4fff53cb2..b36164b005f 100644
--- a/library/compiler-builtins/libm/crates/libm-test/src/run_cfg.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/src/run_cfg.rs
@@ -4,7 +4,7 @@ use std::ops::RangeInclusive;
 use std::sync::LazyLock;
 use std::{env, str};
 
-use crate::gen::random::{SEED, SEED_ENV};
+use crate::generate::random::{SEED, SEED_ENV};
 use crate::{BaseName, FloatTy, Identifier, test_log};
 
 /// The environment variable indicating which extensive tests should be run.
@@ -241,7 +241,7 @@ pub fn iteration_count(ctx: &CheckCtx, argnum: usize) -> u64 {
     // Some tests are significantly slower than others and need to be further reduced.
     if let Some((_id, _gen, scale)) = EXTEMELY_SLOW_TESTS
         .iter()
-        .find(|(id, gen, _scale)| *id == ctx.fn_ident && *gen == ctx.gen_kind)
+        .find(|(id, generator, _scale)| *id == ctx.fn_ident && *generator == ctx.gen_kind)
     {
         // However, do not override if the extensive iteration count has been manually set.
         if !(ctx.gen_kind == GeneratorKind::Extensive && EXTENSIVE_ITER_OVERRIDE.is_some()) {
diff --git a/library/compiler-builtins/libm/crates/libm-test/tests/compare_built_musl.rs b/library/compiler-builtins/libm/crates/libm-test/tests/compare_built_musl.rs
index 897dfc26e8c..cbb4bd49b9c 100644
--- a/library/compiler-builtins/libm/crates/libm-test/tests/compare_built_musl.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/tests/compare_built_musl.rs
@@ -9,7 +9,7 @@
 // There are some targets we can't build musl for
 #![cfg(feature = "build-musl")]
 
-use libm_test::gen::{case_list, edge_cases, random, spaced};
+use libm_test::generate::{case_list, edge_cases, random, spaced};
 use libm_test::{CheckBasis, CheckCtx, CheckOutput, GeneratorKind, MathOp, TupleCall};
 
 const BASIS: CheckBasis = CheckBasis::Musl;
diff --git a/library/compiler-builtins/libm/crates/libm-test/tests/multiprecision.rs b/library/compiler-builtins/libm/crates/libm-test/tests/multiprecision.rs
index 0ab4b64da81..80b2c78688e 100644
--- a/library/compiler-builtins/libm/crates/libm-test/tests/multiprecision.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/tests/multiprecision.rs
@@ -2,7 +2,7 @@
 
 #![cfg(feature = "build-mpfr")]
 
-use libm_test::gen::{case_list, edge_cases, random, spaced};
+use libm_test::generate::{case_list, edge_cases, random, spaced};
 use libm_test::mpfloat::MpOp;
 use libm_test::{CheckBasis, CheckCtx, CheckOutput, GeneratorKind, MathOp, TupleCall};
 
diff --git a/library/compiler-builtins/libm/crates/libm-test/tests/standalone.rs b/library/compiler-builtins/libm/crates/libm-test/tests/standalone.rs
index 7d694843e9c..7b30a3b48d7 100644
--- a/library/compiler-builtins/libm/crates/libm-test/tests/standalone.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/tests/standalone.rs
@@ -1,6 +1,6 @@
 //! Test cases that have both an input and an output, so do not require a basis.
 
-use libm_test::gen::case_list;
+use libm_test::generate::case_list;
 use libm_test::{CheckBasis, CheckCtx, CheckOutput, GeneratorKind, MathOp, TupleCall};
 
 const BASIS: CheckBasis = CheckBasis::None;
diff --git a/library/compiler-builtins/libm/crates/libm-test/tests/u256.rs b/library/compiler-builtins/libm/crates/libm-test/tests/u256.rs
index 4603534248c..4444036d0a4 100644
--- a/library/compiler-builtins/libm/crates/libm-test/tests/u256.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/tests/u256.rs
@@ -9,7 +9,7 @@ use libm::support::{HInt, u256};
 type BigInt = rug::Integer;
 
 use libm_test::bigint_fuzz_iteration_count;
-use libm_test::gen::random::SEED;
+use libm_test::generate::random::SEED;
 use rand::{Rng, SeedableRng};
 use rand_chacha::ChaCha8Rng;
 use rug::Assign;
diff --git a/library/compiler-builtins/libm/crates/libm-test/tests/z_extensive/run.rs b/library/compiler-builtins/libm/crates/libm-test/tests/z_extensive/run.rs
index 786546a9d6d..b10c231d183 100644
--- a/library/compiler-builtins/libm/crates/libm-test/tests/z_extensive/run.rs
+++ b/library/compiler-builtins/libm/crates/libm-test/tests/z_extensive/run.rs
@@ -6,7 +6,7 @@ use std::sync::atomic::{AtomicU64, Ordering};
 use std::time::Duration;
 
 use indicatif::{ProgressBar, ProgressStyle};
-use libm_test::gen::spaced;
+use libm_test::generate::spaced;
 use libm_test::mpfloat::MpOp;
 use libm_test::{
     CheckBasis, CheckCtx, CheckOutput, GeneratorKind, MathOp, TestResult, TupleCall,
diff --git a/library/compiler-builtins/libm/crates/musl-math-sys/Cargo.toml b/library/compiler-builtins/libm/crates/musl-math-sys/Cargo.toml
index ad73578d8b8..9e866a9704f 100644
--- a/library/compiler-builtins/libm/crates/musl-math-sys/Cargo.toml
+++ b/library/compiler-builtins/libm/crates/musl-math-sys/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "musl-math-sys"
 version = "0.1.0"
-edition = "2021"
+edition = "2024"
 publish = false
 
 [dependencies]
diff --git a/library/compiler-builtins/libm/crates/musl-math-sys/src/lib.rs b/library/compiler-builtins/libm/crates/musl-math-sys/src/lib.rs
index 07277ef3e6e..6a4bf4859d9 100644
--- a/library/compiler-builtins/libm/crates/musl-math-sys/src/lib.rs
+++ b/library/compiler-builtins/libm/crates/musl-math-sys/src/lib.rs
@@ -10,7 +10,7 @@ macro_rules! functions {
         $( #[$meta:meta] )*
         $pfx_name:ident: $name:ident( $($arg:ident: $aty:ty),+ ) -> $rty:ty;
     )* ) => {
-        extern "C" {
+        unsafe extern "C" {
             $( fn $pfx_name( $($arg: $aty),+ ) -> $rty; )*
         }
 
diff --git a/library/compiler-builtins/libm/crates/util/Cargo.toml b/library/compiler-builtins/libm/crates/util/Cargo.toml
index 94c7f103340..4bcb9747297 100644
--- a/library/compiler-builtins/libm/crates/util/Cargo.toml
+++ b/library/compiler-builtins/libm/crates/util/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "util"
 version = "0.1.0"
-edition = "2021"
+edition = "2024"
 publish = false
 
 [features]
diff --git a/library/compiler-builtins/libm/libm/src/lib.rs b/library/compiler-builtins/libm/libm/src/lib.rs
index b0e4312110f..7e56bd0796c 100644
--- a/library/compiler-builtins/libm/libm/src/lib.rs
+++ b/library/compiler-builtins/libm/libm/src/lib.rs
@@ -17,6 +17,7 @@
 #![allow(clippy::needless_return)]
 #![allow(clippy::unreadable_literal)]
 #![allow(clippy::zero_divided_by_zero)]
+#![forbid(unsafe_op_in_unsafe_fn)]
 
 mod libm_helper;
 mod math;