Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Forums
  - IRC
  - Community Discord
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Security Team
  - Donate
  - Sponsors
- Resources
  - Tour
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - run.dlang.io
  - Visual D
  - Acknowledgments
  - D Style
  - Glossary
  - Sitemap

Search
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

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

- Bugzilla 5522: std.range.zip fails on arrays of Object.
- Bugzilla 6009: std/container disabled on freebsd/64
- Bugzilla 6160: std.conv.to: Ignore _ to match the rest of D
- Bugzilla 6181: assert fails in datetime.d while runining Phobos unittest
- Bugzilla 6258: std.conv.to!real("-") fetches the front of an empty array.
- Bugzilla 6275: Const values in tuples
- Bugzilla 6288: std.conv.to removes const/immutable when converting a class
- Bugzilla 6609: std.conv.parse!Integer should consider sign when radix == 10
- Bugzilla 6634: std.path.globMatch throws wrong assertion
- Bugzilla 6640: More formatting consistency between string and range of char
- Bugzilla 6761: Strange behavior of RedBlackTree causing a dangling pointer
- Bugzilla 6819: BigInt ^^ fails for some big numbers (powers)

#### 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

Copyright © 1999-2023 by the D Language Foundation | Page generated by Ddoc on Fri Sep 15 21:14:14 2023