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

previous version: 2.055 – next version: 2.057

Download D 2.056
released Oct 26, 2011

New/Changed Features

  • add -gs compiler switch
  • Bugzilla 3194: invariant should be checked at the beginning and end of protected functions
  • Bugzilla 5399: Return the result of a nonvoid function in a void function
  • Bugzilla 6752: Add separate option to control stack frame generation
  • std.exception: enforce/enforceEx now can use in @safe pure function.
  • Added optional KeepTerminator param to std.string.splitLines.
  • Added std.string.outdent.
  • std.utf: More @safe and pure.
  • std.windows.registry now use *W functions in order to deal properly with Unicode.

Druntime Bugs Fixed

  • Bugzilla 5967: Mangling of ArgClose for variadic function is swapped
  • Bugzilla 6493: Source code for the doc of core.time points to std.datetime.
  • Bugzilla 6466: core.demangle incorrect demangling of variables

Library Bugs Fixed

DMD Bugs Fixed

  • Bugzilla 546: Error message for accessing a deprecated variable is doubled
  • Bugzilla 1339: Invariant/const-ness is broken by built-in array properties sort and reverse
  • Bugzilla 1891: Array-concatenation of T* and T*[] produces corrupted result
  • Bugzilla 1993: Error calling vararg delegate with null
  • Bugzilla 2315: DMD Stack Overflow on unwanted ctfe recursion
  • Bugzilla 2553: Excess attribute propagation for interfaces
  • Bugzilla 2361: delete is allowed on invariant references.
  • Bugzilla 2737: Nonsensical Error Message on Unsafe .idup
  • Bugzilla 2740: Template Mixins do not work as advertised
  • Bugzilla 2953: tuple.length rejected as a tuple parameter in a static foreach
  • Bugzilla 3069: Array literals do not implicitly cast to void[]
  • Bugzilla 3133: Compiler does not check that static array casts are legal
  • Bugzilla 3180: Covariance of delegates/function pointers
  • Bugzilla 3550: array.dup violates const/invariant without a cast.
  • Bugzilla 3659: Too much exegesis on opEquals
  • Bugzilla 3748: inout does not work properly
  • Bugzilla 4022: [CTFE] AA get
  • Bugzilla 4197: ICE(glue.c): error in forward-referenced in/out contract
  • Bugzilla 4206: type accepted as enum initializer
  • Bugzilla 4237: Typedefs of the same name cause initializer conflict
  • Bugzilla 4269: Regression(2.031): invalid type accepted if evaluated while errors are gagged
  • Bugzilla 4284: empty string[] alias lacks .length in a template
  • Bugzilla 5453: ICE(statement.c): invalid switch statement forward referenced by CTFE
  • Bugzilla 5696: Templates typetuple iteration
  • Bugzilla 5703: std.intrinsic. and core.bitop.bsf, bsr and bswap should be CTFE-able
  • Bugzilla 5886: Template this parameter cannot be made implicit, when other parameters are explicitly given
  • Bugzilla 5932: Internal error: s2ir.c 339
  • Bugzilla 6062: segv in dmd/64 with assoc array literals
  • Bugzilla 6073: Cannot pass __traits(parent, ...) as a template parameter if it is a module
  • Bugzilla 6084: Impossible to instantiate local template with TypeTuple-foreach iterator variable.
  • Bugzilla 6087: typeof(this) doesn't work outside member function
  • Bugzilla 6139: Duplicate error message on compile-time out of bounds array index
  • Bugzilla 6289: Make slices of const/immutable arrays mutable (but keep the elements const/immutable)
  • Bugzilla 6296: ICE(glue.c): invalid template instantiated in is(typeof()).
  • Bugzilla 6352: Regression(2.054) Implicit pure/nothrow/@safe messes up delegate arrays
  • Bugzilla 6360: @property is doubled in di files when used with auto
  • Bugzilla 6404: Cannot check ref-ness of auto ref parameter in template constraint
  • Bugzilla 6488: DMD compiler bug
  • Bugzilla 6518: break inside a static foreach inside a switch
  • Bugzilla 6529: writeln(const array of enums) too
  • Bugzilla 6584: ICE on large version number/debug level
  • Bugzilla 6596: Error message with not extern(C) function
  • Bugzilla 6599: Segfault: invalid expression in initializer
  • Bugzilla 6630: Assigning null to class with nested alias this class is misinterpreted
  • Bugzilla 6656: static alias this broken in 2.055
  • Bugzilla 6661: Templates instantiated only through is(typeof()) shouldn't cause errors
  • Bugzilla 6665: Regression(2.055) ICE(cg87.c): static double inside closure
  • Bugzilla 6672: [CTFE] ICE on compile time std.algorithm.sort
  • Bugzilla 6674: Regression(2.055) mixin and __traits(allMembers) generates incorrect result
  • Bugzilla 6675: Regression(2.054) ICE(glue.c) template parameter deduction with errors gagged
  • Bugzilla 6682: Template function that has lazy parameter is not inferred as pure
  • Bugzilla 6690: Using lazy parameter should be inferred as @safe
  • Bugzilla 6691: static constructor inside template cannot initialize immutable template members
  • Bugzilla 6693: [CTFE] Cannot set value to nested AA
  • Bugzilla 6695: typeof(this) does not take into account const/immutable attributes inside member functions
  • Bugzilla 6698: Regression(2.053): segfault with naked asm in inner function
  • Bugzilla 6700: Regression(2.053) using $ inside a slice of a tuple
  • Bugzilla 6719: "Error: out of memory" in parsing
  • Bugzilla 6721: [CTFE] Cannot get pointer to start of char[]
  • Bugzilla 6727: [CTFE] ICE(interpret.c): assignment from string literal.dup.ptr
  • Bugzilla 6733: Regression(2.054) ICE(cod2.c) pure nothrow func with side-effect parameters
  • Bugzilla 6739: [CTFE] Cannot set a value to an outer AA of a nested AA
  • Bugzilla 6746: static this() inside struct skipped upon static method call
  • Bugzilla 6749: [CTFE] problem with array of structs
  • Bugzilla 6751: [CTFE] ref argument of AA doesn't work
  • Bugzilla 6753: Regression(2.055beta) "Reinterpret" cast of array to a tail const one doesn't work inside @trusted
  • Bugzilla 6759: missing initialization in foreach with alias this
  • Bugzilla 6765: [CTFE]: AA.length doesn't compile when AA is null
  • Bugzilla 6769: [CTFE] AA.keys doesn't compile when -inline is used
  • Bugzilla 6770: inout is allowed on fields
  • Bugzilla 6773: inout variable should not be modifiable
  • Bugzilla 6775: [CTFE] foreach over an AA fails to compile
  • Bugzilla 6782: inout-correct range is not iterable using foreach with type deduction inside non-inout function
  • Bugzilla 6813: Yet another "cannot get frame pointer" error
  • Bugzilla 6822: New ubuntu linking rules prevent dmd from linking programs on Ubuntu 11.10
  • Bugzilla 6825: Regression(2.055+): Address of templated method incorrectly taken
previous version: 2.055 – next version: 2.057