Skip to content

Commit 259ad29

Browse files
committed
Move treemap.rs from libextra to libstd
1 parent ade310c commit 259ad29

19 files changed

+125
-107
lines changed

src/libextra/container.rs

+1-83
Original file line numberDiff line numberDiff line change
@@ -37,86 +37,4 @@ pub trait Deque<T> : Mutable {
3737

3838
/// Remove the first element and return it, or None if the sequence is empty
3939
fn pop_front(&mut self) -> Option<T>;
40-
}
41-
42-
#[cfg(test)]
43-
pub mod bench {
44-
use std::container::MutableMap;
45-
use std::{vec, rand};
46-
use std::rand::Rng;
47-
use test::BenchHarness;
48-
49-
pub fn insert_rand_n<M:MutableMap<uint,uint>>(n: uint,
50-
map: &mut M,
51-
bh: &mut BenchHarness) {
52-
// setup
53-
let mut rng = rand::XorShiftRng::new();
54-
55-
map.clear();
56-
for _ in range(0, n) {
57-
map.insert(rng.gen::<uint>() % n, 1);
58-
}
59-
60-
// measure
61-
do bh.iter {
62-
let k = rng.gen::<uint>() % n;
63-
map.insert(k, 1);
64-
map.remove(&k);
65-
}
66-
}
67-
68-
pub fn insert_seq_n<M:MutableMap<uint,uint>>(n: uint,
69-
map: &mut M,
70-
bh: &mut BenchHarness) {
71-
// setup
72-
map.clear();
73-
for i in range(0u, n) {
74-
map.insert(i*2, 1);
75-
}
76-
77-
// measure
78-
let mut i = 1;
79-
do bh.iter {
80-
map.insert(i, 1);
81-
map.remove(&i);
82-
i = (i + 2) % n;
83-
}
84-
}
85-
86-
pub fn find_rand_n<M:MutableMap<uint,uint>>(n: uint,
87-
map: &mut M,
88-
bh: &mut BenchHarness) {
89-
// setup
90-
let mut rng = rand::XorShiftRng::new();
91-
let mut keys = vec::from_fn(n, |_| rng.gen::<uint>() % n);
92-
93-
for k in keys.iter() {
94-
map.insert(*k, 1);
95-
}
96-
97-
rng.shuffle_mut(keys);
98-
99-
// measure
100-
let mut i = 0;
101-
do bh.iter {
102-
map.find(&(keys[i]));
103-
i = (i + 1) % n;
104-
}
105-
}
106-
107-
pub fn find_seq_n<M:MutableMap<uint,uint>>(n: uint,
108-
map: &mut M,
109-
bh: &mut BenchHarness) {
110-
// setup
111-
for i in range(0u, n) {
112-
map.insert(i, 1);
113-
}
114-
115-
// measure
116-
let mut i = 0;
117-
do bh.iter {
118-
map.find(&i);
119-
i = (i + 1) % n;
120-
}
121-
}
122-
}
40+
}

src/libextra/json.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ use std::io::mem::MemWriter;
2626
use std::num;
2727
use std::str;
2828
use std::to_str;
29+
use std::treemap::TreeMap;
2930

3031
use serialize::Encodable;
3132
use serialize;
32-
use treemap::TreeMap;
3333

