Commit graph

91015 commits

Author SHA1 Message Date
kennytm
f31974a18e
Rollup merge of #59257 - redox-os:upstream-redox, r=sanxiyn
Update CI configuration for building Redox libraries

This fixes https://github.com/rust-lang/rust/issues/59254
2019-03-20 04:34:07 +08:00
kennytm
abdb7733f4
Rollup merge of #59253 - kennytm:precise-docker-cache-hash, r=pietroalbini
Calculate Docker cache hash precisely from Dockerfile's dependencies

#58549 changed the Docker cache calculation to include every file under `src/ci/docker`, so that when files under `dist-x86_64-linux` is changed, its dependent image `dist-i686-linux` will also be rebuilt.

However, this ultraconservative solution caused the `dist-i686-linux` to be rebuilt every time an irrelevant Dockerfile (e.g. the PowerPC ones) is changed, which increases the building time beyond 3 hours and forcing a spurious but expected failure.

This commit instead parses the Dockerfile itself and look for the actual dependencies. The scripts needs to be copied into the Docker image, which must be done with the COPY command, so we just need to find all lines with a COPY command and add the source file into the hash calculator.

Note: this script only handles single-lined COPY command in the form `COPY src1 src2 src3 dst`, since these are the only variant used inside this repository.
2019-03-20 04:34:06 +08:00
kennytm
9da8fe4e02
Rollup merge of #59055 - ehuss:ci-job-name, r=alexcrichton
CI: Set job names.

This should make it easier to identify what each job is doing when looking at the Travis or Appveyor UI.

- Set `name` for each job in Travis.
- Move `CI_JOB_NAME` to the front in Appveyor so that it appears first in the UI.
2019-03-20 04:34:04 +08:00
kennytm
5d8a30d270
Rollup merge of #59038 - kennytm:track-embedded-book, r=oli-obk
Track embedded-book in the toolstate

The embedded book was tested in the tools job but the test result was never published. This PR adds maintainer information of embedded-book. This PR also requires the next update to embedded-book to pass the all tests, currently its state is test-fail.

rust-lang-nursery/rust-toolstate#10 should be merged before this PR.
2019-03-20 04:34:02 +08:00
kennytm
b3490cf418
Rollup merge of #58986 - cuviper:ppc64-binutils, r=alexcrichton
[CI] Update binutils for powerpc64 and powerpc64le

Cargo powerpc64 and powerpc64le are seeing `SIGILL` crashes in openssl,
which was found to be a linking problem, fixed by newer binutils. See
<https://github.com/rust-lang/rust/issues/57345#issuecomment-462094555>

For powerpc64 we're using crosstool-ng, which doesn't offer a newer
binutils version, but we can just compile it separately. On powerpc64le
we're already building binutils. Both are now updated to binutils 2.32.

Closes rust-lang/cargo#6320
Closes rust-lang/rust#57345
Closes rust-lang/rustup.rs#1620

r? @alexcrichton
2019-03-20 04:34:01 +08:00
kennytm
f8bffad4f1
Use curl instead of wget in install-x86_64-redox.sh 2019-03-20 04:30:49 +08:00
bors
7a4df3b53d Auto merge of #59293 - Centril:rollup, r=Centril
Rollup of 11 pull requests

Successful merges:

 - #56348 (Add todo!() macro)
 - #57729 (extra testing of how NLL handles wildcard type `_`)
 - #57847 (dbg!() without parameters)
 - #58778 (Implement ExactSizeIterator for ToLowercase and ToUppercase)
 - #58812 (Clarify distinction between floor() and trunc())
 - #58939 (Fix a tiny error in documentation of std::pin.)
 - #59116 (Be more discerning on when to attempt suggesting a comma in a macro invocation)
 - #59252 (add self to mailmap)
 - #59275 (Replaced self-reflective explicit types with clearer `Self` or `Self::…` in stdlib docs)
 - #59280 (Stabilize refcell_map_split feature)
 - #59290 (Run branch cleanup after copy prop)

Failed merges:

r? @ghost
2019-03-19 14:30:42 +00:00
Mazdak Farrokhzad
7f7829fa8f
Rollup merge of #59290 - oli-obk:trivial_move_prop, r=davidtwco
Run branch cleanup after copy prop

