Commit Graph

26584 Commits

Author SHA1 Message Date
Huon Wilson
b7656d048f std: convert str::from_utf16 to an external iterator.
Fixes #12316.
2014-02-17 23:53:49 +11:00
Huon Wilson
493a4b63c1 std: iteratize str::is_utf16 & add tests.
Most of the tests are randomly generated with Python 3 and rely on it's
UTF-16be encoder/decoder being correct.
2014-02-17 23:53:49 +11:00
bors
57d273f65e auto merge of #12284 : brson/rust/install, r=alexcrichton
Work toward #9876.

This adds `prepare.mk`, which is simply a more heavily-parameterized `install.mk`, then uses `prepare` to implement both `install` and the windows installer (`dist`). Smoke tested on both Linux and Windows.
2014-02-17 03:26:51 -08:00
Ehsanul Hoque
b9c476b6ee Update tasks guide: SharedChan as been removed
The code examples are up to date, but the surrounding explanations are not.
2014-02-17 02:34:07 -08:00
Nick Cameron
8f3f666371 Forbid use of generics with foreign functions. Closes #10353. 2014-02-17 18:52:11 +13:00
Kevin Ballard
66bed17641 Remove Freeze bounds from sync::MutexArc
With Rc no longer trying to statically prevent cycles (and thus no
longer using the Freeze bound), it seems appropriate to remove that
restriction from MutexArc as well.
2014-02-16 21:14:15 -08:00
Brendan Zabarauskas
79f52cf9ba Rename Bitwise::population_count to Bitwise::count_ones and add Bitwise::count_zeros
These are inspired by the [functions in the Julia standard library](http://docs.julialang.org/en/release-0.2/stdlib/base/#Base.count_ones).
2014-02-17 13:55:06 +11:00
Alex Crichton
a526aa139e Implement named pipes for windows, touch up unix
* Implementation of pipe_win32 filled out for libnative
* Reorganize pipes to be clone-able
* Fix a few file descriptor leaks on error
* Factor out some common code into shared functions
* Make use of the if_ok!() macro for less indentation

Closes #11201
2014-02-16 18:46:01 -08:00
Alex Crichton
94b2d9dc4d Move unix pipes implementation to pipe_unix.rs
The windows named pipes implementation will have almost nothing to do with unix
pipes, so I think it's best if they live in separate files.
2014-02-16 18:45:48 -08:00
Geoffroy Couprie
a226f56600 Implement Unix domain sockets in libnative 2014-02-16 18:45:48 -08:00
Brian Anderson
2b64cb294c Address review feedback 2014-02-16 17:36:43 -08:00
bors
c8489069b4 auto merge of #12085 : alexcrichton/rust/issue-12082, r=brson
This just copies the libuv implementation for libnative which seems reasonable
enough (uid/gid fail on windows).

Closes #12082
2014-02-16 16:46:39 -08:00
Alex Crichton
74b42c646e Upgrade libuv
This notably includes joyent/libuv@6f62d62c in order to fix when processes fail
to spawn on windows
2014-02-16 16:01:03 -08:00
Alex Crichton
553b7e67d7 Allow configuration of uid/gid/detach on processes
This just copies the libuv implementation for libnative which seems reasonable
enough (uid/gid fail on windows).

Closes #12082
2014-02-16 16:01:03 -08:00
Kevin Ballard
01b31af4bb Update clients of the TaskBuilder API 2014-02-16 15:34:02 -08:00
Kevin Ballard
b94daee395 Clean up std::task docs, make TaskBuilder a real builder
Delete all the documentation from std::task that references linked
failure.

Tweak TaskBuilder to be more builder-like. .name() is now .named() and
.add_wrapper() is now .with_wrapper(). Remove .watched() and
.unwatched() as they didn't actually do anything.
2014-02-16 15:34:02 -08:00
bors
425f57477f auto merge of #12319 : SimonSapin/rust/build-symlink, r=alexcrichton 2014-02-16 12:51:40 -08:00
bors
13dc521861 auto merge of #12312 : brson/rust/doc, r=alexcrichton
Only single out std. Put everything else in a consistent list.
2014-02-16 11:36:40 -08:00
Sterling Greene
a6995583e0 Minor documentation fixes in std::fmt
* Change '...your own time' => '...your own type'
* Fix typo in the Vector2D example
2014-02-16 13:43:46 -05:00
Brendan Zabarauskas
876eb931dc Remove Real trait and move methods into Float
This is part of the effort to simplify `std::num`, as tracked in issue #10387.
2014-02-17 02:23:33 +11:00
bors
0ba6d4885f auto merge of #12313 : bjz/rust/tuple, r=huonw
This renames the `n*` and `n*_ref` tuple getters to `val*` and `ref*` respectively, and adds `mut*` getters. It also removes the `CloneableTuple` and `ImmutableTuple` traits.
2014-02-16 07:11:34 -08:00
Brendan Zabarauskas
f450b2b379 Remove CloneableTuple and ImmutableTuple traits
These are adequately covered by the Tuple2 trait.
2014-02-17 00:57:56 +11:00
Brendan Zabarauskas
cf0654c47c Improve naming of tuple getters, and add mutable tuple getter
Renames the `n*` and `n*_ref` tuple getters to `val*` and `ref*` respectively, and adds `mut*` getters.
2014-02-17 00:57:56 +11:00
Simon Sapin
3a66548979 Ignore /build even if it’s a symlink. 2014-02-16 12:41:41 +00:00
Brendan Zabarauskas
2cd7a29013 Merge ImmutableTuple* traits into their respective Tuple* trait 2014-02-16 20:25:28 +11:00
bors
6fe775e2b5 auto merge of #12310 : brson/rust/mkfilecleanup, r=sfackler
Two small fixes
2014-02-16 00:51:33 -08:00
Brian Anderson
58a2b7da07 doc: Reorganize the library index
Only single out std. Put everything else in a consistent list.
2014-02-16 00:21:08 -08:00
Brendan Zabarauskas
6f39eb1a56 Delegate ToStr implementation to Show for tuples 2014-02-16 19:12:28 +11:00
Brendan Zabarauskas
bf6abf8cb3 Implement Show for 1-12 element tuples 2014-02-16 19:12:28 +11:00
bors
b36340b626 auto merge of #12302 : alexcrichton/rust/issue-12295, r=brson
The previous code erroneously assumed that 'steals > cnt' was always true, but
that was a false assumption. The code was altered to decrement steals to a
minimum of 0 instead of taking all of cnt into account.

I didn't include the exact test from #12295 because it could run for quite
awhile, and instead set the threshold for MAX_STEALS to much lower during
testing. I found that this triggered the old bug quite frequently when running
without this fix.

Closes #12295
2014-02-15 23:36:26 -08:00
Brian Anderson
58678dc229 mk: Fix typo, NO_MAKEFILE_DEPS -> NO_MKFILE_DEPS 2014-02-15 23:12:56 -08:00
Brian Anderson
109673f368 mk: Remove check-notidy, check-full, check-test
Mostly useless
2014-02-15 23:11:56 -08:00
bors
5d4fd50af3 auto merge of #12301 : FlaPer87/rust/issue-8893, r=alexcrichton 2014-02-15 22:06:27 -08:00
bors
f3d4fe7500 auto merge of #12305 : luqmana/rust/ub, r=sfackler
These are no longer valid options as of the recent llvm upgrade.
2014-02-15 20:46:26 -08:00
bors
49ba513c78 auto merge of #12299 : sfackler/rust/limit-return, r=alexcrichton
This is useful in contexts like this:

```rust
let size = rdr.read_be_i32() as uint;
let mut limit = LimitReader::new(rdr.by_ref(), size);
let thing = read_a_thing(&mut limit);
assert!(limit.limit() == 0);
```
2014-02-15 18:56:29 -08:00
Luqman Aden
615536a265 mk: Remove old flags to llc for arm. 2014-02-15 20:08:33 -05:00
bors
0c62d9d83d auto merge of #12298 : alexcrichton/rust/rustdoc-testing, r=sfackler
It's too easy to forget the `rust` tag to test something.

Closes #11698
2014-02-15 16:36:27 -08:00
Alex Crichton
bea7862d94 Correctly reset steals when hitting MAX_STEALS
The previous code erroneously assumed that 'steals > cnt' was always true, but
that was a false assumption. The code was altered to decrement steals to a
minimum of 0 instead of taking all of cnt into account.

I didn't include the exact test from #12295 because it could run for quite
awhile, and instead set the threshold for MAX_STEALS to much lower during
testing. I found that this triggered the old bug quite frequently when running
without this fix.

Closes #12295
2014-02-15 15:54:29 -08:00
Alex Crichton
836ffb5288 Silence some unused import warnings 2014-02-15 15:53:52 -08:00
bors
d98668a559 auto merge of #12235 : huonw/rust/raii-lock, r=alexcrichton
- adds a `LockGuard` type returned by `.lock` and `.trylock` that unlocks the mutex in the destructor
- renames `mutex::Mutex` to `StaticNativeMutex` 
- adds a `NativeMutex` type with a destructor
- removes `LittleLock`
- adds `#[must_use]` to `sync::mutex::Guard` to remind people to use it
2014-02-15 15:21:28 -08:00
Huon Wilson
4668cdf3c4 Convert some unnecessary StaticNativeMutexes to NativeMutexes. 2014-02-16 10:13:56 +11:00
Huon Wilson
5d86e24ab2 std::unstable::mutex: streamline & clarify documentation. 2014-02-16 10:13:56 +11:00
Huon Wilson
0f4294b4e2 sync: Add #[must_use] to the Mutex guard.
This helps people remember to save the return value to keep the mutex
locked as appropriate.
2014-02-16 10:13:56 +11:00
Huon Wilson
0937f65999 std: add a NativeMutex type as a wrapper to destroy StaticNativeMutex.
This obsoletes LittleLock, and so it is removed.
2014-02-16 10:13:56 +11:00
Huon Wilson
b87ed605c0 std: Rename unstable::mutex::Mutex to StaticNativeMutex.
This better reflects its purpose and design.
2014-02-16 10:13:56 +11:00
Huon Wilson
75d92dbabe std: add tests for the _noguard lock/signal/wait methods on Mutex. 2014-02-16 10:13:56 +11:00
Huon Wilson
76a59fd6e2 std: add an RAII unlocker to Mutex.
This automatically unlocks its lock when it goes out of scope, and
provides a safe(ish) method to call .wait.
2014-02-16 10:13:56 +11:00
Flavio Percoco
fd57717b16 Add test and close #8893 2014-02-16 00:00:38 +01:00
Steven Fackler
23fdbcf7dd Add a method to LimitReader to return the limit
This is useful in contexts like this:

let size = rdr.read_be_i32() as uint;
let mut limit = LimitReader::new(rdr.by_ref(), size);
let thing = read_a_thing(&mut limit);
assert!(limit.limit() == 0);
2014-02-15 14:22:56 -08:00
Brian Anderson
508cb29dc4 mk: Base the windows dist target on prepare.mk 2014-02-15 14:18:00 -08:00