Skip to content

Commit 5f6a8ae

Browse files
committed
auto merge of #9362 : huonw/rust/rand, r=alexcrichton
First steps on toward a shiny new `std::rand`, this does a variety of relatively clean-up tasks, like: - moving `std/rand.rs` to `std/rand/mod.rs` in preparation for (e.g.) splitting the large chunk that is the `Isaac` implementation into a separate file later. - removing the now unused RNG code in the old rt (500 lines gone just like that!) - merging Rng and RngUtil via default methods - examples in the documentation for almost all methods. And other things mentioned in the commit messages.
2 parents 0716782 + 0951313 commit 5f6a8ae

25 files changed

+311
-779
lines changed

mk/rt.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ RUNTIME_CXXS_$(1)_$(2) := \
7474
rt/rust_rng.cpp \
7575
rt/rust_upcall.cpp \
7676
rt/rust_uv.cpp \
77-
rt/isaac/randport.cpp \
7877
rt/miniz.cpp \
7978
rt/memory_region.cpp \
8079
rt/boxed_region.cpp \

src/libextra/base64.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -311,11 +311,11 @@ mod test {
311311
312312
#[test]
313313
fn test_base64_random() {
314-
use std::rand::{task_rng, random, RngUtil};
314+
use std::rand::{task_rng, random, Rng};
315315
use std::vec;
316316
317317
do 1000.times {
318-
let times = task_rng().gen_uint_range(1, 100);
318+
let times = task_rng().gen_integer_range(1u, 100);
319319
let v = vec::from_fn(times, |_| random::<u8>());
320320
assert_eq!(v.to_base64(STANDARD).from_base64().unwrap(), v);
321321
}

src/libextra/container.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ pub trait Deque<T> : Mutable {
4343
mod bench {
4444
use std::container::MutableMap;
4545
use std::{vec, rand};
46-
use std::rand::RngUtil;
46+
use std::rand::Rng;
4747
use test::BenchHarness;
4848

4949
pub fn insert_rand_n<M:MutableMap<uint,uint>>(n: uint,

src/libextra/crypto/cryptoutil.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -347,8 +347,7 @@ impl <T: FixedBuffer> StandardPadding for T {
347347

348348
#[cfg(test)]
349349
mod test {
350-
use std::rand::IsaacRng;
351-
use std::rand::RngUtil;
350+
use std::rand::{IsaacRng, Rng};
352351
use std::vec;
353352

354353
use cryptoutil::{add_bytes_to_bits, add_bytes_to_bits_tuple};
@@ -365,7 +364,7 @@ mod test {
365364
digest.reset();
366365

367366
while count < total_size {
368-
let next: uint = rng.gen_uint_range(0, 2 * blocksize + 1);
367+
let next: uint = rng.gen_integer_range(0, 2 * blocksize + 1);
369368
let remaining = total_size - count;
370369
let size = if next > remaining { remaining } else { next };
371370
digest.input(buffer.slice_to(size));

src/libextra/flate.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,15 +106,15 @@ pub fn inflate_bytes_zlib(bytes: &[u8]) -> ~[u8] {
106106
mod tests {
107107
use super::*;
108108
use std::rand;
109-
use std::rand::RngUtil;
109+
use std::rand::Rng;
110110

111111
#[test]
112112
fn test_flate_round_trip() {
113113
let mut r = rand::rng();
114114
let mut words = ~[];
115115
do 20.times {
116-
let range = r.gen_uint_range(1, 10);
117-
words.push(r.gen_bytes(range));
116+
let range = r.gen_integer_range(1u, 10);
117+
words.push(r.gen_vec::<u8>(range));
118118
}
119119
do 20.times {
120120
let mut input = ~[];

src/libextra/num/bigint.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use std::cmp::{Eq, Ord, TotalEq, TotalOrd, Ordering, Less, Equal, Greater};
2323
use std::int;
2424
use std::num;
2525
use std::num::{IntConvertible, Zero, One, ToStrRadix, FromStrRadix, Orderable};
26-
use std::rand::{Rng, RngUtil};
26+
use std::rand::Rng;
2727
use std::str;
2828
use std::uint;
2929
use std::vec;

src/libextra/sort.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -909,7 +909,7 @@ mod tests {
909909
mod test_tim_sort {
910910

911911
use sort::tim_sort;
912-
use std::rand::RngUtil;
912+
use std::rand::Rng;
913913
use std::rand;
914914
use std::vec;
915915

@@ -1008,7 +1008,7 @@ mod big_tests {
10081008

10091009
use sort::*;
10101010

1011-
use std::rand::RngUtil;
1011+
use std::rand::Rng;
10121012
use std::rand;
10131013
use std::vec;
10141014

@@ -1069,8 +1069,8 @@ mod big_tests {
10691069
isSorted(arr);
10701070

10711071
do 3.times {
1072-
let i1 = rng.gen_uint_range(0, n);
1073-
let i2 = rng.gen_uint_range(0, n);
1072+
let i1 = rng.gen_integer_range(0u, n);
1073+
let i2 = rng.gen_integer_range(0u, n);
10741074
arr.swap(i1, i2);
10751075
}
10761076
tim_sort(arr); // 3sort
@@ -1088,7 +1088,7 @@ mod big_tests {
10881088
isSorted(arr);
10891089

10901090
do (n/100).times {
1091-
let idx = rng.gen_uint_range(0, n);
1091+
let idx = rng.gen_integer_range(0u, n);
10921092
arr[idx] = rng.gen();
10931093
}
10941094
tim_sort(arr);
@@ -1141,8 +1141,8 @@ mod big_tests {
11411141
isSorted(arr);
11421142

11431143
do 3.times {
1144-
let i1 = rng.gen_uint_range(0, n);
1145-
let i2 = rng.gen_uint_range(0, n);
1144+
let i1 = rng.gen_integer_range(0u, n);
1145+
let i2 = rng.gen_integer_range(0u, n);
11461146
arr.swap(i1, i2);
11471147
}
11481148
tim_sort(arr); // 3sort
@@ -1160,7 +1160,7 @@ mod big_tests {
11601160
isSorted(arr);
11611161

11621162
do (n/100).times {
1163-
let idx = rng.gen_uint_range(0, n);
1163+
let idx = rng.gen_integer_range(0u, n);
11641164
arr[idx] = @rng.gen();
11651165
}
11661166
tim_sort(arr);

src/libextra/tempfile.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@
1212
1313

1414
use std::os;
15-
use std::rand::RngUtil;
15+
use std::rand::Rng;
1616
use std::rand;
1717

1818
/// Attempts to make a temporary directory inside of `tmpdir` whose name will
1919
/// have the suffix `suffix`. If no directory can be created, None is returned.
2020
pub fn mkdtemp(tmpdir: &Path, suffix: &str) -> Option<Path> {
2121
let mut r = rand::rng();
2222
for _ in range(0u, 1000) {
23-
let p = tmpdir.push(r.gen_str(16) + suffix);
23+
let p = tmpdir.push(r.gen_ascii_str(16) + suffix);
2424
if os::make_dir(&p, 0x1c0) { // 700
2525
return Some(p);
2626
}

src/libextra/treemap.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -874,7 +874,7 @@ mod test_treemap {
874874

875875
use super::*;
876876

877-
use std::rand::RngUtil;
877+
use std::rand::Rng;
878878
use std::rand;
879879

880880
#[test]
@@ -1028,7 +1028,7 @@ mod test_treemap {
10281028
}
10291029

10301030
do 30.times {
1031-
let r = rng.gen_uint_range(0, ctrl.len());
1031+
let r = rng.gen_integer_range(0, ctrl.len());
10321032
let (key, _) = ctrl.remove(r);
10331033
assert!(map.remove(&key));
10341034
check_structure(&map);

src/libextra/uuid.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ use std::char::Char;
6262
use std::container::Container;
6363
use std::to_str::ToStr;
6464
use std::rand;
65-
use std::rand::RngUtil;
65+
use std::rand::Rng;
6666
use std::cmp::Eq;
6767
use std::cast::{transmute,transmute_copy};
6868

@@ -170,7 +170,7 @@ impl Uuid {
170170
/// of random numbers. Use the rand::Rand trait to supply
171171
/// a custom generator if required.
172172
pub fn new_v4() -> Uuid {
173-
let ub = rand::task_rng().gen_bytes(16);
173+
let ub = rand::task_rng().gen_vec(16);
174174
let mut uuid = Uuid{ bytes: [0, .. 16] };
175175
vec::bytes::copy_memory(uuid.bytes, ub, 16);
176176
uuid.set_variant(VariantRFC4122);
@@ -488,7 +488,7 @@ impl TotalEq for Uuid {
488488
impl rand::Rand for Uuid {
489489
#[inline]
490490
fn rand<R: rand::Rng>(rng: &mut R) -> Uuid {
491-
let ub = rng.gen_bytes(16);
491+
let ub = rng.gen_vec(16);
492492
let mut uuid = Uuid{ bytes: [0, .. 16] };
493493
vec::bytes::copy_memory(uuid.bytes, ub, 16);
494494
uuid.set_variant(VariantRFC4122);

src/libstd/hashmap.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use iter::{Iterator, FromIterator, Extendable};
2424
use iter::{FilterMap, Chain, Repeat, Zip};
2525
use num;
2626
use option::{None, Option, Some};
27-
use rand::RngUtil;
27+
use rand::Rng;
2828
use rand;
2929
use uint;
3030
use util::replace;

src/libstd/num/strconv.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -734,7 +734,7 @@ mod test {
734734
#[cfg(test)]
735735
mod bench {
736736
use extra::test::BenchHarness;
737-
use rand::{XorShiftRng,RngUtil};
737+
use rand::{XorShiftRng, Rng};
738738
use float;
739739
use to_str::ToStr;
740740

src/libstd/os.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1718,7 +1718,7 @@ mod tests {
17181718
use os::{remove_file, setenv, unsetenv};
17191719
use os;
17201720
use path::Path;
1721-
use rand::RngUtil;
1721+
use rand::Rng;
17221722
use rand;
17231723
use run;
17241724
use str::StrSlice;
@@ -1738,7 +1738,7 @@ mod tests {
17381738
17391739
fn make_rand_name() -> ~str {
17401740
let mut rng = rand::rng();
1741-
let n = ~"TEST" + rng.gen_str(10u);
1741+
let n = ~"TEST" + rng.gen_ascii_str(10u);
17421742
assert!(getenv(n).is_none());
17431743
n
17441744
}

0 commit comments

Comments
 (0)