public inbox for cygwin-developers@cygwin.com
 help / color / mirror / Atom feed
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: Takashi Yano <takashi.yano@nifty.ne.jp>
Cc: cygwin-developers@cygwin.com
Subject: Re: Pseudo console support in PTY
Date: Sat, 30 Mar 2019 19:47:00 -0000	[thread overview]
Message-ID: <20190330194656.GA3337@calimero.vinschen.de> (raw)
In-Reply-To: <20190330220804.a3be5fa8c4d5569464309d66@nifty.ne.jp>

[-- Attachment #1: Type: text/plain, Size: 3311 bytes --]

Hi Takashi,

On Mar 30 22:08, Takashi Yano wrote:
> Hello cygwin developers,
> 
> I have worked on implementing pseudo console support into cygwin
> PTY by request from Corinna. Pseudo console is a new feature
> after Windows 10 1809, which provides console APIs on virtual
> terminal.
> https://blogs.msdn.microsoft.com/commandline/2018/08/02/windows-command-line-introducing-the-windows-pseudo-console-conpty/
> https://docs.microsoft.com/en-us/windows/console/creating-a-pseudoconsole-session
> 
> After much effort, it began to work partially. So, I would
> like to announce to this mailing list. Attached are the
> patchs against cygwin git HEAD.

\o/

Thanks a lot for doing this!

> Patch 0001 and 0002 are not really needed by the pseudo console
> support, but are the modification I have done at the same time.
> 
> Patch 0001: This just renames and unifies the function names.
>   Both get_io_handle() and get_handle() were identical and
>   returned io_handle. So, they were unified.

This one is ok to be pushed to master as is.

> Patch 0002: This revises console code for better color handling
>   and fixing select() behaviour. This provides 24 bit color
>   support after Windows 10 build 14931. For legacy console,
>   fake 256 color support is implemented, which use the nearest
>   color from 16 system colors.

This patch is certainly a nice addition, but I'd prefer this to be split
into a patchset of at least 3 separate patches:

- Fix select

- Make console thread-safe

- Color code changes

These are three very different changes which should all stand on their
own.  This also improves looking for bugs.

> Patch 0003: Support pseudo console in PTY. With this patch,
>   native console applications can work in PTY such as mintty,
>   ssh, gnu screen or tmux.

This patch is missing a bit of commenting.  There are a couple of #if
0/1 blocks.  It would be nice to know what these are good for (and
ultimately the #if 0/1's should go away).  It would alos be helpful
if you see a chance to split this into a patchset with a few
self-contained, co-ordinated patches.

Apart from patch 1, which I'll push in a minute, please send any
patch submissions to cygwin-patches.

Thanks a lot for working on this.  If all goes well we could even push
this into 3.1, together with Ken's FIFO patches.

This is all pretty exciting.

> Anyone who are interested in this work, please test. Any
> discussions and suggestions are also welcome.
> 
> You can download the binaries from:

Already running your patches with self-built cygwin DLL and
cygwin-console-helper ;)

It seems the mintty startup is a bit slower than before, but
personally I could live with that.

> D=http://tyan0.dip.jp/cygwin
> ${D}/x86_64/test/cygwin1-20190330.dll.xz
> ${D}/x86_64/test/cygwin-console-helper.exe.xz
> ${D}/x86/test/cygwin1-20190330.dll.xz
> ${D}/x86/test/cygwin-console-helper.exe.xz
> 
> This cygwin1.dll requires new cygwin-console-helper.exe.
> Please unxz and put them into /bin directory.
> 
> Known problems:
> * Sometimes the screen layout would be broken.
> * mintty fails to start if it is started in console cygwin
>   session.

Good to know, thanks!


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2019-03-30 19:47 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-30 13:08 Takashi Yano
2019-03-30 19:47 ` Corinna Vinschen [this message]
2019-03-30 19:59   ` Corinna Vinschen
2019-03-30 23:07 ` Thomas Wolff
2019-03-31 14:38   ` Corinna Vinschen
2019-03-31 15:00   ` Takashi Yano
2019-04-02 11:02 ` Corinna Vinschen
2019-04-02 17:16   ` Thomas Wolff
2019-04-02 17:51     ` Corinna Vinschen
2019-04-03  7:18       ` Thomas Wolff
2019-04-03  7:28         ` Corinna Vinschen
2019-04-03  7:55           ` Thomas Wolff
2019-04-03  8:02             ` Corinna Vinschen
2019-04-03 11:33               ` Thomas Wolff
2019-04-03 12:17                 ` Corinna Vinschen
2019-04-04  4:17                   ` Takashi Yano
2019-04-04  8:06                     ` Corinna Vinschen
2019-04-04  4:15             ` Takashi Yano
2019-04-03 16:36   ` [PATCH v2 0/1] Pseudo console support in PTY (v2) Takashi Yano
2019-04-03 16:37     ` [PATCH v2 1/1] Cygwin: pty: add pseudo console support Takashi Yano
2019-04-03 16:50     ` [PATCH v2 0/1] Pseudo console support in PTY (v2) Corinna Vinschen
2019-04-04  5:27       ` Takashi Yano
2019-04-04  8:17         ` Thomas Wolff
2019-04-04  9:34           ` Takashi Yano
2019-04-03 17:11     ` Corinna Vinschen
2019-04-04  8:59       ` Takashi Yano
2019-04-04 10:46         ` Corinna Vinschen
2019-04-06 11:13           ` [PATCH v3 0/1] Pseudo console support in PTY (v3) Takashi Yano
2019-04-06 11:14             ` [PATCH v3 1/1] Cygwin: pty: add pseudo console support Takashi Yano
2019-04-06 17:43             ` [PATCH v3 0/1] Pseudo console support in PTY (v3) Corinna Vinschen
2019-04-12 10:22               ` [PATCH v4 0/1] Pseudo console support in PTY (v4) Takashi Yano
2019-04-12 10:23                 ` [PATCH v4 1/1] Cygwin: pty: add pseudo console support Takashi Yano
2019-04-12 12:29                 ` [PATCH v4 0/1] Pseudo console support in PTY (v4) Corinna Vinschen
2019-04-15  8:18                   ` Corinna Vinschen
2019-04-15 23:17                     ` Takashi Yano
2019-04-14 15:23                 ` [PATCH v5 0/1] Pseudo console support in PTY (v5) Takashi Yano
2019-04-14 15:23                   ` [PATCH v5 1/1] Cygwin: pty: add pseudo console support Takashi Yano
2019-04-15  8:38                     ` Corinna Vinschen
2019-04-16  0:41                       ` Takashi Yano
2019-04-16  9:16                         ` Corinna Vinschen
2019-06-24 10:53                           ` Corinna Vinschen
2019-07-25 14:31                             ` Corinna Vinschen
2019-08-08 19:24                               ` Corinna Vinschen
2019-08-12 12:07                             ` Takashi Yano
2019-08-12 12:50                               ` Corinna Vinschen
2019-08-12 14:36                                 ` Takashi Yano
2019-04-14 16:06                   ` [PATCH v5 0/1] Pseudo console support in PTY (v5) Takashi Yano
2019-04-16  1:49                     ` Takashi Yano
2019-04-16  1:51                       ` Takashi Yano
2019-04-06 21:33             ` [PATCH v3 0/1] Pseudo console support in PTY (v3) Thomas Wolff
2019-04-07  5:05               ` Takashi Yano
2019-04-07 12:02                 ` Takashi Yano
2019-04-07 21:21                 ` Thomas Wolff

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190330194656.GA3337@calimero.vinschen.de \
    --to=corinna-cygwin@cygwin.com \
    --cc=cygwin-developers@cygwin.com \
    --cc=takashi.yano@nifty.ne.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).