Skip to content

Commit b7b7985

Browse files
committed
resolve conflict
2 parents b62d978 + 0ba7d41 commit b7b7985

Some content is hidden

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

53 files changed

+1043
-462
lines changed

appveyor.yml

+9
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ environment:
1414
MSYS_BITS: 64
1515
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
1616
SCRIPT: python x.py test
17+
# FIXME(#59637)
18+
NO_DEBUG_ASSERTIONS: 1
19+
NO_LLVM_ASSERTIONS: 1
1720
- CI_JOB_NAME: i686-msvc-1
1821
MSYS_BITS: 32
1922
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
@@ -59,6 +62,9 @@ environment:
5962
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
6063
MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
6164
MINGW_DIR: mingw32
65+
# FIXME(#59637)
66+
NO_DEBUG_ASSERTIONS: 1
67+
NO_LLVM_ASSERTIONS: 1
6268
- CI_JOB_NAME: i686-mingw-2
6369
MSYS_BITS: 32
6470
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
@@ -73,6 +79,9 @@ environment:
7379
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
7480
MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
7581
MINGW_DIR: mingw64
82+
# FIXME(#59637)
83+
NO_DEBUG_ASSERTIONS: 1
84+
NO_LLVM_ASSERTIONS: 1
7685

7786
# 32/64 bit MSVC and GNU deployment
7887
- CI_JOB_NAME: dist-x86_64-msvc

src/liballoc/benches/btree/set.rs

+57-57
Original file line numberDiff line numberDiff line change
@@ -3,86 +3,86 @@ use std::collections::BTreeSet;
33
use rand::{thread_rng, Rng};
44
use test::{black_box, Bencher};
55

