New/Changed Features

std.syserror is now deprecated, replaced with
std.windows.syserror. It is Windows specific, and
lining it up with strerror() on Linux was a mistake. Windows
error numbers do not line up with C's errno values.
Thanks to Regan Heath for a decent implementation of it.

Now ?: works with null and arrays.

Changed std.outofmemory.OutOfMemory to
std.outofmemory.OutOfMemoryException, and it now
derives from Exception.

Incorporated Ben Hinkle's fixes for std.stream. Fixed a bug
introduced in dmd-120:
D.bugs/3563
about seekable stdin and Stream.toString(). Fixed a bug in
the Windows version of seek() with files larger than uint.sizeof.

IPv6 not supported but the C interface for it should all be there.
Split up socket.d and put the C stuff in std.c modules.
std.c.linux.linux updated because most of the socket functions
are actually regular I/O functions. Added classes Protocol and Service.
Added Socket.accepting() to allow derived classes to be
accepted.
Documentation and samples updated.
Fixed major bug in the linux version.

New/Changed Features

Added Ben Hinkle's improvements to std.stream. Ben writes:
"I've attached a modified version of std.stream and phobos.html that
include the bug fixes and behavior changes outlined in the newsgroup
post yesterday. The bug fixes are almost entirely backwards compatible.
The biggest difference is the change that opening a file on Windows with
FileMode.In errors when the file doesn't exist. That makes it the same
behavior as Linux and it just seems to make sense.
I also did things like added writef and changed the Error classes to
Exception."

Kris pointed out that version identifiers have global effect,
and are dependent on which order modules are imported. This is clearly
wrong. Now, only version and debug definitions on the command line
have global effect. Others only influence the module they are
declared in. Furthermore, version and debug definitions can only
be done at module scope.

New/Changed Features

Implicit conversions of floating point values to integer
values is now disallowed.

Bugs Fixed

Fixed dmd crash with module and class name conflict.

Fixed bug where f(x)(y); was interpreted as declaring
x as a function taking parameter type y and returning type f,
instead of f being an instance of a class with () overloaded.
There's still the problem of f(*p)(y), though, the solution
is to probably just deprecate the C function pointer declaration
syntax.

Fixed using super in nested function.

Function members without bodies in non-abstract classes
now reference an external
symbol rather than inserting a 0 in the vtbl[].

New/Changed Features

Added .sizeof property which has same value as
.size, but won't conflict with C/C++ struct member names.

Global main must be main() or main(char[][] args).

Added size_t, ptrdiff_t predefined aliases.
Use size_t as an alias for an unsigned integral type spanning
the address space, and ptrdiff_t as an alias for a signed
integral type spanning the address space. This will make the code
portable from 32 to 64 bits.

.length, .size, .sizeof, and .alignof
now return a value of type size_t.

For win32, converts '/' in source file names passed to dmd
to '\' so that
back end routines work consistently.

New/Changed Features

Bugs Fixed

New/Changed Features

This has the garbage collector rewritten in D.

The C++ code has been replaced with D code in the Phobos source code.
The gc is a little slower at the moment because I haven't implemented
inline functions yet. Inline functions will close the performance gap
between C and D, though D has the potential for better optimization
than C.