2905 Commits

Author SHA1 Message Date
Steven Fackler
b66cdb16fe Delete std::rt::io::net::http
It's an empty stub and as one of the comments notes, doesn't belong in
libstd.
2013-08-18 20:32:35 -04:00
Erick Tryzelaar
be86bc81a7 Fix warnings in tests 2013-08-17 08:41:35 -07:00
bors
a1674b6150 auto merge of #8534 : huonw/rust/tls-key-macro, r=alexcrichton
This allows the internal implementation details of the TLS keys to be
changed without requiring the update of all the users. (Or, applying
changes that *have* to be applied for the keys to work correctly, e.g.
forcing LLVM to not merge these constants.)
2013-08-16 08:05:10 -07:00
bors
680eb71564 auto merge of #8532 : kballard/rust/cstr-cleanup, r=erickt
Implement interior null checking in `.to_c_str()`, among other changes.
2013-08-16 06:02:14 -07:00
bors
72b50e729d auto merge of #8526 : blake2-ppc/rust/either-result, r=catamorphism
Retry of PR #8471

Replace the remaining functions marked for issue #8228 with similar functions that are iterator-based.

Change `either::{lefts, rights}` to be iterator-filtering instead of returning a vector.

Replace `map_vec`, `map_vec2`, `iter_vec2` in std::result with three functions:

* `result::collect` gathers `Iterator<Result<V, U>>` to `Result<~[V], U>`
* `result::fold` folds `Iterator<Result<T, E>>` to `Result<V, E>`
* `result::fold_` folds `Iterator<Result<T, E>>` to `Result<(), E>`
2013-08-16 01:56:16 -07:00
bors
92af0db0a3 auto merge of #8518 : catamorphism/rust/issue-8498-workaround, r=brson
r? @brson
2013-08-15 23:56:14 -07:00
Huon Wilson
3ad23552fb syntax: add a local_data_key macro that creates a key for access to the TLS.
This allows the internal implementation details of the TLS keys to be
changed without requiring the update of all the users. (Or, applying
changes that have to be applied for the keys to work correctly, e.g.
forcing LLVM to not merge these constants.)
2013-08-16 14:37:24 +10:00
Daniel Micay
486501963a vec: rm redundant is_empty implementations 2013-08-15 21:12:35 -04:00
Daniel Micay
fe047e07ba iterator: cleanup 2013-08-15 21:12:34 -04:00
Daniel Micay
45426c3b4c vec: rm obsolete zip and zip_slice
These are obsoleted by the generic iterator `zip` adaptor. Unlike
these, it does not clone the elements or allocate a new vector by
default.
2013-08-15 21:12:34 -04:00
Daniel Micay
1f89eb867a tuple: remove obsolete ExtendedTupleOps
replaced by iterators (generic composable `map` and `zip` adaptors)
2013-08-15 21:12:34 -04:00
Daniel Micay
af9ddd7563 kinds: update documentation 2013-08-15 21:12:34 -04:00
Daniel Micay
062747b9c9 ptr: inline the Clone implementation 2013-08-15 21:12:34 -04:00
bors
c4656cfd04 auto merge of #8485 : alexcrichton/rust/add-tests, r=catamorphism
Closes #3907
Closes #5493
Closes #4464
Closes #4759
Closes #5666
Closes #5884
Closes #5926
Closes #6318
Closes #6557
Closes #6898
Closes #6919
Closes #7222
2013-08-15 15:41:11 -07:00
Alex Crichton
443bf93e48 Fix a typo in the ifmt dox 2013-08-15 14:19:09 -07:00
bors
5c0d1923bc auto merge of #8515 : kballard/rust/saturating-checked, r=thestinger
r? @thestinger
2013-08-15 13:50:10 -07:00
bors
435020ecc4 auto merge of #8491 : robertknight/rust/7722-reservoir_sampling, r=graydon
Fixes #7722

I had a couple of queries:
- Should this return an array or an iterator?
- Should this be a method on iterators or on the rng? I implemented it in RngUtils as it seemed to belong with shuffle().
2013-08-15 06:56:06 -07:00
bors
790e6bb397 auto merge of #8490 : huonw/rust/fromiterator-extendable, r=catamorphism
If they are on the trait then it is extremely annoying to use them as
generic parameters to a function, e.g. with the iterator param on the trait
itself, if one was to pass an Extendable<int> to a function that filled it
either from a Range or a Map<VecIterator>, one needs to write something
like:

    fn foo<E: Extendable<int, Range<int>> +
              Extendable<int, Map<&'self int, int, VecIterator<int>>>
          (e: &mut E, ...) { ... }

