Skip to content

Commit

Permalink
Factoring bigint, rational, and complex out of libextra into libnum.
Browse files Browse the repository at this point in the history
Removed use of globs present in earlier versions of modules.

Fix tutorial.md to reflect `extra::rational` ==> `num::rational`.
  • Loading branch information
pnkfelix committed Feb 11, 2014
1 parent 3794d68 commit d2d1129
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 33 deletions.
3 changes: 2 additions & 1 deletion mk/crates.mk
Expand Up @@ -50,7 +50,7 @@
################################################################################

TARGET_CRATES := std extra green rustuv native flate arena glob term semver \
uuid serialize sync getopts collections
uuid serialize sync getopts collections num
HOST_CRATES := syntax rustc rustdoc fourcc
CRATES := $(TARGET_CRATES) $(HOST_CRATES)
TOOLS := compiletest rustdoc rustc
Expand All @@ -75,6 +75,7 @@ DEPS_sync := std
DEPS_getopts := std
DEPS_collections := std serialize
DEPS_fourcc := syntax std
DEPS_num := std extra

TOOL_DEPS_compiletest := extra green rustuv getopts
TOOL_DEPS_rustdoc := rustdoc green rustuv
Expand Down
1 change: 1 addition & 0 deletions src/doc/index.md
Expand Up @@ -38,6 +38,7 @@ li {list-style-type: none; }
* [The Rust compiler, `librustc`](rustc/index.html)

* [The `arena` allocation library](arena/index.html)
* [The `num` arbitrary precision numerics library](num/index.html)
* [The `collections` library](collections/index.html)
* [The `flate` compression library](flate/index.html)
* [The `fourcc` four-character code library](fourcc/index.html)
Expand Down
14 changes: 7 additions & 7 deletions src/doc/tutorial.md
Expand Up @@ -3026,12 +3026,12 @@ In Rust terminology, we need a way to refer to other crates.
For that, Rust offers you the `extern mod` declaration:

~~~
extern mod extra;
// extra ships with Rust, you'll find more details further down.
extern mod num;
// `num` ships with Rust (much like `extra`; more details further down).
fn main() {
// The rational number '1/2':
let one_half = ::extra::rational::Ratio::new(1, 2);
let one_half = ::num::rational::Ratio::new(1, 2);
}
~~~

Expand All @@ -3056,10 +3056,10 @@ of both `use` and local declarations.
Which can result in something like this:

