In this thread I would like a reason of trying to support Win95/98/Me to be discussed. I would like to see arguments for and against and, when there will be enough arguments, to vote, make a decision, and add supported Windows OS-es list to the docs, because now D is stamping itself by having undefined behaviour on Windows: one just can't tell, what will program in D do on certain version of Windows: crash/partially works/works?
My reasons against trying to support Win95/98/Me in D2:
* In Russia we have lots of outdated PC-s, and according to statistics of visitors of one site with educational thematics Win95+Win98+Me / All Windows visitors is 3+5+2 = 10 / 9_925 ~ 0.1%.
* If trying to support Win95/98/Me will be discarded, we can remove:
1. `std.__fileinit`
2. lots of small code duplicates like `useWfuncs ? WinFuncW() : WinFuncA()`
3. some more complicated stuff like `SelUni` template in `std.windows.registry` or Windows `getcwd` implementation in `std.file`
* Developers will not be forced to create things that was enumerated in previous paragraph and fill themselves doing ungrateful work, because:
1. Even command line arguments has never been implemented for Win95/98/Me in druntime (at least according to Git history of `rt.dmain2`, Issue 5926)
2. For more than 8 months even Windows 2000 isn't supported at all (every D2 program crashes since 2.053, Issue 6024).
* This rejection isn't a breaking change because Win95/98/Me has never been supported by D2 (see previous paragraph).
* This rejection will allow to just add supported Windows OS-es list to the docs by claiming Win95/98/Me as unsupported.

On 22-01-2012 20:55, Denis Shelomovskij wrote:
> In this thread I would like a reason of trying to support Win95/98/Me to
> be discussed. I would like to see arguments for and against and, when
> there will be enough arguments, to vote, make a decision, and add
> supported Windows OS-es list to the docs, because now D is stamping
> itself by having undefined behaviour on Windows: one just can't tell,
> what will program in D do on certain version of Windows: crash/partially
> works/works?
>> My reasons against trying to support Win95/98/Me in D2:
> * In Russia we have lots of outdated PC-s, and according to statistics
> of visitors of one site with educational thematics Win95+Win98+Me / All
> Windows visitors is 3+5+2 = 10 / 9_925 ~ 0.1%.
> * If trying to support Win95/98/Me will be discarded, we can remove:
> 1. `std.__fileinit`
> 2. lots of small code duplicates like `useWfuncs ? WinFuncW() : WinFuncA()`
> 3. some more complicated stuff like `SelUni` template in
> `std.windows.registry` or Windows `getcwd` implementation in `std.file`
> * Developers will not be forced to create things that was enumerated in
> previous paragraph and fill themselves doing ungrateful work, because:
> 1. Even command line arguments has never been implemented for
> Win95/98/Me in druntime (at least according to Git history of
> `rt.dmain2`, Issue 5926)
> 2. For more than 8 months even Windows 2000 isn't supported at all
> (every D2 program crashes since 2.053, Issue 6024).
> * This rejection isn't a breaking change because Win95/98/Me has never
> been supported by D2 (see previous paragraph).
> * This rejection will allow to just add supported Windows OS-es list to
> the docs by claiming Win95/98/Me as unsupported.
I see absolutely no reason to support an OS that Microsoft does not support anymore, especially when it has such a negligible amount of users...
--
- Alex

22.01.2012 23:55, Denis Shelomovskij пишет:
> In this thread I would like a reason of trying to support Win95/98/Me to
> be discussed.
In the case Win95/98/Me will be marked as unsupported, I will volunteer to remove unnecessary code from druntime/Phobos.

"Alex Rønne Petersen" <xtzgzorex@gmail.com> wrote in message news:jfhppl$121g$1@digitalmars.com...>> I see absolutely no reason to support an OS that Microsoft does not support anymore,
I don't think that's a good reason, since XP is still extremely relevent despite MS having pulled support. However...
> especially when it has such a negligible amount of users...
>
There's the good reason, along with the fact that 9x are really just such bad OSes anyway and would be a royal PITA to support. *This* is why I don't think we should bother to support 9x.

On 1/22/2012 12:57 PM, Nick Sabalausky wrote:
> "Alex Rønne Petersen"<xtzgzorex@gmail.com> wrote in message
> news:jfhppl$121g$1@digitalmars.com...>>>> I see absolutely no reason to support an OS that Microsoft does not
>> support anymore,
>> I don't think that's a good reason, since XP is still extremely relevent
> despite MS having pulled support. However...
MS still officially supports XP. Just a couple days ago, I got an automated update on it from them. I think MS's latest schedule is to officially abandon it in 2014.
I think we ought to support things as long as MS officially does. After that, I'm game at abandoning official support, if for no other reason than not being able to develop/debug/test on those platforms.

On 22-01-2012 21:57, Nick Sabalausky wrote:
> "Alex Rønne Petersen"<xtzgzorex@gmail.com> wrote in message
> news:jfhppl$121g$1@digitalmars.com...>>>> I see absolutely no reason to support an OS that Microsoft does not
>> support anymore,
>> I don't think that's a good reason, since XP is still extremely relevent
> despite MS having pulled support. However...
Well, extended support for XP still lasts until 2014.
>>> especially when it has such a negligible amount of users...
>>>> There's the good reason, along with the fact that 9x are really just such
> bad OSes anyway and would be a royal PITA to support. *This* is why I don't
> think we should bother to support 9x.
>>
Yes... the OS APIs from those times were nightmare-ish. And the code in druntime/phobos to support those OSes ain't exactly pretty...
--
- Alex

