638 Commits

Author SHA1 Message Date
Huon Wilson
fe03d827a4 extra: stop rl from leaking each line that is read. 2013-09-11 22:20:33 +10:00
Huon Wilson
21ce41d42d extra: use a mutex to wrap linenoise calls and make them threadsafe.
Fixes #3921.
2013-09-11 22:20:33 +10:00
bors
5bb8aefed6 auto merge of #9007 : dcrewi/rust/random-bigints, r=huonw 2013-09-11 03:11:05 -07:00
bors
7820fb5ca9 auto merge of #9062 : blake2-ppc/rust/vec-iterator, r=alexcrichton
Visit the free functions of std::vec and reimplement or remove some. Most prominently, remove `each_permutation` and replace with two iterators, ElementSwaps and Permutations.

Replace unzip, unzip_slice with an updated `unzip` that works with an iterator argument.

Replace each_permutation with a Permutation iterator. The new permutation iterator is more efficient since it uses an algorithm that produces permutations in an order where each is only one element swap apart, including swapping back to the original state with one swap at the end.

Unify the seldomly used functions `build`, `build_sized`, `build_sized_opt` into just one function `build`.

Remove `equal_sizes`
2013-09-09 21:31:03 -07:00
blake2-ppc
c11ee0fb67 std::at_vec and vec: Unify build_sized, build_sized_opt into build
These functions have very few users since they are mostly replaced by
iterator-based constructions.

Convert a few remaining users in-tree, and reduce the number of
functions by basically renaming build_sized_opt to build, and removing
the other two. This for both the vec and the at_vec versions.
2013-09-10 05:50:11 +02:00
bors
8c7c0b41d7 auto merge of #9034 : catamorphism/rust/rustpkg-workcache, r=metajack
r? @metajack or @brson - This pull request makes rustpkg use the workcache library to avoid recompilation.
2013-09-09 20:16:02 -07:00
bors
ed695d470b auto merge of #9083 : dcrewi/rust/biguint-bit-ops, r=brson 2013-09-09 14:10:58 -07:00
David Creswick
c3d0fc23d4 Implement bitwise operations on BigUint 2013-09-09 12:15:19 -05:00
David Creswick
4946e0ea5e Merge RandBigUint and RandBigInt into single trait 2013-09-09 11:31:40 -05:00
Daniel Micay
6919cf5fe1 rename std::iterator to std::iter
The trait will keep the `Iterator` naming, but a more concise module
name makes using the free functions less verbose. The module will define
iterables in addition to iterators, as it deals with iteration in
general.
2013-09-09 03:21:46 -04:00
Tim Chevalier
ed4859ea78 extra: Address review comments from Jack 2013-09-08 22:00:13 -07:00
Tim Chevalier
02a0fb94ee rustpkg: Use workcache
rustpkg now uses the workcache library to avoid recompilation.
Hooray!
2013-09-08 20:05:12 -07:00
Tim Chevalier
bb30f047f6 workcache: Add the ability to save and load the database...
...as well as the ability to discover inputs and outputs.
2013-09-08 20:05:11 -07:00
Steven Fackler
3eaf750a0d Renamed Uuid::from_utf8 to Uuid::from_bytes
This method doesn't deal with utf8. I guess it got caught in a mass
rename.
2013-09-07 11:05:48 -07:00
bors
124eb2119c auto merge of #9026 : jbclements/rust/let-var-hygiene, r=jbclements
This is a rebase of my approved pull request from ... the end of June? It introduces hygiene for let-bound variables.
2013-09-06 23:35:57 -07:00
bors
3e6de6b7da auto merge of #9016 : sfackler/rust/nanoseconds, r=alexcrichton
The ISO 8601 standard does not mandate any specific precision for
fractional seconds, so this accepts input of any length, ignoring the
part after the nanoseconds place. It may be more correct to round with
the tenths of nanoseconds digit, but then we'd have to deal with
carrying the round through the entire Tm struct (e.g. for a time like
Dec 31 11:59.999999999999).

%f is the format specifier that Python's datetime library uses for
0-padded microseconds so it seemed appropriate here.

