For whatever reason, the dmd test suite has tests for std.zip, though
for the most part, they seem to just run it without actually checking
the results, making them of questionable value. But this commit ports
them to std.zip (to remove a Phobos dependency in the dmd test suite)
and attempts to make it so that they actually check the results. So, the
tests are not identical by any means, but they're similar. Perhaps the
most significant test is the one that tests a file that's written with
std.zip against the unzip utility, since that's testing against
something that we didn't write.
- Document fileAttributes and set the internal _madeVersion
according to the encode attribute type.
- deprecate direct access to the externalAttributes field
In some archives the headers for each indivdual `ArchivMember` are incomplete.
And these incomplete headers would overwrite the actual headers with `0` which
results in a `ZlibException` (since `compressedSize` and `expandedSize` are `0`)
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.