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.016

previous version: 2.015 – next version: 2.017

Download D 2.016
released Jul 8, 2008

New/Changed Features

  • re-implemented internal.monitor in D. Rationalized internal.object
  • Bugzilla 288: changed return type of opEquals from int to bool. This necessitates doing a grep for opEquals and changing all the return values.
  • Added .__vptr and .__monitor properties for class objects for use in the internal runtime library.
  • Made rdmd's source available through svn, see
  • Simplified std.algorithm by fusing together higher-order functions taking an alias and their counterparts taking a string
  • Added module std.array containing array operations: insert, erase, and replace
  • Changed the enforce's implementation to generate smaller code per call
  • Changed std.functional.binaryFun to work with strings and function aliases alike
  • In std.getopt, added optChar, assignChar, and endOfOptions, per popular demand :o|
  • In std.math, replaced a bunch of consts with enums
  • In std.numeric, added Don Clugston as author and operated minor documentation fixes
  • Improved std.stdio.chunks to take an iteration tally in addition to the chunk

Bugs Fixed

  • D.announce/12322: mixin regression
  • Bugzilla 203: std.format.doFormat() pads width incorrectly on Unicode strings
  • Bugzilla 211: Linking error with alias mixin params and anonymous methods
  • Bugzilla 224: Incorrect warning "no return at end of function"
  • Bugzilla 252: -w and switch returns = bogus "no return at end of function" warning
  • Bugzilla 253: Invalid <dl> tag generated by Ddoc
  • Bugzilla 294: DDoc: Function templates get double and incomplete documentation
  • Bugzilla 398: No way to abort compilation in a doubly recursive mixin
  • Bugzilla 423: dmd ignores empty commandline arguments
  • Bugzilla 515: Spec incorrect in where .offsetof can be applied
  • Bugzilla 520: Invariants allowed to call public functions
  • Bugzilla 542: Function parameter of a deprecated type (other than a class) is not caught
  • Bugzilla 543: Function return of a deprecated type is not caught
  • Bugzilla 544: Variable declared of a deprecated type (other than a class) is not caught
  • Bugzilla 545: Attempt to access a static built-in property of a deprecated struct, union, enum or typedef is not caught
  • Bugzilla 547: Accessing a deprecated member variable through an explicit object reference is not caught
  • Bugzilla 548: Accessing a value of a deprecated enum is not caught
  • Bugzilla 566: Adding non-static members and functions to classes using a template doesn't error
  • Bugzilla 570: Bogus recursive mixin error
  • Bugzilla 571: class instance member template returns strange value
  • Bugzilla 572: parse error when using template instantiation with typeof
  • Bugzilla 581: Error message w/o line number in dot-instantiated template
  • Bugzilla 617: IFTI doesn't use normal promotion rules for non-template parameters
  • Bugzilla 870: contradictory error messages for templates
  • Bugzilla 951: Missing line number: no constructor provided for a class derived from a class with no default constructor
  • Bugzilla 1097: Missing line number: casting array to array of different element size
  • Bugzilla 1158: Missing line number: invalid mixin outside function scope
  • Bugzilla 1176: Error missing file and line number
  • Bugzilla 1187: Segfault with syntax error in two-level mixin.
  • Bugzilla 1194: fcmov* emmits incorrect code
  • Bugzilla 1207: Documentation on destructors is confusing
  • Bugzilla 1341: typeof(int) should probably be legal
  • Bugzilla 1601: shr and shl error message is missing line numbers
  • Bugzilla 1612: No file/line number for using an undefined label in inline assembly
  • Bugzilla 1912: Error without line number (Tuple, invalid value argument)
  • Bugzilla 1936: Error with no line number (array dimension overflow)
  • Bugzilla 2076: asm: offset has wrong docs and error without line number
  • Bugzilla 2161: Modify compiler to pass array TypeInfo to _adEq and _adCmp instead of element TypeInfo
  • Bugzilla 2178: 3 errors without line number: typeof
  • Bugzilla 2188: man-or-boy test fails with access violation
  • Fixed bugs in std.file.rename and std.file.remove on Linux
  • Fixed documentation in std.typecons
previous version: 2.015 – next version: 2.017