bors [Thu, 2 Oct 2014 23:42:31 +0000 (23:42 +0000)]
auto merge of #17715 : aturon/rust/revert-slice-ops-libs, r=alexcrichton
This PR reverts https://github.com/rust-lang/rust/pull/17620, which caused a significant regression for slices.
As discussed with @alexcrichton, all of the public-facing changes of the earlier PR need to be rolled back, and it's not clear that we should move the libraries over to this new notation yet anyway (especially given its feature-gated status).
Alex Crichton [Thu, 2 Oct 2014 20:50:43 +0000 (13:50 -0700)]
travis: Stop building and testing rust
Instead, only run `make tidy`. The tidy script can run quite quickly, and it's
super annoying to run tests for 50 minutes only to have bors fail with a
"trailing whitespace" error.
Alex Crichton [Thu, 2 Oct 2014 20:50:43 +0000 (13:50 -0700)]
travis: Stop building and testing rust
Instead, only run `make tidy`. The tidy script can run quite quickly, and it's
super annoying to run tests for 50 minutes only to have bors fail with a
"trailing whitespace" error.
Alex Crichton [Thu, 2 Oct 2014 20:14:14 +0000 (13:14 -0700)]
std: Help diagnose a flaky test
This test has recently been failing on the bots, and I'm not entirely sure why.
I haven't been able to reproduce locally or on the bots, so I'm adding some
messages to help diagnose the problem hopefully.
Benjamin Herr [Thu, 2 Oct 2014 18:55:26 +0000 (20:55 +0200)]
native: fix passing errno to parent after fork
The bitshifts were wrong in that they invoked undefined behavior and
only passed the lower byte of the presumed-to-be-32bit errno value.
Apparently all actually possible values for errno happen to be easily
under 256, so this didn't cause any actual problems.
This commit fixes the bitshifts, but doesn't generalize to errno types
that aren't 32bit.
Change the `use of moved value` error to be more accurate
Previously it output `partially moved` to eagerly. This updates it to be more
accurate and output `collaterally moved` for use of values that were invalidated
by moves out of different fields in the same struct.
bors [Thu, 2 Oct 2014 01:22:20 +0000 (01:22 +0000)]
auto merge of #17381 : tbu-/rust/pr_mapinplace2, r=aturon
Additionally, support zero-sized types.
Now there isn't a safe interface of `PartialVec` anymore, it's just a bare data structure with destructor that assumes you handled everything correctly before.
bors [Wed, 1 Oct 2014 21:27:19 +0000 (21:27 +0000)]
auto merge of #17673 : aturon/rust/remove-uv, r=alexcrichton
This PR begins the process of [runtime removal](https://github.com/rust-lang/rfcs/pull/230) by dismantling the `librustuv` crate and associated event loop.
The result is that, while `libgreen` can still be used for task scheduling purposes, it will no longer be feasible to use green-threaded I/O.
Removing the libuv-based event loop eases the transition away from the runtime system, which will be done incrementally.
In terms of visible API changes, this PR:
* Removes `std::io::signal`, which was never implemented on the native threading model.
* Removes the `iotest!` macro, which was previously used to run I/O tests on both green and native threading models.
* Removes the `green_start!` macro for starting an application with a `librustuv` event loop.
* Removes the `librustuv` crate itself.
It also removes the `libuv` and `gyp` submodules and adjusts the build system and copyright notices accordingly.
If you wish to continue using `librustuv` and green-threaded I/O, consider using [green-rs](https://github.com/alexcrichton/green-rs/), which provides its own I/O stack.
Aaron Turon [Wed, 1 Oct 2014 16:07:10 +0000 (09:07 -0700)]
Remove std::io::signal
The `std::io::signal` API was only implemented under `librustuv`, which
is now being removed. Rather than keep around an unimplemented API, this
commit removes it altogether.
See the [runtime removal
RFC](https://github.com/rust-lang/rfcs/pull/230) for more context.
See [green-rs](https://github.com/alexcrichton/green-rs/) for a possible
migration path for signal handling code, although in the long run we
plan to add native signal handling to `std::io`.
NODA, Kai [Wed, 1 Oct 2014 11:38:21 +0000 (19:38 +0800)]
librustc/driver: expose build information of rustc.
CFG_RELEASE, CFG_VER_HASH and CFG_VER_DATE were only available as an output
to stdout from the driver::version() function that had an inconvenient
signature.
Aaron Turon [Wed, 1 Oct 2014 05:25:22 +0000 (22:25 -0700)]
Remove librustuv
This commit removes the `librustuv` crate.
See the [runtime removal
RFC](https://github.com/rust-lang/rfcs/pull/230) for more context.
See [green-rs](https://github.com/alexcrichton/green-rs/) for a possible
migration path if you wish to continue using green-threaded I/O. The
library provides its own I/O API surface.
Aaron Turon [Wed, 1 Oct 2014 04:42:55 +0000 (21:42 -0700)]
Remove iotest macro
This commit removes the `iotest!` macro from `std::io`. The macro was
primarily used to ensure that all io-related tests were run on both
libnative and libgreen/librustuv. However, now that the librustuv stack
is being removed, the macro is no longer needed.
See the [runtime removal
RFC](https://github.com/rust-lang/rfcs/pull/230) for more context.
bors [Wed, 1 Oct 2014 15:32:30 +0000 (15:32 +0000)]
auto merge of #17667 : wizeman/rust/fix-override-env, r=alexcrichton
In some build environments (such as chrooted Nix builds), `env` can only
be found in the explicitly-provided PATH, not in default places such as
/bin or /usr/bin. So we need to pass-through PATH when spawning the
`env` sub-process.
bors [Wed, 1 Oct 2014 11:27:23 +0000 (11:27 +0000)]
auto merge of #17653 : kaini/rust/master, r=alexcrichton
Fixes that unit-like structs cannot be used if they are re-exported and used in another crate. (ICE)
The relevant changes are in `rustc::metadata::{decoder, encoder}` and `rustc::middle::ty`.
A test case is included.
The problem is that the expressoin `UnitStruct` is an `ExprPath` to an `DefFn`, which is of expr kind `RvalueDatumExpr`, but for unit-struct ctors the expr kind should be `RvalueDpsExpr`. I fixed this (in a I guess clean way) by introducing `CtorFn` in the metadata and including a `is_ctor` flag in `DefFn`.