Commit Graph

2597 Commits

Author SHA1 Message Date
Jesse Luehrs
ed81e3353e glob_t should be public on all platforms 2013-05-01 16:49:58 -07:00
Jesse Luehrs
685baed34e add a higher level glob() function to os
this could probably use expansion - it just uses all of the default
options, which is usually what we want, but not always. maybe add a
separate function that takes more options?
2013-05-01 16:49:58 -07:00
Jesse Luehrs
058346219a libc bindings for glob.h
only tested on linux/x86_64, but i got the values for other platforms
from their system header files.

no bindings for win32, because win32 doesn't include glob.h.

also, glob() takes a callback for error handling, but i'm just making
this a *c_void for now, since i don't know how to represent c calling
back into rust (if that's even currently possible).
2013-05-01 16:49:58 -07:00
Niko Matsakis
38f93f2121 wip---work on making rooting work properly 2013-05-01 13:48:00 -04:00
bors
55fbc47af1 auto merge of #6148 : erickt/rust/remove-drop, r=pcwalton
The drop block has been deprecated for quite some time. This patch series removes support for parsing it and all the related machinery that made drop work.

As a side feature of all this, I also added the ability to annote fields in structs. This allows comments to be properly associated with an individual field. However, I didn't update `rustdoc` to integrate these comment blocks into the documentation it generates.
2013-05-01 09:18:59 -07:00
Erick Tryzelaar
7c9d089ee7 pipes: use finally to fix pipes::try_recv 2013-05-01 07:50:13 -07:00
Erick Tryzelaar
5d79f94a2f core: Remove use of deprecated drop 2013-05-01 07:49:40 -07:00
Niko Matsakis
4af2d90af5 add an option to debug borrows (RUST_DEBUG_BORROW) so you can
find out where the offending borrow occurred. This ... still needs
some work.
2013-05-01 10:30:54 -04:00
Niko Matsakis
84861101ec rustc: print out filename/line-number when a borrow fails 2013-05-01 09:14:47 -04:00
Niko Matsakis
5ab33a2975 correct incorrect handling of overloaded operators, exposing various other bits of rot 2013-05-01 08:49:48 -04:00
bors
f67239fac3 auto merge of #6147 : bjz/rust/numeric-traits, r=brson
After much discussion on IRC and #4819, we have decided to revert to the old naming of the `/` operator. This does not change its behavior. In making this change, we also have had to rename some of the methods in the `Integer` trait. Here is a list of the methods that have changed:

- `Quot::quot` -> `Div::div`
- `Rem::rem` - stays the same
- `Integer::quot_rem` -> `Integer::div_rem`
- `Integer::div` -> `Integer::div_floor`
- `Integer::modulo` -> `Integer::mod_floor`
- `Integer::div_mod` -> `Integer::div_mod_floor`
2013-05-01 01:51:35 -07:00
bors
bfccfdc780 auto merge of #6144 : catamorphism/rust/mkdir_recursive-breakage, r=thestinger
r? @brson or @thestinger : Added a change_dir_locked function to os, and use it in the
mkdir_recursive tests so that the tests don't clobber each other's
directory changes.
2013-05-01 00:57:35 -07:00
Brendan Zabarauskas
ee26c7c433 Revert rename of Div to Quot 2013-05-01 15:40:05 +10:00
bors
db2451477b auto merge of #6131 : thestinger/rust/new_iter, r=graydon 2013-04-30 22:24:35 -07:00
bors
c1ea72d88f auto merge of #6113 : brson/rust/task-drop, r=graydon 2013-04-30 20:09:36 -07:00
Tim Chevalier
782e06e0e3 core/std: Fix race condition in os::mkdir_recursive tests
Added a change_dir_locked function to os, and use it in the
mkdir_recursive tests so that the tests don't clobber each other's
directory changes.
2013-04-30 17:58:24 -07:00
Brian Anderson
4a4646fd54 Merge remote-tracking branch 'brson/io'
Conflicts:
	src/libcore/task/local_data_priv.rs
2013-04-30 17:01:27 -07:00
Niko Matsakis
f236b850c0 remove some unused mut decls 2013-04-30 16:35:01 -04:00
Daniel Micay
a6eaa3bbb4 iter: add max and min functions 2013-04-30 14:14:55 -04:00
Niko Matsakis
418f991118 allover: numerous unused muts etc 2013-04-30 14:10:21 -04:00
Daniel Micay
6f18bb550e iter: add a find function 2013-04-30 13:07:14 -04:00
Daniel Micay
7fed480073 char: fix unused import warning 2013-04-30 13:01:12 -04:00
Niko Matsakis
a896440ca1 new borrow checker (mass squash) 2013-04-30 06:59:32 -04:00
Niko Matsakis
b5a7e8b353 desnapshot 2013-04-30 06:46:02 -04:00
Niko Matsakis
202b8dcdc4 adapt to snapshot 2013-04-30 06:43:02 -04:00
Sangeun Kim
84e97d5596 I modified the doc of from_elem, from_fn, I think it returns an owned vector 2013-04-30 18:39:16 +09:00
bors
48f50ac800 auto merge of #6107 : catamorphism/rust/mkdir_recursive, r=brson
r? @brson This hopefully addresses your concerns about the termination condition, and adds more tests. With a bonus documentation commit.
2013-04-29 20:48:37 -07:00
bors
868b7c153c auto merge of #6073 : huonw/rust/core-rust-isaac, r=pcwalton
This replaces the wrapper around the runtime RNG with a pure Rust implementation of the same algorithm. This is much faster (up to 5x), and is hopefully safer.

There is still (a little) room for optimisation: testing by summing 100,000,000 random `u32`s indicates this is about ~~40-50%~~ 10% slower than the pure C implementation (running as standalone executable, not in the runtime).

(Only 6d50d55 is part of this PR, the first two are from #6058, but are required for the rt rng to be correct to compare against in the tests.)
2013-04-29 18:24:37 -07:00
Brian Anderson
6818e241b4 core: Turn off the local heap in newsched in stage0 to work around windows bustage
core won't compile in stage0 without.
2013-04-29 16:44:21 -07:00
Huon Wilson
d4b934bdce core: add some inlining hints to methods/fns in rand. 2013-04-30 08:41:06 +10:00
Huon Wilson
30266a788f core: a pure Rust implementation of the ISAAC RNG.
This replaces the wrapper around the runtime RNG with a pure Rust
implementation of the same algorithm. This is faster (up to 5x), and
is hopefully safer.

There is still much room for optimisation: testing by summing 100,000,000
random `u32`s indicates this is about 40-50% slower than the pure C
implementation (running as standalone executable, not in the runtime).
2013-04-30 08:40:05 +10:00
Patrick Walton
39693e7b61 test: Fix more tests. 2013-04-29 14:30:57 -07:00
Patrick Walton
37abf4bad0 librustc: Forbid type implementations on typedefs. 2013-04-29 14:30:57 -07:00
Patrick Walton
876483dcf4 test: Fix tests. 2013-04-29 14:30:56 -07:00
Patrick Walton
a12a3db5b4 librustc: Make &fn by-copy by default and remove the mode from frame_address. 2013-04-29 14:30:55 -07:00
Patrick Walton
17723d18de test: Remove #[legacy_modes] from the test suite. 2013-04-29 14:30:55 -07:00
Patrick Walton
c6a9e28842 librustc: Rename reinterpret_cast to transmute_copy and remove the intrinsic 2013-04-29 14:30:53 -07:00
Patrick Walton
b6277f8140 librustc: Implement reinterpret_cast in terms of transmute. 2013-04-29 14:30:53 -07:00
Patrick Walton
b0522a497c librustc: Remove ptr::addr_of. 2013-04-29 14:30:53 -07:00
Tim Chevalier
58791c2fd8 Revert "libcore: remove unnecessary deref"
This reverts commit 9860fe10a1.
2013-04-29 14:30:52 -07:00
bors
dbcc3fe63a auto merge of #6110 : bjz/rust/numeric-traits, r=pcwalton
As discussed on issue #4819, I have created four new traits: `Algebraic`, `Trigonometric`, `Exponential` and `Hyperbolic`, and moved the appropriate methods into them from `Real`.

~~~rust
pub trait Algebraic {
    fn pow(&self, n: Self) -> Self;
    fn sqrt(&self) -> Self;
    fn rsqrt(&self) -> Self;
    fn cbrt(&self) -> Self;
    fn hypot(&self, other: Self) -> Self;
}

pub trait Trigonometric {
    fn sin(&self) -> Self;
    fn cos(&self) -> Self;
    fn tan(&self) -> Self;
    fn asin(&self) -> Self;
    fn acos(&self) -> Self;
    fn atan(&self) -> Self;
    fn atan2(&self, other: Self) -> Self;
}

pub trait Exponential {
    fn exp(&self) -> Self;
    fn exp2(&self) -> Self;
    fn expm1(&self) -> Self;
    fn log(&self) -> Self;
    fn log2(&self) -> Self;
    fn log10(&self) -> Self;
}

pub trait Hyperbolic: Exponential {
    fn sinh(&self) -> Self;
    fn cosh(&self) -> Self;
    fn tanh(&self) -> Self;
}
~~~

There was some discussion over whether we should shorten the names, for example `Trig` and `Exp`. No abbreviations have been agreed on yet, but this could be considered in the future.

Additionally, `Integer::divisible_by` has been renamed to `Integer::is_multiple_of`.
2013-04-29 13:39:37 -07:00
Brian Anderson
c1fdace588 core: Replace uses of 'drop' in task module with 'finally'. #5379 2013-04-29 13:38:21 -07:00
Brendan Zabarauskas
500078e147 Revert "Merge Exponential and Hyperbolic traits"
After discussions on IRC and #4819, we have decided to revert this change. This is due to the traits expressing different ideas and because hyperbolic functions are not trivially implementable from exponential functions for floating-point types.
2013-04-29 23:50:34 +10:00
Brendan Zabarauskas
d3f494f5c3 Merge Exponential and Hyperbolic traits
The Hyperbolic Functions are trivially implemented in terms of `exp`, so it's  simpler to group them the Exponential trait. In the future these would have default implementations.
2013-04-29 22:15:58 +10:00
Brendan Zabarauskas
20ad931bf3 Rename 'divisible_by' method to 'is_multiple_of', add tests for 'is_odd' and 'is_even' 2013-04-29 16:03:48 +10:00
Brendan Zabarauskas
c9620dc052 Move appropriate functions out of Real and into separate Algebraic, Trigonometric, Exponential and Hyperbolic traits 2013-04-29 15:33:55 +10:00
Tim Chevalier
d045ce7b87 core: Use a better termination condition in os::mkdir_recursive
Instead of checking whether the parent is "." or "/", check the
number of components.

Also, more tests.
2013-04-28 21:25:35 -07:00
Tim Chevalier
379dce11a9 core: Document core::path::GenericPath's trait methods 2013-04-28 20:34:05 -07:00
Daniel Micay
46f91a0fa9 make way for a new iter module 2013-04-28 22:31:39 -04:00
Philipp Brüschweiler
8627fc9726 rand: Fix infinite recursion
`self` has type `&@Rand`, so `*self` will be of type `@Rand` which causes
this same impl to be called again.
2013-04-28 13:31:49 +02:00
bors
dd5b1de181 auto merge of #6082 : catamorphism/rust/mkdir_recursive, r=brson
r? @brson mkdir_recursive creates a directory as well as any of its
parent directories that don't exist already. Seems like a useful
thing to have in core.

(Or r? anyone who gets to it first.)
2013-04-27 17:24:33 -07:00
bors
aa38867e4e auto merge of #6071 : bjz/rust/numeric-traits, r=graydon
As part of the numeric trait reform (see issue #4819), I have added the following traits to `core::num` and implemented them for Rust's primitive numeric types:

~~~rust
pub trait Bitwise: Not<Self>
                 + BitAnd<Self,Self>
                 + BitOr<Self,Self>
                 + BitXor<Self,Self>
                 + Shl<Self,Self>
                 + Shr<Self,Self> {}

pub trait BitCount {
    fn population_count(&self) -> Self;
    fn leading_zeros(&self) -> Self;
    fn trailing_zeros(&self) -> Self;
}

pub trait Bounded {
    fn min_value() -> Self;
    fn max_value() -> Self;
}

pub trait Primitive: Num
                   + NumCast
                   + Bounded
                   + Neg<Self>
                   + Add<Self,Self>
                   + Sub<Self,Self>
                   + Mul<Self,Self>
                   + Quot<Self,Self>
                   + Rem<Self,Self> {
    fn bits() -> uint;
    fn bytes() -> uint;
}

pub trait Int: Integer
             + Primitive
             + Bitwise
             + BitCount {}

pub trait Float: Real
               + Signed
               + Primitive {
    fn NaN() -> Self;
    fn infinity() -> Self;
    fn neg_infinity() -> Self;
    fn neg_zero() -> Self;

    fn is_NaN(&self) -> bool;
    fn is_infinite(&self) -> bool;
    fn is_finite(&self) -> bool;

    fn mantissa_digits() -> uint;
    fn digits() -> uint;
    fn epsilon() -> Self;
    fn min_exp() -> int;
    fn max_exp() -> int;
    fn min_10_exp() -> int;
    fn max_10_exp() -> int;

    fn mul_add(&self, a: Self, b: Self) -> Self;
    fn next_after(&self, other: Self) -> Self;
}
~~~
Note: I'm not sure my implementation for `BitCount::trailing_zeros` and `BitCount::leading_zeros` is correct for uints. I also need some assistance creating appropriate unit tests for them.

More work needs to be done in implementing specialized primitive floating-point and integer methods, but I'm beginning to reach the limits of my knowledge. Please leave your suggestions/critiques/ideas on #4819 if you have them – I'd very much appreciate hearing them.

I have also added an `Orderable` trait:

~~~rust
pub trait Orderable: Ord {
    fn min(&self, other: &Self) -> Self;
    fn max(&self, other: &Self) -> Self;
    fn clamp(&self, mn: &Self, mx: &Self) -> Self;
}
~~~

This is a temporary trait until we have default methods. We don't want to encumber all implementors of Ord by requiring them to implement these functions, but at the same time we want to be able to take advantage of the speed of the specific numeric functions (like the `fmin` and `fmax` intrinsics).
2013-04-27 13:09:35 -07:00
bors
47dbcdc455 auto merge of #6064 : thestinger/rust/char, r=catamorphism 2013-04-27 09:27:36 -07:00
bors
46806b7ae0 auto merge of #6059 : Kimundi/rust/nice-fail, r=pcwalton
r? @brson

Unwinding through macros now happens as a call to the trait function `FailWithCause::fail_with()`, which consumes self, allowing to use a more generic failure object in the future.
2013-04-26 22:45:36 -07:00
Brendan Zabarauskas
9cdf402c80 Propagate NaNs for Orderable methods impled on floating-point primitives 2013-04-27 13:13:28 +10:00
Brendan Zabarauskas
c9d099d60d Fix copy-paste mistakes 2013-04-27 12:42:34 +10:00
bors
7c1696b529 auto merge of #6057 : cmr/rust/map_zip, r=graydon
I think the name is more clear, and fits with filter_map etc.
2013-04-26 17:42:36 -07:00
Brendan Zabarauskas
35f33c17f7 Remove unnecessary fallbacks
The `target_word_size` attribute is always available at compile time, so there is no need for a fallback.
2013-04-27 10:34:29 +10:00
Brendan Zabarauskas
32df8ed877 Rename nextafter to next_after to match method name in Float 2013-04-27 10:16:09 +10:00
Brendan Zabarauskas
4cc9d0ba7e Add additional constants to primitive floating point numbers
These follow the values defined in the C99 standard
2013-04-27 09:07:40 +10:00
Tim Chevalier
848641fcb5 core: Move mkdir_recursive from rustpkg into core::os
mkdir_recursive creates a directory as well as any of its
parent directories that don't exist already. Seems like a useful
thing to have in core.
2013-04-26 15:51:22 -07:00
Brendan Zabarauskas
b7cf89f6e8 Add mul_add and next_after methods to Float 2013-04-27 01:02:30 +10:00
Brendan Zabarauskas
6cc7107aa6 Add Orderable trait
This is a temporary trait until we have default methods. We don't want to encumber all implementors of Ord by requiring them to implement these functions, but at the same time we want to be able to take advantage of the speed of the specific numeric functions (like the `fmin` and `fmax` intrinsics).
2013-04-27 01:01:53 +10:00
Brendan Zabarauskas
6efbbf2e14 Combine PrimitiveInt, Int, and Uint traits into one single trait
Having three traits for primitive ints/uints seemed rather excessive. If users wish to specify between them they can simply combine Int with either the Signed and Unsigned traits. For example: fn foo<T: Int + Signed>() { … }
2013-04-26 19:56:11 +10:00
Brendan Zabarauskas
d0737451fc Add BitCount trait 2013-04-26 16:27:51 +10:00
Brendan Zabarauskas
4c07f5e457 Add Int, Uint and Float traits for primitive numbers 2013-04-26 10:22:08 +10:00
Brendan Zabarauskas
b62421000c Add Bitwise, Bounded, Primitive, and PrimitiveInt traits 2013-04-26 10:02:00 +10:00
Brendan Zabarauskas
f40be999ca Minor style improvements for test functions
Use argument pattern-matching for test_division_rule and remove visibility specifier for test_signed
2013-04-26 09:58:40 +10:00
Brendan Zabarauskas
dbc2e99693 Use /// doc-comment form instead of /** */ 2013-04-26 09:55:49 +10:00
bors
64412eca10 auto merge of #6055 : cmr/rust/incoming, r=graydon,brson 2013-04-25 13:30:36 -07:00
Brendan Zabarauskas
ad0b337036 Add is_zero method to Zero 2013-04-26 05:55:26 +10:00
Daniel Micay
6d589f88f7 implement Ord, TotalEq and TotalOrd for char
Closes #6063
2013-04-25 15:43:16 -04:00
bors
0604468fd5 auto merge of #6054 : catamorphism/rust/rustpkg, r=graydon
r? @graydon

Sorry, this pull request is a few different things at once, but I tried to make them separate commits.

First, as before, this should do file searching the way that's described in the doc now.

Second, there's also some preliminary work on the install command (really just tests for it).
2013-04-25 12:42:41 -07:00
bors
ac69ee418b auto merge of #6048 : bjz/rust/numeric-traits, r=pcwalton
As part of the numeric trait reform (see issue #4819), I have added the following traits to `core::num` and implemented them for floating point types:

~~~rust
pub trait Round {
    fn floor(&self) -> Self;
    fn ceil(&self) -> Self;
    fn round(&self) -> Self;
    fn trunc(&self) -> Self;
    fn fract(&self) -> Self;
}

pub trait Fractional: Num
                    + Ord
                    + Round
                    + Quot<Self,Self> {
    fn recip(&self) -> Self;
}

pub trait Real: Signed
              + Fractional {
    // Common Constants
    fn pi() -> Self;
    fn two_pi() -> Self;
    fn frac_pi_2() -> Self;
    fn frac_pi_3() -> Self;
    fn frac_pi_4() -> Self;
    fn frac_pi_6() -> Self;
    fn frac_pi_8() -> Self;
    fn frac_1_pi() -> Self;
    fn frac_2_pi() -> Self;
    fn frac_2_sqrtpi() -> Self;
    fn sqrt2() -> Self;
    fn frac_1_sqrt2() -> Self;
    fn e() -> Self;
    fn log2_e() -> Self;
    fn log10_e() -> Self;
    fn log_2() -> Self;
    fn log_10() -> Self;

    // Exponential functions
    fn pow(&self, n: Self) -> Self;
    fn exp(&self) -> Self;
    fn exp2(&self) -> Self;
    fn expm1(&self) -> Self;
    fn ldexp(&self, n: int) -> Self;
    fn log(&self) -> Self;
    fn log2(&self) -> Self;
    fn log10(&self) -> Self;
    fn log_radix(&self) -> Self;
    fn ilog_radix(&self) -> int;
    fn sqrt(&self) -> Self;
    fn rsqrt(&self) -> Self;
    fn cbrt(&self) -> Self;

    // Angular conversions
    fn to_degrees(&self) -> Self;
    fn to_radians(&self) -> Self;

    // Triganomic functions
    fn hypot(&self, other: Self) -> Self;
    fn sin(&self) -> Self;
    fn cos(&self) -> Self;
    fn tan(&self) -> Self;

    // Inverse triganomic functions
    fn asin(&self) -> Self;
    fn acos(&self) -> Self;
    fn atan(&self) -> Self;
    fn atan2(&self, other: Self) -> Self;

    // Hyperbolic triganomic functions
    fn sinh(&self) -> Self;
    fn cosh(&self) -> Self;
    fn tanh(&self) -> Self;
}

/// Methods that are harder to implement and not commonly used.
pub trait RealExt: Real {
    // Gamma functions
    fn lgamma(&self) -> (int, Self);
    fn tgamma(&self) -> Self;

    // Bessel functions
    fn j0(&self) -> Self;
    fn j1(&self) -> Self;
    fn jn(&self, n: int) -> Self;
    fn y0(&self) -> Self;
    fn y1(&self) -> Self;
    fn yn(&self, n: int) -> Self;
} 
~~~

The constants in `Real` could be [associated items](http://smallcultfollowing.com/babysteps/blog/2013/04/03/associated-items-continued/) in the future (see issue #5527). At the moment I have left the constants in `{float|f32|f64}::consts` in case folks need to access these at compile time. There are also instances of `int` in `Real` and `RealExt`. In the future these could be replaced with an associated `INTEGER` type on `Real`.

`Natural` has also been renamed to `Integer`. This is because `Natural` normally means 'positive integer' in mathematics. It is therefore strange to implement it on signed integer types. `Integer` is probably a better choice.

I have also switched some of the `Integer` methods to take borrowed pointers as arguments. This brings them in line with the `Quot` and `Rem` traits, and is be better for large Integer types like `BigInt` and `BigUint` because they don't need to be copied unnecessarily.

There has also been considerable discussion on the mailing list and IRC about the renaming of the `Div` and `Modulo` traits to `Quot` and `Rem`. Depending on the outcome of these discussions they might be renamed again.
2013-04-25 11:36:36 -07:00
Marvin Löbel
e1be9ae224 Made fail! and assert! accept both &'static str and ~str, as well as a fmt! like format list.
Unwinding through macros now happens as a call to the trait function `FailWithCause::fail_with()`, which consumes self, allowing to use a more generic failure object in the future.
2013-04-25 17:32:25 +02:00
Corey Richardson
d53e686f4f Rename vec::mod2 to vec::mod_zip 2013-04-25 01:38:44 -04:00
Corey Richardson
91fb7b282d Move documentation for vec::windowed where it will be generated 2013-04-24 22:33:48 -04:00
Corey Richardson
92bf9b68da Add basic documentation for with_capacity 2013-04-24 22:33:13 -04:00
Brian Anderson
28ab152832 Merge remote-tracking branch 'brson/io'
Conflicts:
	src/libcore/rt/uvio.rs
2013-04-24 19:06:05 -07:00
Brendan Zabarauskas
48c24188f9 Restore Round trait and move appropriate methods out of Real 2013-04-25 11:53:04 +10:00
bors
1d53babd2f auto merge of #6051 : thestinger/rust/iterator, r=catamorphism,pcwalton 2013-04-24 18:36:30 -07:00
Tim Chevalier
08109aa0ad core: Comments only -- move FIXME to correct location 2013-04-24 17:51:30 -07:00
Daniel Micay
11d04d452f add a Counter iterator 2013-04-24 19:57:02 -04:00
Brian Anderson
436657b5f0 Rename cleanup_task_local_map_ to cleanup_task_local_map_extern_cb
Per pcwalton's suggestion.
2013-04-24 15:34:04 -07:00
Brendan Zabarauskas
dcd49ccd0b Add Fractional, Real and RealExt traits 2013-04-25 08:20:01 +10:00
Brendan Zabarauskas
6fa054df96 Use borrowed pointers for Integer methods
This brings them in line with the quot and rem traits, and is be better for large Integer types like BigInt and BigUint because they don't need to be copied unnecessarily.
2013-04-25 08:20:00 +10:00
Brendan Zabarauskas
024bf2ec72 Rename Natural to Integer
'Natural' normally means 'positive integer' in mathematics. It is therefore strange to implement it on signed integer types. 'Integer' is probably a better choice.
2013-04-25 08:20:00 +10:00
Brendan Zabarauskas
d4868ee740 Use #[cfg(not(stage0))] to exclude items from stage0
As requested on the mailing list: https://mail.mozilla.org/pipermail/rust-dev/2013-April/003713.html
2013-04-25 08:20:00 +10:00
Brendan Zabarauskas
03932f0b84 Move impls of Num out of core::num and clean up imports 2013-04-25 08:20:00 +10:00
bors
a784997750 auto merge of #6044 : Dretch/rust/run-remove-progrepr, r=graydon
...which was a legacy from the time when destructors were implemented using resource types.
2013-04-24 14:27:27 -07:00
Brian Anderson
08659f5acc core: Turn off rtdebug logging
Accidentally left in on at some point
2013-04-24 13:47:54 -07:00
Brian Anderson
1962803854 core: Warning police 2013-04-24 13:47:52 -07:00
Marvin Löbel
3759b5711d Fixed typo... And a billion other things. 2013-04-24 22:28:02 +02:00
Marvin Löbel
dd74807957 Removed ascii functions from other modules
Replaced str::to_lowercase and str::to_uppercase
2013-04-24 22:26:09 +02:00
gareth
345d5b8235 Refactor core::run to remove the ProgRepr struct, which was
a legacy from the time when destructors were implemented
using resource types.
2013-04-24 21:06:26 +01:00
bors
e26f992d5e auto merge of #6036 : huonw/rust/core-less-at, r=nikomatsakis
From a cursory `git grep` this removes the last part of `core` that requires on `@` (other than `io` and the task local data section).

It renames `RandRes` to ~~StdRng~~ `IsaacRng` and `XorShiftState` to `XorShiftRng` as well as moving their constructors to static methods. To go with this, it adds `rng()` which is designed to be used when the programmer just wants a random number generator, without caring about which exact algorithm is being used.

It also removes all the `gen_int`, `gen_uint`, `gen_char` (etc) methods on `RngUtil` (by moving the defintions to the actual `Rand` instances). The replacement is using `RngUtil::gen`, either type-inferred or with an annotation (`rng.gen::<uint>()`).

I tried to have the `Rng` and `RngUtil` traits exported by `core::prelude` (since `core::rand` (except for `random()`) is useless without them), but this caused [an explosion of (seemingly unrelated) `error: unresolved import`'s](https://gist.github.com/5451839).
2013-04-24 06:48:50 -07:00
Huon Wilson
9860fe10a1 libcore: remove unnecessary deref 2013-04-24 23:03:04 +10:00
Huon Wilson
4a24f10ac6 libcore: unify gen_<type> methods on rand::RngUtil into the generic gen.
This moves all the basic random value generation into the Rand instances for
each type and then removes the `gen_int`, `gen_char` (etc) methods on RngUtil,
leaving only the generic `gen` and the more specialised methods.

Also, removes some imports that are redundant due to a `use core::prelude::*`
statement.
2013-04-24 22:34:19 +10:00
Huon Wilson
7b009210c6 libcore: convert the Program @-object to be a plain struct + impl.
Removes the dynamic @ indirection, and also converts the functions acting
on `ProgRepr`s to methods.
2013-04-24 22:34:19 +10:00
Huon Wilson
6c0a7c7b7d libcore: remove @Rng from rand, and use traits instead.
Also, rename RandRes -> IsaacRng, and make the constructors static
methods.
2013-04-24 22:34:10 +10:00