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
Progress indicator broken on Alacritty with ConPTY #1826
Comments
So this is interesting; it looks like we're either not sending a \r correctly, or the number of spaces being sent to overwrite content is wrong, leading to wrapping to the next line, and so on. Probably some diagnostic testing will be needed to determine what terminfo we're ending up with with term today. |
Capturing from discord: The So there are two possible code paths we're encountering here when you set
So this raises several aspects: For the latter two need to know which of the code paths we're following; for the former, that seems most likely to be an alacritty issue. If the Windows console path is being detected, I would have expected colour to work; so I suspect that its not being detected, and you are ending up with the no-terminfo-fallback. |
This kind of failure mode is something we attempted to fix with the downgrade of term to before the fallback terminfo thing. I wonder what we could do to output some useful debugging of what kind of terminal object we've ended up with? |
I just discovered that this issue is not unique to Alacritty: if This might turn out to be an issue in all ConPTY-backed terminal emulators when |
It's quite probable that this is true yes. ConPTY is not really an ANSI/VTxxx terminal which is part of the reason to want to shift to a more modern windows-aware library. |
I get the impression from discussion on microsoft/terminal that they're working very hard to support VT (and considering the Windows console APIs mostly for legacy programs). If we can identify a VT sequence we're emitting which Windows is handling incorrectly and report it as a bug upstream, I'm fairly sure they'll fix it. |
So a lot of the issue is that terminal IO crates which expect to be able to deal in VT like commands tend to expect terminfo databases to be available at well known POSIX paths. They tend to assume therefore that if they're on Windows, the only thing they should do is ConPTY. What we need is to move to a terminal crate which does a better job of that, such as |
@rustbot label: +O-windows |
I've got something working, hopefully I'll be able to submit a PR later today. |
I'm seeing the same thing on FreeBSD whether |
Problem
When updating a toolchain, Rustup tries to draw over its previous progress indicators, but fails, and instead produces beautiful art:
Steps
rustup update stable
, or another command that causes Rustup to output progressPossible Solution(s)
Bash in Alacritty in Windows is a pretty weird config. 😄
Notes
Windows 10, Build 1809.
Alacritty has
enable_experimental_conpty_backend
set, which uses the Windows ConPTY API (1809+ only) instead of WinPTY, which is pretty buggy.The text was updated successfully, but these errors were encountered: