Commit Graph

59960 Commits

Author SHA1 Message Date
Tshepang Lekhonkhobe
8cd3081b5a rustdoc: a formatting nit 2016-12-15 20:43:57 +02:00
Alex Crichton
67ae4ab5c2 rustbuild: Package rust-mingw by default
This fixes the `make dist` step on MinGW to package the `rust-mingw` component
by default. This should hopefully be the last step in fixing nightlies.
2016-12-15 10:05:41 -08:00
Corey Farwell
4c4e8c4af7 Simplify BTreeSet::iter doc example. 2016-12-15 11:16:40 -05:00
Corey Farwell
ae36934047 Document how BTreeSet iterator structures are created. 2016-12-15 11:16:38 -05:00
bors
f70ad0adfd Auto merge of #38331 - bluss:assume-stage, r=alexcrichton
rustbuild: Add cli option --keep-stage

This option is intended to be used like:

./x.py build --stage 1 --keep-stage 0

Which skips all stage 0 steps, so that stage 1 can be recompiled
directly (even if for example libcore has changes).

This is useful when working on `cfg(not(stage0))` parts of the
libraries or when re-running stage 1 tests in libraries in general.

Fixes #38326
2016-12-15 14:01:55 +00:00
Seo Sanghyeon
75cd69cf95 Warn unused type aliases 2016-12-15 18:35:20 +09:00
Seo Sanghyeon
a75909824a Remove now unnecessary code
This code was introduced in #27565 to mark types in paths alive. It is now unnecessary since #37676.
2016-12-15 18:35:20 +09:00
bors
833b03ad52 Auto merge of #38185 - jsgf:test-list, r=alexcrichton
libtest: add --list option to list tests and benchmarks

This option lists all the tests and benchmarks a binary provides without running any of them.
By default the listing is sent to stdout (intended for human consumption), but if `--logfile` is also specified, it is also written there in an easily parsable form.

If filters are specified, they're applied before the output is emitted. The human output will also include a summary unless `-q` is specified.
2016-12-15 09:26:25 +00:00
bors
cfa668f3bf Auto merge of #37702 - redox-os:redox, r=brson
Redox Support Preview

# Important - This is only a preview of a working `sys::redox`.

Compiling the Redox default distribution with this `libstd` results in a fully functioning distribution. As such, all further changes would be cosmetic or implementing features that have not been used by the default distribution (of which there are only a small number).

I do not expect this to be merged, but would like to discuss how it may be improved and get feedback.

There are a few `unimplemented!()` - `cloexec` for example. I have documented them below. These would be resolved before desiring a merge.

There are also issues with how the Redox syscall library is called - currently I am using a re-export in `libc` but that probably would not be desired.
2016-12-15 06:23:11 +00:00
Jeffrey Seyfried
cfabce2230 Demote most backwards incompatible ambiguity errors from RFC 1560 to warnings. 2016-12-15 06:02:49 +00:00
Jeffrey Seyfried
16052546f7 Require #[proc_macro_derive] functions to be pub. 2016-12-15 03:02:32 +00:00
bors
7ad7232422 Auto merge of #38375 - petrochenkov:prim, r=eddyb
Fix regression in resolution of primitive types

Fix often encountered ICE.
Extracted from https://github.com/rust-lang/rust/pull/38154
Fixes https://github.com/rust-lang/rust/issues/38155, fixes https://github.com/rust-lang/rust/issues/38188, fixes https://github.com/rust-lang/rust/issues/38277, fixes https://github.com/rust-lang/rust/issues/38280, fixes https://github.com/rust-lang/rust/issues/38292, fixes https://github.com/rust-lang/rust/issues/38311, fixes https://github.com/rust-lang/rust/issues/38344, fixes https://github.com/rust-lang/rust/issues/38363, fixes https://github.com/rust-lang/rust/issues/38372 (duplicates)

r? @jseyfried or @eddyb or @nrc
2016-12-15 02:39:34 +00:00
Esteban Küber
868fb030cc When cast needs a dereference point at full cast
After the fix of #37453 in PR #37369, instead of pointing at only the
cast type, point at the full cast span when a cast needs a dereference:

