Skip to content

Commit 058bf21

Browse files
workingjubileegitbot
authored and
gitbot
committed
Rollup merge of rust-lang#136983 - ehuss:misc-2024-prep, r=tgross35
Prepare standard library for Rust 2024 migration This includes a variety of commits preparing the standard library for migration to Rust 2024. The actual migration is blocked on a few things, so I wanted to get this out of the way in a relatively digestable PR.
2 parents c6cbff9 + 542a752 commit 058bf21

File tree

46 files changed

+250
-157
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+250
-157
lines changed

Diff for: Cargo.lock

+65-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: alloc/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ core = { path = "../core" }
1313
compiler_builtins = { version = "=0.1.146", features = ['rustc-dep-of-std'] }
1414

1515
[dev-dependencies]
16-
rand = { version = "0.8.5", default-features = false, features = ["alloc"] }
17-
rand_xorshift = "0.3.0"
16+
rand = { version = "0.9.0", default-features = false, features = ["alloc"] }
17+
rand_xorshift = "0.4.0"
1818

1919
[[test]]
2020
name = "alloctests"

Diff for: alloc/benches/btree/map.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@ macro_rules! map_insert_rand_bench {
99
($name: ident, $n: expr, $map: ident) => {
1010
#[bench]
1111
pub fn $name(b: &mut Bencher) {
12-
let n: usize = $n;
12+
let n: u32 = $n;
1313
let mut map = $map::new();
1414
// setup
1515
let mut rng = crate::bench_rng();
1616

1717
for _ in 0..n {
18-
let i = rng.gen::<usize>() % n;
18+
let i = rng.random::<u32>() % n;
1919
map.insert(i, i);
2020
}
2121

2222
// measure
2323
b.iter(|| {
24-
let k = rng.gen::<usize>() % n;
24+
let k = rng.random::<u32>() % n;
2525
map.insert(k, k);
2626
map.remove(&k);
2727
});
@@ -57,13 +57,13 @@ macro_rules! map_from_iter_rand_bench {
5757
($name: ident, $n: expr, $map: ident) => {
5858
#[bench]
5959
pub fn $name(b: &mut Bencher) {
60-
let n: usize = $n;
60+
let n: u32 = $n;
6161
// setup
6262
let mut rng = crate::bench_rng();
63-
let mut vec = Vec::with_capacity(n);
63+
let mut vec = Vec::with_capacity(n as usize);
6464

6565
for _ in 0..n {
66-
let i = rng.gen::<usize>() % n;
66+
let i = rng.random::<u32>() % n;
6767
vec.push((i, i));
6868
}
6969

@@ -102,11 +102,11 @@ macro_rules! map_find_rand_bench {
102102
#[bench]
103103
pub fn $name(b: &mut Bencher) {
104104
let mut map = $map::new();
105-
let n: usize = $n;
105+
let n: u32 = $n;
106106

107107
// setup
108108
let mut rng = crate::bench_rng();
109-
let mut keys: Vec<_> = (0..n).map(|_| rng.gen::<usize>() % n).collect();
109+
let mut keys: Vec<_> = (0..n).map(|_| rng.random::<u32>() % n).collect();
110110

111111
for &k in &keys {
112112
map.insert(k, k);
@@ -115,9 +115,9 @@ macro_rules! map_find_rand_bench {
115115
keys.shuffle(&mut rng);
116116

117117
// measure
118-
let mut i = 0;
118+
let mut i = 0u32;
119119
b.iter(|| {
120-
let t = map.get(&keys[i]);
120+
let t = map.get(&keys[i as usize]);
121121
i = (i + 1) % n;
122122
black_box(t);
123123
})
@@ -171,7 +171,7 @@ fn bench_iteration(b: &mut Bencher, size: i32) {
171171
let mut rng = crate::bench_rng();
172172

173173
for _ in 0..size {
174-
map.insert(rng.gen(), rng.gen());
174+
map.insert(rng.random(), rng.random());
175175
}
176176

177177
b.iter(|| {
@@ -201,7 +201,7 @@ fn bench_iteration_mut(b: &mut Bencher, size: i32) {
201201
let mut rng = crate::bench_rng();
202202

203203
for _ in 0..size {
204-
map.insert(rng.gen(), rng.gen());
204+
map.insert(rng.random(), rng.random());
205205
}
206206

207207
b.iter(|| {

Diff for: alloc/benches/btree/set.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ use std::collections::BTreeSet;
33
use rand::Rng;
44
use test::Bencher;
55

6-
fn random(n: usize) -> BTreeSet<usize> {
6+
fn random(n: u32) -> BTreeSet<u32> {
77
let mut rng = crate::bench_rng();
88
let mut set = BTreeSet::new();
9-
while set.len() < n {
10-
set.insert(rng.gen());
9+
while set.len() < n as usize {
10+
set.insert(rng.random());
1111
}
12-
assert_eq!(set.len(), n);
12+
assert_eq!(set.len(), n as usize);
1313
set
1414
}
1515

Diff for: alloc/benches/slice.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::{mem, ptr};
22

33
use rand::Rng;
4-
use rand::distributions::{Alphanumeric, DistString, Standard};
4+
use rand::distr::{Alphanumeric, SampleString, StandardUniform};
55
use test::{Bencher, black_box};
66

77
#[bench]
@@ -156,7 +156,7 @@ fn random_inserts(b: &mut Bencher) {
156156
let mut v = vec![(0, 0); 30];
157157
for _ in 0..100 {
158158
let l = v.len();
159-
v.insert(rng.gen::<usize>() % (l + 1), (1, 1));
159+
v.insert(rng.random::<u32>() as usize % (l + 1), (1, 1));
160160
}
161161
})
162162
}
@@ -168,7 +168,7 @@ fn random_removes(b: &mut Bencher) {
168168
let mut v = vec![(0, 0); 130];
169169
for _ in 0..100 {
170170
let l = v.len();
171-
v.remove(rng.gen::<usize>() % l);
171+
v.remove(rng.random::<u32>() as usize % l);
172172
}
173173
})
174174
}
@@ -183,20 +183,20 @@ fn gen_descending(len: usize) -> Vec<u64> {
183183

184184
fn gen_random(len: usize) -> Vec<u64> {
185185
let mut rng = crate::bench_rng();
186-
(&mut rng).sample_iter(&Standard).take(len).collect()
186+
(&mut rng).sample_iter(&StandardUniform).take(len).collect()
187187
}
188188

189189
fn gen_random_bytes(len: usize) -> Vec<u8> {
190190
let mut rng = crate::bench_rng();
191-
(&mut rng).sample_iter(&Standard).take(len).collect()
191+
(&mut rng).sample_iter(&StandardUniform).take(len).collect()
192192
}
193193

194194
fn gen_mostly_ascending(len: usize) -> Vec<u64> {
195195
let mut rng = crate::bench_rng();
196196
let mut v = gen_ascending(len);
197197
for _ in (0usize..).take_while(|x| x * x <= len) {
198-
let x = rng.gen::<usize>() % len;
199-
let y = rng.gen::<usize>() % len;
198+
let x = rng.random::<u32>() as usize % len;
199+
let y = rng.random::<u32>() as usize % len;
200200
v.swap(x, y);
201201
}
202202
v
@@ -206,8 +206,8 @@ fn gen_mostly_descending(len: usize) -> Vec<u64> {
206206
let mut rng = crate::bench_rng();
207207
let mut v = gen_descending(len);
208208
for _ in (0usize..).take_while(|x| x * x <= len) {
209-
let x = rng.gen::<usize>() % len;
210-
let y = rng.gen::<usize>() % len;
209+
let x = rng.random::<u32>() as usize % len;
210+
let y = rng.random::<u32>() as usize % len;
211211
v.swap(x, y);
212212
}
213213
v
@@ -217,15 +217,15 @@ fn gen_strings(len: usize) -> Vec<String> {
217217
let mut rng = crate::bench_rng();
218218
let mut v = vec![];
219219
for _ in 0..len {
220-
let n = rng.gen::<usize>() % 20 + 1;
221-
v.push(Alphanumeric.sample_string(&mut rng, n));
220+
let n = rng.random::<u32>() % 20 + 1;
221+
v.push(Alphanumeric.sample_string(&mut rng, n as usize));
222222
}
223223
v
224224
}
225225

226226
fn gen_big_random(len: usize) -> Vec<[u64; 16]> {
227227
let mut rng = crate::bench_rng();
228-
(&mut rng).sample_iter(&Standard).map(|x| [x; 16]).take(len).collect()
228+
(&mut rng).sample_iter(&StandardUniform).map(|x| [x; 16]).take(len).collect()
229229
}
230230

231231
macro_rules! sort {

Diff for: alloc/src/boxed.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
//! Creating a recursive data structure:
2525
//!
2626
//! ```
27-
//! ##[allow(dead_code)]
27+
//! # #[allow(dead_code)]
2828
//! #[derive(Debug)]
2929
//! enum List<T> {
3030
//! Cons(T, Box<List<T>>),
@@ -97,12 +97,12 @@
9797
//! #[repr(C)]
9898
//! pub struct Foo;
9999
//!
100-
//! #[no_mangle]
100+
//! #[unsafe(no_mangle)]
101101
//! pub extern "C" fn foo_new() -> Box<Foo> {
102102
//! Box::new(Foo)
103103
//! }
104104
//!
105-
//! #[no_mangle]
105+
//! #[unsafe(no_mangle)]
106106
//! pub extern "C" fn foo_delete(_: Option<Box<Foo>>) {}
107107
//! ```
108108
//!

Diff for: alloc/src/vec/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1837,7 +1837,7 @@ impl<T, A: Allocator> Vec<T, A> {
18371837
/// # // don't use this as a starting point for a real library.
18381838
/// # pub struct StreamWrapper { strm: *mut std::ffi::c_void }
18391839
/// # const Z_OK: i32 = 0;
1840-
/// # extern "C" {
1840+
/// # unsafe extern "C" {
18411841
/// # fn deflateGetDictionary(
18421842
/// # strm: *mut std::ffi::c_void,
18431843
/// # dictionary: *mut u8,

Diff for: alloc/tests/sort/patterns.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use std::env;
2-
use std::hash::Hash;
32
use std::str::FromStr;
43
use std::sync::OnceLock;
54

5+
use rand::distr::Uniform;
66
use rand::prelude::*;
77
use rand_xorshift::XorShiftRng;
88

@@ -23,14 +23,14 @@ pub fn random(len: usize) -> Vec<i32> {
2323

2424
pub fn random_uniform<R>(len: usize, range: R) -> Vec<i32>
2525
where
26-
R: Into<rand::distributions::Uniform<i32>> + Hash,
26+
Uniform<i32>: TryFrom<R, Error: std::fmt::Debug>,
2727
{
2828
// :.:.:.::
2929

3030
let mut rng: XorShiftRng = rand::SeedableRng::seed_from_u64(get_or_init_rand_seed());
3131

3232
// Abstracting over ranges in Rust :(
33-
let dist: rand::distributions::Uniform<i32> = range.into();
33+
let dist = Uniform::try_from(range).unwrap();
3434
(0..len).map(|_| dist.sample(&mut rng)).collect()
3535
}
3636

@@ -207,5 +207,5 @@ fn rand_root_seed() -> u64 {
207207

208208
fn random_vec(len: usize) -> Vec<i32> {
209209
let mut rng: XorShiftRng = rand::SeedableRng::seed_from_u64(get_or_init_rand_seed());
210-
(0..len).map(|_| rng.gen::<i32>()).collect()
210+
(0..len).map(|_| rng.random::<i32>()).collect()
211211
}

0 commit comments

Comments
 (0)