Dylan DPC [Sun, 3 May 2020 08:48:08 +0000 (14:18 +0530)]
Rollup merge of #71813 - ecstatic-morse:issue-71734, r=tmandry
Decode qualifs for associated const defaults
Fixes #71734.
We encode qualifs for associated constants, but never expected to decode the qualifs for defaulted associated consts. Fix this, and test that associated const defaults have the correct qualifs cross-crate.
Dylan DPC [Sun, 3 May 2020 08:48:00 +0000 (14:18 +0530)]
Rollup merge of #71314 - mibac138:cfg-version, r=petrochenkov
Implement RFC 2523, `#[cfg(version(..))]`
Hi! This is my first contribution to rust, I hope I didn't miss anything. I tried to implement this feature so that `#[cfg(version(1.44.0))]` works but the parser was printing an error that I wasn't sure how to fix so I just opted for implementing `#[cfg(version("1.44.0"))]` (note the quotes).
Mark Rousskov [Sat, 2 May 2020 22:25:45 +0000 (18:25 -0400)]
Extract stamp testing for LLVM
The extracted function can be used by the rest of bootstrap to detect if we've
already built an up-to-date LLVM (and so it's safe for us to either request it
or pretend it exists).
bors [Sat, 2 May 2020 10:13:57 +0000 (10:13 +0000)]
Auto merge of #71795 - RalfJung:rollup-yqxfi5a, r=RalfJung
Rollup of 6 pull requests
Successful merges:
- #71712 (Miri: port error backtraces to std::backtrace)
- #71736 (bootstrap: also apply unused-attributes hack without deny_warnings)
- #71738 (remove AllocId generalization of Pointer)
- #71739 (remove obsolete comment)
- #71781 (Uncomment test code for failure to use `Box::pin`)
- #71782 (Use a non-existent test path instead of clobbering /dev/null)
Ralf Jung [Sat, 2 May 2020 10:08:09 +0000 (12:08 +0200)]
Rollup merge of #71736 - RalfJung:silence-spurious-unused, r=Mark-Simulacrum
bootstrap: also apply unused-attributes hack without deny_warnings
This is a follow-up to https://github.com/rust-lang/rust/pull/70881 that also silences these warnings when deny_warnings is off. They otherwise spam my screen during development and make it hard to see actual warnings.
bors [Sat, 2 May 2020 06:51:08 +0000 (06:51 +0000)]
Auto merge of #70170 - eddyb:wf-early-exit, r=nikomatsakis
wf: handle "livelock" checking before reaching `WfPredicates::compute`.
For `wf::obligations`'s "livelock" handling, this PR shouldn't cause any behavioral changes, as the check moved to it should be equivalent to the old one in `WfPredicates::compute`.
However, it fixes #70168 by making *other* users of `WfPredicates::compute` (that is, `wf::predicate_obligations` and `compute`'s own upvar handling) correct for `ty::Infer`, in that they now get a `WellFormed(ty::Infer(_))` obligation instead of silently ignoring the type.
bors [Sat, 2 May 2020 03:39:04 +0000 (03:39 +0000)]
Auto merge of #71716 - alexcrichton:bitcode-follow-up, r=nnethercote
Rename `bitcode-in-rlib` option to `embed-bitcode`
This commit finishes work first pioneered in #70458 and started in #71528.
The `-C bitcode-in-rlib` option, which has not yet reached stable, is
renamed to `-C embed-bitcode` since that more accurately reflects what
it does now anyway. Various tests and such are updated along the way as
well.
This'll also need to be backported to the beta channel to ensure we
don't accidentally stabilize `-Cbitcode-in-rlib` as well.
bors [Sat, 2 May 2020 00:21:39 +0000 (00:21 +0000)]
Auto merge of #71776 - Dylan-DPC:rollup-k1iuuow, r=Dylan-DPC
Rollup of 5 pull requests
Successful merges:
- #71018 (handle ConstValue::ByRef in relate)
- #71758 (Remove leftover chalk types)
- #71760 (Document unsafety for `*const T` and `*mut T`)
- #71761 (doc: reference does not exist, probably a typo)
- #71762 (doc: this resulted in a link pointing to a non-existent target)
Failed merges:
- #71726 (Suggest deref when coercing `ty::Ref` to `ty::RawPtr` with arbitrary mutability)
Dylan DPC [Fri, 1 May 2020 21:16:35 +0000 (23:16 +0200)]
Rollup merge of #71758 - jackh726:chalk-remove, r=jackh726
Remove leftover chalk types
Split out from #69406
Since the other PR is having memory problems with `parallel-compiler = true`, figured I should split this out. Surprisingly, this actually changes some errors, and I'm not quite sure why.
bors [Fri, 1 May 2020 21:08:23 +0000 (21:08 +0000)]
Auto merge of #69808 - cjgillot:vtbl, r=pnkfelix
Avoid duplicating code for each query
There are at the moment roughly 170 queries in librustc.
The way `ty::query` is structured, a lot of code is duplicated for each query.
I suspect this to be responsible for a part of librustc'c compile time.
The first part of this PR reduces the amount of code generic on the query,
replacing it by code generic on the key-value types. I can split it out if needed.
In a second part, the non-inlined methods in the `QueryAccessors` and `QueryDescription` traits
are made into a virtual dispatch table. This allows to reduce even more the number of generated
functions.
This allows to save 1.5s on check build, and 10% on the size of the librustc.rlib.
(Attributed roughly half and half).
My computer is not good enough to measure properly compiling time.
I have no idea of the effect on performance. A perf run may be required.
Alex Crichton [Thu, 30 Apr 2020 17:53:16 +0000 (10:53 -0700)]
Rename `bitcode-in-rlib` option to `embed-bitcode`
This commit finishes work first pioneered in #70458 and started in #71528.
The `-C bitcode-in-rlib` option, which has not yet reached stable, is
renamed to `-C embed-bitcode` since that more accurately reflects what
it does now anyway. Various tests and such are updated along the way as
well.
This'll also need to be backported to the beta channel to ensure we
don't accidentally stabilize `-Cbitcode-in-rlib` as well.
Changes:
````
Remove unnecessary loop in `maybe_spurious`
Fix error with git repo discovery and symlinks.
Allow failure when setting file mtime.
Support multiple `--target` flags on the CLI
build-std: Don't treat std like a "local" package.
Allow `cargo package --list` even for things that don't package.
````
I'd like to get https://github.com/rust-lang/cargo/pull/8186 into nightly asap. :)
Changes:
````
Remove unnecessary loop in `maybe_spurious`
Fix error with git repo discovery and symlinks.
Allow failure when setting file mtime.
Support multiple `--target` flags on the CLI
build-std: Don't treat std like a "local" package.
Allow `cargo package --list` even for things that don't package.
````