Commit graph

96866 commits

Author SHA1 Message Date
Erin Power c599fcce70 Updated RELEASES.md for 1.37.0 2019-07-30 16:19:56 -04:00
bors f690098e6d Auto merge of #62766 - alexcrichton:stabilize-pipelined-compilation, r=oli-obk
rustc: Stabilize options for pipelined compilation

This commit stabilizes options in the compiler necessary for Cargo to
enable "pipelined compilation" by default. The concept of pipelined
compilation, how it's implemented, and what it means for rustc are
documented in #60988. This PR is coupled with a PR against Cargo
(rust-lang/cargo#7143) which updates Cargo's support for pipelined
compliation to rustc, and also enables support by default in Cargo.
(note that the Cargo PR cannot land until this one against rustc lands).

The technical changes performed here were to stabilize the functionality
proposed in #60419 and #60987, the underlying pieces to enable pipelined
compilation support in Cargo. The issues have had some discussion during
stabilization, but the newly stabilized surface area here is:

* A new `--json` flag was added to the compiler.
* The `--json` flag can be passed multiple times.
* The value of the `--json` flag is a comma-separated list of
  directives.
* The `--json` flag cannot be combined with `--color`
* The `--json` flag must be combined with `--error-format=json`
* The acceptable list of directives to `--json` are:
  * `diagnostic-short` - the `rendered` field of diagnostics will have a
    "short" rendering matching `--error-format=short`
  * `diagnostic-rendered-ansi` - the `rendered` field of diagnostics
    will be colorized with ansi color codes embedded in the string field
  * `artifacts` - JSON blobs will be emitted for artifacts being emitted
    by the compiler

The unstable `-Z emit-artifact-notifications` and `--json-rendered`
flags have also been removed during this commit as well.

Closes #60419
Closes #60987
Closes #60988
2019-07-30 08:39:29 +00:00
bors 4eeaaa722d Auto merge of #63124 - Centril:rollup-onohtqt, r=Centril
Rollup of 12 pull requests

Successful merges:

 - #61965 (Remove mentions of removed `offset_to` method from `align_offset` docs)
 - #62928 (Syntax: Recover on `for ( $pat in $expr ) $block`)
 - #63000 (Impl Debug for Chars)
 - #63083 (Make generic parameters always use modern hygiene)
 - #63087 (Add very simple edition check to tidy.)
 - #63093 (Properly check the defining scope of existential types)
 - #63096 (Add tests for some `existential_type` ICEs)
 - #63099 (vxworks: Remove Linux-specific comments.)
 - #63106 (ci: Skip installing SWIG/xz on OSX )
 - #63108 (Add links to None in Option doc)
 - #63109 (std: Fix a failing `fs` test on Windows)
 - #63111 (Add syntactic and semantic tests for rest patterns, i.e. `..`)

Failed merges:

r? @ghost
2019-07-30 03:38:54 +00:00
Mazdak Farrokhzad 91c10f8839
Rollup merge of #63111 - Centril:rest-pat-tests, r=estebank
Add syntactic and semantic tests for rest patterns, i.e. `..`

As per my first note in https://github.com/rust-lang/rust/issues/62254#issuecomment-515784884 this adds syntactic and semantic tests for `..` ("rest") patterns which were implemented in https://github.com/rust-lang/rust/pull/62550.

r? @estebank
2019-07-30 05:37:46 +02:00
Mazdak Farrokhzad 2becb62166
Rollup merge of #63109 - alexcrichton:disable-windows-fs-test, r=sfackler
std: Fix a failing `fs` test on Windows

In testing 4-core machines on Azure the `realpath_works_tricky` test in
the standard library is failing with "The directory name is invalid". In
attempting to debug this test I was able to reproduce the failure
locally on my machine, and after inspecing the test it I believe is
exploiting Unix-specific behavior that seems to only sometimes work on
Windows. Specifically the test basically executes:

    mkdir -p a/b
    mkdir -p a/d
    touch a/f
    ln -s a/b/c ../d/e
    ln -s a/d/e ../f

and then asserts that `canonicalize("a/b/c")` and
`canonicalize("a/d/e")` are equivalent to `a/f`. On Windows however the
first symlink is a "directory symlink" and the second is a file symlink.
In both cases, though, they're pointing to files. This means that for
whatever reason locally and on the 4-core environment the call to
`canonicalize` is failing. On Azure today it seems to be passing, and
I'm not entirely sure why. I'm sort of presuming that there's some sort
of internals going on here where there's some global Windows setting
which makes symlinks behavior more unix-like and ignore the directory
hint.

In any case this should keep the test working and also fixes the test
locally for me. It's also worth pointing out that this test was made Windows compatible in https://github.com/rust-lang/rust/pull/31360, a pretty ancient PR at this point.
2019-07-30 05:37:44 +02:00
Mazdak Farrokhzad a03caecc53
Rollup merge of #63108 - lzutao:option-xor-typo, r=jonas-schievink
Add links to None in Option doc

r? @jonas-schievink
2019-07-30 05:37:43 +02:00
Mazdak Farrokhzad 3ef6f6d10d
Rollup merge of #63106 - alexcrichton:remove-swig-osx, r=pietroalbini
ci: Skip installing SWIG/xz on OSX

I'm relatively certain that SWIG was only needed for LLDB which is no
longer built, and I'm hoping we can remove the xz install to remove the
reliance on `brew` for our build (which is another point of failure for
flaky networks).
2019-07-30 05:37:41 +02:00
Mazdak Farrokhzad cc4a8d7e72
Rollup merge of #63099 - josephlr:vxworks, r=alexcrichton
vxworks: Remove Linux-specific comments.

It looks like the VxWorks fork inadvertently left in some Linux-specific workaround comments in `libstd`, these can be removed. Came up when looking into #62516

CC:  @BaoshanPang
2019-07-30 05:37:40 +02:00
Mazdak Farrokhzad 09eb0b1b32
Rollup merge of #63096 - Centril:existential-type-add-tests, r=varkor
Add tests for some `existential_type` ICEs

Fix #53678
Fix #60407
Fix #60564

https://github.com/rust-lang/rust/issues/54899 will need some minimization before it can be added.

r? @varkor
2019-07-30 05:37:39 +02:00
Mazdak Farrokhzad f3750e34b4
Rollup merge of #63093 - Aaron1011:fix/existential-closure, r=cramertj
Properly check the defining scope of existential types

Fixes #52632

Existential types (soon to be 'impl trait' aliases) can either be
delcared at a top-level crate/module scope, or within another item such
as an fn. Previously, we were handling the second case incorrectly when
recursively searching for defining usages - we would check children of
the item, but not the item itself. This lead to us missing closures
that consituted a defining use of the existential type, as their opaque
type instantiations are stored in the TypeckTables of their parent
function.

This commit ensures that we explicitly visit the defining item itself,
not just its children.
2019-07-30 05:37:37 +02:00
Mazdak Farrokhzad 44130681eb
Rollup merge of #63087 - crlf0710:tidy_2018, r=Mark-Simulacrum
Add very simple edition check to tidy.

Fixes #58099.
2019-07-30 05:37:36 +02:00
Mazdak Farrokhzad 652f13d838
Rollup merge of #63083 - matthewjasper:parameter-hygiene, r=petrochenkov
Make generic parameters always use modern hygiene

* E0263 (lifetime parameter declared twice in the same scope) now compares modernized identifiers.
* Const parameters are now resolved with modern hygiene.

Closes #58307
Closes #60746
Closes #61574
Closes #62433
2019-07-30 05:37:34 +02:00
Mazdak Farrokhzad 51e50ed827
Rollup merge of #63000 - max-sixty:chars-display, r=alexcrichton
Impl Debug for Chars

Closes https://github.com/rust-lang/rust/issues/62947, making `Debug` more consistent with the struct's output and purpose

Let me know any feedback!
2019-07-30 05:37:33 +02:00
Mazdak Farrokhzad 36029878e7
Rollup merge of #62928 - Centril:recover-parens-around-for-head, r=estebank
Syntax: Recover on `for ( $pat in $expr ) $block`

Fixes #62724 by adding some recovery:

```
error: unexpected closing `)`
  --> $DIR/recover-for-loop-parens-around-head.rs:10:23
   |
LL |     for ( elem in vec ) {
   |         --------------^
   |         |
   |         opening `(`
   |         help: remove parenthesis in `for` loop: `elem in vec`
```

The last 2 commits are drive-by cleanups.

r? @estebank
2019-07-30 05:37:32 +02:00
Mazdak Farrokhzad b5bea2565e
Rollup merge of #61965 - phil-opp:patch-4, r=scottmcm
Remove mentions of removed `offset_to` method from `align_offset` docs

The `offset_to` method was deleted in https://github.com/rust-lang/rust/pull/52814.

The replacement for the removed method is `wrapping_offset_from`. However, neither method takes an `usize` as argument, so I don't think that it makes sense to mention them.
2019-07-30 05:37:30 +02:00
Mazdak Farrokhzad 6c7613b7fd Add semantic test for rest patterns. 2019-07-29 21:39:36 +02:00
Matthew Jasper 0fb9295e12 Add another test for const parameter (non) hygiene. 2019-07-29 20:04:07 +01:00
Mazdak Farrokhzad 15bc63e8bf Add syntactic test for rest patterns. 2019-07-29 21:04:03 +02:00
CrLF0710 870efe34c8 Add very simple edition check to tidy; and add missing edition = 2018s. 2019-07-30 01:56:03 +08:00
Alex Crichton 8d7fb87e65 std: Fix a failing fs test on Windows
In testing 4-core machines on Azure the `realpath_works_tricky` test in
the standard library is failing with "The directory name is invalid". In
attempting to debug this test I was able to reproduce the failure
locally on my machine, and after inspecing the test it I believe is
exploiting Unix-specific behavior that seems to only sometimes work on
Windows. Specifically the test basically executes:

    mkdir -p a/b
    mkdir -p a/d
    touch a/f
    ln -s a/b/c ../d/e
    ln -s a/d/e ../f

and then asserts that `canonicalize("a/b/c")` and
`canonicalize("a/d/e")` are equivalent to `a/f`. On Windows however the
first symlink is a "directory symlink" and the second is a file symlink.
In both cases, though, they're pointing to files. This means that for
whatever reason locally and on the 4-core environment the call to
`canonicalize` is failing. On Azure today it seems to be passing, and
I'm not entirely sure why. I'm sort of presuming that there's some sort
of internals going on here where there's some global Windows setting
which makes symlinks behavior more unix-like and ignore the directory
hint.

In any case this should keep the test working and also fixes the test
locally for me.
2019-07-29 10:53:47 -07:00
Maximilian Roos 3325ff6df4
comments from @lzutao 2019-07-29 12:26:59 -04:00
Maximilian Roos 624c5da1aa
impl Debug for Chars 2019-07-29 12:17:59 -04:00
Lzu Tao c56d8a81e2 Add links to None in Option doc 2019-07-29 15:56:40 +00:00
Alex Crichton 60680d4e98 ci: Skip installing SWIG/xz on OSX
I'm relatively certain that SWIG was only needed for LLDB which is no
longer built, and I'm hoping we can remove the xz install to remove the
reliance on `brew` for our build (which is another point of failure for
flaky networks).
2019-07-29 07:33:48 -07:00
bors 04b88a9eba Auto merge of #63089 - kennytm:use-try-run-for-linkchecker, r=Mark-Simulacrum
Fix rustc-guide build failure ignoring no-fail-fast
2019-07-29 10:21:33 +00:00
Joe Richey 0cdd693bf6 vxworks: Remove Linux-specific comments. 2019-07-28 23:09:21 -07:00
Mazdak Farrokhzad a54dd2318a Add test for #60564. 2019-07-29 06:56:28 +02:00
Mazdak Farrokhzad 1e927d8689 Add test for #60407. 2019-07-29 06:56:28 +02:00
Mazdak Farrokhzad b779f45fed Add test for #53678. 2019-07-29 06:56:28 +02:00
Mazdak Farrokhzad b2a5d99705 Move ui/existential_type.rs -> ui/existential_type/existential_type-pass. 2019-07-29 06:56:28 +02:00
Mazdak Farrokhzad e2ee2a3854 Move ui/{existential-type -> existential_types}. 2019-07-29 06:56:28 +02:00
kennytm ebd1bf7096
Fix rustc-guide build failure ignoring no-fail-fast.
This caused clippy not being built on Linux previously.
2019-07-29 11:52:50 +08:00
bors 8b94e9e918 Auto merge of #63094 - Centril:rollup-lm7peuh, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #62809 (rustc: Update wasm32 support for LLVM 9)
 - #63055 (Various cleanups to save analysis)
 - #63076 (Miri: fix determining size of an "extra function" allocation)
 - #63077 (cleanup: Remove some language features related to built-in macros)
 - #63086 (Ignore test cases that are not supported by vxWorks)
 - #63092 (Update `impl Trait` gate issues)

Failed merges:

r? @ghost
2019-07-29 00:12:12 +00:00
Mazdak Farrokhzad f8321d0d97
Rollup merge of #63092 - Centril:update-impl-trait-gates, r=varkor
Update `impl Trait` gate issues

cc https://github.com/rust-lang/rust/issues/63065
cc https://github.com/rust-lang/rust/issues/63063

r? @varkor cc @alexreg
2019-07-29 02:11:00 +02:00
Mazdak Farrokhzad f6f214233f
Rollup merge of #63086 - BaoshanPang:testcases, r=nagisa
Ignore test cases that are not supported by vxWorks

bypass x86stdcall.rs for vxworks

ignore wait-forked-but-failed-child.rs as there is no command 'ps' on vxWorks

ignore process-sigpipe.rs as there is no 'sh' on vxWorks

ignore core-run-destroy.rs as there is no 'cat' and 'sleep' on vxWorks
2019-07-29 02:10:58 +02:00
Mazdak Farrokhzad 7f2c3e1723
Rollup merge of #63077 - petrochenkov:nolangfeat, r=petrochenkov
cleanup: Remove some language features related to built-in macros

They are now library features.
Cleanup after https://github.com/rust-lang/rust/pull/62086.
The unstable book files are moved because tidy complained.
2019-07-29 02:10:57 +02:00
Mazdak Farrokhzad 5922a1916b
Rollup merge of #63076 - RalfJung:miri-fn-ptr-alloc-size, r=oli-obk
Miri: fix determining size of an "extra function" allocation

Fixes [a bug](https://github.com/rust-lang/miri/pull/862) introduced by https://github.com/rust-lang/rust/pull/62982. Best reviewed commit-by-commit.

r? @oli-obk
2019-07-29 02:10:55 +02:00
Mazdak Farrokhzad b52a95dfb3
Rollup merge of #63055 - Mark-Simulacrum:save-analysis-clean-2, r=Xanewok
Various cleanups to save analysis
2019-07-29 02:10:54 +02:00
Mazdak Farrokhzad 778b631ff0
Rollup merge of #62809 - alexcrichton:wasm-llvm-9, r=nikic
rustc: Update wasm32 support for LLVM 9

This commit brings in a number of minor updates for rustc's support for
the wasm target which has changed in the LLVM 9 update. Notable updates
include:

* The compiler now no longer manually inserts the `producers` section,
  instead relying on LLVM to do so. LLVM uses the `llvm.ident` metadata
  for the `processed-by` directive (which is now emitted on the wasm
  target in this PR) and it uses debuginfo to figure out what `language`
  to put in the `producers` section.

* Threaded WebAssembly code now requires different flags to be passed
  with LLD. In LLD we now pass:

  * `--shared-memory` - required since objects are compiled with
    atomics. This also means that the generated memory will be marked as
    `shared`.
  * `--max-memory=1GB` - required with the `--shared-memory` argument
    since shared memories in WebAssembly must have a maximum size. The
    1GB number is intended to be a conservative estimate for rustc, but
    it should be overridable with `-C link-arg` if necessary.
  * `--passive-segments` - this has become the default for multithreaded
    memory, but when compiling a threaded module all data segments need
    to be marked as passive to ensure they don't re-initialize memory
    for each thread. This will also cause LLD to emit a synthetic
    function to initialize memory which users will have to arrange to
    call.
  * The `__heap_base` and `__data_end` globals are explicitly exported
    since they're now hidden by default due to the `--export` flags we
    pass to LLD.
2019-07-29 02:10:52 +02:00
Aaron Hill 3e98c3acf5
Rename test and add comment 2019-07-28 19:12:27 -04:00
Aaron Hill 8811b9ce9f
Fix formatting
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-07-28 18:33:32 -04:00
Mazdak Farrokhzad 2a49dd0db6 Update existential_type + impl_trait_in_bindings issue numbers. 2019-07-29 00:09:18 +02:00
Aaron Hill 18bf9dd4b7
Properly check the defining scope of existential types
Fixes #52632

Existential types (soon to be 'impl trait' aliases) can either be
delcared at a top-level crate/module scope, or within another item such
as an fn. Previously, we were handling the second case incorrectly when
recursively searching for defining usages - we would check children of
the item, but not the item itself. This lead to us missing closures
that consituted a defining use of the existential type, as their opaque
type instantiations are stored in the TypeckTables of their parent
function.

This commit ensures that we explicitly visit the defining item itself,
not just its children.
2019-07-28 18:02:16 -04:00
Ralf Jung 0e602f10b5 replace match by ok() 2019-07-28 22:30:19 +02:00
bors c7312fe4ff Auto merge of #63090 - Centril:rollup-xnjwm2h, r=Centril
Rollup of 8 pull requests

Successful merges:

 - #61856 (Lint attributes on function arguments)
 - #62360 (Document that ManuallyDrop::drop should not called more than once)
 - #62392 (Update minifier-rs version)
 - #62871 (Explicit error message for async recursion.)
 - #62995 (Avoid ICE when suggestion span is at Eof)
 - #63053 (SystemTime docs: recommend Instant for elapsed time)
 - #63081 (tidy: Cleanup the directory whitelist)
 - #63088 (Remove anonymous_parameters from unrelated test)

Failed merges:

r? @ghost
2019-07-28 20:22:42 +00:00
Mazdak Farrokhzad 29c377882f
Rollup merge of #63088 - dtolnay:anonymous, r=Centril
Remove anonymous_parameters from unrelated test

The parsing of anonymous_parameters is sufficiently covered by:

- [src/test/ui/issues/issue-13105.rs](023525dbda/src/test/ui/issues/issue-13105.rs)
- [src/test/ui/issues/issue-13775.rs](023525dbda/src/test/ui/issues/issue-13775.rs)
- [src/test/ui/issues/issue-34074.rs](023525dbda/src/test/ui/issues/issue-34074.rs)

Removing anonymous_parameters from this test means fewer exclusions for me in https://github.com/dtolnay/syn/issues/644.
2019-07-28 21:20:02 +02:00
Mazdak Farrokhzad 155bfe4612
Rollup merge of #63081 - petrochenkov:cleantidy, r=Mark-Simulacrum
tidy: Cleanup the directory whitelist

Some entries were outdated - pre-"llvm-project", pre-"crates.io", pre-"Cargo.toml outside of src".
Some entries were unnecessary - `owning_ref` could be fixed and directories outside of `src` are not visited by tidy at all.

r? @Mark-Simulacrum
2019-07-28 21:20:00 +02:00
Mazdak Farrokhzad 117fa1de98
Rollup merge of #63053 - kornelski:clockdrift, r=shepmaster
SystemTime docs: recommend Instant for elapsed time

Introduction to `SystemTime` mentions problems with non-monotonic clocks, but individual methods don't.

For benefit of users who jump directly to method's documentation, also recommend `Instant` in `elapsed` and `duration_since`.

`SystemTime::elapsed()` docs overpromised the elapsed time. It's not elapsed time, but a difference between two clocks.
2019-07-28 21:19:59 +02:00
Mazdak Farrokhzad a3cae5740c
Rollup merge of #62995 - estebank:issue-62973, r=varkor
Avoid ICE when suggestion span is at Eof

Fix #62973.
2019-07-28 21:19:58 +02:00
Mazdak Farrokhzad 2ac9b89d7b
Rollup merge of #62871 - gilescope:async-recursion-error, r=Centril
Explicit error message for async recursion.

Attempt at clearer error message when async recusion is attempted. In response to #62539 (and #53690).
2019-07-28 21:19:56 +02:00