New implementation of pseudo console support (experimental)

Thomas Wolff towo@towo.net
Wed May 13 12:35:00 GMT 2020


Hi Takashi,

Am 13.05.2020 um 14:16 schrieb Takashi Yano via Cygwin-developers:
> Hello everyone.
>
> This time, I have experimentally implemented a new pseudo console
> support. In this implementation, pseudo console is created for each
> native console app.
>
> The advantage and disadvantage of this implementation are as follows.
>
> Advantage:
> 1) No performance degradation in pty output for cygwin process.
>      https://sourceware.org/pipermail/cygwin/2020-February/243651.html
> 2) Free from the problem caused by difference of behaviour of control
>     sequences between real terminal and pseudo console.
>      https://sourceware.org/pipermail/cygwin/2019-December/243074.html
>      https://sourceware.org/pipermail/cygwin/2020-February/243648.html
> 3) Free from the problem in cgdb and emacs gud.
>      https://sourceware.org/pipermail/cygwin/2020-January/243394.html
>      https://sourceware.org/pipermail/cygwin/2020-March/243939.html
> 4) Redrawing screen on executing native console apps is not necessary.
> 5) cygwin-console-helper is not necessary for the pseudo console support.
Sounds great. I'd like to test that soon (if I could...)

> Disadvantage:
> 1) Pseudo console is disabled if one of stdin, stdout or stderr is
>     redirected.
> 2) Pseudo console is disabled if the native console app is executed
>     in background.
> 3) The cygwin program which call console API directly does not work.
> 4) The apps which use console API cannot be debugged with gdb.
> 5) Type ahead key inputs are discarded while native console app is
>     executed.
> 6) cmd.exe hangs up on typing some keys if cmd.exe is executed in
>     background. (same as cygwin 3.0.7)
> 7) Code page cannot be changed by chcp.com.
About 1), 2), 7): Can you explain this limitation? I'd assume e.g. a 
background process would decide for itself whether to hook in conpty 
before starting the native app, so why does it make a difference?

> The patch attached is for the current git head.
>
> Could you please test? Any comments and suggestions will be appreciated.
Thanks
Thomas


More information about the Cygwin-developers mailing list