3434
/// Represents a json value
3535
#[deriving(Clone, Eq)]
@@ -1312,8 +1312,8 @@ mod tests {
13121312
use super::*;
13131313

13141314
use std::io;
1315+
use std::treemap::TreeMap;
13151316
use serialize::Decodable;
1316-
use treemap::TreeMap;
13171317

13181318
#[deriving(Eq, Encodable, Decodable)]
13191319
enum Animal {

src/libextra/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ pub mod smallintmap;
6969
pub mod sort;
7070

7171
pub mod dlist;
72-
pub mod treemap;
7372
pub mod btree;
7473

7574
// And ... other stuff

src/libextra/serialize.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ use std::at_vec;
2222
use std::hashmap::{HashMap, HashSet};
2323
use std::trie::{TrieMap, TrieSet};
2424
use std::vec;
25+
use std::treemap::{TreeMap, TreeSet};
2526
use ringbuf::RingBuf;
2627
use container::Deque;
2728
use dlist::DList;
28-
use treemap::{TreeMap, TreeSet};
2929

3030
pub trait Encoder {
3131
// Primitive types:

src/libextra/smallintmap.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ mod bench {
472472

473473
use super::*;
474474
use test::BenchHarness;
475-
use container::bench::*;
475+
use std::container::bench::*;
476476

477477
// Find seq
478478
#[bench]

src/libextra/test.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ use stats::Stats;
2626
use stats;
2727
use term;
2828
use time::precise_time_ns;
29-
use treemap::TreeMap;
3029

30+
use std::treemap::TreeMap;
3131
use std::clone::Clone;
3232
use std::comm::{stream, SharedChan, GenericPort, GenericChan};
3333
use std::io;

src/libextra/workcache.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use json;
1414
use json::ToJson;
1515
use serialize::{Encoder, Encodable, Decoder, Decodable};
1616
use arc::{Arc,RWArc};
17-
use treemap::TreeMap;
17+
use std::treemap::TreeMap;
1818
use std::cell::Cell;
1919
use std::comm::{PortOne, oneshot};
2020
use std::{str, task};

src/librustdoc/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ fn json_output(crate: clean::Crate, res: ~[plugins::PluginJson], dst: Path) {
303303
// "crate": { parsed crate ... },
304304
// "plugins": { output of plugins ... }
305305
// }
306-
let mut json = ~extra::treemap::TreeMap::new();
306+
let mut json = ~std::treemap::TreeMap::new();
307307
json.insert(~"schema", json::String(SCHEMA_VERSION.to_owned()));
308308
let plugins_json = ~res.move_iter().filter_map(|opt| opt).collect();
309309

src/librustpkg/api.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ pub use path_util::default_workspace;
2222
pub use source_control::{safe_git_clone, git_clone_url};
2323

2424
use std::run;
25+
use std::treemap::TreeMap;
2526
use extra::arc::{Arc,RWArc};
2627
use extra::workcache;
2728
use extra::workcache::{Database, Logger, FreshnessMap};
28-
use extra::treemap::TreeMap;
2929

3030
// A little sad -- duplicated from rustc::back::*
3131
#[cfg(target_arch = "arm")]

src/librustpkg/package_source.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use package_id::PkgId;
1515
use std::io;
1616
use std::io::fs;
1717
use std::os;
18+
use std::treemap::TreeMap;
1819
use context::*;
1920
use crate::Crate;
2021
use messages::*;
@@ -26,7 +27,6 @@ use util::{compile_crate, DepMap};
2627
use workcache_support;
2728
use workcache_support::{digest_only_date, digest_file_with_date, crate_tag};
2829
use extra::workcache;
29-
use extra::treemap::TreeMap;
3030

3131
// An enumeration of the unpacked source of a package workspace.
3232
// This contains a list of files found in the source workspace.

src/librustpkg/tests.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ use std::io::fs;
1717
use std::io::File;
1818
use std::io::process;
1919
use std::io::process::ProcessExit;
20+
use std::treemap::TreeMap;
21+
use std::run::ProcessOutput;
2022
use extra::arc::Arc;
2123
use extra::arc::RWArc;
2224
use extra::tempfile::TempDir;
2325
use extra::workcache;
2426
use extra::workcache::{Database, Logger};
25-
use extra::treemap::TreeMap;
2627
use extra::getopts::groups::getopts;
27-
use std::run::ProcessOutput;
2828
use installed_packages::list_installed_packages;
2929
use package_id::{PkgId};
3030
use version::{ExactRevision, NoVersion, Version, Tagged};

src/librustpkg/util.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ use std::libc;
1212
use std::os;
1313
use std::io;
1414
use std::io::fs;
15+
use std::treemap::TreeMap;
1516
use extra::workcache;
1617
use rustc::driver::{driver, session};
1718
use extra::getopts::groups::getopts;
@@ -33,7 +34,6 @@ use path_util::{system_library, target_build_dir};
3334
use path_util::{default_workspace, built_library_in_workspace};
3435
pub use target::{OutputType, Main, Lib, Bench, Test, JustOne, lib_name_of, lib_crate_filename};
3536
pub use target::{Target, Build, Install};
36-
use extra::treemap::TreeMap;
3737
pub use target::{lib_name_of, lib_crate_filename, WhatToBuild, MaybeCustom, Inferred};
3838
use workcache_support::{digest_file_with_date, digest_only_date};
3939
use messages::error;

src/libstd/container.rs

+86
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,89 @@ pub trait MutableSet<T>: Set<T> + Mutable {
104104
/// present in the set.
105105
fn remove(&mut self, value: &T) -> bool;
106106
}
107+
108+
#[cfg(test)]
109+
pub mod bench {
110+
use super::MutableMap;
111+
use iter::*;
112+
use vec;
113+
use vec::ImmutableVector;
114+
use rand;
115+
use rand::Rng;
116+
use option::{None, Some};
117+
use extra::test::BenchHarness;
118+
119+
pub fn insert_rand_n<M:MutableMap<uint,uint>>(n: uint,
120+
map: &mut M,
121+
bh: &mut BenchHarness) {
122+
// setup
123+
let mut rng = rand::XorShiftRng::new();
124+
125+
map.clear();
126+
for _ in range(0, n) {
127+
map.insert(rng.gen::<uint>() % n, 1);
128+
}
129+
130+
// measure
131+
do bh.iter {
132+
let k = rng.gen::<uint>() % n;
133+
map.insert(k, 1);
134+
map.remove(&k);
135+
}
136+
}
137+
138+
pub fn insert_seq_n<M:MutableMap<uint,uint>>(n: uint,
139+
map: &mut M,
140+
bh: &mut BenchHarness) {
141+
// setup
142+
map.clear();
143+
for i in range(0u, n) {
144+
map.insert(i*2, 1);
145+
}
146+
147+
// measure
148+
let mut i = 1;
149+
do bh.iter {
150+
map.insert(i, 1);
151+
map.remove(&i);
152+
i = (i + 2) % n;
153+
}
154+
}
155+
156+
pub fn find_rand_n<M:MutableMap<uint,uint>>(n: uint,
157+
map: &mut M,
158+
bh: &mut BenchHarness) {
159+
// setup
160+
let mut rng = rand::XorShiftRng::new();
161+
let mut keys = vec::from_fn(n, |_| rng.gen::<uint>() % n);
162+
163+
for k in keys.iter() {
164+
map.insert(*k, 1);
165+
}
166+
167+
rng.shuffle_mut(keys);
168+
169+
// measure
170+
let mut i = 0;
171+
do bh.iter {
172+
map.find(&(keys[i]));
173+
i = (i + 1) % n;
174+
}
175+
}
176+
177+
pub fn find_seq_n<M:MutableMap<uint,uint>>(n: uint,
178+
map: &mut M,
179+
bh: &mut BenchHarness) {
180+
// setup
181+
for i in range(0u, n) {
182+
map.insert(i, 1);
183+
}
184+
185+
// measure
186+
let mut i = 0;
187+
do bh.iter {
188+
map.find(&i);
189+
i = (i + 1) % n;
190+
}
191+
}
192+
}

src/libstd/lib.rs

+5
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,10 @@ pub mod mem;
201201
pub mod unstable;
202202

203203

204+
// others
205+
pub mod treemap;
206+
207+
204208
/* For internal use, not exported */
205209

206210
mod unicode;
@@ -232,4 +236,5 @@ mod std {
232236
pub use to_bytes;
233237
pub use to_str;
234238
pub use unstable;
239+
pub use container; // for smalltreemap bench test
235240
}

src/libstd/os.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1442,7 +1442,7 @@ mod tests {
14421442
}
14431443
}
14441444
1445-
#[test]
1445+
#[test] #[ignore]
14461446
fn memory_map_file() {
14471447
use result::{Ok, Err};
14481448
use os::*;

src/libextra/treemap.rs renamed to src/libstd/treemap.rs

+17-7
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@
1313
//! `TotalOrd`.
1414
1515

16-
use std::util::{swap, replace};
17-
use std::iter::{Peekable};
18-
use std::cmp::Ordering;
16+
use container::{Container, Mutable, MutableMap, Set, MutableSet, Map};
17+
use util::{swap, replace};
18+
use cmp::{Ordering, TotalOrd, Eq, Ord, Greater, Less, Equal};
19+
use option::{Option, None, Some};
20+
use iter::{Peekable, Extendable, Iterator, FromIterator};
21+
use vec::{ImmutableVector, MutableVector, OwnedVector};
1922

2023
// This is implemented as an AA tree, which is a simplified variation of
2124
// a red-black tree where red (horizontal) nodes can only be added
@@ -882,9 +885,15 @@ impl<T: TotalOrd> Extendable<T> for TreeSet<T> {
882885
mod test_treemap {
883886

884887
use super::*;
888+
use iter::*;
885889

886-
use std::rand::Rng;
887-
use std::rand;
890+
use rand::Rng;
891+
use rand;
892+
use option::{Option, None, Some};
893+
use cmp::{TotalOrd, Eq, Greater, Less};
894+
use str::StrSlice;
895+
use clone::Clone;
896+
use num::Times;
888897

889898
#[test]
890899
fn find_empty() {
@@ -1239,8 +1248,8 @@ mod test_treemap {
12391248
#[cfg(test)]
12401249
mod bench {
12411250

1242-
use super::*;
1243-
use test::BenchHarness;
1251+
use super::TreeMap;
1252+
use extra::test::BenchHarness;
12441253
use container::bench::*;
12451254

12461255
// Find seq
@@ -1300,6 +1309,7 @@ mod bench {
13001309
mod test_set {
13011310

13021311
use super::*;
1312+
use option::{Option, None, Some};
13031313

13041314
#[test]
13051315
fn test_clear() {

0 commit comments

Comments
 (0)