readLink should be checking that the result of readlink is not -1,
not that it's not 0, so the cenforce calls were wrong and were
resulting in incorrect behavior when readlink failed.
Some of the tests are too time-sensitive, and the sleeps are slowing the
tests down, so I've versioned off the ones that I believe are currently
causing issues for the autotester.
It looks like it may be possible to make the file times retrieved more
precise, which would lessen the need for sleeps. It would probably also
be prudent to combine a number of the tests, which would cut back on the
number sleeps needed. Hopefully, this change is enough to deal with
autotester's issues for now though.
This enables the test suite to build with the -property switch enabled.
std.cpuid: vendor()/processor() have not been converted to properties in accordance to core.cpuid.
std.xml: Element.text() cannot be a property due to the optional parameter.
The pragmas have not been as effective as we might have liked, since
they only work with templates and can't tell you where in your code you
need to make changes, and they seemed to have been more annoying to
programmers than helpful, so we're going to discontinue them. We'll
leave them in for stuff that's actually been deprecated until deprecated
has been improved enough to take a message, but we'll leave "scheduled
for deprecation" messages to the documentation and changelog.
Previously, the code was special-cased to use `stat64()` on OS X for no apparent reason (I searched the logs, but couldn't find anything obvious). This also caused the new `symlink()` unit tests to fail.
Simplify the common pattern `(cast(T*)GC.malloc(T.sizeof * n, NO_SCAN))[0 .. n]` to the new function `uninitializedArray!(T[])(n)`.
Note that there was some `NO_SCAN` attributes originally determined at runtime using `typeid()`, but now is determined statically using `hasIndirection!()` from the implementation of `uninitializedArray`.
There were also some `GC.malloc` usage looks like `uninitializedArray` in `std.parallelism` but I'm leaving it alone for someone who is more familiar with this module ;).
Base on discussions on the Announce group with regards to deprecation,
it sounds like it would be reasonable to skip the deprecation step with
simple function renaming that the compiler will catch and tell you the
corrected name with its spellchecker. So, I'm removing the alias for
isSymLink and just fixing the name straight up. It's unlikely that all
that many people are using it yet anyway, since it hasn't been around
for very long.