Skip to content

Rollup of 6 pull requests - #133273

Closed
matthiaskrgr wants to merge 24 commits into
rust-lang:masterfrom
matthiaskrgr:rollup-8f3ayr7
Closed

Rollup of 6 pull requests#133273
matthiaskrgr wants to merge 24 commits into
rust-lang:masterfrom
matthiaskrgr:rollup-8f3ayr7

Conversation

@matthiaskrgr

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

hoodmaneand others added 24 commits November 11, 2024 17:25
When linking an executable without dynamic linking, this is a pure improvement.
It significantly reduces code size and avoids a lot of buggy behaviors. It is
supported in all browsers for many years and in all maintained versions of
Node.
It does change the ABI, so people who are dynamically linking with a library
or executable that uses the old ABI may need to turn it off. It can be disabled
if needed by passing `-Clink-arg -sWASM_BIGINT=0` to `rustc`. But few people
will want to turn it off.
`bat` is known as `batcat` on Ubuntu and Debian, not `catbat`.
It's not necessary because `show_md_content_with_pager` is only ever
called if `is_terminal` is true.
I think the control flow in this function is complicated and confusing,
largely due to the use of two booleans `print_formatted` and
`fallback_to_println` that are set in multiple places and then used to
guide proceedings.
As well as hurting readability, this leads to at least one bug: if the
`write_termcolor_buf` call fails and the pager also fails, the function
will try to print color output to stdout, but that output will be empty
because `write_termcolor_buf` failed. I.e. the `if fallback_to_println`
body fails to check `print_formatted`.
This commit rewrites the function to be neater and more Rust-y, e.g. by
putting the result of `write_termcolor_buf` into an `Option` so it can
only be used on success, and by using `?` more. It also changes
terminology a little, using "pretty" to mean "formatted and colorized".
The result is a little shorter, more readable, and less buggy.
…=workingjubilee
Emscripten: link with -sWASM_BIGINT
When linking an executable without dynamic linking, this is a pure improvement. It significantly reduces code size and avoids a lot of buggy behaviors. It is supported in all browsers for many years and in all maintained versions of Node.
It does change the ABI, so people who are dynamically linking with a library or executable that uses the old ABI may need to turn it off. It can be disabled if needed by passing `-Clink-arg -sWASM_BIGINT=0` to `rustc`. But few people will want to turn it off.
Note this includes a libc bump to 0.2.162!
…ent, r=petrochenkov
Store resolution for self and crate root module segments
Let's make sure to record the segment resolution for `self::`, `crate::` and `$crate::`.
I'm actually somewhat surprised that the only diagnostic that uses this is the one that errors on invalid generics on a module segment... but seems strictly more correct regardless, and there may be other diagnostics using these segments resolutions that just haven't been tested for `self`. Also includes a drive-by on `report_prohibit_generics_error`.
Add visits to nodes that already have flat_maps in ast::MutVisitor
This PR aims to add `visit_` methods for every node that has a `flat_map_` in MutVisitor, giving implementers free choice over overriding `flat_map` for 1-to-n conversions or `visit` for a 1-to-1.
There is one major problem: `flat_map_stmt`.
While all other default implementations of `flat_map`s are 1-to-1 conversion, as they either only call visits or a internal 1-to-many conversions are natural, `flat_map_stmt` doesn't follow this pattern.
`flat_map_stmt`'s default implementation is a 1-to-n conversion that panics if n > 1 (effectively being a 1-to-[0;1]). This means that it cannot be used as is for a default `visit_stmt`, which would be required to be a 1-to-1.
Implementing `visit_stmt` without runtime checks would require it to reach over a potential `flat_map_item` or `filter_map_expr` overrides and call for their `visit` counterparts directly.
Other than that, if we want to keep the behavior of `flat_map_stmt` it cannot call `visit_stmt` internally.
To me, it seems reasonable to make all default implementations 1-to-1 conversions and let implementers handle `visit_stmt` if they need it, but I don't know if calling `visit` directly when a 1-to-1 is required is ok or not.
related to rust-lang#128974 & rust-lang#127615
r? `@petrochenkov`
…e1-dead
Implement `~const` item bounds in RPIT
an RPIT in a `const fn` is allowed to be conditionally const itself :)
r? fee1-dead or reroll
…t_with_pager, r=tgross35
Rewrite `show_md_content_with_pager`
`show_md_content_with_pager` is complex and has a couple of bugs. This PR improves it.
r? `@tgross35`
…lay-impl, r=workingjubilee
Reduce integer `Display` implementation size
I was thinking about rust-lang#128204 and how we could reduce the size of the code and just realized that we didn't need the `_fmt` method to be implemented on signed integers, which in turns allow to simplify greatly the macro call.
r? `@workingjubilee`
@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Nov 21, 2024
@matthiaskrgr

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=6

@bors

bors commented Nov 21, 2024

Copy link
Copy Markdown
Collaborator

📌 Commit e342ea8 has been approved by matthiaskrgr

It is now in the queue for this repository.

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 21, 2024
@bors

bors commented Nov 21, 2024

Copy link
Copy Markdown
Collaborator

⌛ Testing commit e342ea8 with merge acd0c24...

bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 21, 2024
…iaskrgr
Rollup of 6 pull requests
Successful merges:
- rust-lang#131736 (Emscripten: link with -sWASM_BIGINT)
- rust-lang#132207 (Store resolution for self and crate root module segments)
- rust-lang#133153 (Add visits to nodes that already have flat_maps in ast::MutVisitor)
- rust-lang#133218 (Implement `~const` item bounds in RPIT)
- rust-lang#133228 (Rewrite `show_md_content_with_pager`)
- rust-lang#133247 (Reduce integer `Display` implementation size)
r? `@ghost`
`@rustbot` modify labels: rollup
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job x86_64-gnu-llvm-18 failed! Check out the build log: (web)(plain)

Click to see the possible cause of the failure (guessed by this bot)
test slice::select_nth_unstable ... ok
failures:
---- fmt::num::test_format_int_twos_complement stdout ----
thread 'fmt::num::test_format_int_twos_complement' panicked at core/tests/fmt/num.rs:230:5:
left: "-18446744073709551488"
right: "-128"
stack backtrace:
0: rust_begin_unwind

@bors

bors commented Nov 21, 2024

Copy link
Copy Markdown
Collaborator

💔 Test failed - checks-actions

@borsbors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Nov 21, 2024
@matthiaskrgr
matthiaskrgr deleted the rollup-8f3ayr7 branch January 25, 2025 09:13
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rollupA PR which is a rollupS-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@matthiaskrgr@bors@rust-log-analyzer@rustbot@hoodmane@maxcabrajac@compiler-errors@nnethercote@GuillaumeGomez