since using a generic, i.e. `foo<E: Extendable<int, I>, I: Iterator<int>>`
means that `foo` takes 2 type parameters, and the caller has to specify them
(which doesn't work anyway, as they'll mismatch with the iterators used in
`foo` itself).

This patch changes it to:

    fn foo<E: Extendable<int>>(e: &mut E, ...) { ... }
2013-08-15 02:56:08 -07:00
Kevin Ballard
f744cf157e Make CString.iter() public 2013-08-15 01:33:10 -07:00
Kevin Ballard
03ef71e262 Add ToCStr method .with_c_str()
.with_c_str() is a replacement for the old .as_c_str(), to avoid
unnecessary boilerplate.

Replace all usages of .to_c_str().with_ref() with .with_c_str().
2013-08-15 01:33:10 -07:00
Kevin Ballard
48265b779f Check for interior nulls in .to_c_str()
Previous dicussions about CString suggested that interior nulls should
throw an error. This was never implemented. Add this now, using a
condition (named null_byte) to allow for recovery.

Add method .to_c_str_unchecked() that skips this check.
2013-08-15 01:32:10 -07:00
bors
7cda0d4316 auto merge of #8481 : cmr/rust/bench/std/at_vec, r=graydon 2013-08-14 22:29:06 -07:00
Kevin Ballard
1e4f13f95f Clarify docs on CString.unwrap()
CString.unwrap() drops ownership of the buffer on the floor. Put this in
the docs.
2013-08-14 19:18:24 -07:00
blake2-ppc
88c149195a std: Replace map_vec, map_vec2, iter_vec2 in std::result
Replace these with three functions based on iterators: collect, fold,
and fold_. The mapping part is replaced by iterator .map(), so the part
that these functions do is to accumulate the final Result<,> value.

* `result::collect` gathers `Iterator<Result<V, U>>` to `Result<~[V], U>`
* `result::fold` folds `Iterator<Result<T, E>>` to `Result<V, E>`
* `result::fold_` folds `Iterator<Result<T, E>>` to `Result<(), E>`
2013-08-15 02:52:55 +02:00
blake2-ppc
6fe4c871f1 Update either::partition
Remove the only use of either::partition since it was better
accomplished with vector methods.

Update either::partition so that it sizes the vectors correctly before
it starts.
2013-08-15 02:52:55 +02:00
blake2-ppc
a5f9494199 std: Change either::{lefts, rights} to return an iterator 2013-08-15 02:52:55 +02:00
Tim Chevalier
cf4694e73b std: Change ProcessOptions struct to have an option of a ~ vector
This is a workaround for #8498
2013-08-14 16:52:05 -07:00
Kevin Ballard
15159a5638 Rewrite Saturating in terms of CheckedAdd/CheckedSub 2013-08-14 13:02:20 -07:00
bors
927aff1724 auto merge of #8452 : Kimundi/rust/stuff02, r=bstrie
- Methodyfied the string ascii extionsion functions - They got added recently, I wrapped them in a trait.
- Added `into_owned()` method for vectors - similar to `Str`'s `into_owned()` function, allows to convert to a owned vector without making a copy if the source is a owned vector.
- Added `or_some` method to option - similar to `unwrap_or_default`, but keeps the values wrapped in an `Option`. Useful for `Option` chains, eg Iterator impls.
- Added `DoubleEndedIterator` impl to `Option` - Just for compatibility with generic Iterator functions.
- Renamed nil.rs to unit.rs - the type got renamed ages ago, it's time the source file is as well.
2013-08-14 08:35:15 -07:00
Huon Wilson
53487a0246 std: Move the iterator param on FromIterator and Extendable to the method.
If they are on the trait then it is extremely annoying to use them as
generic parameters to a function, e.g. with the iterator param on the trait
itself, if one was to pass an Extendable<int> to a function that filled it
either from a Range or a Map<VecIterator>, one needs to write something
like:

    fn foo<E: Extendable<int, Range<int>> +
              Extendable<int, Map<&'self int, int, VecIterator<int>>>
          (e: &mut E, ...) { ... }

