Skip to content

Commit 23e7d9b

Browse files
committed
Update rand to 0.5
1 parent b35e9d7 commit 23e7d9b

File tree

22 files changed

+136
-97
lines changed

22 files changed

+136
-97
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ default-features = false
2929
[dev-dependencies]
3030
docopt = "1"
3131
lazy_static = "1"
32-
rand = "0.4"
32+
rand = "0.5"
3333
serde = "1"
3434
serde_derive = "1"

rayon-core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ lazy_static = "1"
2424
version = "0.2.0"
2525

2626
[dev-dependencies]
27-
rand = "0.4"
27+
rand = "0.5"
2828

2929
[[test]]
3030
name = "stack_overflow_crash"

rayon-core/src/join/test.rs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
use ThreadPoolBuilder;
44
use join::*;
55
use rand::{Rng, SeedableRng, XorShiftRng};
6+
use rand::distributions::Standard;
67
use unwind;
78

89
fn quick_sort<T: PartialOrd + Send>(v: &mut [T]) {
@@ -28,10 +29,16 @@ fn partition<T: PartialOrd + Send>(v: &mut [T]) -> usize {
2829
i
2930
}
3031

32+
fn seeded_rng() -> XorShiftRng {
33+
let mut seed = <XorShiftRng as SeedableRng>::Seed::default();
34+
(0..).zip(seed.as_mut()).for_each(|(i, x)| *x = i);
35+
XorShiftRng::from_seed(seed)
36+
}
37+
3138
#[test]
3239
fn sort() {
33-
let mut rng = XorShiftRng::from_seed([0, 1, 2, 3]);
34-
let mut data: Vec<_> = (0..6 * 1024).map(|_| rng.next_u32()).collect();
40+
let mut rng = seeded_rng();
41+
let mut data: Vec<u32> = rng.sample_iter(&Standard).take(6 * 1024).collect();
3542
let mut sorted_data = data.clone();
3643
sorted_data.sort();
3744
quick_sort(&mut data);
@@ -40,8 +47,8 @@ fn sort() {
4047

4148
#[test]
4249
fn sort_in_pool() {
43-
let mut rng = XorShiftRng::from_seed([0, 1, 2, 3]);
44-
let mut data: Vec<_> = (0..12 * 1024).map(|_| rng.next_u32()).collect();
50+
let mut rng = seeded_rng();
51+
let mut data: Vec<u32> = rng.sample_iter(&Standard).take(12 * 1024).collect();
4552

4653
let pool = ThreadPoolBuilder::new().build().unwrap();
4754
let mut sorted_data = data.clone();

rayon-core/src/scope/test.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,21 +105,23 @@ impl<T: Send> Tree<T> {
105105

106106
fn random_tree(depth: usize) -> Tree<u32> {
107107
assert!(depth > 0);
108-
let mut rng = XorShiftRng::from_seed([0, 1, 2, 3]);
108+
let mut seed = <XorShiftRng as SeedableRng>::Seed::default();
109+
(0..).zip(seed.as_mut()).for_each(|(i, x)| *x = i);
110+
let mut rng = XorShiftRng::from_seed(seed);
109111
random_tree1(depth, &mut rng)
110112
}
111113

112114
fn random_tree1(depth: usize, rng: &mut XorShiftRng) -> Tree<u32> {
113115
let children = if depth == 0 {
114116
vec![]
115117
} else {
116-
(0..(rng.next_u32() % 3)) // somewhere between 0 and 3 children at each level
118+
(0..rng.gen_range(0, 4)) // somewhere between 0 and 3 children at each level
117119
.map(|_| random_tree1(depth - 1, rng))
118120
.collect()
119121
};
120122

121123
Tree {
122-
value: rng.next_u32() % 1_000_000,
124+
value: rng.gen_range(0, 1_000_000),
123125
children: children,
124126
}
125127
}

rayon-demo/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ fixedbitset = "0.1.5"
1212
glium = "0.20"
1313
lazy_static = "1"
1414
odds = "0.3"
15-
rand = "0.4"
15+
rand = "0.5"
1616
regex = "0.2"
1717
serde = "1"
1818
serde_derive = "1"

rayon-demo/src/find/mod.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,17 @@ macro_rules! make_tests {
55
mod $m {
66
use rayon::prelude::*;
77
use test::Bencher;
8-
use rand::{Rng, SeedableRng, XorShiftRng};
8+
use rand::Rng;
9+
use rand::distributions::Standard;
910

1011
lazy_static! {
1112
static ref HAYSTACK: Vec<[u32; $n]> = {
12-
let mut rng = XorShiftRng::from_seed([0, 1, 2, 3]);
13-
(0..10_000_000).map(|_| {
13+
let mut rng = ::seeded_rng();
14+
rng.sample_iter(&Standard).map(|x| {
1415
let mut result: [u32; $n] = [0; $n];
15-
result[0] = rng.next_u32();
16+
result[0] = x;
1617
result
17-
}).collect()
18+
}).take(10_000_000).collect()
1819
};
1920
}
2021

rayon-demo/src/life/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Options:
1313

1414

1515
use rand::{thread_rng, Rng};
16+
use rand::distributions::Standard;
1617
use std::iter::repeat;
1718
use std::num::Wrapping;
1819
use std::sync::Arc;
@@ -74,7 +75,7 @@ impl Board {
7475
}
7576

7677
pub fn random(&self) -> Board {
77-
let new_brd = thread_rng().gen_iter().take(self.len()).collect();
78+
let new_brd = thread_rng().sample_iter(&Standard).take(self.len()).collect();
7879

7980
self.next_board(new_brd)
8081
}

rayon-demo/src/main.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,10 @@ fn main() {
9595
_ => usage()
9696
}
9797
}
98+
99+
fn seeded_rng() -> rand::XorShiftRng {
100+
use rand::{SeedableRng, XorShiftRng};
101+
let mut seed = <XorShiftRng as SeedableRng>::Seed::default();
102+
(0..).zip(seed.as_mut()).for_each(|(i, x)| *x = i);
103+
XorShiftRng::from_seed(seed)
104+
}

rayon-demo/src/mergesort/mod.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use rand::{Rng, SeedableRng, XorShiftRng};
1+
use rand::Rng;
2+
use rand::distributions::Standard;
23

34
const USAGE: &'static str = "
45
Usage: mergesort bench [--size N]
@@ -220,8 +221,8 @@ pub fn is_sorted<T: Send + Ord>(v: &mut [T]) -> bool {
220221
}
221222

222223
fn default_vec(n: usize) -> Vec<u32> {
223-
let mut rng = XorShiftRng::from_seed([0, 1, 2, 3]);
224-
(0..n).map(|_| rng.next_u32()).collect()
224+
let mut rng = ::seeded_rng();
225+
rng.sample_iter(&Standard).take(n).collect()
225226
}
226227

227228
fn timed_sort<F: FnOnce(&mut [u32])>(n: usize, f: F, name: &str) -> u64 {

rayon-demo/src/nbody/bench.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use rand::{SeedableRng, XorShiftRng};
21
use test;
32

43
use super::nbody::NBodyBenchmark;
@@ -11,7 +10,7 @@ const BENCH_TICKS: usize = 10;
1110
fn nbody_bench<TICK>(b: &mut test::Bencher, mut tick: TICK)
1211
where TICK: FnMut(&mut NBodyBenchmark)
1312
{
14-
let mut rng = XorShiftRng::from_seed([0, 1, 2, 3]);
13+
let mut rng = ::seeded_rng();
1514
let mut benchmark = NBodyBenchmark::new(BENCH_BODIES, &mut rng);
1615
b.iter(|| {
1716
for _ in 0 .. BENCH_TICKS {

0 commit comments

Comments
 (0)