Skip to content

Commit c178a85

Browse files
committed
---
yaml --- r: 180043 b: refs/heads/master c: d4cece2 h: refs/heads/master i: 180041: 06ca08d 180039: 5050412 v: v3
1 parent c124599 commit c178a85

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

+506
-4075
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: d2f990f2b0a5a6bdc0834ab8e8ea17bb5212efee
2+
refs/heads/master: d4cece25ccbb74f437d7b2cd2cc1ffaaf68d24ed
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: e29f42025513374f1a88404491d1b40386acf994
55
refs/heads/try: ccf8fedf1cffcb8f6f3581d53d220039e192fe77

trunk/src/compiletest/compiletest.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#![feature(collections)]
1515
#![feature(int_uint)]
1616
#![feature(io)]
17+
#![feature(os)]
1718
#![feature(path)]
1819
#![feature(rustc_private)]
1920
#![feature(slicing_syntax, unboxed_closures)]
@@ -47,7 +48,8 @@ pub mod common;
4748
pub mod errors;
4849

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

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

trunk/src/compiletest/util.rs

Lines changed: 1 addition & 1 deletion
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(lib_path_env_var()) {
43+
match env::var_string(lib_path_env_var()) {
4444
Ok(curr) => {
4545
format!("{}{}{}", path, path_div(), curr)
4646
}

trunk/src/liballoc/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@
7171
#![feature(box_syntax)]
7272
#![feature(optin_builtin_traits)]
7373
#![feature(unboxed_closures)]
74-
#![feature(unsafe_no_drop_flag)]
7574
#![feature(core)]
7675
#![feature(hash)]
7776
#![cfg_attr(all(not(feature = "external_funcs"), not(feature = "external_crate")),

trunk/src/libcollections/bench.rs

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

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-
)
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);
3838
}
3939

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-
)
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);
6361
}
6462

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-
)
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+
})
9788
}
9889

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-
)
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+
})
122110
}

trunk/src/libcollections/btree/map.rs

Lines changed: 64 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1843,18 +1843,74 @@ 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};
18461847

1847-
map_insert_rand_bench!{insert_rand_100, 100, BTreeMap}
1848-
map_insert_rand_bench!{insert_rand_10_000, 10_000, BTreeMap}
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+
}
18491880

1850-
map_insert_seq_bench!{insert_seq_100, 100, BTreeMap}
1851-
map_insert_seq_bench!{insert_seq_10_000, 10_000, BTreeMap}
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+
}
18521897

1853-
map_find_rand_bench!{find_rand_100, 100, BTreeMap}
1854-
map_find_rand_bench!{find_rand_10_000, 10_000, BTreeMap}
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+
}
18551906

1856-
map_find_seq_bench!{find_seq_100, 100, BTreeMap}
1857-
map_find_seq_bench!{find_seq_10_000, 10_000, BTreeMap}
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+
}
18581914

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

trunk/src/libcollections/fmt.rs

Lines changed: 1 addition & 1 deletion
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-
#![stable(feature = "rust1", since = "1.0.0")]
404+
#![unstable(feature = "std_misc")]
405405

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

trunk/src/libcollections/lib.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,10 @@
2727
#![feature(box_patterns)]
2828
#![feature(core)]
2929
#![feature(hash)]
30-
#![feature(slicing_syntax)]
3130
#![feature(staged_api)]
3231
#![feature(unboxed_closures)]
3332
#![feature(unicode)]
34-
#![feature(unsafe_destructor)]
35-
#![feature(unsafe_no_drop_flag)]
33+
#![feature(unsafe_destructor, slicing_syntax)]
3634
#![cfg_attr(test, feature(rand, rustc_private, test))]
3735
#![cfg_attr(test, allow(deprecated))] // rand
3836

@@ -67,8 +65,6 @@ pub use alloc::boxed;
6765
#[macro_use]
6866
mod macros;
6967

70-
#[cfg(test)] #[macro_use] mod bench;
71-
7268
pub mod binary_heap;
7369
mod bit;
7470
mod btree;
@@ -106,6 +102,8 @@ pub mod btree_set {
106102
}
107103

108104

105+
#[cfg(test)] mod bench;
106+
109107
// FIXME(#14344) this shouldn't be necessary
110108
#[doc(hidden)]
111109
pub fn fixme_14344_be_sure_to_link_to_collections() {}

trunk/src/libcollections/slice.rs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2508,18 +2508,6 @@ 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);
25232511
}
25242512

25252513
#[test]

0 commit comments

Comments
 (0)