cc #2350
2013-09-06 22:25:59 -07:00
Tim Kuehn
39ce095ebd use enumerate in place of 'for ti in range(i, tokens.len()) ... match tokens[ti] ...' 2013-09-06 21:54:03 -04:00
David Creswick
54368afc03 Incorporate feedback from huonw
- use identifiers with underscores to avoid unused variable warning
- implement on R: Rng instead of on R: RngUtil
- bugfix: zero BigInts were being generated twice as often as any
  other number
- test that gen_biguint(0) always returns zero
2013-09-06 13:57:21 -05:00
John Clements
6e3b2ab44d move and duplicate macro defns in sha2 to make them hygienic
... it would also have been possible to add all of their dependencies,
but that would have increased the already-lengthy list of parameters.
Also, if we had macros that could expand into macro defns, you could
stage it. This seemed like the least painful choice.
2013-09-06 09:28:45 -07:00
Alex Crichton
507414daf9 Un-hork the bots by removing intermediate files
The new glob tests created tmp/glob-tests as a directory, but the never removed
it. The `make clean` target then attempted to `rm -f` on this, but it couldn't
remove the directory. This both changes the clean target to `rm -rf` tmp files,
and also alters the tests to delete the directory that all the files are added
into.
2013-09-06 00:17:14 -07:00
Steven Fackler
3c30ecb706 Add fractional second support to str{p,f}time
The ISO 8601 standard does not mandate any specific precision for
fractional seconds, so this accepts input of any length, ignoring the
part after the nanoseconds place. It may be more correct to round with
the tenths of nanoseconds digit, but then we'd have to deal with
carrying the round through the entire Tm struct (e.g. for a time like
Dec 31 11:59.999999999999).

%f is the format specifier that Python's datetime library uses for
0-padded microseconds so it seemed appropriate here.

cc #2350
2013-09-05 23:19:41 -07:00
bors
5efe1e5365 auto merge of #8914 : Dretch/rust/native-glob, r=alexcrichton
This is #8201 with a bunch of amendments to address the comments (and re-based).
2013-09-05 22:00:58 -07:00
David Creswick
4339952934 test the correct function (oops) 2013-09-05 21:39:14 -05:00
David Creswick
3d735e4a63 Generate random BigUints and BigInts 2013-09-05 19:40:07 -05:00
bors
992b558d3c auto merge of #9004 : brson/rust/issue-8660, r=thestinger
The new scheduler makes better use of threads than the old.
2013-09-05 16:40:48 -07:00
Brian Anderson
738ec516f5 extra: Don't overcommit test tasks. Closes #8660
The new scheduler makes better use of threads than the old.
2013-09-05 16:37:10 -07:00
Gareth Smith
193a1c8af6 Replace os::glob with extra::glob, which is written in rust,
fixing issue #6100.
2013-09-05 21:19:47 +01:00
Florian Hahn
de39874801 Rename str::from_bytes to str::from_utf8, closes #8985 2013-09-05 14:17:24 +02:00
Daniel Micay
b49e9fa794 forbid cast as bool
This is currently unsound since `bool` is represented as `i8`. It will
become sound when `bool` is stored as `i8` but always used as `i1`.

However, the current behaviour will always be identical to `x & 1 != 0`,
so there's no need for it. It's also surprising, since `x != 0` is the
expected behaviour.

Closes #7311
2013-09-04 23:09:51 -04:00
bors
91922f04f8 auto merge of #8966 : FlaPer87/rust/issue/7473, r=bblum
Current access methods are nestable and unsafe. This patch renames
current methods implementation - prepends unsafe_ - and implements 2 new
methods that are both safe and un-nestable.

Fixes #7473
2013-09-04 08:50:57 -07:00
Daniel Micay
62a3434529 stop treating char as an integer type
Closes #7609
2013-09-04 08:07:56 -04:00
Flaper Fesp
d0ad251376 Use MuextArc and RWArc in docstrings 2013-09-04 09:14:56 +02:00
Flaper Fesp
c0aa62c872 Fixed docs and styles 2013-09-04 02:28:16 +02:00
Flaper Fesp
408367ba6d Add a safe implementation of MutexArc::access* methods
Current access methods are nestable and unsafe. This patch renames
current methods implementation - prepends unsafe_ - and implements 2 new
methods that are both safe and un-nestable.

