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

previous version: 2.035 – next version: 2.037

Download D 2.036
released Nov 5, 2009

New/Changed Features

  • Static arrays are now passed by value to functions rather than by reference
  • std.algorithm: Add hasLength requirement to topN; implemented topN for two non-adjacent ranges; added replaceTop function to BinaryHeap; changed BinaryHeap.top to return ref.
  • std.ctype: Add pure to isalnum, isalpha, iscntrl, isdigit, islower, ispunct, isspace, isxdigit, isgraph, isprint, isascii, toupper.
  • std.date: Implementation change and unittest for isLeapYear and daysInYear. Made both pure as well.
  • std.encoding: Added function count().
  • std.md5: Added explicit pass-by-ref for fixed-size buffers.
  • std.numeric: Added gcd.
  • std.random: Added static checks for the parameters of the linear congruential generator.
  • std.range: Reinstated some unittests; fixed Cycle to work with the new fixed-size arrays.
  • std.typecons: Added alias 'expand' for Tuple.field.
  • std:utf: Added count function and changed the encode function to take fixed-size array by reference.
  • Bugzilla 3446: Rename float.min to float.min_normal

Bugs Fixed

  • std.range: Fixed unlisted bug in Transposed.
  • Problem with complicated array op expressions
  • Bugzilla 195: DDoc generates bad output when example contains "protected" attribute
  • Bugzilla 424: Unexpected OPTLINK Termination at EIP=0044C37B (too many fixups)
  • Bugzilla 1117: ddoc generates corrupted docs if code examples contain attributes with colons
  • Bugzilla 1812: DDOC - Unicode identifiers are not correctly marked.
  • Bugzilla 2694: alias pure nothrow XXX; is not pure nothrow!
  • Bugzilla 2862: ICE(template.c) using type tuple as function argument
  • Bugzilla 3035: cannot have const/invariant out parameter of type shared
  • Bugzilla 3102: Incorrectly matching type as shared (two cases with is expressions)
  • Bugzilla 3269: pure functions silently become nothrow
  • Bugzilla 3292: ICE(todt.c) when using a named mixin with an initializer as template alias parameter
  • Bugzilla 3349: typeid(shared(T)) generates wrong value
  • Bugzilla 3367: Regression: struct initialization no longer supports ctor overloads
  • Bugzilla 3397: Unintended function call to static opCall
  • Bugzilla 3401: Compiler crash on invariant + method overload
  • Bugzilla 3422: ICE(cgcod.c) Structs with default initializers bigger than register size cannot be default parameters
  • Bugzilla 3423: Destructor and postblit don't get copied to the header file when using -H
  • Bugzilla 3426: ICE(optimize.c): struct literal with cast, as function default parameter.
  • Bugzilla 3429: Core dump on passing template literal to member function.
  • Bugzilla 3432: ICE(e2ir.c): casting template expression
previous version: 2.035 – next version: 2.037