-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 7 pull requests #64754
Rollup of 7 pull requests #64754
Conversation
(TLS is usually understood as Transport Layer Security outside rust-std internals)
This commit converts a field of `Session`, `dependency_formats`, into a query of `TyCtxt`. This information then also needed to be threaded through to other remaining portions of the linker, but it's relatively straightforward. The only change here is that instead of `HashMap<CrateType, T>` the data structure changed to `Vec<(CrateType, T)>` to make it easier to deal with in queries.
This commit addresses rust-lang#64319 by removing the `dylib` crate type from the list of crate type that exports generic symbols. The bug in rust-lang#64319 arises because a `dylib` crate type was trying to export a symbol in an uptream crate but it miscalculated the symbol name of the uptream symbol. This isn't really necessary, though, since `dylib` crates aren't that heavily used, so we can just conservatively say that the `dylib` crate type never exports generic symbols, forcibly removing them from the exported symbol lists if were to otherwise find them. The fix here happens in two places: * First is in the `local_crate_exports_generics` method, indicating that it's now `false` for the `Dylib` crate type. Only rlibs actually export generics at this point. * Next is when we load exported symbols from upstream crate. If, for our compilation session, the crate may be included from a dynamic library, then its generic symbols are removed. When the crate was linked into a dynamic library its symbols weren't exported, so we can't consider them a candidate to link against. Overally this should avoid situations where we incorrectly calculate the upstream symbol names in the face of differnet `share_generics` options, ultimately... Closes rust-lang#64319
... just don't export them!
11 commits in b6c6f685b38d523580813b0031677c2298f458ea..aa6b7e01abce30091cc594cb23a15c46cead6e24 2019-09-19 21:10:09 +0000 to 2019-09-24 17:19:12 +0000 - Fix interpretation of `--features a b` on the CLI (rust-lang/cargo#7419) - Update env_logger requirement from 0.6.0 to 0.7.0 (rust-lang/cargo#7422) - Update some unstable docs (rust-lang/cargo#7407) - Fix xcompile tests. (rust-lang/cargo#7408) - -Ztimings: Fix more scale problems. (rust-lang/cargo#7403) - Fix some rendering issues with -Ztimings. (rust-lang/cargo#7397) - -Ztimings: show max jobs/cpus (rust-lang/cargo#7398) - Fix -Ztimings with doc tests. (rust-lang/cargo#7395) - Add documentation for the -Zdoctest-xcompile feature (rust-lang/cargo#7391) - Fix integration tests waiting for binaries to finish. (rust-lang/cargo#7394) - Extract Platform to a separate crate. (rust-lang/cargo#7375)
Remove blanket check for existence of other errors before emitting "type annotation needed" errors, and add some eager checks to avoid adding obligations when they refer to types that reference `[type error]` in order to reduce unneded errors.
…r=michaelwoerister rustc: Fix mixing crates with different `share_generics` This commit addresses rust-lang#64319 by removing the `dylib` crate type from the list of crate type that exports generic symbols. The bug in rust-lang#64319 arises because a `dylib` crate type was trying to export a symbol in an uptream crate but it miscalculated the symbol name of the uptream symbol. This isn't really necessary, though, since `dylib` crates aren't that heavily used, so we can just conservatively say that the `dylib` crate type never exports generic symbols, forcibly removing them from the exported symbol lists if were to otherwise find them. The fix here happens in two places: * First is in the `local_crate_exports_generics` method, indicating that it's now `false` for the `Dylib` crate type. Only rlibs actually export generics at this point. * Next is when we load exported symbols from upstream crate. If, for our compilation session, the crate may be included from a dynamic library, then its generic symbols are removed. When the crate was linked into a dynamic library its symbols weren't exported, so we can't consider them a candidate to link against. Overally this should avoid situations where we incorrectly calculate the upstream symbol names in the face of differnet `share_generics` options, ultimately... Closes rust-lang#64319
…524, r=Centril Error explanation e0524 Part of rust-lang#61137
…rAus A more explanatory thread local storage panic message Outside rust-std internals, TLS is usually understood as Transport Layer Security, so the existing message could be a bit puzzling when one has TLS sessions in `thread_local!`.
…sakis Rustdoc render async function re-export Closes rust-lang#63710 r? @nikomatsakis
…tsakis Update cargo 11 commits in b6c6f685b38d523580813b0031677c2298f458ea..aa6b7e01abce30091cc594cb23a15c46cead6e24 2019-09-19 21:10:09 +0000 to 2019-09-24 17:19:12 +0000 - Fix interpretation of `--features a b` on the CLI (rust-lang/cargo#7419) - Update env_logger requirement from 0.6.0 to 0.7.0 (rust-lang/cargo#7422) - Update some unstable docs (rust-lang/cargo#7407) - Fix xcompile tests. (rust-lang/cargo#7408) - -Ztimings: Fix more scale problems. (rust-lang/cargo#7403) - Fix some rendering issues with -Ztimings. (rust-lang/cargo#7397) - -Ztimings: show max jobs/cpus (rust-lang/cargo#7398) - Fix -Ztimings with doc tests. (rust-lang/cargo#7395) - Add documentation for the -Zdoctest-xcompile feature (rust-lang/cargo#7391) - Fix integration tests waiting for binaries to finish. (rust-lang/cargo#7394) - Extract Platform to a separate crate. (rust-lang/cargo#7375)
…ns-on-err, r=cramertj Remove blanket silencing of "type annotation needed" errors Remove blanket check for existence of other errors before emitting "type annotation needed" errors, and add some eager checks to avoid adding obligations when they refer to types that reference `[type error]` in order to reduce unneeded errors. Fix rust-lang#64084.
…mulacrum Don't emit explain with json short messages. This fixes an issue where `--error-format=json --json=diagnostic-short` would emit the "For more information about this error" message, which doesn't match the behavior of `--error-format=short` which explicitly excludes it.
@bors r+ p=7 rollup=never |
📌 Commit fa6dfc9 has been approved by |
Rollup of 7 pull requests Successful merges: - #64324 (rustc: Fix mixing crates with different `share_generics`) - #64428 (Error explanation e0524) - #64481 (A more explanatory thread local storage panic message) - #64599 (Rustdoc render async function re-export) - #64743 (Update cargo) - #64746 (Remove blanket silencing of "type annotation needed" errors) - #64753 (Don't emit explain with json short messages.) Failed merges: r? @ghost
☀️ Test successful - checks-azure |
📣 Toolstate changed by #64754! Tested on commit b7820b2. 💔 clippy-driver on windows: test-pass → test-fail (cc @mcarton @oli-obk @Manishearth @flip1995 @yaahc @phansch @llogiq, @rust-lang/infra). |
Tested on commit rust-lang/rust@b7820b2. Direct link to PR: <rust-lang/rust#64754> 💔 clippy-driver on windows: test-pass → test-fail (cc @mcarton @oli-obk @Manishearth @flip1995 @yaahc @phansch @llogiq, @rust-lang/infra). 💔 clippy-driver on linux: test-pass → test-fail (cc @mcarton @oli-obk @Manishearth @flip1995 @yaahc @phansch @llogiq, @rust-lang/infra).
Successful merges:
share_generics
#64324 (rustc: Fix mixing crates with differentshare_generics
)Failed merges:
r? @ghost