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

previous version: 2.040 – next version: 2.042

Download D 2.041
released Mar 7, 2010

New/Changed Features

  • __traits allMembers and and derivedMembers now return a tuple of strings rather than an array of strings. Enclose __traits in [ ] to make array literal. This makes it possible for foreach statements to iterate at compile time over it.
  • Interface member functions can now have contracts.
  • Added new operator overloading regime.
  • Warnings no longer halt the parsing/semantic passes, though they still return an error status and still do not generate output files. They also no longer count as errors when testing with "compiles" traits.
  • Added -wi switch for Bugzilla 2567
  • Mixin template definitions should be preceded with mixin
  • Add !in operator.
  • Associative array contents can now be compared for equality
  • Use of length inside of [ ] is now deprecated, use $ instead
  • Added toDelegate() to std.functional to convert function pointers to delegates.
  • Implemented attributes for constructors.
  • Implemented qualifiers for struct literals, like immutable(S)(1,2,3)
  • Array equality can now be done with differing array element types.
  • Add simple spell checking.
  • Bugzilla 3378: [tdpl] ++x should be an lvalue
  • string, wstring are now bidirectional (not random) ranges
  • std.algorithm: defined move with one argument; levenshtein distance generalized to with all forward ranges; take now has swapped arguments
  • std.array: empty for arrays is now a @property; front and back for a string and wstring automatically decodes the first/last character; popFront, popBack for string and wstring obey the UTF stride
  • std.conv: changed the default array formatting from "[a, b, c]" to "a b c"
  • std.range: swapped order of arguments in take
  • std.stdio: added readln template
  • std.variant: now works with statically-sized arrays and const data
  • std.traits: added isNarrowString
  • The default type for [1,2,3] is now int[] rather than int[3].

Bugs Fixed

  • Bugzilla 2321: spec on inline asm can be misunderstood
  • Bugzilla 2463: No line number in "statement is not reachable" warning
  • Bugzilla 3029: Bug in array value mangling rule
  • Bugzilla 3306: bad function/delegate literal generated into header files
  • Bugzilla 3373: bad codeview debug info for long and ulong
  • Posix only, Bugzilla 3420: [PATCH] Allow string import of files using subdirectories
  • Bugzilla 3450: incorrect result for is (typeof({ ... }())) inside a struct
  • Bugzilla 3453: Linking order affects proper execution (Mac OSX only)
  • Bugzilla 3491: typeof((string[string]).init) == AssociativeArray!(string, string), doesn't implicitly convert to string[string].
  • Bugzilla 3500: super behaves differently with -inline
  • Bugzilla 3558: Optimizer bug results in false if condition being taken
  • Bugzilla 3582: core.stdc.ctype functions are not pure
  • Bugzilla 3619: Thread crash on exit
  • Bugzilla 3637: Array append patch to prevent stomping and to enhance thread-local append performance
  • Bugzilla 3644: Wrong UCHAR_MAX value in module core.stdc.limits
  • Bugzilla 3670: Declarator grammar rule is broken
  • Bugzilla 3689: Grammar does not allow const(int)
  • Bugzilla 3692: ICE(mtype.c) with associative arrays when std.variant is imported
  • Bugzilla 3695: __EOF__ token not documented
  • Bugzilla 3697: StructTemplateDeclaration and others missing constraint in rule
  • Bugzilla 3710: Typo in allMembers description?
  • Bugzilla 3736: corrupted struct returned by function with optimizations (-O)
  • Bugzilla 3737: SEG-V at expression.c:6255 from bad opDispatch
  • Bugzilla 3763: std.stdio.readlnImpl absurdly inefficient and overflows stack
  • Bugzilla 3768: reapeted quotes in ddoc.html
  • Bugzilla 3769: Regression: Segfault(constfold.c) array literals and case statements
  • Bugzilla 3775: Segfault(cast.c): casting no-parameter template function using property syntax
  • Bugzilla 3776: Wrong CHAR_MIN value in module core.stdc.limits
  • Bugzilla 3781: ICE(interpret.c): using no-argument C-style variadic function in CTFE
  • Bugzilla 3803: compiler segfaults
  • Bugzilla 3840: Jump to: section in the docs should be sorted
previous version: 2.040 – next version: 2.042