Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

Change Log: 2.057

previous version: 2.056 – next version: 2.058

Download D 2.057
released Dec 13, 2011

New/Changed Features

  • Better use of XMM registers in 64 bit targets.
  • The invariant keyword as a synonym for immutable is now deprecated - use immutable instead
  • Add Mach-O 64 bit support for obj2asm and dumpobj
  • classes, interfaces, and exceptions are supported in CTFE
  • Bugzilla 3474: PATCH: Implement opDollar for struct and class indexing operations
  • Bugzilla 6572: Deprecate typedef
  • Major overhaul of std.regex module's implementation. Breaking change in std.regex.replace with delegate, use Captures!string instead of RegexMatch!string as delegate parameter.
  • As typedef has been deprecated, overloads of which use typedef have now been deprecated.
  • std.array.insert has been deprecated. Please use std.array.insertInPlace instead.
  • The overload of std.array.replace which replaces in place has been deprecated. Please use std.array.replaceInPlace instead.
  • The toISOExtendedString and fromISOExtendedString functions on SysTime, Date, TimeOfDay, and DateTime in std.datetime have been deprecated. Please use toISOExtString and fromISOExtString instead.
  • std.file.getTimesPosix has been deprecated. Please use std.file.getTimes instead.
  • The overloads for isDir, isFile, and isSymlink in std.file which take a uint have been deprecated. Please use attrIsDir, attrIsFile, and attrIsSymlink instead.
  • Bugzilla 2550: implicit conversions don't apply to template value parameter specialization
  • Bugzilla 3467: Non-int integral template parameters not correctly propagated
  • Removed top const from dynamic array types and pointer types in IFTI.

Druntime Bugs Fixed

  • Bugzilla 6909: incorrect definition of the OVERLAPPED struct in ?

Library Bugs Fixed

  • Unlisted bug: std.conv: Fix to!float("-0")
  • Unlisted bug: std.file broken on OS X x86_64 due to wrong stat64 declaration.
  • Bugzilla 2936: std.regex.match() short string optimization
  • Bugzilla 4765: std.math.modf always returns 0
  • Bugzilla 5193: SList cannot have struct elements that have immutable members.
  • Bugzilla 5620: Implicit conversion of RegexMatch to bool.
  • Bugzilla 5712: [patch] std.regex.replace disallows w/dstring
  • Bugzilla 6204: emplace() for classes accepts larger chunk but fails in array assignment
  • Bugzilla 6887: Regression of getopt
  • Bugzilla 6888: std.getopt.getopt: one-letter hash option causes range violation
  • Bugzilla 6935: struct with @disable this cannot make range
  • Bugzilla 6953: std.concurrency needs more documentation
  • Bugzilla 6973: static assert(isOutputRange!(OutputRange!int, int)) is false
  • Bugzilla 6976: GetLastError called as property
  • Bugzilla 6977: getErrno called as property in std.stdio
  • Bugzilla 6979: hasUnsharedAliasing cannot accept plural parameters
  • Bugzilla 6990: std.string.splitlines deprecation doc missing a word
  • Bugzilla 7000: missing import of std.stdio in std.regex?
  • Bugzilla 7039: Posix 2.057 Makefile error breaking 64bit build
  • Bugzilla 7040: Phobos must use "version/else version" blocks for proper documentation generation.
  • Bugzilla 7045: AssertError in std.regex on line 1573
  • Bugzilla 7055: to!float("INF2") == 2

DMD Bugs Fixed

previous version: 2.056 – next version: 2.058