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

previous version: 2.047 – next version: 2.049

Download D 2.048
released Aug 8, 2010

New/Changed Features

  • std.complex: New Complex.toString() syntax.
  • std.string: icmp() now works with all built-in string types.
  • Bugzilla 4077: Bugs caused by bitwise operator precedence
  • Bugzilla 4080: Patch for building dynamic libraries on Mac OS X

Bugs Fixed

  • Unlisted Bug: std.algorithm.filter not a forward range
  • Unlisted Bug: std.algorithm.Uniq requires a bidirectional range
  • Unlisted Bug: std.algorithm.Uniq missing a save() function
  • Unlisted Bug: std.algorithm.Group missing a save() function
  • Unlisted Bug: std.traits.isAssociativeArray reports true for structs w/ keys, values properties
  • Unlisted Bug: gc_query returns 0 for attr when called on interior pointers
  • D/112964: capacity can return a value < length
  • Bugzilla 978: std.utf's toUTF* functions accept some invalid and reject some valid UTF
  • Bugzilla 996: Error in doc on implicit conversion between pointer and array
  • Bugzilla 1418: tupleof bug on nested classes
  • Bugzilla 1678: ref with varargs generates invalid code
  • Bugzilla 2275: std.utf.toUTF16z() should return const(wchar)*
  • Bugzilla 2627: std.traits.hasAliasing reports true for static arrays
  • Bugzilla 2872: Length, opIndex for Map
  • Bugzilla 2931: Initialization struct with array from another struct
  • Bugzilla 3202: std.math.pow cause dead loop
  • Bugzilla 3326: $ in delegate literal causes Access Violation
  • Bugzilla 3355: std.string.cmp works incorrectly for mixed-type and different-length strings
  • Bugzilla 3386: to!bool(string) is not implemented
  • Bugzilla 3436: std.functional.compose with only one function
  • Bugzilla 3439: std.range.Sequence.opIndex not consistent after calling popFront().
  • Bugzilla 3447: std.file uses unconventional file permissions
  • Bugzilla 3528: FreeBSD patches for druntime.
  • Bugzilla 3560: foreach over nested function generates wrong code
  • Bugzilla 3569: DMD Stack Overflow with a struct member function inside a C-style struct initializer
  • Bugzilla 3604: extern(C) callable function with array parameters broken
  • Bugzilla 3679: Regression(2.031) template forward reference regression
  • Bugzilla 3706: delegates of interfaces with multiple inheritance fail
  • Bugzilla 3716: Regression (2.037) with multi dimensional array literals
  • Bugzilla 3782: The POSIX sys/un.h header
  • Bugzilla 3853: core.sys.posix.stdio.pclose is missing
  • Bugzilla 3872: std.algorithm.filter could become bidirectional if its input range is bidir
  • Bugzilla 3874: std.range.stride assumes a bidirectional input range
  • Bugzilla 3917: opEquals for Ojbect could be more efficient
  • Bugzilla 3937: os.path.dirname fails on absolute path
  • Bugzilla 3961: Error with to!(somestruct)
  • Bugzilla 3983: Regression(2.037): struct with == can't be member of struct with template opEquals
  • Bugzilla 4109: (reopened) writeln doesn't work with empty static array
  • Bugzilla 4171: std.random.uniform does not work for a range of characters
  • Bugzilla 4191: [FreeBSD] real constants are rounded to double precision
  • Bugzilla 4198: [FreeBSD] imprecision in decimal floating-point literals
  • Bugzilla 4238: Segfault(statement.c): with(typeof(int))
  • Bugzilla 4260: windows & basename
  • Bugzilla 4267: forward reference error when 2-fold aliasing a template instance
  • Bugzilla 4303: __traits(compiles) returns wrong result when used recursively
  • Bugzilla 4305: Take, Chain on top of ranges w/o moveFront()
  • Bugzilla 4307: spawn()'ed thread doesn't terminate
  • Bugzilla 4314: Regression(1.062): Expression array1 && array2 doesn't compile
  • Bugzilla 4327: std.container.Array.Range.~this() tries to call free(T[])
  • Bugzilla 4339: Struct destructor + invariant + struct parameter = horrific error message
  • Bugzilla 4356: Copy constructor not called under extremely mysterious circumstances
  • Bugzilla 4362: std.range.repeat and cycle do not have a .save() method
  • Bugzilla 4363: std.algorithm.Until is not a forward range
  • Bugzilla 4369: Multiple bugs in GC minimize()
  • Bugzilla 4370: POSIX monitor attribute not being used
  • Bugzilla 4396: mkdir race prevents concurrent compiling with DMD using make -j
  • Bugzilla 4400: D2 GC doesn't allocate with 16 bytes alignment
  • Bugzilla 4406: Typo (bug) in std.concurrency
  • Bugzilla 4412: Array capacity growth spikey and the ratio approaches 1.0
  • Bugzilla 4443: Optimizer produces wrong code for || or && with struct arrays
  • Bugzilla 4452: Incorrect result of BigInt ^^ long
  • Bugzilla 4470: Problems with std.bigint mod and divide
  • Bugzilla 4503: forward reference to aliased template instance
  • Bugzilla 4506: Regression(2.034): -O flag breaks some recursive functions
  • Bugzilla 4514: Regression: Cannot cast from X* to X
  • Bugzilla 4516: Regression(2.040): forward declaration of enum not supported
  • Bugzilla 4551: D2 Language Docs: http://www.digitalmars.com/d/2.0/arrays.html
  • Bugzilla 4569: extern(c++) doesn't understand const types, produces bad mangled symbol
  • Bugzilla 4570: ElementType!(void[]) shows error message
  • Bugzilla 4578: Regression(2.047,1.062): ICE(cgcod.c): var+arr[]
  • Bugzilla 4590: Spec incorrectly describes array appending and memory stomping
previous version: 2.047 – next version: 2.049