Commit Graph

49920 Commits

Author SHA1 Message Date
Brandon W Maister
d59372b7aa Decide to hide constness only in fn/method renders
ConstnessSpace has no knowledge of the type of item it's modifying, so
hide the constness a level up.
2016-02-01 13:05:37 -05:00
Brandon W Maister
cea8f67199 Don't show const in docs when it's not available
Fixes #31098
2016-01-31 15:48:08 -05:00
bors
9041b93058 Auto merge of #31298 - japaric:mips-musl, r=alexcrichton
This target covers MIPS devices that run the trunk version of OpenWRT.

The x86_64-unknown-linux-musl target always links statically to C libraries. For
the mips(el)-unknown-linux-musl target, we opt for dynamic linking (like most of
other targets do) to keep binary size down.

As for the C compiler flags used in the build system, we use the same flags used
for the mips(el)-unknown-linux-gnu target.

r? @alexcrichton
2016-01-31 12:27:06 +00:00
Jorge Aparicio
27127dbc23 update libc submodule
fixes failed test (std::os::raw::tests::unix) in x86_64-musl target
2016-01-31 07:20:34 -05:00
bors
9a07087bc5 Auto merge of #31288 - GuillaumeGomez:error_code_tidy, r=brson
r? @steveklabnik
2016-01-30 20:48:18 +00:00
Jorge Aparicio
64ac041b1f rustc: set MIPS cpu/features in the compiler
cf #31303
2016-01-30 14:44:40 -05:00
Jorge Aparicio
146dfce803 revert changes used for local testing 2016-01-30 14:44:38 -05:00
bors
14f33a5996 Auto merge of #30778 - fhahn:issue-21195-expect-help, r=nikomatsakis
This is a PR for #21195. It changes the way unspecified `help` and `ǹote` messages are handled in compile-fail tests as suggested by @oli-obk in the issue: if there are some `note` or `help` annotations, there must be annotations for all `help` or `note` messages of this test. Maybe it makes also sense to add an option to specify that the this test should fail if there are unspecified `help` or `note` messages.

With this change, the following tests fail:

    [compile-fail] compile-fail/changing-crates.rs
    [compile-fail] compile-fail/default_ty_param_conflict_cross_crate.rs
    [compile-fail] compile-fail/lifetime-inference-give-expl-lifetime-param.rs
    [compile-fail] compile-fail/privacy1.rs
    [compile-fail] compile-fail/svh-change-lit.rs
    [compile-fail] compile-fail/svh-change-significant-cfg.rs
    [compile-fail] compile-fail/svh-change-trait-bound.rs
    [compile-fail] compile-fail/svh-change-type-arg.rs
    [compile-fail] compile-fail/svh-change-type-ret.rs
    [compile-fail] compile-fail/svh-change-type-static.rs
    [compile-fail] compile-fail/svh-use-trait.rs

I'll add the missing annotations if we decide to accept this change.
2016-01-30 18:51:13 +00:00
bors
449e8bf304 Auto merge of #31286 - oli-obk:fix/mir_box, r=nagisa
the previous code generated a temporary of the inner type and assigned the box-memory to it. So if you did `let x: Box<usize> = box 5;` you got a

```rust
let var0: Box<usize>; // x
let mut tmp0: Box<usize>;
let mut tmp1: usize;
...
tmp1 = Box(usize);
(*tmp1) = const 5;
tmp0 = tmp1;
var0 = tmp0;
```

r? @nagisa
2016-01-30 16:47:08 +00:00
bors
9bda7ea81d Auto merge of #31274 - brson:nobench, r=nikomatsakis
I don't believe these test cases have served any purpose in years.

The shootout benchmarks are now upstreamed. A new benchmark suite
should rather be maintained out of tree.

r? @nikomatsakis
2016-01-30 14:50:44 +00:00
Florian Hahn
526965aee5 Mark test failing with msvc due to #31306 as ignore-msvc 2016-01-30 14:27:12 +01:00
bors
27380a3edd Auto merge of #31305 - Manishearth:rollup, r=Manishearth
- Successful merges: #31099, #31244, #31280, #31290, #31292, #31294, #31295, #31296
- Failed merges:
2016-01-30 12:32:47 +00:00
Manish Goregaokar
f66d3c5566 Rollup merge of #31296 - steveklabnik:gh31249, r=alexcrichton
Rustdoc will automatically wrap things in main, but this doesn't work
here.

Fixes #31249
2016-01-30 17:57:17 +05:30
Manish Goregaokar
cf0f7a30f4 Rollup merge of #31295 - steveklabnik:gh31266, r=alexcrichton
These are free functions in the text, but methods in the standard
library.

Fixes #31266
2016-01-30 17:57:17 +05:30
Manish Goregaokar
ee7670ef34 Rollup merge of #31294 - steveklabnik:gh31284, r=alexcrichton
This code was refactored, but the words were not

Fixes #31284
2016-01-30 17:57:17 +05:30
Manish Goregaokar
e31f65b010 Rollup merge of #31292 - alexcrichton:osx-dtors-in-dtors-in-dtors, r=aturon
This test has been deadlocking and causing problems on the bots basically since
its inception. Some memory safety issues were fixed in 987dc84b, but the
deadlocks remained afterwards unfortunately.

After some investigation, I've concluded that this is just a situation where OSX
is not guaranteed to run destructors. The fix in 987dc84b observed that OSX was
rewriting the backing TLS memory to its initial state during destruction while
we weren't looking, and this would have the effect of canceling the destructors
of any other initialized TLS slots.

While very difficult to pin down, this is basically what I assume is happening
here, so there doesn't seem to really be anythig we can do to ensure the test
robustly passes on OSX, so just ignore it for now.
2016-01-30 17:57:17 +05:30
Manish Goregaokar
5ff52dbf2f Rollup merge of #31290 - alexcrichton:fix-powerpc64, r=brson
We forgot to pass down the `-m64` flag to gcc, so we were actually compiling
powerpc code which would then later fail to link!
2016-01-30 17:57:16 +05:30
Manish Goregaokar
b83454a69f Rollup merge of #31280 - raindev:patch-1, r=steveklabnik
Perhaps, it makes more sense to link straight to [Installing on Linux or Mac](https://doc.rust-lang.org/book/getting-started.html#installing-on-linux-or-mac) and [Installing on Windows](https://doc.rust-lang.org/book/getting-started.html#installing-on-windows) sections. Platform Support section could be skipped in case of *quick* start.
2016-01-30 17:57:16 +05:30
Manish Goregaokar
63cdec6a7f Rollup merge of #31244 - tshepang:rustfmt-parse, r=nikomatsakis 2016-01-30 17:57:16 +05:30
Manish Goregaokar
ee4f4edd47 Rollup merge of #31099 - brson:relnotes, r=alexcrichton 2016-01-30 17:57:16 +05:30
bors
b16fbe79ac Auto merge of #30843 - jseyfried:no_per_ns, r=nikomatsakis
This commit refactors the field `Module::children` from mapping `Name` -> `NameBindings` to mapping `(Name, Namespace)` -> `NameBinding` and refactors the field `Module::import_resolutions` from mapping `Name` -> `ImportResolutionPerNamespace` to mapping `(Name, Namespace)` -> `ImportResolution`.

This allows the duplicate checking code to be refactored so that `NameBinding` no longer needs ref-counting or a RefCell (removing the need for `NsDef`).

r? @nikomatsakis
2016-01-30 10:16:55 +00:00
bors
ef1a13b637 Auto merge of #31297 - brson:wintrip, r=alexcrichton
Buildbot was updated long ago to use the correct triples.

The putvar here is emitting garbage into `configure --help` so
I want it gone.
2016-01-30 07:08:38 +00:00
bors
303892ee15 Auto merge of #30448 - alexcrichton:llvmup, r=nikomatsakis
These commits perform a few high-level changes with the goal of enabling i686 MSVC unwinding:

* LLVM is upgraded to pick up the new exception handling instructions and intrinsics for MSVC. This puts us somewhere along the 3.8 branch, but we should still be compatible with LLVM 3.7 for non-MSVC targets.
* All unwinding for MSVC targets (both 32 and 64-bit) are implemented in terms of this new LLVM support. I would like to also extend this to Windows GNU targets to drop the runtime dependencies we have on MinGW, but I'd like to land this first.
* Some tests were fixed up for i686 MSVC here and there where necessary. The full test suite should be passing now for that target.

In terms of landing this I plan to have this go through first, then verify that i686 MSVC works, then I'll enable `make check` on the bots for that target instead of just `make` as-is today.

Closes #25869
2016-01-30 00:25:44 +00:00
Alex Crichton
58f1b9c7fc Get tests working on MSVC 32-bit 2016-01-29 16:25:21 -08:00
Alex Crichton
3e9589c0f4 trans: Reimplement unwinding on MSVC
This commit transitions the compiler to using the new exception handling
instructions in LLVM for implementing unwinding for MSVC. This affects both 32
and 64-bit MSVC as they're both now using SEH-based strategies. In terms of
standard library support, lots more details about how SEH unwinding is
implemented can be found in the commits.

In terms of trans, this change necessitated a few modifications:

* Branches were added to detect when the old landingpad instruction is used or
  the new cleanuppad instruction is used to `trans::cleanup`.
* The return value from `cleanuppad` is not stored in an `alloca` (because it
  cannot be).
* Each block in trans now has an `Option<LandingPad>` instead of `is_lpad: bool`
  for indicating whether it's in a landing pad or not. The new exception
  handling intrinsics require that on MSVC each `call` inside of a landing pad
  is annotated with which landing pad that it's in. This change to the basic
  block means that whenever a `call` or `invoke` instruction is generated we
  know whether to annotate it as part of a cleanuppad or not.
* Lots of modifications were made to the instruction builders to construct the
  new instructions as well as pass the tagging information for the call/invoke
  instructions.
* The translation of the `try` intrinsics for MSVC has been overhauled to use
  the new `catchpad` instruction. The filter function is now also a
  rustc-generated function instead of a purely libstd-defined function. The
  libstd definition still exists, it just has a stable ABI across architectures
  and leaves some of the really weird implementation details to the compiler
  (e.g. the `localescape` and `localrecover` intrinsics).
2016-01-29 16:25:20 -08:00
Alex Crichton
d1cace17af trans: Upgrade LLVM
This brings some routine upgrades to the bundled LLVM that we're using, the most
notable of which is a bug fix to the way we handle range asserts when loading
the discriminant of an enum. This fix ended up being very similar to f9d4149c
where we basically can't have a range assert when loading a discriminant due to
filling drop, and appropriate flags were added to communicate this to
`trans::adt`.
2016-01-29 16:25:20 -08:00
Brian Anderson
59b2a29e8e configure: Remove compatibility hacks for windows triples
Buildbot was updated long ago to use the correct triples.

The putvar here is emitting garbage into `configure --help` so
I want it gone.
2016-01-29 15:55:11 -08:00
Jorge Aparicio
7b026f0355 add support for mips(el)-unknown-linux-musl
This target covers MIPS devices that run the trunk version of OpenWRT.

The x86_64-unknown-linux-musl target always links statically to C libraries. For
the mips(el)-unknown-linux-musl target, we opt for dynamic linking (like most of
other targets do) to keep binary size down.

As for the C compiler flags used in the build system, we use the same flags used
for the mips(el)-unknown-linux-gnu target.
2016-01-29 18:46:25 -05:00
Florian Hahn
efe56c8833 Add missings NOTE and HELP annotations to tests 2016-01-30 00:27:58 +01:00
Florian Hahn
36656f812d Expect all help/note messages are specified in a cfail test if it contains help/note annotations,
closes #21195
2016-01-30 00:27:58 +01:00
Steve Klabnik
919ea47356 Add main() so that examples work
Rustdoc will automatically wrap things in main, but this doesn't work
here.

Fixes #31249
2016-01-29 17:53:35 -05:00
Steve Klabnik
a2c328661b Make note that this is different in std
These are free functions in the text, but methods in the standard
library.

Fixes #31266
2016-01-29 17:48:22 -05:00
Steve Klabnik
24c928b99a Fix number of methods in guessing game
This code was refactored, but the words were not

Fixes #31284
2016-01-29 17:45:05 -05:00
Brian Anderson
6dbff05776 Update release notes for 1.7 2016-01-29 22:08:44 +00:00
Brian Anderson
5918d9b96f Release notes for 1.6 2016-01-29 22:08:44 +00:00
Brian Anderson
005c9624bb Remove src/test/bench
I don't believe these test cases have served any purpose in years.

The shootout benchmarks are now upstreamed. A new benchmark suite
should rather be maintained out of tree.
2016-01-29 21:54:30 +00:00
Alex Crichton
b960de0984 std: Ignore dtors_in_dtors_in_dtors on OSX
This test has been deadlocking and causing problems on the bots basically since
its inception. Some memory safety issues were fixed in 987dc84b, but the
deadlocks remained afterwards unfortunately.

After some investigation, I've concluded that this is just a situation where OSX
is not guaranteed to run destructors. The fix in 987dc84b observed that OSX was
rewriting the backing TLS memory to its initial state during destruction while
we weren't looking, and this would have the effect of canceling the destructors
of any other initialized TLS slots.

While very difficult to pin down, this is basically what I assume is happening
here, so there doesn't seem to really be anythig we can do to ensure the test
robustly passes on OSX, so just ignore it for now.
2016-01-29 13:46:47 -08:00
Jeffrey Seyfried
afd42d2144 Remove resolve::dump_module 2016-01-29 21:18:23 +00:00
Jeffrey Seyfried
1ca9f03ead Nits and other local improvements in resolve 2016-01-29 21:18:15 +00:00
Jeffrey Seyfried
e13a0450d3 Clean up resolve_single_import 2016-01-29 21:18:14 +00:00
Jeffrey Seyfried
118c93ba5e Refactor away NameBindings, NsDef, ImportResolutionPerNamespace, DuplicateCheckingMode, and NamespaceDefinition. 2016-01-29 21:18:12 +00:00
bors
074f49a350 Auto merge of #31283 - dotdash:32_64_cc, r=alexcrichton
When cross compiling for a target that has a larger usize type than the
host system, we use a truncated value to mark data as dropped,
eventually leading to drop calls on already dropped data. To properly
handle this, the drop pattern needs to be of type u64.

Since C_integral truncates its given value to the requested size anyway,
we can also drop the function that chose between the u32 and u64 values,
and always use the u64 constant.

Fixes #31139

r? @pnkfelix
2016-01-29 20:58:09 +00:00
Alex Crichton
ea31ff20f0 mk: Fix cross-compiling to armv7-unknown-linux-gnu
The cross prefix was not likely the actual compiler that needed to be used, but
rather the standard `arm-linux-gnueabihf-gcc` compiler can just be used with
`-march=armv7`.
2016-01-29 12:36:45 -08:00
Alex Crichton
7e1acc57d8 mk: Fix compiling jemalloc for powerpc64
We forgot to pass down the `-m64` flag to gcc, so we were actually compiling
powerpc code which would then later fail to link!
2016-01-29 12:23:17 -08:00
bors
0f196bcc3b Auto merge of #31248 - ruud-v-a:fix-triple-ice, r=nrc
This fixes #31238.

r? @michaelsproul
2016-01-29 17:52:26 +00:00
bors
61441cb124 Auto merge of #31285 - Manishearth:rollup, r=Manishearth
- Successful merges: #31252, #31256, #31264, #31269, #31272, #31275, #31276
- Failed merges:
2016-01-29 15:38:40 +00:00
ggomez
c78bf9d90c Add check for unused error codes 2016-01-29 16:37:02 +01:00
Simonas Kazlauskas
9b81d03114 [MIR] Add test for box EXPR dereferencing 2016-01-29 16:13:35 +01:00
Oliver Schneider
06ef2e72c9 [MIR] Fix type of temporary for box EXPR
Previously the code would fail to dereference the temporary.
2016-01-29 16:13:31 +01:00
Manish Goregaokar
7a0e490bdd Rollup merge of #31276 - alexcrichton:fix-powerpc64-cross-prefix, r=brson
Looks like the way to create these executables is to use the standard
`powerpc-linux-gnu-gcc` compiler but with the `-m64` option.
2016-01-29 20:19:39 +05:30