"Walter Bright" <newshound2@digitalmars.com> wrote in message news:jfhtgm$195l$1@digitalmars.com...> On 1/22/2012 12:57 PM, Nick Sabalausky wrote:
>> "Alex Rønne Petersen"<xtzgzorex@gmail.com> wrote in message news:jfhppl$121g$1@digitalmars.com...>>>>>> I see absolutely no reason to support an OS that Microsoft does not support anymore,
>>>> I don't think that's a good reason, since XP is still extremely relevent despite MS having pulled support. However...
>> MS still officially supports XP. Just a couple days ago, I got an automated update on it from them. I think MS's latest schedule is to officially abandon it in 2014.
>> I think we ought to support things as long as MS officially does. After that, I'm game at abandoning official support,
I *really* don't think we should be going purely by that. We still need to take into account actual users in the wild.
> if for no other reason than not being able to develop/debug/test on those platforms.
That makes no sense at all. *Of course* it's perfectly possible to develop/debug/test on those platforms. Hell, I obtained a copy of 98 and installed it into a VM just last year. I could easily test/etc on that if I wanted to.
*THIS* is what's important: 9x has been abandoned by users.

On Sunday, January 22, 2012 13:02:12 Walter Bright wrote:
> On 1/22/2012 12:57 PM, Nick Sabalausky wrote:
> > "Alex Rønne Petersen"<xtzgzorex@gmail.com> wrote in message news:jfhppl$121g$1@digitalmars.com...> > > >> I see absolutely no reason to support an OS that Microsoft does not support anymore,
> > > > I don't think that's a good reason, since XP is still extremely relevent despite MS having pulled support. However...
> > MS still officially supports XP. Just a couple days ago, I got an automated update on it from them. I think MS's latest schedule is to officially abandon it in 2014.
> > I think we ought to support things as long as MS officially does. After that, I'm game at abandoning official support, if for no other reason than not being able to develop/debug/test on those platforms.
It would be insane to not support XP at this point. Not only does XP still support it, but there are tons of people who have refused to move on. IIRC, Microsoft was effectively forced to support it longer because of the number of people (particularly companies) who refused to upgrade. However, I see no reason to support anything older than XP. Microsoft doesn't, and the number of people using Win2K or older is going to be rather small. For the most part, I think that if you support XP, you end up supporting 2K, since they're not all that different, so I don't know that it really hurts us to say that we support Win2K, but I'd love to be able to drop the extra stuff that we do to support pre-Win2K.
- Jonathan M Davis

On 22/01/2012 23:48, Jonathan M Davis wrote:
<snip>
> It would be insane to not support XP at this point. Not only does XP still
> support it, but there are tons of people who have refused to move on. IIRC,
> Microsoft was effectively forced to support it longer because of the number of
> people (particularly companies) who refused to upgrade. However, I see no
> reason to support anything older than XP.
<snip>
Principle of least surprise. Somebody compiling for a given target platform should expect whether it runs on a given version of the platform to be down to the APIs the program uses, not the language the program is written in.
Moreover, it seems a lot of currently maintained software still claims to support Win2000 - Firefox and OpenOffice for instance. For a whole programming language, the majority of whose users will be writing much simpler programs than this, to have higher system requirements than this seems absurd.
Stewart.

On Monday, January 23, 2012 00:14:27 Stewart Gordon wrote:
> On 22/01/2012 23:48, Jonathan M Davis wrote:
> <snip>
> > > It would be insane to not support XP at this point. Not only does XP still support it, but there are tons of people who have refused to move on. IIRC, Microsoft was effectively forced to support it longer because of the number of people (particularly companies) who refused to upgrade. However, I see no reason to support anything older than XP.
> > <snip>
> > Principle of least surprise. Somebody compiling for a given target platform should expect whether it runs on a given version of the platform to be down to the APIs the program uses, not the language the program is written in.
Except that druntime and Phobos use those APIs. So, it matters. And since the number of people using pre-Win2K is extremely low, I see that as a complete non-issue.
> Moreover, it seems a lot of currently maintained software still claims to support Win2000 - Firefox and OpenOffice for instance. For a whole programming language, the majority of whose users will be writing much simpler programs than this, to have higher system requirements than this seems absurd.
As I said in my previous post, while ideally we'd say that we don't support anything older than WinXP, saying that we support Win2K probably costs us nothing. It's the pre-Win2K that's the problem with the lack of W functions and the like.
The next version of Windows beyond that that it would be useful to be able to say that we don't support anything older than is Vista. I would _love_ to be able to do that Vista is the oldest that we support, because Vista added a bunch of useful API calls and the like. But we obviously can't do that anytime soon. The user base for XP is huge. The same can't be said of pre-Win2K.
So, I really think that we should say that we don't support pre-Win2K, and I'd like to say that we don't support pre-XP, but I don't think that it hurts us any to say that we support Win2K.
- Jonathan M Davis