]> git.lizzy.rs Git - rust.git/log
rust.git
9 years agocollections: Split the `collections` feature
Alex Crichton [Tue, 9 Jun 2015 21:39:23 +0000 (14:39 -0700)]
collections: Split the `collections` feature

This commit also deprecates the `as_string` and `as_slice` free functions in the
`string` and `vec` modules.

9 years agoalloc: Split apart the global `alloc` feature
Alex Crichton [Tue, 9 Jun 2015 18:52:41 +0000 (11:52 -0700)]
alloc: Split apart the global `alloc` feature

9 years agocore: Split apart the global `core` feature
Alex Crichton [Tue, 9 Jun 2015 18:18:03 +0000 (11:18 -0700)]
core: Split apart the global `core` feature

This commit shards the broad `core` feature of the libcore library into finer
grained features. This split groups together similar APIs and enables tracking
each API separately, giving a better sense of where each feature is within the
stabilization process.

A few minor APIs were deprecated along the way:

* Iterator::reverse_in_place
* marker::NoCopy

9 years agoAuto merge of #25961 - sanxiyn:dead-variant-2, r=huonw
bors [Wed, 17 Jun 2015 13:30:31 +0000 (13:30 +0000)]
Auto merge of #25961 - sanxiyn:dead-variant-2, r=huonw

Rebase of #21468.

Fix #25960.

9 years agoAdd a test
Seo Sanghyeon [Wed, 3 Jun 2015 15:39:35 +0000 (00:39 +0900)]
Add a test

9 years agoAuto merge of #26261 - tshepang:more-brief-example, r=huonw
bors [Wed, 17 Jun 2015 11:54:25 +0000 (11:54 +0000)]
Auto merge of #26261 - tshepang:more-brief-example, r=huonw

Also, it feels more suitable to use hex to represent unicode

9 years agoAuto merge of #26126 - Nashenas88:sync-send-libcore-iter, r=huonw
bors [Wed, 17 Jun 2015 10:19:14 +0000 (10:19 +0000)]
Auto merge of #26126 - Nashenas88:sync-send-libcore-iter, r=huonw

This addresses an item in #22709. SizeHint in libcore/iter.rs also implements Iterator, but it's implementation is not accessible and is only used to send size hints to extend (it appears to be a performance improvement to avoid unnecessary memory reallocations). The is the only implementation of Iterator within libcore/iter.rs that is not/cannot be tested in this PR.

9 years agoAuto merge of #26025 - alexcrichton:update-llvm, r=brson
bors [Wed, 17 Jun 2015 06:56:15 +0000 (06:56 +0000)]
Auto merge of #26025 - alexcrichton:update-llvm, r=brson

This commit updates the LLVM submodule in use to the current HEAD of the LLVM
repository. This is primarily being done to start picking up unwinding support
for MSVC, which is currently unimplemented in the revision of LLVM we are using.
Along the way a few changes had to be made:

* As usual, lots of C++ debuginfo bindings in LLVM changed, so there were some
  significant changes to our RustWrapper.cpp
* As usual, some pass management changed in LLVM, so clang was re-scrutinized to
  ensure that we're doing the same thing as clang.
* Some optimization options are now passed directly into the
  `PassManagerBuilder` instead of through CLI switches to LLVM.
* The `NoFramePointerElim` option was removed from LLVM, favoring instead the
  `no-frame-pointer-elim` function attribute instead.
* The `LoopVectorize` option of the LLVM optimization passes has been disabled
  as it causes a divide-by-zero exception to happen in LLVM for zero-sized
  types. This is reported as https://llvm.org/bugs/show_bug.cgi?id=23763

Additionally, LLVM has picked up some new optimizations which required fixing an
existing soundness hole in the IR we generate. It appears that the current LLVM
we use does not expose this hole. When an enum is moved, the previous slot in
memory is overwritten with a bit pattern corresponding to "dropped". When the
drop glue for this slot is run, however, the switch on the discriminant can
often start executing the `unreachable` block of the switch due to the
discriminant now being outside the normal range. This was patched over locally
for now by having the `unreachable` block just change to a `ret void`.

9 years agorustc: Update LLVM
Alex Crichton [Thu, 14 May 2015 19:10:43 +0000 (12:10 -0700)]
rustc: Update LLVM

This commit updates the LLVM submodule in use to the current HEAD of the LLVM
repository. This is primarily being done to start picking up unwinding support
for MSVC, which is currently unimplemented in the revision of LLVM we are using.
Along the way a few changes had to be made:

* As usual, lots of C++ debuginfo bindings in LLVM changed, so there were some
  significant changes to our RustWrapper.cpp
* As usual, some pass management changed in LLVM, so clang was re-scrutinized to
  ensure that we're doing the same thing as clang.
* Some optimization options are now passed directly into the
  `PassManagerBuilder` instead of through CLI switches to LLVM.
* The `NoFramePointerElim` option was removed from LLVM, favoring instead the
  `no-frame-pointer-elim` function attribute instead.

Additionally, LLVM has picked up some new optimizations which required fixing an
existing soundness hole in the IR we generate. It appears that the current LLVM
we use does not expose this hole. When an enum is moved, the previous slot in
memory is overwritten with a bit pattern corresponding to "dropped". When the
drop glue for this slot is run, however, the switch on the discriminant can
often start executing the `unreachable` block of the switch due to the
discriminant now being outside the normal range. This was patched over locally
for now by having the `unreachable` block just change to a `ret void`.

9 years agoAuto merge of #22681 - mzabaluev:extend-faster, r=huonw
bors [Wed, 17 Jun 2015 00:44:25 +0000 (00:44 +0000)]
Auto merge of #22681 - mzabaluev:extend-faster, r=huonw

Instead of a fast branch with a sized iterator falling back to a potentially poorly optimized iterate-and-push loop, a single efficient loop can serve all cases.

In my benchmark runs, I see some good gains, but also some regressions, possibly due to different inlining choices by the compiler. YMMV.

9 years agoAuto merge of #26280 - Marwes:deriving_discriminant, r=pcwalton
bors [Tue, 16 Jun 2015 22:20:15 +0000 (22:20 +0000)]
Auto merge of #26280 - Marwes:deriving_discriminant, r=pcwalton

PR for #26128.

Improves codegen in deriving by utilizing the discriminant_value intrinsic.

