It looks like testing America/Santiago just isn't going to work, since
it's failing on FreeBSD. Bleh. Getting a timezone to test in South
America which actually has DST and works on all OSes is a pain (and
seemingly impossible at the moment). All of the other Chile tests were
disabled anyway.
Chile is screwing with its DST again, and I made the mistake
of leaving one of the tests using a 2012 date instead of a 2011
date (since 2011 has already happened whereas 2012 is still subject
to change).
Having the January deprecations and February deprecations in the same
month seems a bit much to me, since we managed to have both of those
months have quite a few, whereas the next few months have very few if
any. And we're close to release too, so I'd prefer to avoid causing
issues by deprecating them now.
I'll change it back to use double-checked locking once that works with
shared, but the atomicLoading stuff seemed overly complicated and
error-prone for what is supposed to be a temporary workaround for the
issues with shared.
Apparently. the compiler doesn't insert the correct memory fences for
shared yet, so double-checked locking does work right with shared yet.
This change should be undone (and the singletons changed back to using
shared) once shared has been fixed in the compiler.
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.
Large switch statements have been replaced by data-driven array lookups to reduce the amount of code generated and also improve performance. Using DMD 2.056 on OSX x86 this cuts 12KB off of a Hello World program.
The motivation for this change is to try and reduce the size of small D programs as their large size is a common (and valid) complaint amongst newcomers.
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.
1. I fixed some issues surrounding DST switches and added much more
thorough unit tests for testing what happens when a DST switch occurs.
2. I also added utcOffsetAt to TimeZone and utcOffset to SysTime to give
the total UTC offset at a specific time.
3. And last but not least, since the unit tests seem to no longer cause
dmd to run out of memory on Windows, std.datetime's unit tests have been
enabled on Windows.
This also fixes Bug# 6181: http://d.puremagic.com/issues/show_bug.cgi?id=6181
Remove use of deprecated typedef from phobos. This mostly consists of changing typedef to alias, and disabling unittests that require typedef. One change to std.registry is needed to work around a bug in typedef (6571).
Before, it wasn't possible to have negative FracSecs (which worked great
for SysTime but not so well for Duration). Now, in order to fix
Duration, negative FracSecs are possible, so SysTime has been changed to
throw if it's given a negative FracSec.