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.053
Download D 2.053
released May 12, 2011
New/Changed Features
- Added 64 bit tools to Linux
- Added FreeBSD support
- Renamed linux/bin to linux/bin32, added linux/bin64
- osx/lib32 renamed back to osx/lib
- Added some gc benchmark apps
- Move std.intrinsic to core.intrinsic
- Implemented exception chaining, as described in TDPL for Posix.
- Added parent to __traits for QtD support
- Allow impure code inside debug conditionals
- Added cmpxchg16b, 64 bit bswap and movq instructions to internal assembler
- Added bindings for libcurl: etc.c.curl
- Added std.net.isemail
- Added std.parallelism
- Added support for positional parameter intervals, e.g. %1:3$s prints the first three parameters using the 's' format specifier
- Added findSplit, findSplitBefore, findSplitAfter to std.algorithm; improved walkLength
- Improved online documentation for std.algorithm
- Added roundRobin, takeOne, and takeNone to std.range; improved stride
- Added unsigned to std.traits
- Removed std.iterator. Use either std.range.ElementType or std.range.ElementEncodingType depending on what you're trying to do.
- Bugzilla 2656: Remove octal literals
- Bugzilla 4097: Error: can only declare type aliases within static if conditionals
- Bugzilla 4360: Allow intrinsics in core.bitop to operate as intrinsics
- Bugzilla 4833: dmd -od doesn't make it to optlink's command line for map files
Druntime Bugs Fixed
- Bugzilla 5612: core.cpuid not implemented on 64
- Bugzilla 1001: print stack trace (in debug mode) when program die
- Bugzilla 5847: Threads started by core.thread should have same floating point state as main thread
Library Bugs Fixed
- Bugzilla 4644: assertExceptionThrown to assert that a particular exception was thrown
- Bugzilla 4944: Missing tzname even though we have tzset
- Bugzilla 5451: Three ideas for RedBlackTree
- Bugzilla 5474: unaryFun byRef is borked for custom parameter name
- Bugzilla 5485: TLS sections handled incorrectly in FreeBSD
- Bugzilla 5616: std.datetime: not cross-platform
- Bugzilla 5654: BigInt returns ZERO with strings of single digit number with leading zeros
- Bugzilla 5661: std.algorithm.move does not work on elaborate struct
- Bugzilla 5731: std.datetime.SysTime prints UTC offsets backwards
- Bugzilla 5761: std.datetime: Date.this(int day) conversion fails for Dec 30 of leap years
- Bugzilla 5780: [patch] std.traits.hasIndirections incorrectly handles static arrays
- Bugzilla 5781: std.datetime: On Windows, times off by one hour in some years due to DST rule changes
- Bugzilla 5794: std.datetime StopWatch (and perhaps benchmark) examples need a small fix
- Bugzilla 5928: Bigint modulo problem -- critical wrong-code bug
DMD Bugs Fixed
- Note: Although temporaries are destroyed now, they are not destroyed when exceptions are thrown. This is scheduled to be fixed.
- Bugzilla 2436: Unexpected OPTLINK termination EIP = 00425303 with /co
- Bugzilla 3372: optlink silently mistreats object files with more than 16384 symbols
- Bugzilla 4275: Unexpected optlink termination when 'export' attribute is missing
- Bugzilla 4808: UNEXPECTED OPTLINK TERMINATION AT EIP=0042787B
- Bugzilla 5670: Optlink 8.00.11 crash
- Bugzilla 937: C-style variadic functions broken
- Bugzilla 1330: Array slicing does not work the same way in CTFE as at runtime
- Bugzilla 1336: Inconsistent __traits usage
- Bugzilla 1389: Can't use mixin expressions when start of a statement.
- Bugzilla 1880: templates instantiated with non-constants should fail sooner
- Bugzilla 2257: Template value parameters behave like alias parameters
- Bugzilla 2414: enum is dynamically evaluated, yum
- Bugzilla 2526: non-const initializer to constant accepted inside template
- Bugzilla 2706: invalid template instantiation (and declaration?) is not rejected
- Bugzilla 2733: Unclear semantics of template value parameters
- Bugzilla 2841: char[] incorrectly accepted as a template value argument in D2
- Bugzilla 2850: bad codegen for struct static initializers
- Bugzilla 2990: TypeInfo.init() returns invalid array
- Bugzilla 3086: TypeInfo opEquals returns incorrect results
- Bugzilla 3214: Incorrect DWARF line number debugging information on Linux
- Bugzilla 3271: Struct initializers silently fail
- Bugzilla 3516: Destructor not called on temporaries
- Bugzilla 3792: Regression(1.053) "non-constant expression" for a template inside a struct using a struct initializer
- Bugzilla 3779: ["123"][0][$-1] causes __dollar unresolved in compile-time
- Bugzilla 3801: CTFE: this.arr[i] cannot be evaluated at compile time for structs
- Bugzilla 3835: ref foreach does not work in CTFE
- Bugzilla 4033: Error: base class is forward referenced
- Bugzilla 4050: [CTFE] array struct member slice update
- Bugzilla 4051: [CTFE] array struct member item update
- Bugzilla 4097: Error: can only declare type aliases within static if conditionals
- Bugzilla 4140: Error: non-constant expression "hello"[1u..__dollar]
- Bugzilla 4298: Constant array translated to unnecessary array literal creation
- Bugzilla 4322: "void initializer has no value" on struct/union members initialized to "void"
- Bugzilla 4329: Do not show error messages that refer to __error
- Bugzilla 4360: Allow intrinsics in core.bitop to operate as intrinsics
- Bugzilla 4437: copy construction bug with "return this;"
- Bugzilla 4499: calls to @disabled postblit are emitted
- Bugzilla 4543: Regression(1.054, 2.038) typedef causes circular definition and segfault
- Bugzilla 4750: fail_compilation/fail225.d causes dmd to segv
- Bugzilla 4815: CodeView: Global and Static symbols should have unmangled names
- Bugzilla 4817: CodeView: Enum members should have simple names
- Bugzilla 4833: dmd -od doesn't make it to optlink's command line for map files
- Bugzilla 4917: Symbol conflict error message refers to aliased symbol instead of the alias
- Bugzilla 5147: [CTFE] Return fixed-size matrix
- Bugzilla 5268: Outdated windows GUI sample in Samples folder
- Bugzilla 5362: checking $ in bracket is broken
- Bugzilla 5482: Crash with align(0)
- Bugzilla 5485: TLS sections handled incorrectly
- Bugzilla 5524: [CTFE] Trouble with typesafe variadic function
- Bugzilla 5647: [64-bit] Valgrind complains about illegal instruction
- Bugzilla 5649: std.conv.parse faulty for floating point with -O -m32
- Bugzilla 5657: Temporary object destruction
- Bugzilla 5664: Cannot compile static synchronized member function.
- Bugzilla 5694: va_arg doesn't work with idouble and ifloat
- Bugzilla 5671: CTFE string concat problem
- Bugzilla 5672: ICE(cod2.c): incorrect optimization of (long &1) == 1
- Bugzilla 5678: new enum struct re-allocated at compile time
- Bugzilla 5694: va_arg doesn't work with idouble and ifloat
- Bugzilla 5706: Incorrect opcode prefix generated for x86_64 inline assembly
- Bugzilla 5708: Incorrect string constant folding with -inline
- Bugzilla 5717: 1.067 regression: appending Unicode char to string broken
- Bugzilla 5722: Regression(2.052): Appending code-unit from multi-unit code-point at compile-time gives wrong result
- Bugzilla 5735: non-scalar types implicitly converted to boolean
- Bugzilla 5740: Unable to use this pointer in inline assembly
- Bugzilla 5741: Add the SYSCALL and SYSRET opcodes to the inline assembler
- Bugzilla 5798: Weakly pure function calls skipped inside a comma expression
- Bugzilla 5812: Added constant fold optimisations for ^^ expressions
- Bugzilla 5840: Cannot assign to an array member of struct in CTFE
- Bugzilla 5852: CTFE: wrong code for string[] ~= const(string)
- Bugzilla 5858: Import doesn't accept const string as argument
- Bugzilla 5865: __dollar cannot be read at compile time
- Bugzilla 5890: ICE and wrong scope problem for 2nd argument in static assert with DMD on git master
- Bugzilla 5916: DMD: bad message for incorrect operands error
- Bugzilla 5938: ICE ztc\symbol.c 1043
- Bugzilla 5940: Cannot create arrays of std.algorithm.map
- Bugzilla 5965: [2.053 beta] map rejects a predicate with anon-func and nested func
- Bugzilla 5966: [2.053 beta][CTFE] Stack overflow on trivial func
- Bugzilla 5972: CTFE: Can't assign to elements of arrays of slices
- Bugzilla 5975: [2.053 beta][CTFE] ICE: 'global.errors' on line 1416 in file 'constfold.c'
- Bugzilla 5976: "variable used before set" with foreach with ref + scope(failure) + structure method + -O -inline
- Bugzilla 5982: [2.053 beta] std.iterator gone, but no mention of the change
- Bugzilla 5987: mydll sample doesn't compile
- Clarify tuple index out of bounds error message
- Add 64 version of xchg and jmp to inline assembler. Fixed 64 bit LEA
- CTFE: Generate error messages for accessing null arrays
- Fix optimizer bug with to!float("123e2")
- Fix spelling of cmpxchgb8