```
error: casting `&{float}` as `f32` is invalid
  --> ../../../src/test/ui/mismatched_types/cast-rfc0401.rs:81:30
   |
81 |     vec![0.0].iter().map(|s| s as f32).collect::<Vec<f32>>();
   |                              ^^^^^^^^ cannot cast `&{float}` as `f32`
   |
help: did you mean `*s`?
  --> ../../../src/test/ui/mismatched_types/cast-rfc0401.rs:81:30
   |
81 |     vec![0.0].iter().map(|s| s as f32).collect::<Vec<f32>>();
   |                              ^
```

instead of

```
error: casting `&{float}` as `f32` is invalid
  --> ../../../src/test/ui/mismatched_types/cast-rfc0401.rs:81:35
   |
81 |     vec![0.0].iter().map(|s| s as f32).collect::<Vec<f32>>();
   |                              -    ^^^
   |                              |
   |                              |
   |                              did you mean `*s`?
   |                              cannot cast `&{float}` as `f32`
```
2016-12-14 17:33:03 -08:00
Ulrik Sverdrup
0e01427bba rustbuild: Add small description of --keep-stage 2016-12-15 01:19:17 +01:00
Alex Crichton
96a5fc76dc rustbuild: Add sccache support
This commit adds support for sccache, a ccache-like compiler which works on MSVC
and stores results into an S3 bucket. This also switches over all Travis and
AppVeyor automation to using sccache to ensure a shared and unified cache over
time which can be shared across builders.

The support for sccache manifests as a new `--enable-sccache` option which
instructs us to configure LLVM differently to use a 'sccache' binary instead of
a 'ccache' binary. All docker images for Travis builds are updated to download
Mozilla's tooltool builds of sccache onto various containers and systems.
Additionally a new `rust-lang-ci-sccache` bucket is configured to hold all of
our ccache goodies.
2016-12-14 15:40:18 -08:00
bors
52e024f2d1 Auto merge of #38374 - alexcrichton:makefile-fix, r=brson
mk: Fix `make check`

When the rustc-unicode crate was renamed to std-unicode we just need to continue
to filter it out of the crates being tested.
2016-12-14 23:37:21 +00:00
Vadim Petrochenkov
0157e6c058 Fix regression in resolution of primitive types 2016-12-15 02:12:08 +03:00
Alex Crichton
769c5579c9 mk: Fix make check
When the rustc-unicode crate was renamed to std-unicode we just need to continue
to filter it out of the crates being tested.
2016-12-14 15:05:20 -08:00
Esteban Küber
5c130411e9 review comments 2016-12-14 13:46:13 -08:00
Corey Farwell
cf56c1f744 Indicate BTreeSet in docs is code-like. 2016-12-14 16:42:46 -05:00
bors
0d558d012a Auto merge of #38367 - alexcrichton:fix-nightiles, r=brson
rustbuild: Run `dist` on a `distcheck`

This is what the nightly bots expect, so let's be sure to do that.
2016-12-14 20:35:10 +00:00
Alex Crichton
c7f4cdcabc rustbuild: Run dist on a distcheck
This is what the nightly bots expect, so let's be sure to do that.
2016-12-14 11:03:22 -08:00
Jeremy Fitzhardinge
516d105c0b libtest: add --list option to list tests and benchmarks
This option lists all the tests and benchmarks a binary provides. By default the listing
is sent to stdout, but if --logfile is also specified, it is written there.

If filters are specified, they're applied before the output is emitted.
2016-12-14 10:15:36 -08:00
bors
b197e4a45f Auto merge of #38295 - dylanmckay:llvm-4.0-di-globalvar, r=michaelwoerister
[LLVM 4.0] Update LLVM global variable debug info API for 4.0

This teaches Rust about an LLVM 4.0 API change for creating debug info
for global variables.

This change was made in upstream LLVM patch https://reviews.llvm.org/D20147

