Comments (13)
No. At the time I was busy getting a PR done and now I don't have a reproducing example any more.
from rust.
#111769 only checks for ctrl-c during const eval, so if no const eval runs for an extended period of time, the ctrl-c will be silently ignored. This is not the only problem with that PR. It also caused #124265, and shows the "compilation was interrupted" error after the prompt is already drawn by bash.
from rust.
Yeah, just take any
I-hang
I can reproduce this issue with #122443 for example:
- nightly-2024-03-26 (before #111769): Exits after a single ^C
- nightly-2024-03-27 (after #111769): Requires ^C^C to exit
bjorn3's analysis checks out.
from rust.
Do you have a reproducer? I have not run into this myself.
The implementation should also ensure that the compiler exits promptly if you hit ctrl+c again. Does it?
from rust.
if stuff keeps going on ctrl+c, sometimes suspending the process (ctrl+z) and then killing the terminal does the trick somehow 😅
from rust.
Do you have a reproducer? I have not run into this myself.
Unfortunately no, I encountered this during some rustc hacking where I ended up getting well over 1k error messages in the standard library build and that turned out to be hard to cancel.
The implementation should also ensure that the compiler exits promptly if you hit ctrl+c again. Does it?
I thought I had tried that, but I am not entirely sure.
from rust.
Is it possible the shell is part of the problem? If, by the time you hit ctrl-c, it's working through a large amount of output it still has buffered then it might be awhile before you see a response.
from rust.
It's possible, sure -- but usually it reacts to Ctrl-C immediately even when there's tons of output.
from rust.
Have you tried reverting #111769 to check if that fixes it?
from rust.
is there a good way to make rustc loop endlessly without ever touching const eval? maybe via the trait solver? 🤔
it would help for debugging this.
from rust.
cool! I wasn't sure how much of the compiler's code flowed through const-eval, is why I asked.
from rust.
Another case where this is observed: #125428
IMO we should revert #111769 or at least make the signal handler run exit
after a short timeout.
from rust.
I'll post a PR that adds a timeout later today, but by all means if you feel strongly just put up a PR. The initial handler here was just added through the normal PR process, there's no reason to be more cautious on reverting or modifying it.
from rust.
Related Issues (20)
- ICE: `inconsistent resolution for an import` HOT 3
- ICE: `could not find allocation for alloc3` HOT 4
- `./x fmt --all` is not idempotent HOT 2
- APITIT get treated as ordinary params in "not all trait impls implemented" error HOT 1
- `core::ptr::copy` unsafe precondition message is for `core::ptr::copy_nonoverlapping` instead
- Potential overflow in the calculation of complex trait bounds involving tuples HOT 1
- TAIT: type parameter `impl FnOnce()` is part of concrete type but not used in parameter list for the `impl Trait` type alias HOT 4
- Weird diagnostic for recursion in const fn HOT 1
- Struct update syntax doesn't reborrow mut references HOT 4
- panic during codegen/LLVM phase HOT 2
- ICE: `relating different kinds` HOT 2
- ICE: `Tried to make Ignore indirect` HOT 1
- Bad codegen using `u16::to/from_be_bytes` HOT 1
- `struct` documentation should include `Sized` in the listed auto trait implementations HOT 2
- Bootstrap is slow HOT 5
- UpperHex formatting might panic HOT 3
- Repeated spurious rustdoc test failure: rustdoc-gui/help-page HOT 1
- Panic when setting RUST_MIN_STACK incorrectly HOT 3
- Docs produce invalid type when using bounds in associated type position HOT 1
- `unnameable_types` should show where the type is reachable HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rust.