Fixes #7473
2013-09-04 01:13:56 +02:00
Flaper Fesp
b22861d16d Rename MutexArc access methods to unsafe_access 2013-09-04 01:12:23 +02:00
bors
1ac8e8885b auto merge of #8884 : blake2-ppc/rust/exact-size-hint, r=huonw
The message of the first commit explains (edited for changed trait name):

The trait `ExactSize` is introduced to solve a few small niggles:

* We can't reverse (`.invert()`) an enumeration iterator
* for a vector, we have `v.iter().position(f)` but `v.rposition(f)`.
* We can't reverse `Zip` even if both iterators are from vectors

`ExactSize` is an empty trait that is intended to indicate that an
iterator, for example `VecIterator`, knows its exact finite size and
reports it correctly using `.size_hint()`. Only adaptors that preserve
this at all times, can expose this trait further. (Where here we say
finite for fitting in uint).

---

It may seem complicated just to solve these small "niggles",
(It's really the reversible enumerate case that's the most interesting)
but only a few core iterators need to implement this trait.

While we gain more capabilities generically for some iterators,
it becomes a tad more complicated to figure out if a type has
the right trait impls for it.
2013-09-03 06:56:05 -07:00
blake2-ppc
7c369ee733 std/extra: Add ExactSize for Bitv, DList, RingBuf, Option iterators 2013-09-01 18:20:24 +02:00
bors
c8db9e2638 auto merge of #8905 : sstewartgallus/rust/cleanup_tests, r=bblum
In this commit I:
- removed unneeded heap allocations
- added extra whitespace to crowded expressions
- and removed unneeded syntax

Also, CC @bblum although this change is fairly unobjectionable.
2013-08-31 12:40:40 -07:00
Steven Stewart-Gallus
e2f2a601e8 Cleanup concurrency tests
In this commit I:
- removed unneeded heap allocations
- added extra whitespace to crowded expressions
- and removed unneeded syntax
2013-08-31 11:26:01 -07:00
bors
5fe553d30f auto merge of #8862 : dcrewi/rust/drop-redundant-ord-impls, r=thestinger
If this were to break something, I would expect existing tests to catch it, and a `make check` run passes locally.
2013-08-30 20:30:35 -07:00
blake2-ppc
db22f2627d std: Implement .rposition() on double-ended iterators with known size
This is a generalization of the vector .rposition() method, to all
double-ended iterators that have the ExactSizeHint trait.

This resolves the slight asymmetry around `position` and `rposition`

* position from front is `vec.iter().position()`
* position from the back was, `vec.rposition()` is now `vec.iter().rposition()`

Additionally, other indexed sequences (only `extra::ringbuf` I think),
will have the same method available once it implements ExactSizeHint.
2013-08-30 20:06:26 +02:00
bors
0553618e08 auto merge of #8858 : blake2-ppc/rust/small-bugs, r=alexcrichton
Fix a bug in `s.slice_chars(a, b)` that did not accept `a == s.len()`.

Fix a bug in `!=` defined for DList.

Also simplify NormalizationIterator to use the CharIterator directly instead of mimicing the iteration itself.
2013-08-30 11:00:43 -07:00
David Creswick
b9601c48a5 partial revert of 31fa865
Ratio is generic and so might contain a non-total orderable type. It
should not use the default Ord implementation.
2013-08-29 17:52:22 -05:00
David Creswick
31fa86511c drop some redundant Ord method implementations 2013-08-29 14:24:24 -05:00
blake2-ppc
15bb9b4e1a extra::dlist: Fix bug in Eq::ne 2013-08-29 17:11:11 +02:00
Huon Wilson
4fea236a85 extra: error message should reflact that RUST_TEST_TASKS should be strictly positive (zero is illegal). 2013-08-29 22:58:27 +10:00
Huon Wilson
3f791acf4d Make the unit-test framework check RUST_TEST_TASKS over RUST_THREADS.
Fixes #7335.
2013-08-29 11:17:09 +10:00
Patrick Walton
aac9d6eee9 librustc: Fix merge fallout 2013-08-27 19:09:27 -07:00
Patrick Walton
2bd46e767c librustc: Fix problem with cross-crate reexported static methods. 2013-08-27 18:47:59 -07:00
Patrick Walton
4f32a2d854 librustc: Fix merge fallout. 2013-08-27 18:47:57 -07:00