Also, the Windows-specific unit tests have now been enabled. So, while
unfortunately, we can't currently have them all enabled on Windows,
since it causes dmd to run out of memory, we can at least get the
Windows-specific stuff tested. Hopefully, the fact that the rest are
running on Linux will be enough for now as far as the other tests go.
std.gregorian, std.date, and std.dateparse have all been marked as
scheduled for deprecation. Everywhere (except for std.file) which was
using std.date is now using std.datetime. std.file is now using
std.datetime but has a number of functions still using d_time but which
are marked as scheduled for deprecation. I tried to give as many as I
could pragmas indicating that they were scheduled for deprecation, but
at the moment, that requires that a function be a templated function, and
I couldn't templatize all of them. So, some functions in std.file are
only marked as scheduled for deprecation in their documentation and will
not give any warning on compilation.
I had to rename several functions in std.file in order to avoid making
any breaking changes. And since I was already having to mess with
function names, it seemed like a good time to change the names of a
number of the functions in std.file to use proper capitalization
(such as changing isdir to isDir) as has been discussed and overwhelmingly
supported in the newsgroup with regards to std.string. And since I was
making those changes, it seemed like a good time to fix bug# 3848
(functions in std.file don't take symbolic links into account) as well.
So, std.file should now deal with symlinks properly.
The issue which Andrei brought up with +VERSION causing the std.datetime
unit tests to fail on OSX has been fixed as well.
For some reason, the std.datetime unit tests compile and pass without
problems on Linux and in Wine on Linux, but on real Windows, the
compiler runs out of memory when compiling them. So, for now, all of the
std.datetime unit tests are versioned with testStdDateTime. On Posix,
version=testdStdDateTime is used in std.datetime, so the tests will run,
but that version is not set on Windows, so the unit tests don't run on
Windows. So, if you want to run the std.datetime unit tests on Windows or
under Wine or Linux, then compile with -version=testStdDateTime.
At the moment, all of the tests pass on both Linux and under Wine, and
the normal code does compile on proper, so I'm fairly certain that it's fine
for use on Windows, but for now, I can't enable the tests on Windows. My
best guess is that it's some sort of weird compiler bug involving system
calls that leak memory on Windows-proper but not in Wine, but I really
don't know.
Nothing in Phobos has been made to use it yet and nothing has yet been
marked as deprecated or scheduled for deprecation due to the new
std.datetime being checked in. That's for a future commit.
This function came from std.date.
But now, benchmark returns Ticks[N] and don't use result argument.
I removed need to use GC for by doing it in this way.