This is almost a 1:1 copy of how clang did it in http://reviews.llvm.org/D20415
2016-12-14 17:36:01 +00:00
Austin Hicks
79c35bbd8c Add a case to type-sizes to explicitly verify that field reordering triggers. 2016-12-14 12:28:26 -05:00
Austin Hicks
9966bbd1b1 Fix computation of enum names based off the discrfield in the case of the null pointer optimization. This functionality is needed by pretty printers for gdb and lldb. 2016-12-14 12:28:26 -05:00
Austin Hicks
a65cc1ea54 Fix error introduced during last rebase 2016-12-14 12:28:25 -05:00
Austin Hicks
cfe1a776ee Fix -Z print-type-sizes and tests.
This was done by sorting the fields by increasing offset; as a consequence, the order of -Z print-type-sizes matches memory order not source order.
2016-12-14 12:28:25 -05:00
Austin Hicks
025456e8a4 Incorporate review comments 2016-12-14 12:28:25 -05:00
Austin Hicks
e9580e262b Some small fixes to how structs/enums are optimized 2016-12-14 12:28:24 -05:00
Austin Hicks
052e59cc12 Make tidy 2016-12-14 12:28:24 -05:00
Austin Hicks
c8c3579bff Fix closure arguments which are immediate because of field reordering.
While building immediates goes through type_of::type_of, extracting them must account for field reorderings.
2016-12-14 12:28:24 -05:00
Austin Hicks
cf5f80c68d Fix having multiple reprs on the same type.
This bug has applied to master for an indefinite period of time and is orthogonal to univariant layout optimization.
2016-12-14 12:28:24 -05:00
Austin Hicks
74f5c61d28 Change how type-sizes works slightly: we want to ensure that [i16; 0] introduces padding 2016-12-14 12:28:23 -05:00
Austin Hicks
5adf6943a7 Make tidy 2016-12-14 12:28:23 -05:00
Austin Hicks
487ef589d3 Fix type-sizes test 2016-12-14 12:28:23 -05:00
Austin Hicks
b3c285fa25 Fix checking to see if the last field of a struct can be unsized. 2016-12-14 12:28:22 -05:00
Austin Hicks
cb21cc5607 Don't optimize pairs 2016-12-14 12:28:22 -05:00
Austin Hicks
1af8e146f1 First attempt at detecting if structs can ever be unsized 2016-12-14 12:28:22 -05:00
Austin Hicks
e7c3540706 Use an enum to differentiate between kinds of structs. 2016-12-14 12:28:22 -05:00
Austin Hicks
adae9bc25e Make tidy 2016-12-14 12:28:21 -05:00
Austin Hicks
3d23dc7956 Modify debuginfo to deal with the difference between source and memory order
Fix gdb enum tests to ignore garbage variants, as we no longer actually know what the garbage is.
2016-12-14 12:28:21 -05:00
Austin Hicks
8e852e9902 Struct::new takes a vec, avoiding double allocation in some cases 2016-12-14 12:28:20 -05:00
Austin Hicks
0e61c0e231 Incorporate a bunch of review comments. 2016-12-14 12:28:20 -05:00
Austin Hicks
c7ec0dfcb6 Add yet more missing #[repr(C)] to tests 2016-12-14 12:28:20 -05:00
Austin Hicks
d754778083 Fix tuple and closure literals. 2016-12-14 12:28:19 -05:00
Austin Hicks
27469037d7 Fix extern-pass-empty test, which needed repr(C) 2016-12-14 12:28:19 -05:00
Austin Hicks
1969aeb3d7 Make constant field access account for field reordering. 2016-12-14 12:28:19 -05:00
Austin Hicks
8cfbffea3b Fix bugs to optimizing enums:
- The discriminant must be first in all variants.
- The loop responsible for patching enum variants when the discriminant is enlarged was nonfunctional.
2016-12-14 12:28:19 -05:00
Austin Hicks
cae94e8ec0 Optimize anything using a layout::Struct by introducing a mapping from source code field order to in-memory field order and sorting by alignment. 2016-12-14 12:28:18 -05:00