This is preliminary work for https://github.com/rust-lang/rust/pull/59288#issuecomment-474277172 which gets rid of `if` in the HIR.

cc @rust-lang/wg-mir-opt 	@Centril
2019-03-19 15:17:03 +01:00
Mazdak Farrokhzad
a3581aca02
Rollup merge of #59280 - joshlf:sandbox/joshlf/stabilize-refcell-map-split, r=cramertj,Centril
Stabilize refcell_map_split feature

Closes #51476.
2019-03-19 15:17:00 +01:00
Mazdak Farrokhzad
1ec1c5da36
Rollup merge of #59275 - regexident:docs-self, r=joshtriplett
Replaced self-reflective explicit types with clearer `Self` or `Self::…` in stdlib docs

Many docs examples use explicit types instead of the semantically more clear `Self`/`Self::…` aliases.

By using the latter it's clear that the value's type depends on either `Self`, or an associated type of `Self`, instead of some constant type. It's also more consistent (and I'd argue correct), as the current docs aren't really consistent in this, as can be seen from the diff.

This is a best effort PR, as I was basically going through the docs manually, looking for offending examples. I'm sure I missed a few. Gotta start somewhere.
2019-03-19 15:16:59 +01:00
Mazdak Farrokhzad
05e8051d75
Rollup merge of #59252 - lcnr:mailmap, r=Centril
add self to mailmap
2019-03-19 15:16:57 +01:00
Mazdak Farrokhzad
8ebe2acb7b
Rollup merge of #59116 - estebank:comma-sugg, r=petrochenkov
Be more discerning on when to attempt suggesting a comma in a macro invocation

Fix #58796.
2019-03-19 15:16:55 +01:00
Mazdak Farrokhzad
61ff887919
Rollup merge of #58939 - taeguk:fix-doc-about-pin, r=rkruppe
Fix a tiny error in documentation of std::pin.

`new_unmoved` must be `mut` for passing to `std::mem::swap`.
2019-03-19 15:16:53 +01:00
Mazdak Farrokhzad
5abd9c7d15
Rollup merge of #58812 - jonhoo:floor_v_trunc, r=alexcrichton
Clarify distinction between floor() and trunc()

`floor()` rounds towards `-INF`, `trunc()` rounds towards 0.
This PR clarifies this in the examples.
2019-03-19 15:16:50 +01:00
Mazdak Farrokhzad
fff8586193
Rollup merge of #58778 - xfix:exact_size_case_mapping_iter, r=SimonSapin
Implement ExactSizeIterator for ToLowercase and ToUppercase
2019-03-19 15:16:49 +01:00
Mazdak Farrokhzad
d4ef74b2da
Rollup merge of #57847 - clarcharr:dbg_no_params, r=Centril
dbg!() without parameters

Fixes #57845.
2019-03-19 15:16:46 +01:00
Mazdak Farrokhzad
c1975dbd34
Rollup merge of #57729 - pnkfelix:issue-55748-pat-types-are-constraints-on-bindings-too, r=nikomatsakis
extra testing of how NLL handles wildcard type `_`

test that wildcard type `_` is not duplicated by `type Foo<X> = (X, X);` and potentially instantiated at different types when used in type ascriptions in let bindings.

(NLL's handling of this for the type ascription *expression form* is currently broken, or at least differs from what AST-borrowck does. I'll file a separate bug about that. Its not something critical to address since that expression is guarded by `#![feature(type_ascription)]`.)

cc #55748
2019-03-19 15:16:45 +01:00
Mazdak Farrokhzad
d4dd8604eb
Rollup merge of #56348 - matklad:todo-macro, r=withoutboats
Add todo!() macro

The primary use-case of `todo!()` macro is to be a much easier to type
alternative to `unimplemented!()` macro.

EDIT: hide unpopular proposal about re-purposing unimplemented

<details>
However, instead of just replacing `unimplemented!()`, it gives it a
more nuanced meaning: a thing which is intentionally left
unimplemented and which should not be called at runtime. Usually,
you'd like to prevent such cases statically, but sometimes you, for
example, have to implement a trait only some methods of which are
applicable. There are examples in the wild of code doing this thing,
and in this case, the current message of `unimplemented`, "not *yet*
implemented" is slightly misleading.

With the addition of TODO, you have three nuanced choices for a
`!`-returning macro (in addition to a good-old panic we all love):

  * todo!()
  * unreachable!()
  * unimplemented!()

