www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Support Windows XP

reply Imperatorn <johan_forsberg_86 hotmail.com> writes:
If I want D on Windows XP, what can I do?

If I try download dmd it doesn't work. LDC doesn't seem to work 
either.

Are there any changes I have to do to make it work?

Thanks in advance!
May 02 2021
next sibling parent 12345swordy <alexanderheistermann gmail.com> writes:
On Sunday, 2 May 2021 at 15:04:36 UTC, Imperatorn wrote:
 If I want D on Windows XP, what can I do?

 If I try download dmd it doesn't work. LDC doesn't seem to work 
 either.

 Are there any changes I have to do to make it work?

 Thanks in advance!
You need to bootstrap yourself in order for it to run on dmd. Good luck.
May 02 2021
prev sibling next sibling parent Max Haughton <maxhaton gmail.com> writes:
On Sunday, 2 May 2021 at 15:04:36 UTC, Imperatorn wrote:
 If I want D on Windows XP, what can I do?

 If I try download dmd it doesn't work. LDC doesn't seem to work 
 either.

 Are there any changes I have to do to make it work?

 Thanks in advance!
"Doesn't work" isn't good enough if you want anyone to help you
May 02 2021
prev sibling parent reply Imperatorn <johan_forsberg_86 hotmail.com> writes:
On Sunday, 2 May 2021 at 15:04:36 UTC, Imperatorn wrote:
 If I want D on Windows XP, what can I do?

 If I try download dmd it doesn't work. LDC doesn't seem to work 
 either.

 Are there any changes I have to do to make it work?

 Thanks in advance!
I modified the PE header (set major version and subsystem to 5) and it worked 🌞 No idea how much ub this causes tho.
May 02 2021
parent reply Dukc <ajieskola gmail.com> writes:
On Sunday, 2 May 2021 at 18:15:04 UTC, Imperatorn wrote:
 I modified the PE header (set major version and subsystem to 5) 
 and it worked 🌞

 No idea how much ub this causes tho.
Care to explain this in beginner-friendly way? I think it's likely it will help other people with same kinds of problems. DMD for Windows should work just as well in XP as in later versions, as far as I know. I don't think it depends on any functionality introduced after XP.
May 03 2021
next sibling parent reply user1234 <user1234 12.de> writes:
On Monday, 3 May 2021 at 09:53:42 UTC, Dukc wrote:
 On Sunday, 2 May 2021 at 18:15:04 UTC, Imperatorn wrote:
 I modified the PE header (set major version and subsystem to 
 5) and it worked 🌞

 No idea how much ub this causes tho.
Care to explain this in beginner-friendly way? I think it's likely it will help other people with same kinds of problems. DMD for Windows should work just as well in XP as in later versions, as far as I know. I don't think it depends on any functionality introduced after XP.
operating system + druntime bindings might be the only issue. Support for XP was dropped because it went EOL and that's it. The compiler itself just needs to read files, write files, call processes and that's it.
May 03 2021
next sibling parent Imperatorn <johan_forsberg_86 hotmail.com> writes:
On Monday, 3 May 2021 at 10:43:30 UTC, user1234 wrote:
 On Monday, 3 May 2021 at 09:53:42 UTC, Dukc wrote:
 On Sunday, 2 May 2021 at 18:15:04 UTC, Imperatorn wrote:
 I modified the PE header (set major version and subsystem to 
 5) and it worked 🌞

 No idea how much ub this causes tho.
Care to explain this in beginner-friendly way? I think it's likely it will help other people with same kinds of problems. DMD for Windows should work just as well in XP as in later versions, as far as I know. I don't think it depends on any functionality introduced after XP.
operating system + druntime bindings might be the only issue. Support for XP was dropped because it went EOL and that's it. The compiler itself just needs to read files, write files, call processes and that's it.
Yeah, maybe, idk actually. Imo dmd should be compiled with Major version 5 :>
May 03 2021
prev sibling parent reply Steven Schveighoffer <schveiguy gmail.com> writes:
On 5/3/21 6:43 AM, user1234 wrote:
 On Monday, 3 May 2021 at 09:53:42 UTC, Dukc wrote:
 On Sunday, 2 May 2021 at 18:15:04 UTC, Imperatorn wrote:
 I modified the PE header (set major version and subsystem to 5) and 
 it worked 🌞

 No idea how much ub this causes tho.
Care to explain this in beginner-friendly way? I think it's likely it will help other people with same kinds of problems. DMD for Windows should work just as well in XP as in later versions, as far as I know. I don't think it depends on any functionality introduced after XP.
operating system + druntime bindings might be the only issue. Support for XP was dropped because it went EOL and that's it. The compiler itself just needs to read files, write files, call processes and that's it.
Typically, the reason D stops supporting older OSes is because something changes that is fundamental to the language. My understanding is that something changed in how thread-local-storage is supported, so XP is no longer valid for the current compilers. I could be wrong, but I'm pretty sure there was a definite reason for dropping support, even if it wasn't TLS. Of course, you can still use an older compiler. -Steve
May 03 2021
next sibling parent Imperatorn <johan_forsberg_86 hotmail.com> writes:
On Monday, 3 May 2021 at 14:10:30 UTC, Steven Schveighoffer wrote:
 On 5/3/21 6:43 AM, user1234 wrote:
 On Monday, 3 May 2021 at 09:53:42 UTC, Dukc wrote:
 [...]
