Skip to content

Commit

Permalink
Rollup merge of rust-lang#136395 - ChrisDenton:rand-0-9, r=Mark-Simul…
Browse files Browse the repository at this point in the history
…acrum

Update to rand 0.9.0

Changes include:

- `thread_rng` has been renamed to `rng`
- `Standard` has been renamed to `StandardUniform`
- `gen`, `gen_range`, `gen_bool` have been renamed to `random`, `random_range` and `random_bool` respectively.
  • Loading branch information
jieyouxu authored Mar 10, 2025
2 parents 1f3af21 + aea9ddd commit 29d4cc6
Show file tree
Hide file tree
Showing 9 changed files with 63 additions and 35 deletions.
14 changes: 7 additions & 7 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2881,11 +2881,11 @@ dependencies = [

[[package]]
name = "rand_xoshiro"
version = "0.6.0"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa"
checksum = "f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41"
dependencies = [
"rand_core 0.6.4",
"rand_core 0.9.0",
]

[[package]]
Expand Down Expand Up @@ -3148,7 +3148,7 @@ name = "rustc_abi"
version = "0.0.0"
dependencies = [
"bitflags",
"rand 0.8.5",
"rand 0.9.0",
"rand_xoshiro",
"rustc_data_structures",
"rustc_hashes",
Expand Down Expand Up @@ -3782,7 +3782,7 @@ dependencies = [
name = "rustc_incremental"
version = "0.0.0"
dependencies = [
"rand 0.8.5",
"rand 0.9.0",
"rustc_ast",
"rustc_data_structures",
"rustc_errors",
Expand Down Expand Up @@ -5169,8 +5169,8 @@ version = "0.1.0"
dependencies = [
"indicatif",
"num",
"rand 0.8.5",
"rand_chacha 0.3.1",
"rand 0.9.0",
"rand_chacha 0.9.0",
"rayon",
]

Expand Down
8 changes: 4 additions & 4 deletions compiler/rustc_abi/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ edition = "2024"
[dependencies]
# tidy-alphabetical-start
bitflags = "2.4.1"
rand = { version = "0.8.4", default-features = false, optional = true }
rand_xoshiro = { version = "0.6.0", optional = true }
rustc_data_structures = { path = "../rustc_data_structures", optional = true }
rand = { version = "0.9.0", default-features = false, optional = true }
rand_xoshiro = { version = "0.7.0", optional = true }
rustc_data_structures = { path = "../rustc_data_structures", optional = true }
rustc_hashes = { path = "../rustc_hashes" }
rustc_index = { path = "../rustc_index", default-features = false }
rustc_macros = { path = "../rustc_macros", optional = true }
rustc_serialize = { path = "../rustc_serialize", optional = true }
rustc_serialize = { path = "../rustc_serialize", optional = true }
rustc_span = { path = "../rustc_span", optional = true }
tracing = "0.1"
# tidy-alphabetical-end
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_incremental/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ edition = "2024"

[dependencies]
# tidy-alphabetical-start
rand = "0.8.4"
rand = "0.9.0"
rustc_ast = { path = "../rustc_ast" }
rustc_data_structures = { path = "../rustc_data_structures" }
rustc_errors = { path = "../rustc_errors" }
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_incremental/src/persist/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ use std::io::{self, ErrorKind};
use std::path::{Path, PathBuf};
use std::time::{Duration, SystemTime, UNIX_EPOCH};

use rand::{RngCore, thread_rng};
use rand::{RngCore, rng};
use rustc_data_structures::base_n::{BaseNString, CASE_INSENSITIVE, ToBaseN};
use rustc_data_structures::fx::{FxHashSet, FxIndexSet};
use rustc_data_structures::svh::Svh;
Expand Down Expand Up @@ -445,7 +445,7 @@ fn copy_files(sess: &Session, target_dir: &Path, source_dir: &Path) -> Result<bo
fn generate_session_dir_path(crate_dir: &Path) -> PathBuf {
let timestamp = timestamp_to_string(SystemTime::now());
debug!("generate_session_dir_path: timestamp = {}", timestamp);
let random_number = thread_rng().next_u32();
let random_number = rng().next_u32();
debug!("generate_session_dir_path: random_number = {}", random_number);

// Chop the first 3 characters off the timestamp. Those 3 bytes will be zero for a while.
Expand Down
4 changes: 2 additions & 2 deletions src/etc/test-float-parse/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ publish = false
[dependencies]
indicatif = { version = "0.17.8", default-features = false }
num = "0.4.3"
rand = "0.8.5"
rand_chacha = "0.3"
rand = "0.9.0"
rand_chacha = "0.9.0"
rayon = "1"

[lib]
Expand Down
8 changes: 4 additions & 4 deletions src/etc/test-float-parse/src/gen/fuzz.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use std::ops::Range;
use std::sync::Mutex;

use rand::Rng;
use rand::distributions::{Distribution, Standard};
use rand::distr::{Distribution, StandardUniform};
use rand_chacha::ChaCha8Rng;
use rand_chacha::rand_core::SeedableRng;

Expand Down Expand Up @@ -47,7 +47,7 @@ impl<F: Float> Fuzz<F> {

impl<F: Float> Generator<F> for Fuzz<F>
where
Standard: Distribution<<F as Float>::Int>,
StandardUniform: Distribution<<F as Float>::Int>,
{
const SHORT_NAME: &'static str = "fuzz";

Expand All @@ -74,13 +74,13 @@ where

impl<F: Float> Iterator for Fuzz<F>
where
Standard: Distribution<<F as Float>::Int>,
StandardUniform: Distribution<<F as Float>::Int>,
{
type Item = <Self as Generator<F>>::WriteCtx;

fn next(&mut self) -> Option<Self::Item> {
let _ = self.iter.next()?;
let i: F::Int = self.rng.gen();
let i: F::Int = self.rng.random();

Some(F::from_bits(i))
}
Expand Down
14 changes: 7 additions & 7 deletions src/etc/test-float-parse/src/gen/many_digits.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use std::fmt::Write;
use std::marker::PhantomData;
use std::ops::{Range, RangeInclusive};

use rand::distributions::{Distribution, Uniform};
use rand::distr::{Distribution, Uniform};
use rand::{Rng, SeedableRng};
use rand_chacha::ChaCha8Rng;

Expand Down Expand Up @@ -40,7 +40,7 @@ impl<F: Float> Generator<F> for RandDigits<F> {

fn new() -> Self {
let rng = ChaCha8Rng::from_seed(SEED);
let range = Uniform::from(0..10);
let range = Uniform::try_from(0..10).unwrap();

Self { rng, iter: 0..ITERATIONS, uniform: range, marker: PhantomData }
}
Expand All @@ -55,11 +55,11 @@ impl<F: Float> Iterator for RandDigits<F> {

fn next(&mut self) -> Option<Self::Item> {
let _ = self.iter.next()?;
let num_digits = self.rng.gen_range(POSSIBLE_NUM_DIGITS);
let has_decimal = self.rng.gen_bool(0.2);
let has_exp = self.rng.gen_bool(0.2);
let num_digits = self.rng.random_range(POSSIBLE_NUM_DIGITS);
let has_decimal = self.rng.random_bool(0.2);
let has_exp = self.rng.random_bool(0.2);

let dec_pos = if has_decimal { Some(self.rng.gen_range(0..num_digits)) } else { None };
let dec_pos = if has_decimal { Some(self.rng.random_range(0..num_digits)) } else { None };

let mut s = String::with_capacity(num_digits);

Expand All @@ -75,7 +75,7 @@ impl<F: Float> Iterator for RandDigits<F> {
}

if has_exp {
let exp = self.rng.gen_range(EXP_RANGE);
let exp = self.rng.random_range(EXP_RANGE);
write!(s, "e{exp}").unwrap();
}

Expand Down
4 changes: 2 additions & 2 deletions src/etc/test-float-parse/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use std::sync::OnceLock;
use std::sync::atomic::{AtomicU64, Ordering};
use std::{fmt, time};

use rand::distributions::{Distribution, Standard};
use rand::distr::{Distribution, StandardUniform};
use rayon::prelude::*;
use time::{Duration, Instant};
use traits::{Float, Generator, Int};
Expand Down Expand Up @@ -132,7 +132,7 @@ fn register_float<F: Float>(tests: &mut Vec<TestInfo>, cfg: &Config)
where
RangeInclusive<F::Int>: Iterator<Item = F::Int>,
<F::Int as TryFrom<u128>>::Error: std::fmt::Debug,
Standard: Distribution<<F as traits::Float>::Int>,
StandardUniform: Distribution<<F as traits::Float>::Int>,
{
if F::BITS <= MAX_BITS_FOR_EXHAUUSTIVE {
// Only run exhaustive tests if there is a chance of completion.
Expand Down
40 changes: 34 additions & 6 deletions src/tools/tidy/src/deps.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
//! Checks the licenses of third-party dependencies.
use std::collections::HashSet;
use std::collections::{HashMap, HashSet};
use std::fs::{File, read_dir};
use std::io::Write;
use std::path::Path;

use build_helper::ci::CiEnv;
use cargo_metadata::semver::Version;
use cargo_metadata::{Metadata, Package, PackageId};

#[path = "../../../bootstrap/src/utils/proc_macro_deps.rs"]
Expand Down Expand Up @@ -445,6 +446,7 @@ const PERMITTED_RUSTC_DEPENDENCIES: &[&str] = &[
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
"[email protected]", // via wasi
"writeable",
"yoke",
"yoke-derive",
Expand Down Expand Up @@ -802,7 +804,17 @@ fn check_permitted_dependencies(

// Check that the PERMITTED_DEPENDENCIES does not have unused entries.
for permitted in permitted_dependencies {
if !deps.iter().any(|dep_id| &pkg_from_id(metadata, dep_id).name == permitted) {
fn compare(pkg: &Package, permitted: &str) -> bool {
if let Some((name, version)) = permitted.split_once("@") {
let Ok(version) = Version::parse(version) else {
return false;
};
pkg.name == name && pkg.version == version
} else {
pkg.name == permitted
}
}
if !deps.iter().any(|dep_id| compare(pkg_from_id(metadata, dep_id), permitted)) {
tidy_error!(
bad,
"could not find allowed package `{permitted}`\n\
Expand All @@ -813,14 +825,30 @@ fn check_permitted_dependencies(
}

// Get in a convenient form.
let permitted_dependencies: HashSet<_> = permitted_dependencies.iter().cloned().collect();
let permitted_dependencies: HashMap<_, _> = permitted_dependencies
.iter()
.map(|s| {
if let Some((name, version)) = s.split_once('@') {
(name, Version::parse(version).ok())
} else {
(*s, None)
}
})
.collect();

for dep in deps {
let dep = pkg_from_id(metadata, dep);
// If this path is in-tree, we don't require it to be explicitly permitted.
if dep.source.is_some() && !permitted_dependencies.contains(dep.name.as_str()) {
tidy_error!(bad, "Dependency for {descr} not explicitly permitted: {}", dep.id);
has_permitted_dep_error = true;
if dep.source.is_some() {
let is_eq = if let Some(version) = permitted_dependencies.get(dep.name.as_str()) {
if let Some(version) = version { version == &dep.version } else { true }
} else {
false
};
if !is_eq {
tidy_error!(bad, "Dependency for {descr} not explicitly permitted: {}", dep.id);
has_permitted_dep_error = true;
}
}
}

Expand Down

0 comments on commit 29d4cc6

Please sign in to comment.