-
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 17 pull requests #48104
Rollup of 17 pull requests #48104
Conversation
unlike the other Parse*Error types, ParseCharError didn't have these implemented for whatever reason
Currently if `--out-dir` is set to a non-existent directory, the compiler will throw unfriendly messages like `error: could not write output to subdir/example.crate.allocator.rcgu.o: No such file or directory`, which, while not completely unreadable, isn’t very user-friendly either. This change creates the directory automatically if it does not yet exist.
Commit 7ed00ca improved our error reporting by including the target function in our error messages when there is an argument count mismatch. A simple example from the UI tests is: ``` error[E0593]: function is expected to take a single 2-tuple as argument, but it takes 0 arguments --> $DIR/closure-arg-count.rs:32:53 | 32 | let _it = vec![1, 2, 3].into_iter().enumerate().map(foo); | ^^^ expected function that takes a single 2-tuple as argument ... 44 | fn foo() {} | -------- takes 0 arguments ``` However, this assumed the target span was always available. This does not hold true if the target function is in `std` or another crate. A simple example from rust-lang#48046 is assigning `str::split` to a function type with a different number of arguments. Fix by removing all of the labels and suggestions related to the target span when it's not found. Fixes rust-lang#48046
Unfortunately left out it means that when the `#![feature(proc_macro)]` flag is in effect it fails to find `rustc_args_required_const` for expansion. This version, however, is verified to work with stdsimd's requirements!
This commit disallows acquiring a function pointer to functions tagged as `#[rustc_args_required_const]`. This is intended to be used as future-proofing for the stdsimd crate to avoid taking a function pointer to any intrinsic which has a hard requirement that one of the arguments is a constant value.
Right now the ccache setting is only used for LLVM, but this tweaks it to also be used for build scripts so C++ builds like `librustc_llvm` can be a bit speedier.
A bug was recently fixed in dlmalloc which meant that released memory to the system accidentally wasn't getting reused, causing programs to be far slower than they should be!
Various versions of LLVM do various things with debuginfo but we're most curious that our own code is working so let's just disable optimizations in this test to ensure we have as much pristine debuginfo as possible.
Eventually the LLVM version of Emscripten and the main LLVM will diverge, and we can't cross-compile an older version of LLVM using a newer version of LLVM's `llvm-config`.
Right now the `--build` option was accidentally omitted, so we're bootstraping from `x86_64` to `i686`. In addition to being slower (more compiles) that's not actually bootstrapping!
derive PartialEq and Eq for `ParseCharError` unlike the other Parse*Error types, ParseCharError didn't have these implemented for whatever reason
…, r=nikomatsakis Remove unused data structures Cleanup; as far as I can tell the compiler no longer uses these.
Create a directory for --out-dir if it does not already exist Currently if `--out-dir` is set to a non-existent directory, the compiler will throw unfriendly messages like `error: could not write output to subdir/example.crate.allocator.rcgu.o: No such file or directory`, which, while not completely unreadable, isn’t very user-friendly either. This change creates the directory automatically if it does not yet exist.
…lexcrichton Customizable extended tools This PR adds `build.tools` option to manage installation of extended rust tools. By default it doesn't change installation. All tools are built and `rls` and `rustfmt` allowed to fail installation. If some set of tools chosen only those tools are built and installed without any fails allowed. It solves some slotting issues with extended build enabled: https://bugs.gentoo.org/show_bug.cgi?id=645498
…-on-target-without-span, r=estebank Fix ICE for mismatched args on target without span Commit 7ed00ca improved our error reporting by including the target function in our error messages when there is an argument count mismatch. A simple example from the UI tests is: ``` error[E0593]: function is expected to take a single 2-tuple as argument, but it takes 0 arguments --> $DIR/closure-arg-count.rs:32:53 | 32 | let _it = vec![1, 2, 3].into_iter().enumerate().map(foo); | ^^^ expected function that takes a single 2-tuple as argument ... 44 | fn foo() {} | -------- takes 0 arguments ``` However, this assumed the target span was always available. This does not hold true if the target function is in `std` or another crate. A simple example from rust-lang#48046 is assigning `str::split` to a function type with a different number of arguments. Fix by omitting all of the labels and suggestions related to the target span when it's not found. Fixes rust-lang#48046 r? @estebank
…uietMisdreavus rustdoc: Hide `-> ()` in cross crate inlined Fn* bounds
Update binaryen to fix -Werror with GCC 8 r? @alexcrichton
…lacrum rustbuild: Pass `ccache` to build scripts Right now the ccache setting is only used for LLVM, but this tweaks it to also be used for build scripts so C++ builds like `librustc_llvm` can be a bit speedier.
…Misdreavus intra-doc-links: bail early for linky things r? @QuietMisdreavus
…-proc-macro, r=eddyb Disallow function pointers to #[rustc_args_required_const] This commit disallows acquiring a function pointer to functions tagged as `#[rustc_args_required_const]`. This is intended to be used as future-proofing for the stdsimd crate to avoid taking a function pointer to any intrinsic which has a hard requirement that one of the arguments is a constant value. Note that the first commit here isn't related specifically to this feature, but was necessary to get this working in stdsimd!
r? @pnkfelix (rust_highfive has picked a reviewer for you, use r? to override) |
@bors r+ p=17 |
📌 Commit 4cf8ce7 has been approved by |
📌 Commit 050a707 has been approved by |
…labnik Update books for next release
@bors r+ Removed #48100 (comment) |
📌 Commit 878e701 has been approved by |
💔 Test failed - status-travis |
@bors retry
|
@bors r+ |
💡 This pull request was already approved, no need to approve it again.
|
📌 Commit 878e701 has been approved by |
🔒 Merge conflict |
☔ The latest upstream changes (presumably #47828) made this pull request unmergeable. Please resolve the merge conflicts. |
ParseCharError
#47790, Remove unused data structures #47835, Create a directory for --out-dir if it does not already exist #47854, Customizable extended tools #48015, Fix ICE for mismatched args on target without span #48047, rustdoc: Hide-> ()
in cross crate inlined Fn* bounds #48051, Update binaryen to fix -Werror with GCC 8 #48058, rustbuild: Passccache
to build scripts #48059, intra-doc-links: bail early for linky things #48064, Disallow function pointers to #[rustc_args_required_const] #48078, Hide theme button under menu in mobile mode and fix top margin issue … #48080, Update the dlmalloc submodule #48085, Fix visitation order of calls so that it matches execution order. Fixes #48048 #48086, Forcibly disable optimizations in backtrace-debuginfo #48090, Don't cross-compile Emscripten's LLVM #48093, ci: Actually bootstrap on i686 dist #48098, Update books for next release #48101