Here's a rough guideline what each one means:

- `todo`: use it during development, as a "hole" or placeholder. It
  might be a good idea to add a pre-commit hook which checks that
  `todo` is not accidentally committed.

- `unreachable!()`: use it when your code can statically guarantee
  that some situation can not happen. If you use a library and hit
  `unreachable!()` in the library's code, it's definitely a bug in the
  library. It's OK to have `unreachable!()` in the code base,
  although, if possible, it's better to replace it with
  compiler-verified exhaustive checks.

- `unimplemented!()`: use it when the type checker forces you to
  handle some situation, but there's a contract that a callee must not
  actually call the code. If you use a library and hit
  `unimplemented!()`, it's probably a bug in your code, though
  it *could* be a bug in the library (or library docs) as well. It is
  ok-ish to see an `unimplemented!()` in real code, but it usually
  signifies a clunky, eyebrow-rising API.
</details>
2019-03-19 15:16:43 +01:00
Oliver Scherer
ab41023fd4 Run branch cleanup after copy prop 2019-03-19 12:38:18 +01:00
Konrad Borowski
8f261a6abe Update since annotation for ExactSizeIterator for ToUppercase/Lowercase
This functionality was added in 1.35.0, not 1.34.0.
2019-03-19 08:50:02 +01:00
bors
ef4d1c4195 Auto merge of #59279 - mati865:clippy, r=Xanewok
Update clippy

Fixes https://github.com/rust-lang/rust/issues/59218

cc @Xanewok
2019-03-19 00:48:06 +00:00
Joshua Liebow-Feeser
de4be2cd85 Stabilize refcell_map_split feature
- Closes #51476
2019-03-18 15:06:34 -07:00
bors
3bf064beaa Auto merge of #56462 - Zoxc:query-macro, r=oli-obk
Define queries using a proc macro

cc @rust-lang/compiler
2019-03-18 21:24:12 +00:00
Mateusz Mikuła
986f88b86e Update Clippy, RLS and Rustfmt 2019-03-18 18:34:18 +01:00
Aleksey Kladov
9d408d972f Add todo!() macro
The use-case of `todo!()` macro is to be a much easier to type
alternative to `unimplemented!()` macro.
2019-03-18 19:27:31 +03:00
John Kåre Alsaker
198dfceb80 Preprocess query modifiers 2019-03-18 14:19:52 +01:00
Vincent Esche
698bbe5253 Replaced self-reflective explicit types with clearer Self or Self::… in stdlib docs 2019-03-18 13:57:51 +01:00
bors
0f88167f89 Auto merge of #58847 - bjorn3:remove_metadata_only_cg, r=alexcrichton
Remove metadata only codegen backend

It is unused and probably broken at the moment.
2019-03-18 11:28:12 +00:00
bors
cd45b19bd2 Auto merge of #58872 - rep-nop:diagnostic-fix-56031, r=petrochenkov
Adds help message in error for invalid `impl for T` syntax

Fixes #56031.
2019-03-18 08:03:05 +00:00
John Kåre Alsaker
4f49fff019 Clean up parsing code and split out codegen for the QueryDescription impl 2019-03-18 08:20:10 +01:00
John Kåre Alsaker
9e9d03fd66 Add load_cached query modifier and keep dep node names consistent with query names 2019-03-18 08:20:09 +01:00
John Kåre Alsaker
7d90547532 Define queries using a proc macro 2019-03-18 08:20:06 +01:00
bors
03dafa7da3 Auto merge of #58824 - euclio:intra-link-ambiguity, r=petrochenkov
overhaul intra-doc-link ambiguity warning

Fixes #52784.

- Makes the warning part of the `intra_doc_link_resolution_failure`
lint.
- Tightens the span to just the ambiguous link.
- Reports ambiguities across all three namespaces.
- Uses structured suggestions for disambiguation.
- Adds a test for the warnings.

r? @QuietMisdreavus
2019-03-18 02:56:35 +00:00
bors
817d074e54 Auto merge of #59250 - bovinebuddha:filter_ui_revision_tests, r=petrochenkov
Filter ui revision tests

Updates UI test output filtering to also filter away test annotations for revisions:

Previously filtered: //~ ERROR [XXXX]
Now also filters: //[revision]~ ERROR [XXXX]