operating system + druntime bindings might be the only issue. Support for XP was dropped because it went EOL and that's it. The compiler itself just needs to read files, write files, call processes and that's it.
Typically, the reason D stops supporting older OSes is because something changes that is fundamental to the language. My understanding is that something changed in how thread-local-storage is supported, so XP is no longer valid for the current compilers. I could be wrong, but I'm pretty sure there was a definite reason for dropping support, even if it wasn't TLS. Of course, you can still use an older compiler. -Steve
As I said I modified the PE header and dmd seems to run without any problems. Hard to tell what edge cases there are though.
May 03 2021
prev sibling parent reply Nathan S. <no.public.email example.com> writes:
On Monday, 3 May 2021 at 14:10:30 UTC, Steven Schveighoffer wrote:
 On 5/3/21 6:43 AM, user1234 wrote:
 On Monday, 3 May 2021 at 09:53:42 UTC, Dukc wrote:
 On Sunday, 2 May 2021 at 18:15:04 UTC, Imperatorn wrote:
 I modified the PE header (set major version and subsystem to 
 5) and it worked 🌞

 No idea how much ub this causes tho.
Care to explain this in beginner-friendly way? I think it's likely it will help other people with same kinds of problems. DMD for Windows should work just as well in XP as in later versions, as far as I know. I don't think it depends on any functionality introduced after XP.
operating system + druntime bindings might be the only issue. Support for XP was dropped because it went EOL and that's it. The compiler itself just needs to read files, write files, call processes and that's it.
Typically, the reason D stops supporting older OSes is because something changes that is fundamental to the language. My understanding is that something changed in how thread-local-storage is supported, so XP is no longer valid for the current compilers. I could be wrong, but I'm pretty sure there was a definite reason for dropping support, even if it wasn't TLS. Of course, you can still use an older compiler. -Steve
My recollection is that dropping official support for Windows XP was based on workload rather than any technical reason, and simultaneously that policy is to "soft support" it by accepting any patches that fix Windows XP problems and not deliberately doing things to break Windows XP.
May 04 2021
parent Dennis <dkorpel gmail.com> writes:
On Tuesday, 4 May 2021 at 11:38:50 UTC, Nathan S. wrote:
 My recollection is that dropping official support for Windows 
 XP was based on workload rather than any technical reason, and 
 simultaneously that policy is to "soft support" it by accepting 
 any patches that fix Windows XP problems and not deliberately 
 doing things to break Windows XP.
See: https://forum.dlang.org/post/ktfgps$2ghh$1 digitalmars.com
May 04 2021
prev sibling next sibling parent reply Imperatorn <johan_forsberg_86 hotmail.com> writes:
On Monday, 3 May 2021 at 09:53:42 UTC, Dukc wrote:
 On Sunday, 2 May 2021 at 18:15:04 UTC, Imperatorn wrote:
 I modified the PE header (set major version and subsystem to 
 5) and it worked 🌞

 No idea how much ub this causes tho.
Care to explain this in beginner-friendly way? I think it's likely it will help other people with same kinds of problems. DMD for Windows should work just as well in XP as in later versions, as far as I know. I don't think it depends on any functionality introduced after XP.
Sure, you can use any PE editor or even a hex editor. I used https://petoolse.github.io/petools/ Open dmd.exe and edit major version and subsystem version (change from 6 to 5). https://ibb.co/0hpFmd9 Done :)
May 03 2021
parent WebFreak001 <d.forum webfreak.org> writes:
On Monday, 3 May 2021 at 13:10:45 UTC, Imperatorn wrote:
 ...
 https://ibb.co/0hpFmd9
 ...
Mirror for image for the future: https://i.imgur.com/lnJxwkZ.png
May 07 2021
prev sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 5/3/2021 2:53 AM, Dukc wrote:
 DMD for Windows should work just as well in XP as in later versions, as far as
I 
 know. I don't think it depends on any functionality introduced after XP.
XP has terrible support for thread-local storage when DLLs are involved. Other than that, it should work fine. I use XP as a test machine for the DMC++ compiler, because later versions of Windows attempt to run the virus checker every time the compiler generates an executable. Even when the damned virus checker is turned off. The trouble with the wretched virus checker is it holds on to the exe file even if it is deleted. The next write of the file with the same name then fails. DMC++ is compiled with DMD. I'm not sure which version of DMD is building it, as my code doesn't aggressively use new D features I haven't been motivated to upgrade it.
May 07 2021
parent reply Dennis <dkorpel gmail.com> writes:
On Friday, 7 May 2021 at 09:41:52 UTC, Walter Bright wrote:
 I use XP as a test machine for the DMC++ compiler, because 
 later versions of Windows attempt to run the virus checker 
 every time the compiler generates an executable. Even when the 
 damned virus checker is turned off.
Do you have exclusions set? On Windows 10, you can go to Start > Virus & Thread protection > Manage Settings > Add or remove exclusions > Add an exclusion. I exclude a whole bunch of folders such as: C:\D\dmd2\windows\bin C:\Users\Dennis\AppData\Local\Temp\.rdmd I found that it really helps reducing the time to run .exe files, though it's still slower than on Linux (which is why I'm using Debian most of the time).
May 07 2021
parent Walter Bright <newshound2 digitalmars.com> writes:
On 5/7/2021 5:39 AM, Dennis wrote:
 On Friday, 7 May 2021 at 09:41:52 UTC, Walter Bright wrote:
 I use XP as a test machine for the DMC++ compiler, because later versions of 
 Windows attempt to run the virus checker every time the compiler generates an 
 executable. Even when the damned virus checker is turned off.
Do you have exclusions set? On Windows 10, you can go to Start > Virus & Thread protection > Manage Settings > Add or remove exclusions > Add an exclusion. I exclude a whole bunch of folders such as: C:\D\dmd2\windows\bin C:\Users\Dennis\AppData\Local\Temp\.rdmd
Yeah, I did the equivalent on Win7. It only reduces the problem.
May 12 2021