~~~
extern mod extra;
extern mod num;
use farm::dog;
use extra::rational::Ratio;
use num::rational::Ratio;
mod farm {
pub fn dog() { println!("woof"); }
Expand Down Expand Up @@ -3224,9 +3224,9 @@ See the [API documentation][stddoc] for details.

## The extra library

Rust also ships with the [extra library], an accumulation of useful things,
Rust ships with crates such as the [extra library], an accumulation of useful things,
that are however not important enough to deserve a place in the standard
library. You can use them by linking to `extra` with an `extern mod extra;`.
library. You can link to a library such as `extra` with an `extern mod extra;`.

[extra library]: extra/index.html

Expand Down
6 changes: 0 additions & 6 deletions src/libextra/lib.rs
Expand Up @@ -62,12 +62,6 @@ pub mod time;
pub mod base64;
pub mod workcache;
pub mod enum_set;
#[path="num/bigint.rs"]
pub mod bigint;
#[path="num/rational.rs"]
pub mod rational;
#[path="num/complex.rs"]
pub mod complex;
pub mod stats;
pub mod hex;

Expand Down
15 changes: 6 additions & 9 deletions src/libextra/num/bigint.rs → src/libnum/bigint.rs
Expand Up @@ -16,9 +16,6 @@ A `BigUint` is represented as an array of `BigDigit`s.
A `BigInt` is a combination of `BigUint` and `Sign`.
*/

#[allow(missing_doc)];
#[allow(non_uppercase_statics)];

use std::cmp::{Eq, Ord, TotalEq, TotalOrd, Ordering, Less, Equal, Greater};
use std::num;
use std::num::{Zero, One, ToStrRadix, FromStrRadix, Orderable};
Expand Down Expand Up @@ -48,7 +45,7 @@ pub type BigDigit = u32;
pub static ZERO_BIG_DIGIT: BigDigit = 0;

pub mod BigDigit {
use bigint::BigDigit;
use super::BigDigit;

#[cfg(target_word_size = "32")]
pub static bits: uint = 16;
Expand Down Expand Up @@ -1433,8 +1430,8 @@ impl BigInt {
#[cfg(test)]
mod biguint_tests {
use super::*;
use super::RandBigInt;
use super::{BigDigit, BigUint, ToBigUint};
use super::{Plus, BigInt, RandBigInt, ToBigInt};
use std::cmp::{Less, Equal, Greater};
use std::i64;
Expand Down Expand Up @@ -2090,8 +2087,8 @@ mod biguint_tests {

#[cfg(test)]
mod bigint_tests {
use super::*;
use super::RandBigInt;
use super::{BigDigit, BigUint, ToBigUint};
use super::{Sign, Minus, Zero, Plus, BigInt, RandBigInt, ToBigInt};

use std::cmp::{Less, Equal, Greater};
use std::i64;
Expand Down Expand Up @@ -2591,7 +2588,7 @@ mod bigint_tests {

#[cfg(test)]
mod bench {
use super::*;
use super::{BigInt, BigUint};
use std::iter;
use std::mem::replace;
use std::num::{FromPrimitive, Zero, One};
Expand Down
4 changes: 2 additions & 2 deletions src/libextra/num/complex.rs → src/libnum/complex.rs
Expand Up @@ -191,7 +191,7 @@ impl<T: ToStrRadix + Num + Ord> ToStrRadix for Cmplx<T> {
mod test {
#[allow(non_uppercase_statics)];

use super::*;
use super::{Complex64, Cmplx};
use std::num::{Zero,One,Real};

pub static _0_0i : Complex64 = Cmplx { re: 0.0, im: 0.0 };
Expand Down Expand Up @@ -285,7 +285,7 @@ mod test {
}

mod arith {
use super::*;
use super::{_0_0i, _1_0i, _1_1i, _0_1i, _neg1_1i, _05_05i, all_consts};
use std::num::Zero;

#[test]
Expand Down
22 changes: 22 additions & 0 deletions src/libnum/lib.rs
@@ -0,0 +1,22 @@
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

#[feature(macro_rules)];

#[crate_id = "num#0.10-pre"];
#[crate_type = "rlib"];
#[crate_type = "dylib"];
#[license = "MIT/ASL2"];

extern mod extra;

pub mod bigint;
pub mod rational;
pub mod complex;
11 changes: 5 additions & 6 deletions src/libextra/num/rational.rs → src/libnum/rational.rs
@@ -1,4 +1,4 @@
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
Expand All @@ -10,11 +10,10 @@

//! Rational numbers


use std::cmp;
use std::from_str::FromStr;
use std::num::{Zero,One,ToStrRadix,FromStrRadix,Round};
use super::bigint::{BigInt, BigUint, Sign, Plus, Minus};
use bigint::{BigInt, BigUint, Sign, Plus, Minus};

/// Represents the ratio between 2 numbers.
#[deriving(Clone)]
Expand Down Expand Up @@ -349,7 +348,7 @@ impl<T: FromStrRadix + Clone + Integer + Ord>
#[cfg(test)]
mod test {

use super::*;
use super::{Ratio, Rational, BigRational};
use std::num::{Zero,One,FromStrRadix,FromPrimitive};
use std::from_str::FromStr;

Expand Down Expand Up @@ -449,8 +448,8 @@ mod test {


mod arith {
use super::*;
use super::super::*;
use super::{_0, _1, _2, _1_2, _3_2, _neg1_2, to_big};
use super::super::{Ratio, Rational, BigRational};


#[test]
Expand Down
4 changes: 2 additions & 2 deletions src/test/bench/shootout-pidigits.rs
Expand Up @@ -8,13 +8,13 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

extern mod extra;
extern mod num;

use std::from_str::FromStr;
use std::num::One;
use std::num::Zero;
use std::num::FromPrimitive;
use extra::bigint::BigInt;
use num::bigint::BigInt;

struct Context {
numer: BigInt,
Expand Down

5 comments on commit d2d1129

@bors
Copy link
Contributor

@bors bors commented on d2d1129 Feb 11, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

saw approval from alexcrichton
at pnkfelix@d2d1129

@bors
Copy link
Contributor

@bors bors commented on d2d1129 Feb 11, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merging pnkfelix/rust/fsk-factor-bigint-and-rat-out-of-libextra = d2d1129 into auto

@bors
Copy link
Contributor

@bors bors commented on d2d1129 Feb 11, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pnkfelix/rust/fsk-factor-bigint-and-rat-out-of-libextra = d2d1129 merged ok, testing candidate = fd4979a

@bors
Copy link
Contributor

@bors bors commented on d2d1129 Feb 11, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bors
Copy link
Contributor

@bors bors commented on d2d1129 Feb 11, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fast-forwarding master to auto = fd4979a

Please sign in to comment.