Importance of Windows XP support

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

abulmo2
Posts: 469
Joined: Fri Dec 16, 2016 11:04 am
Location: France
Full name: Richard Delorme

Re: Importance of Windows XP support

Post by abulmo2 »

bnemias wrote:XP has all the threading capabilities you need and really anything you need to make it work. To fail to do so is just laziness.
Not all: conditional variable support is missing.
Richard Delorme
bnemias
Posts: 373
Joined: Thu Aug 14, 2008 3:21 am
Location: Albuquerque, NM

Re: Importance of Windows XP support

Post by bnemias »

Evert wrote:The problem is, you cannot install XP very easily (or at all?) because in the time it takes to download updates/another browser the system has already been infiltrated (I suppose a hardware firewall can prevent that of course, but it's a lot of hassle).
It is simply not that dangerous. Being online and connected, unpatched behind a NAT firewall (router), you can leave it for years without issue. The problem is users tend to do stuff, dumb stuff, or get duped by something like DNS redirect and end up trusting something malicious.
Evert wrote:
But my take on chess engines and XP support is that there is no earthly reason NOT to. If you find yourself unable to run your engine on XP, then it is either because you are utilizing system calls you don't actually need, or because you are using tools (read Microsoft) that intentionally use such calls EXPLICITLY to break XP support.

If your engine is single-threaded, there isn't any real reason not to support windows 95 because it is easy. XP has all the threading capabilities you need and really anything you need to make it work. To fail to do so is just laziness.
Using language or compiler features that aren't available in older compilers is a reason.
Yeah, very true. I have run into this before and forgot. I was trying to produce an optimized build for an ancient OS+hardware using new versions of GCC. I eventually gave up because of dependencies from the C runtime that needed system calls from XP onward. I still think it is possible to use the latest optimizations and target a pentium II, for example. But it wasn't worth the time to find the solution.
mar
Posts: 2655
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: Importance of Windows XP support

Post by mar »

abulmo2 wrote:
bnemias wrote:XP has all the threading capabilities you need and really anything you need to make it work. To fail to do so is just laziness.
Not all: conditional variable support is missing.
There are events (easier than mutex + condvar + flag)
jdart
Posts: 4398
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Importance of Windows XP support

Post by jdart »

Evert wrote: Is there a reason you use ReadFile rather than fgets()?
Sort of.

The Linux/Mac code uses select, and one reason is that it supports a timeout parameter, so it can be non-blocking with no input.

But there is no select on Windows, so for that it uses Windows calls. But since ReadFile blocks, you could argue that you might as well just use fgets on both platforms.

--Jon
abulmo2
Posts: 469
Joined: Fri Dec 16, 2016 11:04 am
Location: France
Full name: Richard Delorme

Re: Importance of Windows XP support

Post by abulmo2 »

mar wrote:
abulmo2 wrote:
bnemias wrote:XP has all the threading capabilities you need and really anything you need to make it work. To fail to do so is just laziness.
Not all: conditional variable support is missing.
There are events (easier than mutex + condvar + flag)
My point is: Conditional variable support is present since Windows Vista. So a program using conditional variables working under windows Vista & later will not work under windows XP. I do not deny that viable alternatives to conditional variables exist like Events, Semaphore or whatever, just that there is no native support to Conditional variables under windows XP, and so it is not correct to assert that XP has all threading capabilities.
Richard Delorme
User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: Importance of Windows XP support

Post by cdani »

abulmo2 wrote:
mar wrote:
abulmo2 wrote:
bnemias wrote:XP has all the threading capabilities you need and really anything you need to make it work. To fail to do so is just laziness.
Not all: conditional variable support is missing.
There are events (easier than mutex + condvar + flag)
My point is: Conditional variable support is present since Windows Vista. So a program using conditional variables working under windows Vista & later will not work under windows XP. I do not deny that viable alternatives to conditional variables exist like Events, Semaphore or whatever, just that there is no native support to Conditional variables under windows XP, and so it is not correct to assert that XP has all threading capabilities.
In Andscacs I use only one instruction for threading:
_beginthread
Anything else. So it works on winxp :-)
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Importance of Windows XP support

Post by MikeB »

Evert wrote:Short version: how important is it to continue to support Windows XP?

Long version: I've been trying to figure out why a number of people have reported problems with SjaakII where the program would become unresponsive. I eventually figured out that problems occur mostly with the "release" compiles and (with some help) that problems occur from version 1.3.1 onward, which is when we transitioned the build system to MSVS 2015. All of which suggested to me that the problem is somewhere in the MSVS code-path. Martin Sedlak discovered that there is an actual bug in the CRT runtime library for MSVS 2015, which breaks for unbuffered input.

Now, this bug has been fixed, but only for targets later than Windows XP (so Windows XP and earlier remain broken). So this basically narrows the choice down to using an older compiler (that doesn't have the same bug in its CRT library), or dropping support for Windows XP in the release builds.

I don't really like the first option on principle (relying on a particular older version of a compiler is bad) and I'm in two minds about the second. On the one hand, this is a 16 year old OS that became unsupported three years ago. On the other hand, I don't like the idea of telling people they're out of luck trying to run my program. A compromise is to offer both builds, at least for the time being.

So anyway, how important is it in practice to maintain support for Windows XP?
Zero for me - any Windows, macOS here.