I reckon, if we have the one, we should have the other for consistency, its lack was probably an oversight (the existence of revision testing is not really well documented...)
2019-03-17 23:51:18 +00:00
bors
c82834e2b9 Auto merge of #58994 - oli-obk:deprecated_derive, r=petrochenkov
Hide deprecation warnings inside derive expansions

Fixes #58822
2019-03-17 20:49:55 +00:00
bors
f649c76e98 Auto merge of #59047 - petrochenkov:modnodefid, r=Centril
resolve: Account for new importable entities

Fixes the ICE encountered in https://github.com/rust-lang/rust/pull/58837
r? @Centril
2019-03-17 17:25:10 +00:00
Mathias Blikstad
704649d96d Removed obsolete .stderr test outputs 2019-03-17 17:01:59 +01:00
Mathias Blikstad
faed3a2b19 Updated UI test output to remove test annotations for revisions 2019-03-17 17:00:18 +01:00
kennytm
07aee1df44
Calculate Docker cache hash precisely from Dockerfile's dependencies
`src/ci/docker`, so that when files under `dist-x86_64-linux` is changed,
its dependent image `dist-i686-linux` will also be rebuilt.

However, this ultraconservative solution caused the `dist-i686-linux` to
be rebuilt every time an irrelevant Dockerfile (e.g. the PowerPC ones) is
changed, which increases the building time beyond 3 hours and forcing
a spurious but expected failure.

This commit instead parses the Dockerfile itself and look for the actual
dependencies. The scripts needs to be copied into the Docker image, which
must be done with the COPY command, so we just need to find all lines with
a COPY command and add the source file into the hash calculator.

Note: this script only handles single-lined COPY command in the form
`COPY src1 src2 src3 dst`, since these are the only variant used inside
this repository.
2019-03-17 23:19:17 +08:00
Jeremy Soller
5c0f902ef4
Update CI configuration for building Redox libraries 2019-03-17 08:04:57 -06:00
bors
070cebd0aa Auto merge of #59178 - oli-obk:lazy_const, r=eddyb
Revert the `LazyConst` PR

The introduction of `LazyConst` did not actually achieve the code simplicity improvements that were the main reason it was introduced. Especially in the presence of const generics, the differences between the "levels of evaluatedness" of a constant become less clear. As it can be seen by the changes in this PR, further simplifications were possible by folding `LazyConst` back into `ConstValue`. We have been able to keep all the advantages gained during the `LazyConst` refactoring (like `const_eval` not returning an interned value, thus making all the `match` code simpler and more performant).

fixes https://github.com/rust-lang/rust/issues/59209

r? @eddyb @varkor
2019-03-17 11:17:03 +00:00
Bastian Kauschke
98b26728e0
update mailmap for Bastian Kauschke 2019-03-17 11:55:56 +01:00
Mathias Blikstad
9eb2de4b75 compiletest: Filter test annotations from UI test output for revision tests 2019-03-17 10:53:31 +01:00
Oliver Scherer
a69e12c21b Don't report deprecation lints in derive expansions 2019-03-16 22:33:15 +01:00
bors
7cf074a1e6 Auto merge of #58899 - petrochenkov:derval2, r=estebank
Do not accidentally treat multi-segment meta-items as single-segment

Fixes https://github.com/rust-lang/rust/issues/55168 and many other regressions from https://github.com/rust-lang/rust/pull/50030

Basically, attributes like `#[any::prefix::foo]` were commonly interpreted as `#[foo]` due to `name()` successfully returning the last segment (this applies to nested things as well `#[attr(any::prefix::foo)]`).
2019-03-16 20:48:40 +00:00
Vadim Petrochenkov
2fd4cbb3f2 Fix rebase 2019-03-16 23:14:42 +03:00
Vadim Petrochenkov
0cf96131f4 Refactor away NestedMetaItemKind
Remove methods `Attribute::span` and `MetaItem::span` duplicating public fields
2019-03-16 23:14:42 +03:00
Vadim Petrochenkov
63116d313d Rename MetaItem::ident to MetaItem::path 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
6ad55b3dec syntax: Introduce Ident::can_be_raw 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
5cb5083909 syntax_ext: Validate #[proc_macro_derive] input better
Tweak some error wording
2019-03-16 23:13:15 +03:00