since using a generic, i.e. `foo<E: Extendable<int, I>, I: Iterator<int>>`
means that `foo` takes 2 type parameters, and the caller has to specify them
(which doesn't work anyway, as they'll mismatch with the iterators used in
`foo` itself).

This patch changes it to:

    fn foo<E: Extendable<int>>(e: &mut E, ...) { ... }
2013-08-15 01:10:45 +10:00
Marvin Löbel
a00becd0eb Methodyfied the string ascii extionsion functions
Added into_owned() method for vectors
Added DoubleEnded Iterator impl to Option
Renamed nil.rs to unit.rs
2013-08-14 14:48:25 +02:00
bors
cd656c74f6 auto merge of #8439 : huonw/rust/hashset-clone, r=cmr
Closes #5581.
2013-08-14 02:38:19 -07:00
bors
7585b34d31 auto merge of #8446 : alexcrichton/rust/ifmt++, r=graydon
This includes a number of improvements to `ifmt!`

* Implements formatting arguments -- `{:0.5x}` works now
* Formatting now works on all integer widths, not just `int` and `uint`
* Added a large doc block to `std::fmt` which should help explain what `ifmt!` is all about
* Added floating point formatters, although they have the same pitfalls from before (they're just proof-of-concept now)

Closed a couple of issues along the way, yay! Once this gets into a snapshot, I'll start looking into removing all of `fmt`
2013-08-13 19:23:21 -07:00
Alex Crichton
36882b3d54 Add f formats to ifmt!
Currently the work just the same as the old `extfmt` versions
2013-08-13 19:16:40 -07:00
bors
9f379329db auto merge of #8475 : kmcallister/rust/stack_segment, r=brson,brson
Servo needs to tell SpiderMonkey about the stack bounds.

r? @brson
2013-08-13 14:57:24 -07:00
Keegan McAllister
4fd5318594 Make rt::stack public
Fixes #8478.
2013-08-13 09:10:07 -07:00
bors
0d817ee869 auto merge of #8423 : alexcrichton/rust/less-priv-again, r=bstrie
Closes #5495
2013-08-13 07:26:23 -07:00
Robert Knight
11b3d76fb6 Add RngUtils::sample() method for reservoir sampling from iterators 2013-08-13 13:26:05 +01:00
bors
f02cc6bf0a auto merge of #8411 : bblum/rust/assorted-fixes, r=brson
Each commit is pretty much what it says on the tin. r anybody.
2013-08-13 04:59:20 -07:00
bors
4601ea65f8 auto merge of #8487 : brson/rust/local-opts, r=brson
I did this once but acciddentally undid it in a later patch.
2013-08-12 23:56:26 -07:00
Alex Crichton
930885d5e5 Forbid pub/priv where it has no effect
Closes #5495
2013-08-12 23:20:46 -07:00
Alex Crichton
27b4d104c8 Explain what ifmt! is all about 2013-08-12 23:18:51 -07:00
Alex Crichton
1f6afa887b Correct the padding on integer types for formatting 2013-08-12 23:18:51 -07:00
Alex Crichton
6feb58ed84 Define integer formats for all widths
Closes #1653
2013-08-12 23:18:51 -07:00
Alex Crichton
b820748ff5 Implement formatting arguments for strings and integers
Closes #1651
2013-08-12 23:18:51 -07:00
Brian Anderson
95badabaaf std: Re-optimize tls access on local allocation path
I did this once but acciddentally undid it in a later patch.
2013-08-12 22:30:32 -07:00
bors
44675ac6af auto merge of #8476 : thestinger/rust/snapshot, r=brson 2013-08-12 20:29:22 -07:00
Corey Richardson
5b28088619 std::at_vec: add benchmarks 2013-08-12 21:42:51 -04:00
bors
59da4e0bc9 auto merge of #8419 : cmr/rust/fix-rtdebug, r=brson
It now actually does logging, and is compiled out when `--cfg rtdebug` is not
given to the libstd build, which it isn't by default. This makes the rt
benchmarks 18-50% faster.
2013-08-12 15:28:49 -07:00
Daniel Micay
0cb0ef2ca5 fix build with the new snapshot compiler 2013-08-12 17:37:46 -04:00