diff --git a/.gitignore b/.gitignore index f7f1d31ef480a..a4d7203c2b41a 100644 --- a/.gitignore +++ b/.gitignore @@ -74,8 +74,10 @@ src/.DS_Store /doc/html /doc/latex /doc/std +/doc/arena /doc/extra /doc/flate +/doc/glob /doc/green /doc/native /doc/rustc diff --git a/doc/index.md b/doc/index.md index 16c6db3859ce0..d3270a96d8036 100644 --- a/doc/index.md +++ b/doc/index.md @@ -37,7 +37,9 @@ li {list-style-type: none; } * [The Rust parser, `libsyntax`](syntax/index.html) * [The Rust compiler, `librustc`](rustc/index.html) +* [The `arena` allocation library](arena/index.html) * [The `flate` compression library](flate/index.html) +* [The `glob` file path matching library](glob/index.html) # Tooling diff --git a/mk/crates.mk b/mk/crates.mk index dc374549dad94..a8f14bab1e891 100644 --- a/mk/crates.mk +++ b/mk/crates.mk @@ -49,7 +49,7 @@ # automatically generated for all stage/host/target combinations. ################################################################################ -TARGET_CRATES := std extra green rustuv native flate +TARGET_CRATES := std extra green rustuv native flate arena glob HOST_CRATES := syntax rustc rustdoc rustpkg CRATES := $(TARGET_CRATES) $(HOST_CRATES) TOOLS := compiletest rustpkg rustdoc rustc @@ -60,10 +60,12 @@ DEPS_green := std DEPS_rustuv := std native:uv native:uv_support DEPS_native := std DEPS_syntax := std extra -DEPS_rustc := syntax native:rustllvm flate +DEPS_rustc := syntax native:rustllvm flate arena DEPS_rustdoc := rustc native:sundown DEPS_rustpkg := rustc DEPS_flate := std native:miniz +DEPS_arena := std extra +DEPS_glob := std TOOL_DEPS_compiletest := extra green rustuv TOOL_DEPS_rustpkg := rustpkg green rustuv diff --git a/src/libextra/arena.rs b/src/libarena/lib.rs similarity index 98% rename from src/libextra/arena.rs rename to src/libarena/lib.rs index 87f6e27b6323a..27dad55c42946 100644 --- a/src/libextra/arena.rs +++ b/src/libarena/lib.rs @@ -15,10 +15,17 @@ //! of individual objects while the arena itself is still alive. The benefit //! of an arena is very fast allocation; just a pointer bump. +#[crate_id = "arena#0.10-pre"]; +#[crate_type = "rlib"]; +#[crate_type = "dylib"]; +#[license = "MIT/ASL2"]; #[allow(missing_doc)]; +#[feature(managed_boxes)]; -use list::{List, Cons, Nil}; -use list; +extern mod extra; + +use extra::list::{List, Cons, Nil}; +use extra::list; use std::at_vec; use std::cast::{transmute, transmute_mut, transmute_mut_region}; @@ -493,7 +500,7 @@ impl Drop for TypedArena { #[cfg(test)] mod test { use super::{Arena, TypedArena}; - use test::BenchHarness; + use extra::test::BenchHarness; struct Point { x: int, diff --git a/src/libextra/lib.rs b/src/libextra/lib.rs index 5a4fedd2b2a9a..bb89915dfd135 100644 --- a/src/libextra/lib.rs +++ b/src/libextra/lib.rs @@ -67,10 +67,8 @@ pub mod ebml; pub mod getopts; pub mod json; pub mod tempfile; -pub mod glob; pub mod term; pub mod time; -pub mod arena; pub mod base64; pub mod workcache; pub mod enum_set; diff --git a/src/libextra/glob.rs b/src/libglob/lib.rs similarity index 99% rename from src/libextra/glob.rs rename to src/libglob/lib.rs index fb760685254a5..98bf5533210ee 100644 --- a/src/libextra/glob.rs +++ b/src/libglob/lib.rs @@ -23,6 +23,11 @@ * `glob`/`fnmatch` functions. */ +#[crate_id = "glob#0.10-pre"]; +#[crate_type = "rlib"]; +#[crate_type = "dylib"]; +#[license = "MIT/ASL2"]; + use std::{os, path}; use std::io; use std::io::fs; @@ -53,7 +58,7 @@ pub struct Paths { /// `puppies.jpg` and `hamsters.gif`: /// /// ```rust -/// use extra::glob::glob; +/// use glob::glob; /// /// for path in glob("/media/pictures/*.jpg") { /// println!("{}", path.display()); @@ -297,7 +302,7 @@ impl Pattern { * # Example * * ```rust - * use extra::glob::Pattern; + * use glob::Pattern; * * assert!(Pattern::new("c?t").matches("cat")); * assert!(Pattern::new("k[!e]tteh").matches("kitteh")); @@ -537,7 +542,7 @@ impl MatchOptions { #[cfg(test)] mod test { use std::os; - use super::*; + use super::{glob, Pattern, MatchOptions}; #[test] fn test_absolute_pattern() { diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs index 9056d6e5d4ff6..c840faecb559b 100644 --- a/src/librustc/lib.rs +++ b/src/librustc/lib.rs @@ -31,6 +31,7 @@ This API is completely unstable and subject to change. extern mod extra; extern mod flate; +extern mod arena; extern mod syntax; use back::link; diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs index 87667d3ff48d3..44349cc892b13 100644 --- a/src/librustc/middle/trans/base.rs +++ b/src/librustc/middle/trans/base.rs @@ -68,7 +68,7 @@ use util::common::indenter; use util::ppaux::{Repr, ty_to_str}; use util::sha2::Sha256; -use extra::arena::TypedArena; +use arena::TypedArena; use extra::time; use std::c_str::ToCStr; use std::cell::{Cell, RefCell}; diff --git a/src/librustc/middle/trans/common.rs b/src/librustc/middle/trans/common.rs index 38badc20c19ac..18a6727dee069 100644 --- a/src/librustc/middle/trans/common.rs +++ b/src/librustc/middle/trans/common.rs @@ -31,7 +31,7 @@ use middle::typeck; use util::ppaux::Repr; -use extra::arena::TypedArena; +use arena::TypedArena; use std::c_str::ToCStr; use std::cast::transmute; use std::cast; diff --git a/src/librustc/middle/typeck/variance.rs b/src/librustc/middle/typeck/variance.rs index c260896731335..dc57ad747ebd7 100644 --- a/src/librustc/middle/typeck/variance.rs +++ b/src/librustc/middle/typeck/variance.rs @@ -193,8 +193,8 @@ represents the "variance transform" as defined in the paper: */ use std::hashmap::HashMap; -use extra::arena; -use extra::arena::Arena; +use arena; +use arena::Arena; use middle::ty; use std::vec; use syntax::ast; diff --git a/src/test/bench/shootout-binarytrees.rs b/src/test/bench/shootout-binarytrees.rs index 7abbbdd278cff..5b0a90f280dc9 100644 --- a/src/test/bench/shootout-binarytrees.rs +++ b/src/test/bench/shootout-binarytrees.rs @@ -9,10 +9,11 @@ // except according to those terms. extern mod extra; +extern mod arena; use std::iter::range_step; use extra::future::Future; -use extra::arena::TypedArena; +use arena::TypedArena; enum Tree<'a> { Nil, diff --git a/src/test/run-pass/glob-std.rs b/src/test/run-pass/glob-std.rs index 655bc7771938f..9e724d86df5eb 100644 --- a/src/test/run-pass/glob-std.rs +++ b/src/test/run-pass/glob-std.rs @@ -12,8 +12,9 @@ // xfail-win32 TempDir may cause IoError on windows: #10462 extern mod extra; +extern mod glob; -use extra::glob::glob; +use glob::glob; use extra::tempfile::TempDir; use std::unstable::finally::Finally; use std::{os, unstable}; diff --git a/src/test/run-pass/placement-new-arena.rs b/src/test/run-pass/placement-new-arena.rs index 238ea7485c944..3e26dc69a84f6 100644 --- a/src/test/run-pass/placement-new-arena.rs +++ b/src/test/run-pass/placement-new-arena.rs @@ -10,8 +10,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -extern mod extra; -use extra::arena::Arena; +extern mod arena; +use arena::Arena; pub fn main() { let mut arena = Arena::new(); diff --git a/src/test/run-pass/regions-mock-tcx.rs b/src/test/run-pass/regions-mock-tcx.rs index 71b9e3ee7bafd..3b5893358bf1d 100644 --- a/src/test/run-pass/regions-mock-tcx.rs +++ b/src/test/run-pass/regions-mock-tcx.rs @@ -16,10 +16,9 @@ // - Multiple lifetime parameters // - Arenas -extern mod extra; +extern mod arena; -use extra::arena; -use extra::arena::Arena; +use arena::Arena; use std::hashmap::HashMap; use std::cast; use std::libc;