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
local clone.
Change Log: 2.048
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