--- Comment #6 from Jonathan M Davis <> 2011-05-17 12:55:58 
PDT ---
None of the Windows system function calls that std.datetime uses existed prior
to Win2K Pro. So, if you use SysTime with either LocalTime (which is the
default) or a WindowsTimeZone as its time zone, it won't work. Also, it uses
Windows system functions to access the registry, and those didn't exist before
Win2K Pro. To get those to work, it has the line

pragma(lib, "advapi32.lib");

to link in the necessary library, and I don't know if that library even existed
prior to Win2K pro. So, essentially, SysTime can't really be used on a version
of Windows prior to Win2K pro, and I suspect that the module won't compile on a
Windows version older than that. I'd have to dig through std.datetime to see
what the exact list of the system functions is though.

>From what I've see of the Windows system calls, a _lot_ of them were added with
Win2K pro, and it would be very easy to create a program using much in the way
of Windows system calls which wouldn't work prior to Win2K pro. I believe that
Vista is the next version of Windows to really add much in the way of system
calls (and it added some good ones), but I also don't think that it's at all
reasonable to put anything into druntime or Phobos at this point which requires
anything newer than XP. XP is still far too prevalent for that (and it would be
nice to be able to use some of those calls added with Vista, since some of them
are definite improvements over their predecessors).

std.datetime simply cannot do what it does on a Windows system prior to Win2K.
The functionality didn't exist as far as system calls go. And honestly, while
I'm not opposed to us working to have druntime and Phobos work with versions of
Windows prior to XP if we can reasonably do it, I think that it would very
reasonable to simply say that we don't support versions of Windows older than
XP. The user base for them is very small at this point, and frankly I'm
surprised that we have anyone trying to use D on systems that old.

Regardless, std.datetime cannot possibly work on a version of Windows older
than Win2K pro. Depending on what you can get to compile, you should be able to
use everything other than SysTime and its associated time zone stuff (since
none of the rest needs Windows system calls), but they need it and won't work
on anything prior to Win2K Pro.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to