Skip to content

transmutability: ensure_sufficient_stack when answering query #140504

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

Merged
merged 2 commits into from
Apr 30, 2025

Conversation

tmiasko
Copy link
Contributor

@tmiasko tmiasko commented Apr 30, 2025

Based on #140380.

Fixes #118860. The compile time was addressed earlier, this merely addresses stack overflow part of the issue.

r? @jswrenn @joshlf

The previous implementation was inconsistent about transitions that
apply for an init byte. For example, when answering a query, an init
byte could use corresponding init transition. Init byte could also use
uninit transition, but only when the corresponding init transition was
absent. This behaviour was incompatible with DFA union construction.

Define an uninit transition to match an uninit byte only and update
implementation accordingly. To describe that `Tree::uninit` is valid
for any value, build an automaton that accepts any byte value.

Additionally, represent byte ranges uniformly as a pair of integers to
avoid special case for uninit byte.
@rustbot rustbot 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. labels Apr 30, 2025
@tmiasko tmiasko force-pushed the answer-ensure-stack branch from 7299017 to 0138df1 Compare April 30, 2025 10:06
@tmiasko tmiasko changed the title transmutability: use ensure_sufficient_stack when answering query transmutability: ensure_sufficient_stack when answering query Apr 30, 2025
@jswrenn
Copy link
Member

jswrenn commented Apr 30, 2025

Well that's a neat gadget! TIL.

@bors r+

@bors
Copy link
Collaborator

bors commented Apr 30, 2025

📌 Commit 0138df1 has been approved by jswrenn

It is now in the queue for this repository.

@bors bors 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 Apr 30, 2025
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 30, 2025
…iaskrgr

Rollup of 9 pull requests

Successful merges:

 - rust-lang#134232 (Share the naked asm impl between cg_ssa and cg_clif)
 - rust-lang#139624 (Don't allow flattened format_args in const.)
 - rust-lang#140090 (Check bare function idents for non snake-case name)
 - rust-lang#140203 (Issue an error when using `no_mangle` on language items)
 - rust-lang#140450 (ast: Remove token visiting from AST visitor)
 - rust-lang#140498 (Misc tweaks to HIR typeck (mostly w.r.t. checking calls))
 - rust-lang#140504 (transmutability: ensure_sufficient_stack when answering query)
 - rust-lang#140506 (unstable-book: fix capitalization)
 - rust-lang#140516 (Replace use of rustc_type_ir by rustc_middle)

Failed merges:

 - rust-lang#140374 (Resolve instance for SymFn in global/naked asm)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 62a48cd into rust-lang:master Apr 30, 2025
6 checks passed
@rustbot rustbot added this to the 1.88.0 milestone Apr 30, 2025
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Apr 30, 2025
Rollup merge of rust-lang#140504 - tmiasko:answer-ensure-stack, r=jswrenn

transmutability: ensure_sufficient_stack when answering query

Based on rust-lang#140380.

Fixes rust-lang#118860. The compile time was addressed earlier, this merely addresses stack overflow part of the issue.

r? `@jswrenn` `@joshlf`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Compilation unterminated when type variable is a huge array
4 participants