I have a more detailed comment on the changes in a comment on the issue [here](https://github.com/rust-lang/rust/issues/26128#issuecomment-111509863)

### Old
```
running 7 tests
test large_c_like       ... bench:   2,694,129 ns/iter (+/- 5,170)
test large_c_like_ord   ... bench:   2,723,521 ns/iter (+/- 9,098)
test test1_partial_eq   ... bench:   2,439,317 ns/iter (+/- 2,135)
test test1_partial_ord  ... bench:   2,499,114 ns/iter (+/- 55,766)
test test2_partial_eq   ... bench:   3,562,815 ns/iter (+/- 45,590)
test test2_partial_ord  ... bench:   3,398,306 ns/iter (+/- 22,180)
test test_match_success ... bench:   1,509,267 ns/iter (+/- 1,982)
```

### New
```
running 7 tests
test large_c_like       ... bench:     286,509 ns/iter (+/- 474)
test large_c_like_ord   ... bench:     286,666 ns/iter (+/- 8,756)
test test1_partial_eq   ... bench:     286,584 ns/iter (+/- 2,789)
test test1_partial_ord  ... bench:     286,470 ns/iter (+/- 516)
test test2_partial_eq   ... bench:   2,228,997 ns/iter (+/- 34,191)
test test2_partial_ord  ... bench:   1,731,699 ns/iter (+/- 21,756)
test test_match_success ... bench:   1,509,630 ns/iter (+[- 3,765)
```

[Benchmark](https://gist.github.com/Marwes/7c0b3468d0cae972a2b4)

9 years agoAuto merge of #25952 - alexcrichton:fix-scoped-tls, r=aturon
bors [Tue, 16 Jun 2015 20:00:46 +0000 (20:00 +0000)]
Auto merge of #25952 - alexcrichton:fix-scoped-tls, r=aturon

Currently the compiler has no knowledge of `#[thread_local]` which forces users
to take on two burdens of unsafety:

* The lifetime of the borrow of a `#[thread_local]` static is **not** `'static`
* Types in `static`s are required to be `Sync`

The thread-local modules mostly curb these facets of unsafety by only allowing
very limited scopes of borrows as well as allowing all types to be stored in a
thread-local key (regardless of whether they are `Sync`) through an `unsafe
impl`.

Unfortunately these measures have the consequence of being able to take the
address of the key itself and send it to another thread, allowing the same key
to be accessed from two different threads. This is clearly unsafe, and this
commit fixes this problem with the same trick used by `LocalKey`, which is to
have an indirect function call to find the address of the *current thread's*
thread local. This way the address of thread local keys can safely be sent among
threads as their lifetime truly is `'static`.

This commit will reduce the performance of cross-crate scoped thread locals as
it now requires an indirect function call, but this can likely be overcome in a
future commit.

Closes #25894

9 years agoAuto merge of #24738 - joliv:patch-2, r=steveklabnik
bors [Tue, 16 Jun 2015 17:08:36 +0000 (17:08 +0000)]
Auto merge of #24738 - joliv:patch-2, r=steveklabnik

The "unit value" is a value of the "unit type," not the "unit value type." Regardless of correctness, this straight syntax is easier to grok.

Part of #16676

Sorry if something's off here, it's my first pull request to rust!

9 years agoAuto merge of #26323 - steveklabnik:gh26320, r=alexcrichton
bors [Tue, 16 Jun 2015 10:40:33 +0000 (10:40 +0000)]
Auto merge of #26323 - steveklabnik:gh26320, r=alexcrichton

Fixes #26320

9 years agoAuto merge of #26318 - steveklabnik:gh26268, r=alexcrichton
bors [Tue, 16 Jun 2015 08:20:57 +0000 (08:20 +0000)]
Auto merge of #26318 - steveklabnik:gh26268, r=alexcrichton

Fixes #26268

9 years agoAuto merge of #26317 - steveklabnik:gh25956, r=alexcrichton
bors [Tue, 16 Jun 2015 06:44:56 +0000 (06:44 +0000)]
Auto merge of #26317 - steveklabnik:gh25956, r=alexcrichton

It isn't really neccesary, but is pretty dense.

Fixes #25956

9 years agoAuto merge of #24719 - :patch-1, r=steveklabnik
bors [Tue, 16 Jun 2015 05:08:13 +0000 (05:08 +0000)]
Auto merge of #24719 - :patch-1, r=steveklabnik

9 years agoAdd unit type info and update associated link
joliv [Tue, 16 Jun 2015 03:04:55 +0000 (23:04 -0400)]
Add unit type info and update associated link

Fixes #25244

9 years agoAuto merge of #26313 - steveklabnik:fix_str_docs, r=alexcrichton
bors [Tue, 16 Jun 2015 01:57:34 +0000 (01:57 +0000)]
Auto merge of #26313 - steveklabnik:fix_str_docs, r=alexcrichton

Because these structures are created by a macro, the doc comments
don't quite work: the leading /// isn't stripped. Instead, just
use #[doc] so that they render correctly.

9 years agoAuto merge of #26311 - jooert:fix25855, r=steveklabnik
bors [Mon, 15 Jun 2015 23:48:39 +0000 (23:48 +0000)]
Auto merge of #26311 - jooert:fix25855, r=steveklabnik

Use result of the computation to prevent the compiler from optimising
too much. Change `_x` to `x` and therefore remove the paragraph about
the underscore.

Fixes #25855.

r? @steveklabnik

9 years agoAuto merge of #26282 - arielb1:probe-leak, r=nikomatsakis
bors [Mon, 15 Jun 2015 21:27:43 +0000 (21:27 +0000)]
Auto merge of #26282 - arielb1:probe-leak, r=nikomatsakis

It can introduce obligations to the fulfillment context, which would
incorrectly still remain after the probe finished.

Fixes #25679.

r? @eddyb

9 years agoSignificantly simplify generic example
Steve Klabnik [Mon, 15 Jun 2015 20:06:01 +0000 (16:06 -0400)]
Significantly simplify generic example

Fixes #26320

9 years agoAuto merge of #26275 - arielb1:unconstrained-projection, r=nikomatsakis
bors [Mon, 15 Jun 2015 19:52:15 +0000 (19:52 +0000)]
Auto merge of #26275 - arielb1:unconstrained-projection, r=nikomatsakis

Fixes #26262

Because this rejects code that previously compiled, this is a [breaking-change]

r? @nikomatsakis

9 years agoAuto merge of #26293 - mihneadb:rustdoc-search-orphan-methods, r=alexcrichton
bors [Mon, 15 Jun 2015 18:17:22 +0000 (18:17 +0000)]
Auto merge of #26293 - mihneadb:rustdoc-search-orphan-methods, r=alexcrichton

In https://github.com/rust-lang/rust/pull/23289, I did not include the type information for searching for orphan methods (methods that are defined in a module and implemented in another - doing this causes rustdoc sometimes to first find the impl before the actual type).

This PR fixes this. By merging this, searches for `char -> bool` will also find `is_alphabetic`, for example (which otherwise was only found for `charext -> bool`).

cc @alexcrichton

9 years agoClarify that the following will error
Steve Klabnik [Mon, 15 Jun 2015 17:18:07 +0000 (13:18 -0400)]
Clarify that the following will error

Fixes #26268

9 years agoRemove confusing paragraph from Trait Objects
Steve Klabnik [Mon, 15 Jun 2015 17:16:16 +0000 (13:16 -0400)]
Remove confusing paragraph from Trait Objects

It isn't really neccesary, but is pretty dense.

Fixes #25956

9 years agoUpdate example in "Rust Inside Other Languages"
Johannes Oertel [Mon, 15 Jun 2015 15:03:42 +0000 (17:03 +0200)]
Update example in "Rust Inside Other Languages"

Use result of the computation to prevent the compiler from optimising
too much. Change `_x` to `x` and therefore remove the paragraph about
the underscore.

Fixes #25855.

9 years agoFix up Split docs
Steve Klabnik [Mon, 15 Jun 2015 16:25:10 +0000 (12:25 -0400)]
Fix up Split docs

Because these structures are created by a macro, the doc comments
don't quite work: the leading /// isn't stripped. Instead, just
use #[doc] so that they render correctly.

9 years agoMake impl-trait-ref associated types work in methods
Ariel Ben-Yehuda [Sat, 13 Jun 2015 23:27:18 +0000 (02:27 +0300)]
Make impl-trait-ref associated types work in methods

9 years agoDon't call instantiate_type_scheme during method probing
Ariel Ben-Yehuda [Sat, 13 Jun 2015 20:34:03 +0000 (23:34 +0300)]
Don't call instantiate_type_scheme during method probing

It can introduce obligations to the fulfillment context, which would
incorrectly still remain after the probe finished.

Fixes #25679.

9 years agoAuto merge of #26302 - aidanhs:aphs-fix-musl-libc, r=alexcrichton
bors [Mon, 15 Jun 2015 14:07:48 +0000 (14:07 +0000)]
Auto merge of #26302 - aidanhs:aphs-fix-musl-libc, r=alexcrichton

musl may not be available on the target user's machine, and even if it is, we may not be able to find it because of how static libraries are searched for.
Instead, use the liblibc archive created at rust compile time which already contains libc.a.

---

To be honest, my brain is bending a bit at this point and I wonder if I'm doing something a bit stupid.

Problem: building the libc crate with target musl. It says "could not find native static library `c`, perhaps an -L flag is missing?".

Some pondering: the key problem is the way static archives are searched for (note that a musl build attempts to statically link to libc) - they aren't. There are three locations which are checked (including `$PREFIX/lib/rustlib/x86_64-unknown-linux-musl/lib`), but this does not include `$PREFIX/lib`...and it probably shouldn't - rustc is mimicking the way native lib generation works by forcing you to provide the path yourself. You can make it work `cargo rustc` with `-L native=/path/to/musl/lib`, but even if this went in a build script for the libc crate, it wouldn't work if musl isn't installed by the end user.

I've sprinkled `not(test)` around but I've no idea if I've done it right.

This patch allows `cargo build --target x86_64-unknown-linux-musl` to work on a crate with a dependency on libc, where the musl-enabled rust was compiled before this patch. I've not yet kicked off the long process to build a musl-enabled rust with this patch, so it might be broken there.

Sorry for the rambling.

r? @alexcrichton

9 years agoWhen building libc crate with musl, don't look for libc.a
Aidan Hobson Sayers [Sun, 14 Jun 2015 22:55:01 +0000 (23:55 +0100)]
When building libc crate with musl, don't look for libc.a

musl may not be available on the target user's machine, and even if
it is, we may not be able to find it because of how static libraries
are searched for.
Instead, use the transitively included liblibc which includes libc.a.

9 years agoAuto merge of #26307 - nrc:save-bugs, r=cmr
bors [Mon, 15 Jun 2015 09:02:31 +0000 (09:02 +0000)]
Auto merge of #26307 - nrc:save-bugs, r=cmr

r? @brson (or anyone, really)

9 years agoAuto merge of #26168 - sfackler:stdout-panic, r=alexcrichton
bors [Mon, 15 Jun 2015 06:44:42 +0000 (06:44 +0000)]
Auto merge of #26168 - sfackler:stdout-panic, r=alexcrichton

Closes #25977

The various `stdfoo_raw` methods in std::io now return `io::Result`s,
since they may not exist on Windows. They will always return `Ok` on
Unix-like platforms.

[breaking-change]

9 years agosave-analysis: fix a couple of span bugs
Nick Cameron [Mon, 15 Jun 2015 05:58:10 +0000 (17:58 +1200)]
save-analysis: fix a couple of span bugs

9 years agoAuto merge of #25359 - thepowersgang:result-expect-2, r=alexcrichton
bors [Mon, 15 Jun 2015 05:11:53 +0000 (05:11 +0000)]
Auto merge of #25359 - thepowersgang:result-expect-2, r=alexcrichton

As it says in the title. I've added an `expect` method to `Result` that allows printing both an error message (e.g. what operation was attempted), and the error value. This is separate from the `unwrap` and `ok().expect("message")` behaviours.

9 years agolibcore/Result - RFC#1119 Add an 'expect' method to Result
John Hodge [Sat, 13 Jun 2015 14:34:58 +0000 (22:34 +0800)]
libcore/Result - RFC#1119 Add an 'expect' method to Result

9 years agoImplement RFC 1014
Steven Fackler [Wed, 10 Jun 2015 04:39:36 +0000 (21:39 -0700)]
Implement RFC 1014

Closes #25977

The various `stdfoo_raw` methods in std::io now return `io::Result`s,
since they may not exist on Windows. They will always return `Ok` on
Unix-like platforms.

[breaking-change]

9 years agoAuto merge of #26290 - michaelsproul:url-line-limit, r=alexcrichton
bors [Mon, 15 Jun 2015 01:57:17 +0000 (01:57 +0000)]
Auto merge of #26290 - michaelsproul:url-line-limit, r=alexcrichton

The plugin that enforces error explanation line-length is a bit restrictive, particularly when attempting to use URLs in explanations (cf #26163).

Jashank will still have to do some mucking around with `#[cfg(not(stage0))]` attributes or else wait until a snapshot with this commit lands.

9 years agoAuto merge of #26265 - retep998:heapalloc, r=alexcrichton
bors [Mon, 15 Jun 2015 00:24:31 +0000 (00:24 +0000)]
Auto merge of #26265 - retep998:heapalloc, r=alexcrichton

This removes our dependency on the CRT for memory allocation.

9 years agoAuto merge of #26110 - nrc:save-api-3, r=brson
bors [Sun, 14 Jun 2015 22:47:55 +0000 (22:47 +0000)]
Auto merge of #26110 - nrc:save-api-3, r=brson

r? @huonw

9 years agoRebasing and bug fixing
Nick Cameron [Sun, 14 Jun 2015 22:06:01 +0000 (10:06 +1200)]
Rebasing and bug fixing

9 years agoAuto merge of #26213 - semarie:openbsd-morestack, r=alexcrichton
bors [Sun, 14 Jun 2015 21:15:32 +0000 (21:15 +0000)]
Auto merge of #26213 - semarie:openbsd-morestack, r=alexcrichton

don't try to bind __morestack symbol under OpenBSD as the platform don't
have morestack support.

r? @alexcrichton

it unbreak build under OpenBSD. Does some others platforms don't have morestack too ? They should be impacted by this problem too.

9 years agosave-analysis: use a macro for 'downcasting'
Nick Cameron [Mon, 8 Jun 2015 22:36:30 +0000 (10:36 +1200)]
save-analysis: use a macro for 'downcasting'

9 years agosave-analysis: API-ify struct lits
Nick Cameron [Mon, 8 Jun 2015 21:51:54 +0000 (09:51 +1200)]
save-analysis: API-ify struct lits

9 years agosave-analysis: merge StructRef and TypeRef
Nick Cameron [Mon, 8 Jun 2015 05:47:52 +0000 (17:47 +1200)]
save-analysis: merge StructRef and TypeRef

9 years agosave-analysis: API-ify impls
Nick Cameron [Fri, 5 Jun 2015 05:50:04 +0000 (17:50 +1200)]
save-analysis: API-ify impls

9 years agosave-analysis: move fields to the API
Nick Cameron [Fri, 5 Jun 2015 04:03:48 +0000 (16:03 +1200)]
save-analysis: move fields to the API

9 years agoAuto merge of #26071 - petrochenkov:assert1, r=alexcrichton
bors [Sun, 14 Jun 2015 19:42:26 +0000 (19:42 +0000)]
Auto merge of #26071 - petrochenkov:assert1, r=alexcrichton

`assert_eq!` has better diagnostics than `assert!` and is more helpful when something actually breaks, but the diagnostics has it's price - `assert_eq!` generate some formatting code which is slower to compile and possibly run.
[My measurements](https://internals.rust-lang.org/t/assert-a-b-or-assert-eq-a-b/1367/12?u=petrochenkov) show that presence of this formatting code doesn't affect compilation + execution time of the test suite significantly, so `assert_eq!` can be used instead of `assert!` consistently.

(Some tests doesn't reside in src/test, they are not affected by these changes, I'll probably open a separate PR for them later)

9 years agoAuto merge of #26296 - aidanhs:aphs-fix-musl-make-install, r=alexcrichton
bors [Sun, 14 Jun 2015 17:18:25 +0000 (17:18 +0000)]
Auto merge of #26296 - aidanhs:aphs-fix-musl-make-install, r=alexcrichton

musl only creates rlib files for stdlib linking so we need to ignore the `CFG_LIB_GLOB_` setting, otherwise we an error:
```
$ make --debug VERBOSE=1 dist-tar-bins
[...]
            Successfully remade target file `prepare-target-x86_64-unknown-linux-gnu-host-x86_64-unknown-linux-gnu-2-dir-x86_64-unknown-linux-gnu'.
             File `prepare-target-x86_64-unknown-linux-musl-host-x86_64-unknown-linux-gnu-2-dir-x86_64-unknown-linux-gnu' does not exist.
            Must remake target `prepare-target-x86_64-unknown-linux-musl-host-x86_64-unknown-linux-gnu-2-dir-x86_64-unknown-linux-gnu'.
umask 022 && mkdir -p tmp/dist/rustc-1.2.0-dev-x86_64-unknown-linux-gnu-image/lib/rustlib/x86_64-unknown-linux-musl/lib
umask 022 && mkdir -p tmp/dist/rustc-1.2.0-dev-x86_64-unknown-linux-gnu-image/lib/rustlib/x86_64-unknown-linux-gnu/bin
LIB_NAME="liblibc-d8ace771.rlib"; MATCHES=""; if [ -n "$MATCHES" ]; then echo "warning: one or libraries matching Rust library 'liblibc-*.rlib'" && echo "  (other than '$LIB_NAME' itself) alre
ady present"     && echo "  at destination tmp/dist/rustc-1.2.0-dev-x86_64-unknown-linux-gnu-image/lib/rustlib/x86_64-unknown-linux-musl/lib:"      && echo $MATCHES ; fi
install -m644 `ls -drt1 x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-musl/lib/liblibc-*.rlib` tmp/dist/rustc-1.2.0-dev-x86_64-unknown-linux-gnu-image/lib/rustlib/x86_64-unk
nown-linux-musl/lib/
LIB_NAME=""; MATCHES=""; if [ -n "$MATCHES" ]; then echo "warning: one or libraries matching Rust library 'libstd-*.so'" && echo "  (other than '$LIB_NAME' itself) already present"     && echo
 "  at destination tmp/dist/rustc-1.2.0-dev-x86_64-unknown-linux-gnu-image/lib/rustlib/x86_64-unknown-linux-musl/lib:"      && echo $MATCHES ; fi
install -m644 `ls -drt1 x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-*.so` tmp/dist/rustc-1.2.0-dev-x86_64-unknown-linux-gnu-image/lib/rustlib/x86_64-unknow
n-linux-musl/lib/
ls: cannot access x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-*.so: No such file or directory
install: missing destination file operand after ‘tmp/dist/rustc-1.2.0-dev-x86_64-unknown-linux-gnu-image/lib/rustlib/x86_64-unknown-linux-musl/lib/’
Try 'install --help' for more information.
make: *** [prepare-target-x86_64-unknown-linux-musl-host-x86_64-unknown-linux-gnu-2-dir-x86_64-unknown-linux-gnu] Error 1
```

`CFG_INSTALL_ONLY_RLIB_` is provided for this reason and fixes `make install` and `make dist`.

9 years agoReplaced a comment mentioning a fixed issue
Markus Westerlind [Sun, 14 Jun 2015 16:24:52 +0000 (18:24 +0200)]
Replaced a comment mentioning a fixed issue

Replaced it with a comment mentioning the rationale for checking the discriminants first.

9 years agomusl only uses rlib files for stdlib linking
Aidan Hobson Sayers [Sun, 14 Jun 2015 15:18:51 +0000 (16:18 +0100)]
musl only uses rlib files for stdlib linking

9 years agoFind type of orphan methods for rustdoc search.
Mihnea Dobrescu-Balaur [Sun, 14 Jun 2015 11:33:31 +0000 (14:33 +0300)]
Find type of orphan methods for rustdoc search.

9 years agoAuto merge of #26252 - bluss:relative-paths, r=alexcrichton
bors [Sun, 14 Jun 2015 11:20:36 +0000 (11:20 +0000)]
Auto merge of #26252 - bluss:relative-paths, r=alexcrichton

mk: Build crates with relative source file paths

The path we pass to rustc will be visible in panic messages and
backtraces: they will be user visible!

Avoid junk in these paths by passing relative paths to rustc.

For most advanced users, `libcore` or `libstd` in the path will be
a clue to the location -- inside our code, not theirs.

Store both the relative path to the source as well as the absolute.
Use the relative path where it matters, compiling the main crates,
instead of changing all of the build process to cope with relative
paths.

Example output after this patch:

```
$ ./testunwrap
thread '<main>' panicked at 'called `Option::unwrap()` on a `None` value', ../src/libcore/option.rs:362
$ RUST_BACKTRACE=1 ./testunwrap
thread '<main>' panicked at 'called `Option::unwrap()` on a `None` value', ../src/libcore/option.rs:362
stack backtrace:
   1:     0x7ff59c1e9956 - sys::backtrace::write::h67a542fd2b201576des
                        at ../src/libstd/sys/unix/backtrace.rs:158
   2:     0x7ff59c1ed5b6 - panicking::on_panic::h3d21c41cdd5c12d41Xw
                        at ../src/libstd/panicking.rs:58
   3:     0x7ff59c1e7b6e - rt::unwind::begin_unwind_inner::h9f3a5440cebb8baeLDw
                        at ../src/libstd/rt/unwind/mod.rs:273
   4:     0x7ff59c1e7f84 - rt::unwind::begin_unwind_fmt::h4fe8a903e0c296b0RCw
                        at ../src/libstd/rt/unwind/mod.rs:212
   5:     0x7ff59c1eced7 - rust_begin_unwind
   6:     0x7ff59c22c11a - panicking::panic_fmt::h00b0cd49c98a9220i5B
                        at ../src/libcore/panicking.rs:64
   7:     0x7ff59c22b9e0 - panicking::panic::hf549420c0ee03339P3B
                        at ../src/libcore/panicking.rs:45
   8:     0x7ff59c1e621d - option::Option<T>::unwrap::h501963526474862829
   9:     0x7ff59c1e61b1 - main::hb5c91ce92347d1e6eaa
  10:     0x7ff59c1f1c18 - rust_try_inner
  11:     0x7ff59c1f1c05 - rust_try
  12:     0x7ff59c1ef374 - rt::lang_start::h7e51e19c6677cffe5Sw
                        at ../src/libstd/rt/unwind/mod.rs:147
                        at ../src/libstd/rt/unwind/mod.rs:130
                        at ../src/libstd/rt/mod.rs:128
  13:     0x7ff59c1e628e - main
  14:     0x7ff59b3f6b44 - __libc_start_main
  15:     0x7ff59c1e6078 - <unknown>
  16:                0x0 - <unknown>
```

9 years agodiagnostics: Allow long URLs in error explanations.
Michael Sproul [Sun, 14 Jun 2015 08:46:32 +0000 (18:46 +1000)]
diagnostics: Allow long URLs in error explanations.

9 years agoinverse the logic in code inclusion
Sébastien Marie [Thu, 11 Jun 2015 06:12:07 +0000 (08:12 +0200)]
inverse the logic in code inclusion

instead of enumerate the (long) list of platforms to exclude, use only
the short list of platforms to include.

should fixes __morestack symbol problem under openbsd

9 years agoAuto merge of #26285 - rick68:patch-3, r=alexcrichton
bors [Sun, 14 Jun 2015 04:21:47 +0000 (04:21 +0000)]
Auto merge of #26285 - rick68:patch-3, r=alexcrichton

`FormatError` is not exist anymore.

9 years agoUpdate mod.rs
Wei-Ming Yang [Sun, 14 Jun 2015 03:32:04 +0000 (11:32 +0800)]
Update mod.rs

`FormatError` is not exist anymore.

9 years agoAuto merge of #26278 - tamird:compiletest, r=alexcrichton
bors [Sat, 13 Jun 2015 23:35:28 +0000 (23:35 +0000)]
Auto merge of #26278 - tamird:compiletest, r=alexcrichton

9 years agoAuto merge of #26250 - steveklabnik:remove_html_literals_test, r=alexcrichton
bors [Sat, 13 Jun 2015 22:03:42 +0000 (22:03 +0000)]
Auto merge of #26250 - steveklabnik:remove_html_literals_test, r=alexcrichton

This test now works again

Fixes #20673

r? @alexcrichton

9 years agoAuto merge of #26249 - steveklabnik:remove_extern_panic, r=alexcrichton
bors [Sat, 13 Jun 2015 20:33:53 +0000 (20:33 +0000)]
Auto merge of #26249 - steveklabnik:remove_extern_panic, r=alexcrichton

This test has an interesting history, because of fail -> panic. It was
originally called extern-fail.rs:
https://github.com/rust-lang/rust/commits/master/src/test/run-fail/extern-fail.rs

It lived for a while, but was disabled in August 2013:
https://github.com/rust-lang/rust/commit/ce95b01014391f29a655d165d9e6d31449ceb835

As you can see, that failure was not specific to this test, however,
this code does stuff with the runtime, which was removed. Given that
it hasn't even been able to compile in a long time, we should just
remove it.

r? @brson

9 years agoSwitch to direct HeapAlloc on Windows when not using jemalloc
Peter Atashian [Sat, 13 Jun 2015 19:13:16 +0000 (15:13 -0400)]
Switch to direct HeapAlloc on Windows when not using jemalloc

Signed-off-by: Peter Atashian <retep998@gmail.com>
9 years agoUtilize discriminant_value for more efficient deriving
Markus [Fri, 12 Jun 2015 07:41:06 +0000 (09:41 +0200)]
Utilize discriminant_value for more efficient deriving

The new code generated for deriving on enums looks something like this:

```rust
let __self0_vi = unsafe {
    std::intrinsics::discriminant_value(&self) } as i32;
let __self1_vi = unsafe {
    std::intrinsics::discriminant_value(&__arg1) } as i32;
let __self2_vi = unsafe {
    std::intrinsics::discriminant_value(&__arg2) } as i32;
///
if __self0_vi == __self1_vi && __self0_vi == __self2_vi && ... {
    match (...) {
        (Variant1, Variant1, ...) => Body1
        (Variant2, Variant2, ...) => Body2,
        ...
        _ => ::core::intrinsics::unreachable()
    }
}
else {
    ... // catch-all remainder can inspect above variant index values.
}
```
This helps massively for C-like enums since they will be compiled as a
single comparison giving observed speedups of up to 8x. For more complex
enums the speedup is more difficult to measure but it should not be
slower to generate code this way regardless.

9 years agoAuto merge of #26277 - aidanhs:aphs-dont-make-random-directories, r=alexcrichton
bors [Sat, 13 Jun 2015 17:14:51 +0000 (17:14 +0000)]
Auto merge of #26277 - aidanhs:aphs-dont-make-random-directories, r=alexcrichton

The last commit is optional. If you opt not to take it I can improve on the 'this is magic' comment.

9 years agocompiletest: remove JIT
Tamir Duberstein [Sat, 13 Jun 2015 16:53:07 +0000 (12:53 -0400)]
compiletest: remove JIT

9 years agoReplace nop hack, explain substitution reasoning
Aidan Hobson Sayers [Sat, 13 Jun 2015 16:07:23 +0000 (17:07 +0100)]
Replace nop hack, explain substitution reasoning

9 years agonop hack required for PREPARE_DIR (PREPARE_MAN for safety)
Aidan Hobson Sayers [Sat, 13 Jun 2015 15:49:25 +0000 (16:49 +0100)]
nop hack required for PREPARE_DIR (PREPARE_MAN for safety)

Fixes #26274

9 years agoNo need to double-silence
Aidan Hobson Sayers [Sat, 13 Jun 2015 15:48:19 +0000 (16:48 +0100)]
No need to double-silence

9 years agoEnsure projections are not counted as constraining type parameters.
Ariel Ben-Yehuda [Sat, 13 Jun 2015 14:59:10 +0000 (17:59 +0300)]
Ensure projections are not counted as constraining type parameters.

Fixes #26262

9 years agoAuto merge of #26272 - Manishearth:rollup, r=Manishearth
bors [Sat, 13 Jun 2015 14:02:25 +0000 (14:02 +0000)]
Auto merge of #26272 - Manishearth:rollup, r=Manishearth

- Successful merges: #26255, #26256, #26257, #26259, #26260
- Failed merges:

9 years agoRollup merge of #26260 - tshepang:improve-example, r=steveklabnik
Manish Goregaokar [Sat, 13 Jun 2015 12:33:56 +0000 (18:03 +0530)]
Rollup merge of #26260 - tshepang:improve-example, r=steveklabnik

9 years agoRollup merge of #26259 - tshepang:case-examples, r=steveklabnik
Manish Goregaokar [Sat, 13 Jun 2015 12:33:56 +0000 (18:03 +0530)]
Rollup merge of #26259 - tshepang:case-examples, r=steveklabnik

9 years agoRollup merge of #26257 - Tonkpils:patch-1, r=alexcrichton
Manish Goregaokar [Sat, 13 Jun 2015 12:33:55 +0000 (18:03 +0530)]
Rollup merge of #26257 - Tonkpils:patch-1, r=alexcrichton

9 years agoRollup merge of #26256 - steveklabnik:gh25915, r=alexcrichton
Manish Goregaokar [Sat, 13 Jun 2015 12:33:55 +0000 (18:03 +0530)]
Rollup merge of #26256 - steveklabnik:gh25915, r=alexcrichton

Fixes #25915

9 years agoRollup merge of #26255 - steveklabnik:gh25499, r=alexcrichton
Manish Goregaokar [Sat, 13 Jun 2015 12:33:55 +0000 (18:03 +0530)]
Rollup merge of #26255 - steveklabnik:gh25499, r=alexcrichton

Fixes #25499

9 years agoUse `assert_eq!` instead of `assert!` in tests
petrochenkov [Sun, 7 Jun 2015 18:00:38 +0000 (21:00 +0300)]
Use `assert_eq!` instead of `assert!` in tests

9 years agoAuto merge of #26267 - eefriedman:split-tyarray, r=eddyb
bors [Sat, 13 Jun 2015 11:42:24 +0000 (11:42 +0000)]
Auto merge of #26267 - eefriedman:split-tyarray, r=eddyb

Arrays and slices are closely related, but not that closely; making the
separation more explicit is generally more clear.

9 years agoAuto merge of #26253 - steveklabnik:remove_old_ignored_tests, r=brson
bors [Sat, 13 Jun 2015 10:08:51 +0000 (10:08 +0000)]
Auto merge of #26253 - steveklabnik:remove_old_ignored_tests, r=brson

Two commits here: one which removes a bunch of tests, and re-enables a few that work.

Second updates the syntax of one of the failing tests. It still doesn't pass, but at least it compiles.

9 years agoAuto merge of #26118 - tshepang:define-trait, r=steveklabnik
bors [Sat, 13 Jun 2015 08:34:12 +0000 (08:34 +0000)]
Auto merge of #26118 - tshepang:define-trait, r=steveklabnik

I saw a variation of this definition in [an article](http://pcwalton.github.io/blog/2012/08/08/a-gentle-introduction-to-traits-in-rust) by @pcwalton.

9 years agoAuto merge of #26108 - Marwes:field_pun_docs, r=steveklabnik
bors [Sat, 13 Jun 2015 07:00:26 +0000 (07:00 +0000)]
Auto merge of #26108 - Marwes:field_pun_docs, r=steveklabnik

Adds a mention for the short form pattern syntax. Now without creating a PR to my own fork!

#25779

9 years agoAuto merge of #26248 - steveklabnik:remove_2061, r=alexcrichton
bors [Sat, 13 Jun 2015 03:29:40 +0000 (03:29 +0000)]
Auto merge of #26248 - steveklabnik:remove_2061, r=alexcrichton

This test was added on Nov 1, 2012:
https://github.com/rust-lang/rust/commit/0069bd2f4612b744ab3731b4c1db13c2f3202185#diff-b516ff69faf8886c48e6f5e833c2548c

and then ignored on the same day:
https://github.com/rust-lang/rust/commit/a90020fe8dd8be8615df82e6294408bfed82a767#diff-b516ff69faf8886c48e6f5e833c2548c

and never unignored again.

9 years agoAuto merge of #26247 - steveklabnik:remove_4120, r=alexcrichton
bors [Sat, 13 Jun 2015 01:23:26 +0000 (01:23 +0000)]
Auto merge of #26247 - steveklabnik:remove_4120, r=alexcrichton

This test originated from an ICE in Rust 0.4:
https://github.com/rust-lang/rust/commit/373504a7ac6801293ae65316625ace667842f5b8#diff-214656000770dff71c8165d051c3f027

it was ignored one day later:
https://github.com/rust-lang/rust/commit/1fa2b9980fabff3227d5e5915d1180a0f6922d37#diff-214656000770dff71c8165d051c3f027

and then never enabled again. I think we're safe without it.

9 years agoSplit TyArray into TyArray and TySlice.
Eli Friedman [Fri, 12 Jun 2015 23:50:13 +0000 (16:50 -0700)]
Split TyArray into TyArray and TySlice.

Arrays and slices are closely related, but not that closely; making the
separation more explicit is generally more clear.

9 years agomk: Build crates with relative paths to rustc
Ulrik Sverdrup [Fri, 12 Jun 2015 17:40:07 +0000 (19:40 +0200)]
mk: Build crates with relative paths to rustc

The path we pass to rustc will be visible in panic messages and
backtraces: they will be user visible!

Avoid junk in these paths by passing relative paths to rustc.

For most advanced users, `libcore` or `libstd` in the path will be
a clue to the location -- inside our code, not theirs.

Store both the relative path to the source as well as the absolute.
Use the relative path where it matters, compiling the main crates,
instead of changing all of the build process to cope with relative
paths.

Example output after this patch:

```
$ ./testunwrap
thread '<main>' panicked at 'called `Option::unwrap()` on a `None` value', ../src/libcore/option.rs:362
$ RUST_BACKTRACE=1 ./testunwrap
thread '<main>' panicked at 'called `Option::unwrap()` on a `None` value', ../src/libcore/option.rs:362
stack backtrace:
   1:     0x7ff59c1e9956 - sys::backtrace::write::h67a542fd2b201576des
                        at ../src/libstd/sys/unix/backtrace.rs:158
   2:     0x7ff59c1ed5b6 - panicking::on_panic::h3d21c41cdd5c12d41Xw
                        at ../src/libstd/panicking.rs:58
   3:     0x7ff59c1e7b6e - rt::unwind::begin_unwind_inner::h9f3a5440cebb8baeLDw
                        at ../src/libstd/rt/unwind/mod.rs:273
   4:     0x7ff59c1e7f84 - rt::unwind::begin_unwind_fmt::h4fe8a903e0c296b0RCw
                        at ../src/libstd/rt/unwind/mod.rs:212
   5:     0x7ff59c1eced7 - rust_begin_unwind
   6:     0x7ff59c22c11a - panicking::panic_fmt::h00b0cd49c98a9220i5B
                        at ../src/libcore/panicking.rs:64
   7:     0x7ff59c22b9e0 - panicking::panic::hf549420c0ee03339P3B
                        at ../src/libcore/panicking.rs:45
   8:     0x7ff59c1e621d - option::Option<T>::unwrap::h501963526474862829
   9:     0x7ff59c1e61b1 - main::hb5c91ce92347d1e6eaa
  10:     0x7ff59c1f1c18 - rust_try_inner
  11:     0x7ff59c1f1c05 - rust_try
  12:     0x7ff59c1ef374 - rt::lang_start::h7e51e19c6677cffe5Sw
                        at ../src/libstd/rt/unwind/mod.rs:147
                        at ../src/libstd/rt/unwind/mod.rs:130
                        at ../src/libstd/rt/mod.rs:128
  13:     0x7ff59c1e628e - main
  14:     0x7ff59b3f6b44 - __libc_start_main
  15:     0x7ff59c1e6078 - <unknown>
  16:                0x0 - <unknown>
```

9 years agoAuto merge of #26160 - alexcrichton:revert-rc-as-ref, r=aturon
bors [Fri, 12 Jun 2015 23:05:06 +0000 (23:05 +0000)]
Auto merge of #26160 - alexcrichton:revert-rc-as-ref, r=aturon

This is a revert of PR #26008 which caused the unintended breakage reported in #26096. We may want to add these implementations in the long run, but for now this revert allows us to take some more time to evaluate the impact of such a change (e.g. run it through crater).

Closes #26096

9 years agodoc: make char::from_u32 example more brief
Tshepang Lekhonkhobe [Fri, 12 Jun 2015 22:37:32 +0000 (00:37 +0200)]
doc: make char::from_u32 example more brief

9 years agodoc: 'c' feels more suitable than 'i' for representing characters
Tshepang Lekhonkhobe [Fri, 12 Jun 2015 22:01:16 +0000 (00:01 +0200)]
doc: 'c' feels more suitable than 'i' for representing characters

9 years agodoc: improve escape_unicode example
Tshepang Lekhonkhobe [Fri, 12 Jun 2015 21:58:32 +0000 (23:58 +0200)]
doc: improve escape_unicode example

Looks better without all that wasted whitespace

9 years agodoc: add examples for to_uppercase and to_lowercase
Tshepang Lekhonkhobe [Fri, 12 Jun 2015 21:47:54 +0000 (23:47 +0200)]
doc: add examples for to_uppercase and to_lowercase

9 years agoAuto merge of #25844 - alexcrichton:stabilize-fs-features, r=aturon
bors [Fri, 12 Jun 2015 21:31:37 +0000 (21:31 +0000)]
Auto merge of #25844 - alexcrichton:stabilize-fs-features, r=aturon

This commit stabilizes the following APIs, slating them all to be cherry-picked
into the 1.1 release.

* fs::FileType (and transitively the derived trait implementations)
* fs::Metadata::file_type
* fs::FileType::is_dir
* fs::FileType::is_file
* fs::FileType::is_symlink
* fs::DirEntry::metadata
* fs::DirEntry::file_type
* fs::DirEntry::file_name
* fs::set_permissions
* fs::symlink_metadata
* os::raw::{self, *}
* os::{android, bitrig, linux, ...}::raw::{self, *}
* os::{android, bitrig, linux, ...}::fs::MetadataExt
* os::{android, bitrig, linux, ...}::fs::MetadataExt::as_raw_stat
* os::unix::fs::PermissionsExt
* os::unix::fs::PermissionsExt::mode
* os::unix::fs::PermissionsExt::set_mode
* os::unix::fs::PermissionsExt::from_mode
* os::unix::fs::OpenOptionsExt
* os::unix::fs::OpenOptionsExt::mode
* os::unix::fs::DirEntryExt
* os::unix::fs::DirEntryExt::ino
* os::windows::fs::MetadataExt
* os::windows::fs::MetadataExt::file_attributes
* os::windows::fs::MetadataExt::creation_time
* os::windows::fs::MetadataExt::last_access_time
* os::windows::fs::MetadataExt::last_write_time
* os::windows::fs::MetadataExt::file_size

The `os::unix::fs::Metadata` structure was also removed entirely, moving all of
its associated methods into the `os::unix::fs::MetadataExt` trait instead. The
methods are all marked as `#[stable]` still.

As some minor cleanup, some deprecated and unstable fs apis were also removed:

* File::path
* Metadata::accessed
* Metadata::modified

Features that were explicitly left unstable include:

* fs::WalkDir - the semantics of this were not considered in the recent fs
  expansion RFC.
* fs::DirBuilder - it's still not 100% clear if the naming is right here and if
  the set of functionality exposed is appropriate.
* fs::canonicalize - the implementation on Windows here is specifically in
  question as it always returns a verbatim path. Additionally the Unix
  implementation is susceptible to buffer overflows on long paths unfortunately.
* fs::PathExt - as this is just a convenience trait, it is not stabilized at
  this time.
* fs::set_file_times - this funciton is still waiting on a time abstraction.

9 years agousize -> u32 to match previous example
Leo Correa [Fri, 12 Jun 2015 19:59:39 +0000 (15:59 -0400)]
usize -> u32 to match previous example

9 years agoAuto merge of #26232 - eefriedman:rename-sty, r=nrc
bors [Fri, 12 Jun 2015 19:57:27 +0000 (19:57 +0000)]
Auto merge of #26232 - eefriedman:rename-sty, r=nrc

Use camel-case naming, and use names which actually make sense in modern Rust.

9 years agoFix up wording in lifetime elision docs
Steve Klabnik [Fri, 12 Jun 2015 19:05:09 +0000 (15:05 -0400)]
Fix up wording in lifetime elision docs

Fixes #25915

9 years agoRemove unstable feature from TRPL: iterators
Steve Klabnik [Fri, 12 Jun 2015 19:00:15 +0000 (15:00 -0400)]
Remove unstable feature from TRPL: iterators

Fixes #25499

9 years agoAuto merge of #26221 - sanxiyn:wf-span, r=arielb1
bors [Fri, 12 Jun 2015 18:25:55 +0000 (18:25 +0000)]
Auto merge of #26221 - sanxiyn:wf-span, r=arielb1

When checking field types of struct or enum definitions, use spans for field types instead of the entire item.

9 years agoRe-enable html literals test
Steve Klabnik [Fri, 12 Jun 2015 18:19:05 +0000 (14:19 -0400)]
Re-enable html literals test

It's now passing again.

Fixes #20673

9 years agoUpdate dead-code-closure-bang
Steve Klabnik [Fri, 12 Jun 2015 18:15:57 +0000 (14:15 -0400)]
Update dead-code-closure-bang

This stdlib function went away, so update it to use current syntax.

9 years agoignore-test cleanup
Steve Klabnik [Fri, 12 Jun 2015 17:36:41 +0000 (13:36 -0400)]
ignore-test cleanup

Most of these are old, but some specific messages for specific tests:

* trait-contravariant-self.rs: failed due to a soundess hole:
  https://github.com/rust-lang/rust/commit/05e3248a7974f55b64f75a2483b37ff8c001a4ff

* process-detatch: https://github.com/rust-lang/rust/commit/15966c3c1f99810ac81053769651776a67181dae
  says "this test is being ignored until signals are implemented" That's
  not happening for a long time, and when it is, we'll write tests for
  it.

* deep-vector{,2}.rs: "too big for our poor macro infrastructure", and has
  been ignored over a year.

* borrowck-nested-calls.rs's FIXME #6268 was closed in favor of
  rust-lang/rfcs#811

* issue-15167.rs works properly now
* issue-9737.rs works properly now
* match-var-hygiene.rs works properly now

Addresses a chunk of #3965

9 years agoCleanup: rename middle::ty::sty and its variants.
Eli Friedman [Thu, 11 Jun 2015 23:21:46 +0000 (16:21 -0700)]
Cleanup: rename middle::ty::sty and its variants.

Use camel-case naming, and use names which actually make sense in modern Rust.

9 years agoRemove old runtime panic test
Steve Klabnik [Fri, 12 Jun 2015 17:11:17 +0000 (13:11 -0400)]
Remove old runtime panic test

This test has an interesting history, because of fail -> panic. It was
originally called extern-fail.rs:
https://github.com/rust-lang/rust/commits/master/src/test/run-fail/extern-fail.rs

It lived for a while, but was disabled in August 2013:
https://github.com/rust-lang/rust/commit/ce95b01014391f29a655d165d9e6d31449ceb835

As you can see, that failure was not specific to this test, however,
this code does stuff with the runtime, which was removed. Given that
it hasn't even been able to compile in a long time, we should just
remove it.