-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
REPL hints and tab completion freezes the REPL #55434
Comments
Tab completion needs to be moved run on a separate thread. I don't think there are any other good options. |
Most of inference supports cancellation (except the IRInterp where the implementation is marked broken) via LimitedAccuracy and the dont_work_on_me flag. It could be hooked to timeout after either some amount of delay or on the next keystroke (particularly better with threads so it could keep running though). I have also been working on resumable inference, which maybe completed soon, and could be used as a basis for this in the REPLCompletions |
It's probably clear already, but this is even more of an issue on 1.11+ because of tab completion hinting.
|
And I don't believe we're likely to make 1.11 start up with multiple threads by default, so I think the only option for 1.11 is to add a timeout? Perhaps a shorter timeout for hinting |
@thofma thanks so much for the workaround! |
I'm putting this on the 1.12 milestone as I don't believe it's properly fixable on 1.11 The two non mutually exclusive suggestions are:
|
@IanButterworth defaulting to many threads is a resource hog and interrupting is not stable at all. Can we have a simpler option that does this effectively instead? (perhaps an env variable that disables the autocomplete hint, to prevent unfixable freezes?) Note: Base.active_repl does not exist at time when startup.jl is executed so that file can't be used as a "global config" for this purpose very easily. |
(cc @stelmo ) |
Are you following the recommended way to disable it? https://julialang.org/blog/2024/10/julia-1.11-highlights/#improved_tab_completion_and_hinting_in_the_repl |
Oh cool. Is that somewhere in docs? (Must have missed it in there) |
Might be a related issue: https://discourse.julialang.org/t/sympy-makes-repl-to-stuck/124814 |
Sometimes tab completion freezes the REPL. For example, I type
and this gives me a frozen REPL for a few minutes, where not even Ctrl-C does something useful. Not a great user experience (in particular the Ctrl-C not responding part).
@MasonProtter provided the following reproducer (my original example is free of
@generated
):This is with julia 1.10.
Can we make the under the hood type inference give up if the result cannot be returned "immediately"? Alternatively, can we make Ctrl-C work?
Edit: It is really bad on 1.11, where this is triggered by the tab completion "hint", so almost always.
Edit edit: For the fellow victims of this: One can turn it off (on 1.11) by typing the following in the REPL
or putting
in your startup.jl.
The text was updated successfully, but these errors were encountered: