Rollup of 10 pull requests - #161704
Closed
GuillaumeGomez wants to merge 33 commits into
Closed
Conversation
LLVM 24 stopped using llvm::Any here to avoid heap allocations in PassInstrumentation.
Before, LargeDataThreshold was only set via `LLVMRustCreateTargetMachine`. When LTO is enabled, this information is required to be passed into the generated LLVM module IR files since the LTO linker spins up its own TargetMachine and otherwise has no knowledge of the LargeDataThreshold. Currently, `-Z large-data-threshold` has no affect at all when compiling with LTO. This commit makes sure that if `-Z large-data-threshold` is passed and not 0, it is preserved and stored into the generated LLVM IR.
The essential problem is that, with this table: ```text one | ----| a | b | c a | b | a | b a | ``` And this logic: ```rust let too_many_pipes = divider_count > expected_cells + 1; ``` `expected_cells + 1` winds up as 2, so you get this warning: ```text error: unused content after last table cell --> $DIR/invalid_markdown_table.rs:81:14 | LL | //! a | b | c | ^^^^^^ this content is discarded error: unused content after last table cell --> $DIR/invalid_markdown_table.rs:83:14 | LL | //! a | b | | ^^^^ this content is discarded error: unused content after last table cell --> $DIR/invalid_markdown_table.rs:85:14 | LL | //! a | b | ^^ this content is discarded ``` We really want our warning to give the suggest-escaping flow, like this: ```text error: table row has too many columns --> $DIR/invalid_markdown_table.rs:81:13 | LL | //! a | b | c | ^ any content after this column divider is discarded | = help: to escape `|` characters in tables, add a `\` before them like `\|` error: table row has too many columns --> $DIR/invalid_markdown_table.rs:83:13 | LL | //! a | b | | ^ any content after this column divider is discarded | = help: to escape `|` characters in tables, add a `\` before them like `\|` error: unused content after last table cell --> $DIR/invalid_markdown_table.rs:85:14 | LL | //! a | b | ^^ this content is discarded ``` By only scanning the text between the end of the last cell and the row, instead of doing the entire row, we don't have to re-implement as much of pulldown-cmark's logic.
Previously, the code unwrapped large_data_threshold with a default of 0 and sets it in the LLVM module if it is != 0. Instead, we should simply check if large_data_threshold has a value.
bootstrap: don't LTO C dependencies on aarch64 Since rust-lang#161535 apparently may take a while, let's land something to un-break Miri: we know that on aarch64-linux, shipping pure-LTO object files is a bad idea as we can't assume the user has an LTO-capable linker. r? @Kobzol Cc @weihanglo
…, r=GuillaumeGomez rustdoc: fix issue preventing "read more" links from generating. fixes rust-lang#161300
…nagisa Pass LargeDataThreshold to LLVM module IR Before, LargeDataThreshold was only set via `LLVMRustCreateTargetMachine`. When LTO is enabled, this information is required to be passed into the generated LLVM module IR files since the LTO linker spins up its own TargetMachine and otherwise has no knowledge of the LargeDataThreshold. Currently, `-Z large-data-threshold` has no affect at all when compiling with LTO. This commit makes sure that if `-Z large-data-threshold` is passed and not 0, it is preserved and stored into the generated LLVM IR.
…=GuillaumeGomez rustdoc: Nuke `--passes=list` and defossilize the passes infrastructure `--passes` and `--no-defaults` were deprecated and made noops years ago except that `--passes list` still prints all passes in a human-readable format as if users could still somehow make use of that information. Removing this useless functionality allows for some small simplifications (and longer term, it would enable us to further rewrite the way we represent internal passes w/o having to worry about it possibly affecting the CLI). Given that the output of `--passes list` is *clearly* meant for human consumption only (I mean, just look at it), I hold the opinion that this removal doesn't need an FCP. And even if there were scripts somewhere out there that try to parse this output I think it would be okay to break them.
…t-links-url, r=GuillaumeGomez Check `redundant_explicit_links` against generated URLs Fixes rust-lang#155458. `rustdoc::redundant_explicit_links` checked explicit link destinations by resolving both the label and the destination as intra-doc paths. That misses links written as local rustdoc page URLs, such as `struct.B.html`, because those URLs do not appear in `doc_link_resolutions`. This PR keeps the existing path-resolution check and falls back to comparing the explicit destination with the local href that rustdoc would generate for the resolved label.
remove `box_patterns` This PR removes the old feature `box_patterns`, tracked in rust-lang#29641. As explained in rust-lang#29641 (comment), this feature will not be stabilized since `deref_patterns` (rust-lang#87121) is a better and more general version of this feature. It was not possible to remove this feature until recently since the compiler itself still depended on this feature. This was changed with rust-lang/compiler-team#984. This PR currently breaks crates that rely on box patterns using the incorrect pre-expansion feature gating (see rust-lang#154045 for more details). Therefore, this needs a crater run. Closes rust-lang#29641. Closes rust-lang#105099. Closes rust-lang#156110.
…able_cell, r=Urgau,notriddle,camelid Add new `invalid_markdown_table` rustdoc lint Fixes rust-lang#159186. r? @Urgau
…=cuviper PassWrapper: handle LLVM 24 change in function types LLVM 24 stopped using llvm::Any here [to avoid heap allocations](llvm/llvm-project@fa23198) in PassInstrumentation. @rustbot label: +llvm-main
…k-fix, r=cuviper Check for missing rustfmt in the stdarch intrinsic test step sooner Found [here](rust-lang#161422 (comment)). r? cuviper
…re, r=ChrisDenton Don't treat slashes as path seps after drive letters in verbatim paths Treat slashes as just a regular character in `\\?\C:/path\somewhere`. This mirrors how slashes are treated afterwards, e.g. in `\\?\C:\path/somewhere`, which has a component `path/somewhere`, rather than `path`, `somewhere`. Likewise, drive letters followed by `/` do not denote a `VerbatimDisk`, but an arbitrary `Verbatim` path: The prefix of `\\?\C:/path\somewhere` is `\\?\C:/path`. Fixes rust-lang#161651
Member
Author
|
@bors r+ p=5 |
Contributor
Contributor
|
☔ The latest upstream changes made this pull request unmergeable. Please resolve the merge conflicts by rebasing. This pull request was unapproved. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Successful merges:
--passes=listand defossilize the passes infrastructure #146529 (rustdoc: Nuke--passes=listand defossilize the passes infrastructure)redundant_explicit_linksagainst generated URLs #156009 (Checkredundant_explicit_linksagainst generated URLs)box_patterns#156749 (removebox_patterns)invalid_markdown_tablerustdoc lint #159583 (Add newinvalid_markdown_tablerustdoc lint)r? @ghost
Create a similar rollup