Skip to content

Commit 3ef8ff1

Browse files
committed
Auto merge of #22192 - alexcrichton:rollup, r=alexcrichton
2 parents e29f420 + fb1f4d1 commit 3ef8ff1

Some content is hidden

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

104 files changed

+4076
-506
lines changed

src/compiletest/compiletest.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
#![feature(collections)]
1515
#![feature(int_uint)]
1616
#![feature(io)]
17-
#![feature(os)]
1817
#![feature(path)]
1918
#![feature(rustc_private)]
2019
#![feature(slicing_syntax, unboxed_closures)]
@@ -48,8 +47,7 @@ pub mod common;
4847
pub mod errors;
4948

5049
pub fn main() {
51-
let args = env::args().map(|s| s.into_string().unwrap()).collect();;
52-
let config = parse_config(args);
50+
let config = parse_config(env::args().collect());
5351

5452
if config.valgrind_path.is_none() && config.force_valgrind {
5553
panic!("Can't find Valgrind to run Valgrind tests");

src/compiletest/util.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ pub fn make_new_path(path: &str) -> String {
4040

4141
// Windows just uses PATH as the library search path, so we have to
4242
// maintain the current value while adding our own
43-
match env::var_string(lib_path_env_var()) {
43+
match env::var(lib_path_env_var()) {
4444
Ok(curr) => {
4545
format!("{}{}{}", path, path_div(), curr)
4646
}

src/liballoc/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
#![feature(box_syntax)]
7272
#![feature(optin_builtin_traits)]
7373
#![feature(unboxed_closures)]
74+
#![feature(unsafe_no_drop_flag)]
7475
#![feature(core)]
7576
#![feature(hash)]
7677
#![cfg_attr(all(not(feature = "external_funcs"), not(feature = "external_crate")),

src/libcollections/bench.rs

+105-93
Original file line numberDiff line numberDiff line change
@@ -8,103 +8,115 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use prelude::*;
12-
use std::rand;
13-
use std::rand::Rng;
14-
use test::{Bencher, black_box};
15-
16-
pub fn insert_rand_n<M, I, R>(n: usize,
17-
map: &mut M,
18-
b: &mut Bencher,
19-
mut insert: I,
20-
mut remove: R) where
21-
I: FnMut(&mut M, usize),
22-
R: FnMut(&mut M, usize),
23-
{
24-
// setup
25-
let mut rng = rand::weak_rng();
26-
27-
for _ in 0..n {
28-
insert(map, rng.gen::<usize>() % n);
29-
}
30-
31-
// measure
32-
b.iter(|| {
33-
let k = rng.gen::<usize>() % n;
34-
insert(map, k);
35-
remove(map, k);
36-
});
37-
black_box(map);
11+
macro_rules! map_insert_rand_bench {
12+
($name: ident, $n: expr, $map: ident) => (
13+
#[bench]
14+
pub fn $name(b: &mut ::test::Bencher) {
15+
use std::rand;
16+
use std::rand::Rng;
17+
use test::black_box;
18+
19+
let n: usize = $n;
20+
let mut map = $map::new();
21+
// setup
22+
let mut rng = rand::weak_rng();
23+
24+
for _ in 0..n {
25+
let i = rng.gen() % n;
26+
map.insert(i, i);
27+
}
28+
29+
// measure
30+
b.iter(|| {
31+
let k = rng.gen() % n;
32+
map.insert(k, k);
33+
map.remove(&k);
34+
});
35+
black_box(map);
36+
}
37+
)
3838
}
3939

40-
pub fn insert_seq_n<M, I, R>(n: usize,
41-
map: &mut M,
42-
b: &mut Bencher,
43-
mut insert: I,
44-
mut remove: R) where
45-
I: FnMut(&mut M, usize),
46-
R: FnMut(&mut M, usize),
47-
{
48-
// setup
49-
for i in 0..n {
50-
insert(map, i * 2);
51-
}
52-
53-
// measure
54-
let mut i = 1;
55-
b.iter(|| {
56-
insert(map, i);
57-
remove(map, i);
58-
i = (i + 2) % n;
59-
});
60-
black_box(map);
40+
macro_rules! map_insert_seq_bench {
41+
($name: ident, $n: expr, $map: ident) => (
42+
#[bench]
43+
pub fn $name(b: &mut ::test::Bencher) {
44+
use test::black_box;
45+
46+
let mut map = $map::new();
47+
let n: usize = $n;
48+
// setup
49+
for i in 0..n {
50+
map.insert(i * 2, i * 2);
51+
}
52+
53+
// measure
54+
let mut i = 1;
55+
b.iter(|| {
56+
map.insert(i, i);
57+
map.remove(&i);
58+
i = (i + 2) % n;
59+
});
60+
black_box(map);
61+
}
62+
)
6163
}
6264

63-
pub fn find_rand_n<M, T, I, F>(n: usize,
64-
map: &mut M,
65-
b: &mut Bencher,
66-
mut insert: I,
67-
mut find: F) where
68-
I: FnMut(&mut M, usize),
69-
F: FnMut(&M, usize) -> T,
70-
{
71-
// setup
72-
let mut rng = rand::weak_rng();
73-
let mut keys: Vec<_> = (0..n).map(|_| rng.gen::<usize>() % n).collect();
74-
75-
for k in &keys {
76-
insert(map, *k);
77-
}
78-
79-
rng.shuffle(&mut keys);
80-
81-
// measure
82-
let mut i = 0;
83-
b.iter(|| {
84-
let t = find(map, keys[i]);
85-
i = (i + 1) % n;
86-
black_box(t);
87-
})
65+
macro_rules! map_find_rand_bench {
66+
($name: ident, $n: expr, $map: ident) => (
67+
#[bench]
68+
pub fn $name(b: &mut ::test::Bencher) {
69+
use std::rand;
70+
use std::iter::IteratorExt;
71+
use std::rand::Rng;
72+
use test::black_box;
73+
use vec::Vec;
74+
75+
let mut map = $map::new();
76+
let n: usize = $n;
77+
78+
// setup
79+
let mut rng = rand::weak_rng();
80+
let mut keys: Vec<_> = (0..n).map(|_| rng.gen() % n).collect();
81+
82+
for &k in &keys {
83+
map.insert(k, k);
84+
}
85+
86+
rng.shuffle(&mut keys);
87+
88+
// measure
89+
let mut i = 0;
90+
b.iter(|| {
91+
let t = map.get(&keys[i]);
92+
i = (i + 1) % n;
93+
black_box(t);
94+
})
95+
}
96+
)
8897
}
8998

90-
pub fn find_seq_n<M, T, I, F>(n: usize,
91-
map: &mut M,
92-
b: &mut Bencher,
93-
mut insert: I,
94-
mut find: F) where
95-
I: FnMut(&mut M, usize),
96-
F: FnMut(&M, usize) -> T,
97-
{
98-
// setup
99-
for i in 0..n {
100-
insert(map, i);
101-
}
102-
103-
// measure
104-
let mut i = 0;
105-
b.iter(|| {
106-
let x = find(map, i);
107-
i = (i + 1) % n;
108-
black_box(x);
109-
})
99+
macro_rules! map_find_seq_bench {
100+
($name: ident, $n: expr, $map: ident) => (
101+
#[bench]
102+
pub fn $name(b: &mut ::test::Bencher) {
103+
use test::black_box;
104+
105+
let mut map = $map::new();
106+
let n: usize = $n;
107+
108+
// setup
109+
for i in 0..n {
110+
map.insert(i, i);
111+
}
112+
113+
// measure
114+
let mut i = 0;
115+
b.iter(|| {
116+
let x = map.get(&i);
117+
i = (i + 1) % n;
118+
black_box(x);
119+
})
120+
}
121+
)
110122
}

src/libcollections/btree/map.rs

+8-64
Original file line numberDiff line numberDiff line change
@@ -1843,74 +1843,18 @@ mod bench {
18431843
use test::{Bencher, black_box};
18441844

18451845
use super::BTreeMap;
1846-
use bench::{insert_rand_n, insert_seq_n, find_rand_n, find_seq_n};
18471846

1848-
#[bench]
1849-
pub fn insert_rand_100(b: &mut Bencher) {
1850-
let mut m = BTreeMap::new();
1851-
insert_rand_n(100, &mut m, b,
1852-
|m, i| { m.insert(i, 1); },
1853-
|m, i| { m.remove(&i); });
1854-
}
1855-
1856-
#[bench]
1857-
pub fn insert_rand_10_000(b: &mut Bencher) {
1858-
let mut m = BTreeMap::new();
1859-
insert_rand_n(10_000, &mut m, b,
1860-
|m, i| { m.insert(i, 1); },
1861-
|m, i| { m.remove(&i); });
1862-
}
1863-
1864-
// Insert seq
1865-
#[bench]
1866-
pub fn insert_seq_100(b: &mut Bencher) {
1867-
let mut m = BTreeMap::new();
1868-
insert_seq_n(100, &mut m, b,
1869-
|m, i| { m.insert(i, 1); },
1870-
|m, i| { m.remove(&i); });
1871-
}
1872-
1873-
#[bench]
1874-
pub fn insert_seq_10_000(b: &mut Bencher) {
1875-
let mut m = BTreeMap::new();
1876-
insert_seq_n(10_000, &mut m, b,
1877-
|m, i| { m.insert(i, 1); },
1878-
|m, i| { m.remove(&i); });
1879-
}
1847+
map_insert_rand_bench!{insert_rand_100, 100, BTreeMap}
1848+
map_insert_rand_bench!{insert_rand_10_000, 10_000, BTreeMap}
18801849

1881-
// Find rand
1882-
#[bench]
1883-
pub fn find_rand_100(b: &mut Bencher) {
1884-
let mut m = BTreeMap::new();
1885-
find_rand_n(100, &mut m, b,
1886-
|m, i| { m.insert(i, 1); },
1887-
|m, i| { m.get(&i); });
1888-
}
1889-
1890-
#[bench]
1891-
pub fn find_rand_10_000(b: &mut Bencher) {
1892-
let mut m = BTreeMap::new();
1893-
find_rand_n(10_000, &mut m, b,
1894-
|m, i| { m.insert(i, 1); },
1895-
|m, i| { m.get(&i); });
1896-
}
1850+
map_insert_seq_bench!{insert_seq_100, 100, BTreeMap}
1851+
map_insert_seq_bench!{insert_seq_10_000, 10_000, BTreeMap}
18971852

1898-
// Find seq
1899-
#[bench]
1900-
pub fn find_seq_100(b: &mut Bencher) {
1901-
let mut m = BTreeMap::new();
1902-
find_seq_n(100, &mut m, b,
1903-
|m, i| { m.insert(i, 1); },
1904-
|m, i| { m.get(&i); });
1905-
}
1853+
map_find_rand_bench!{find_rand_100, 100, BTreeMap}
1854+
map_find_rand_bench!{find_rand_10_000, 10_000, BTreeMap}
19061855

1907-
#[bench]
1908-
pub fn find_seq_10_000(b: &mut Bencher) {
1909-
let mut m = BTreeMap::new();
1910-
find_seq_n(10_000, &mut m, b,
1911-
|m, i| { m.insert(i, 1); },
1912-
|m, i| { m.get(&i); });
1913-
}
1856+
map_find_seq_bench!{find_seq_100, 100, BTreeMap}
1857+
map_find_seq_bench!{find_seq_10_000, 10_000, BTreeMap}
19141858

19151859
fn bench_iter(b: &mut Bencher, size: i32) {
19161860
let mut map = BTreeMap::<i32, i32>::new();

src/libcollections/fmt.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@
401401
//! them with the same character. For example, the `{` character is escaped with
402402
//! `{{` and the `}` character is escaped with `}}`.
403403
404-
#![unstable(feature = "std_misc")]
404+
#![stable(feature = "rust1", since = "1.0.0")]
405405

406406
pub use core::fmt::{Formatter, Result, Writer, rt};
407407
pub use core::fmt::{Show, String, Octal, Binary};

src/libcollections/lib.rs

+5-3
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,12 @@
2727
#![feature(box_patterns)]
2828
#![feature(core)]
2929
#![feature(hash)]
30+
#![feature(slicing_syntax)]
3031
#![feature(staged_api)]
3132
#![feature(unboxed_closures)]
3233
#![feature(unicode)]
33-
#![feature(unsafe_destructor, slicing_syntax)]
34+
#![feature(unsafe_destructor)]
35+
#![feature(unsafe_no_drop_flag)]
3436
#![cfg_attr(test, feature(rand, rustc_private, test))]
3537
#![cfg_attr(test, allow(deprecated))] // rand
3638

@@ -65,6 +67,8 @@ pub use alloc::boxed;
6567
#[macro_use]
6668
mod macros;
6769

70+
#[cfg(test)] #[macro_use] mod bench;
71+
6872
pub mod binary_heap;
6973
mod bit;
7074
mod btree;
@@ -102,8 +106,6 @@ pub mod btree_set {
102106
}
103107

104108

105-
#[cfg(test)] mod bench;
106-
107109
// FIXME(#14344) this shouldn't be necessary
108110
#[doc(hidden)]
109111
pub fn fixme_14344_be_sure_to_link_to_collections() {}

src/libcollections/slice.rs

+12
Original file line numberDiff line numberDiff line change
@@ -2508,6 +2508,18 @@ mod tests {
25082508
let wins: &[&[_]] = &[&[1,2,3], &[2,3,4]];
25092509
assert_eq!(v.windows(3).collect::<Vec<_>>(), wins);
25102510
assert!(v.windows(6).next().is_none());
2511+
2512+
let wins: &[&[_]] = &[&[3,4], &[2,3], &[1,2]];
2513+
assert_eq!(v.windows(2).rev().collect::<Vec<&[_]>>(), wins);
2514+
let mut it = v.windows(2);
2515+
assert_eq!(it.indexable(), 3);
2516+
let win: &[_] = &[1,2];
2517+
assert_eq!(it.idx(0).unwrap(), win);
2518+
let win: &[_] = &[2,3];
2519+
assert_eq!(it.idx(1).unwrap(), win);
2520+
let win: &[_] = &[3,4];
2521+
assert_eq!(it.idx(2).unwrap(), win);
2522+
assert_eq!(it.idx(3), None);
25112523
}
25122524

25132525
#[test]

0 commit comments

Comments
 (0)