[Vm-dev] Raise minimum supported Windows API from XP to Vista (was: Identify console executable and standard one)

Alistair Grant akgrant0710 at gmail.com
Mon Apr 23 20:06:04 UTC 2018


Hi Eliot & Vincent,

On Mon, Apr 23, 2018 at 10:00:12AM -0700, Eliot Miranda wrote:
>  
> Hi Alistair,
> 
> 
> > On Apr 23, 2018, at 2:46 AM, Alistair Grant <akgrant0710 at gmail.com> wrote:
> > 
> > 
> > Hi Everyone,
> > 
> > 
> > I have some test code that correctly identifies whether stdin on Windows
> > is a console or redirected, in both windows command terminals (cmd.exe)
> > and cygwin mintty (the current code only works for cmd.exe, not for
> > cygwin terminals).
> > 
> > However it relies on the Windows Vista API, i.e. _WIN32_WINNT >=
> > 0x0600, and at the moment we set the minimum supported version to
> > Windows XP (0x0501).
> > 
> > Since Windows XP is no longer supported, I can't see any problem with
> > raising the minimum version to Windows Vista (which also isn't
> > supported, but should give us maximum compatibility), but wanted to
> > check first.
> > 
> > Are there any objections to raising the minimum API level to Windows
> > Vista?
> 
> Not from me.  But it would be nice if the resulting executable still 
> ran in Windows NT.  Is that still possible?  What does the code look 
> like?

If we make this change I think the chances of it working on NT are next 
to zero.

Actually, I'd be surprised if the current VM ran on NT since it is 
explicitly asking for the XP API, but I haven't tested it.

The code is available at:

https://fossies.org/linux/misc/vim-8.0.tar.bz2/vim80/src/iscygpty.c
https://fossies.org/linux/misc/vim-8.0.tar.bz2/vim80/src/iscygpty.h



On Mon, Apr 23, 2018 at 05:37:45PM +0000, Vincent.Blondeau at lamresearch.com wrote:
>  
> Hi Alistair,
> 
> I made some code that have the same goal, but I am also stuck to 
> identify the Cygwin and minty terminals, I tried the approach with the 
> name of the pipes, but the pipes have always the same name. You can 
> take a look at my code there:
> https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/Cog...VincentBlondeau:addStdoutIsConsolePrimitive

The vim code does something very similar, but haven't looked closely.


> Have you been thinking to another solution?

No :-)


> Which function do you need that is not existing under XP?

The use of FILE_NAME_INFO and GetFileInformationByHandleEx() requires 
Vista (see iscygpty.c above).


Cheers,
Alistair



> Thanks,
> 
> Cheers,
> Vincent
> 
> -----Original Message-----
> From: Vm-dev [mailto:vm-dev-bounces at lists.squeakfoundation.org] On Behalf Of Alistair Grant
> Sent: Monday, April 23, 2018 2:47
> To: Open Smalltalk Virtual Machine Development Discussion <vm-dev at lists.squeakfoundation.org>
> Subject: [Vm-dev] Raise minimum supported Windows API from XP to Vista (was: Identify console executable and standard one)
> 
>  
> Hi Everyone,
> 
> 
> I have some test code that correctly identifies whether stdin on Windows is a console or redirected, in both windows command terminals (cmd.exe) and cygwin mintty (the current code only works for cmd.exe, not for cygwin terminals).
> 
> However it relies on the Windows Vista API, i.e. _WIN32_WINNT >= 0x0600, and at the moment we set the minimum supported version to Windows XP (0x0501).
> 
> Since Windows XP is no longer supported, I can't see any problem with raising the minimum version to Windows Vista (which also isn't supported, but should give us maximum compatibility), but wanted to check first.
> 
> Are there any objections to raising the minimum API level to Windows Vista?
> 
> 
> 
> Thanks,
> Alistair



More information about the Vm-dev mailing list