6-
fn random(n1: u32, n2: u32) -> [BTreeSet<usize>; 2] {
6+
fn random(n: usize) -> BTreeSet<usize> {
77
let mut rng = thread_rng();
8-
let mut set1 = BTreeSet::new();
9-
let mut set2 = BTreeSet::new();
10-
for _ in 0..n1 {
11-
let i = rng.gen::<usize>();
12-
set1.insert(i);
8+
let mut set = BTreeSet::new();
9+
while set.len() < n {
10+
set.insert(rng.gen());
1311
}
14-
for _ in 0..n2 {
15-
let i = rng.gen::<usize>();
16-
set2.insert(i);
17-
}
18-
[set1, set2]
12+
assert_eq!(set.len(), n);
13+
set
1914
}
2015

21-
fn staggered(n1: u32, n2: u32) -> [BTreeSet<u32>; 2] {
22-
let mut even = BTreeSet::new();
23-
let mut odd = BTreeSet::new();
24-
for i in 0..n1 {
25-
even.insert(i * 2);
26-
}
27-
for i in 0..n2 {
28-
odd.insert(i * 2 + 1);
16+
fn neg(n: usize) -> BTreeSet<i32> {
17+
let mut set = BTreeSet::new();
18+
for i in -(n as i32)..=-1 {
19+
set.insert(i);
2920
}
30-
[even, odd]
21+
assert_eq!(set.len(), n);
22+
set
3123
}
3224

33-
fn neg_vs_pos(n1: u32, n2: u32) -> [BTreeSet<i32>; 2] {
34-
let mut neg = BTreeSet::new();
35-
let mut pos = BTreeSet::new();
36-
for i in -(n1 as i32)..=-1 {
37-
neg.insert(i);
38-
}
39-
for i in 1..=(n2 as i32) {
40-
pos.insert(i);
25+
fn pos(n: usize) -> BTreeSet<i32> {
26+
let mut set = BTreeSet::new();
27+
for i in 1..=(n as i32) {
28+
set.insert(i);
4129
}
42-
[neg, pos]
30+
assert_eq!(set.len(), n);
31+
set
4332
}
4433

45-
fn pos_vs_neg(n1: u32, n2: u32) -> [BTreeSet<i32>; 2] {
46-
let mut neg = BTreeSet::new();
47-
let mut pos = BTreeSet::new();
48-
for i in -(n1 as i32)..=-1 {
49-
neg.insert(i);
50-
}
51-
for i in 1..=(n2 as i32) {
52-
pos.insert(i);
34+
35+
fn stagger(n1: usize, factor: usize) -> [BTreeSet<u32>; 2] {
36+
let n2 = n1 * factor;
37+
let mut sets = [BTreeSet::new(), BTreeSet::new()];
38+
for i in 0..(n1 + n2) {
39+
let b = i % (factor + 1) != 0;
40+
sets[b as usize].insert(i as u32);
5341
}
54-
[pos, neg]
42+
assert_eq!(sets[0].len(), n1);
43+
assert_eq!(sets[1].len(), n2);
44+
sets
5545
}
5646

57-
macro_rules! set_intersection_bench {
58-
($name: ident, $sets: expr) => {
47+
macro_rules! set_bench {
48+
($name: ident, $set_func: ident, $result_func: ident, $sets: expr) => {
5949
#[bench]
6050
pub fn $name(b: &mut Bencher) {
6151
// setup
6252
let sets = $sets;
6353

6454
// measure
6555
b.iter(|| {
66-
let x = sets[0].intersection(&sets[1]).count();
56+
let x = sets[0].$set_func(&sets[1]).$result_func();
6757
black_box(x);
6858
})
6959
}
7060
};
7161
}
7262

73-
set_intersection_bench! {intersect_random_100, random(100, 100)}
74-
set_intersection_bench! {intersect_random_10k, random(10_000, 10_000)}
75-
set_intersection_bench! {intersect_random_10_vs_10k, random(10, 10_000)}
76-
set_intersection_bench! {intersect_random_10k_vs_10, random(10_000, 10)}
77-
set_intersection_bench! {intersect_staggered_100, staggered(100, 100)}
78-
set_intersection_bench! {intersect_staggered_10k, staggered(10_000, 10_000)}
79-
set_intersection_bench! {intersect_staggered_10_vs_10k, staggered(10, 10_000)}
80-
set_intersection_bench! {intersect_staggered_10k_vs_10, staggered(10_000, 10)}
81-
set_intersection_bench! {intersect_neg_vs_pos_100, neg_vs_pos(100, 100)}
82-
set_intersection_bench! {intersect_neg_vs_pos_10k, neg_vs_pos(10_000, 10_000)}
83-
set_intersection_bench! {intersect_neg_vs_pos_10_vs_10k,neg_vs_pos(10, 10_000)}
84-
set_intersection_bench! {intersect_neg_vs_pos_10k_vs_10,neg_vs_pos(10_000, 10)}
85-
set_intersection_bench! {intersect_pos_vs_neg_100, pos_vs_neg(100, 100)}
86-
set_intersection_bench! {intersect_pos_vs_neg_10k, pos_vs_neg(10_000, 10_000)}
87-
set_intersection_bench! {intersect_pos_vs_neg_10_vs_10k,pos_vs_neg(10, 10_000)}
88-
set_intersection_bench! {intersect_pos_vs_neg_10k_vs_10,pos_vs_neg(10_000, 10)}
63+
set_bench! {intersection_100_neg_vs_100_pos, intersection, count, [neg(100), pos(100)]}
64+
set_bench! {intersection_100_neg_vs_10k_pos, intersection, count, [neg(100), pos(10_000)]}
65+
set_bench! {intersection_100_pos_vs_100_neg, intersection, count, [pos(100), neg(100)]}
66+
set_bench! {intersection_100_pos_vs_10k_neg, intersection, count, [pos(100), neg(10_000)]}
67+
set_bench! {intersection_10k_neg_vs_100_pos, intersection, count, [neg(10_000), pos(100)]}
68+
set_bench! {intersection_10k_neg_vs_10k_pos, intersection, count, [neg(10_000), pos(10_000)]}
69+
set_bench! {intersection_10k_pos_vs_100_neg, intersection, count, [pos(10_000), neg(100)]}
70+
set_bench! {intersection_10k_pos_vs_10k_neg, intersection, count, [pos(10_000), neg(10_000)]}
71+
set_bench! {intersection_random_100_vs_100, intersection, count, [random(100), random(100)]}
72+
set_bench! {intersection_random_100_vs_10k, intersection, count, [random(100), random(10_000)]}
73+
set_bench! {intersection_random_10k_vs_100, intersection, count, [random(10_000), random(100)]}
74+
set_bench! {intersection_random_10k_vs_10k, intersection, count, [random(10_000), random(10_000)]}
75+
set_bench! {intersection_staggered_100_vs_100, intersection, count, stagger(100, 1)}
76+
set_bench! {intersection_staggered_10k_vs_10k, intersection, count, stagger(10_000, 1)}
77+
set_bench! {intersection_staggered_100_vs_10k, intersection, count, stagger(100, 100)}
78+
set_bench! {difference_random_100_vs_100, difference, count, [random(100), random(100)]}
79+
set_bench! {difference_random_100_vs_10k, difference, count, [random(100), random(10_000)]}
80+
set_bench! {difference_random_10k_vs_100, difference, count, [random(10_000), random(100)]}
81+
set_bench! {difference_random_10k_vs_10k, difference, count, [random(10_000), random(10_000)]}
82+
set_bench! {difference_staggered_100_vs_100, difference, count, stagger(100, 1)}
83+
set_bench! {difference_staggered_10k_vs_10k, difference, count, stagger(10_000, 1)}
84+
set_bench! {difference_staggered_100_vs_10k, difference, count, stagger(100, 100)}
85+
set_bench! {is_subset_100_vs_100, is_subset, clone, [pos(100), pos(100)]}
86+
set_bench! {is_subset_100_vs_10k, is_subset, clone, [pos(100), pos(10_000)]}
87+
set_bench! {is_subset_10k_vs_100, is_subset, clone, [pos(10_000), pos(100)]}
88+
set_bench! {is_subset_10k_vs_10k, is_subset, clone, [pos(10_000), pos(10_000)]}

0 commit comments

Comments
 (0)