www.digitalmars.com

D Programming Language 2.0


Last update Fri Jun 11 21:15:02 2010

D Change Log

Version D 2.047 Jun 11, 2010

New/Changed Features

  • Changed "op=" to just "op" for template argument to opOpAssign
  • std.algorithm: Added save() to forward ranges; added split() using only one element as separator; added indexOf; fixed unlisted bug in startsWith and endsWith; added skipOver(); added canFind().
  • std.array: Added implementation of save() for T[]s.
  • std.concurrency: Eliminated spurious unittest stdout messages.
  • std.container: Added.
  • std.conv: Added file and line information to conversion errors; added brackets '[' and ']' around arrays and associative arrays as defaults; added emplace() for non-class types.
  • std.file: Replaced exception upon out-of-memory error with assert(0).
  • std.functional: toDelegate now accepts callable(function pointers, delegates and objects implement opCall)
  • std.path: Made basename() generic in string type.
  • std.range: Added the existence of the property save as a condition for isForwardRange; added save to the range defined within; replaced a couple of awkward front() implementations; defined module-level moveFront() and range member moveFront() where appropriate; added @property maxLength to Take; arranged things such that take() for slice-able ranges returns the same type as the slice; eliminated SListRange; defined iota() with one argument; moved BinaryHeap within.
  • std.regex: Qualified indexOf with std.algorithm.
  • std.regexp: Qualified indexOf with std.algorithm.
  • std.stdio: Added an error message to enforce() in rawRead().
  • std.string: Improved indexOf(), tolower(), splitter(), chomp().
  • std.traits: Added templates to get compile-time information about functions.
  • std.typecons: Added AutoImplement.
  • std.utf: Eliminated decodeFront() and decodeBack() - they aren't needed since strings are bidirectional ranges.
  • Bugzilla 2008: Poor optimization of functions with ref parameters
  • Bugzilla 3793: Functions with static arrays as arguments are not inlined
  • Bugzilla 4296: Reduce parasitic error messages

Bugs Fixed

  • Bugzilla 1193: regression: "matches more than one template declaration" doesn't list the location of the conflicting templates
  • Bugzilla 1894: scope(exit) is ignored except in compound statements
  • Bugzilla 1941: missing line on inaccesable external private module member
  • Bugzilla 2127: inliner turns struct "return *this" from by-value into by-ref
  • Bugzilla 2276: Error message missing line number on array operation
  • Bugzilla 2546: Array Ops silently fail when no slice symbol is used.
  • Bugzilla 2738: Rebindable should work for interfaces.
  • Bugzilla 2835: std.socket.TcpSocket doesn't actually connect
  • Bugzilla 2881: x.stringof returns typeof(x).stringof when x is an enum
  • Bugzilla 3064: Invalid array operation accepted, generates bad code
  • Bugzilla 3088: std.xml.check() fails on xml comments
  • Bugzilla 3139: compiler dies "Error: out of memory" with case range
  • Bugzilla 3200: std.xml doesn't follow spec for Tag.text
  • Bugzilla 3323: Segfault or ICE(e2ir.c) using struct with destructor almost anywhere
  • Bugzilla 3398: Attributes inside a union screws data alignment
  • Bugzilla 3465: isIdeographic can be wrong in std.xml
  • Major improvements to CustomFloat, fixing Bugzilla 3520: std.numeric.CustomFloat horribly broken
  • Bugzilla 3538: Default value of alias template parameter is instantiated only once.
  • Bugzilla 3547: for option -od for relative path the path is added twice
  • Bugzilla 3548: ICE occurs when an array is returned from a function is incorrectly used in an array op expression.
  • Bugzilla 3604: extern(C) callable function with array parameters broken
  • Bugzilla 3651: mangleof broken for enums
  • Bugzilla 3653: Problem sorting array of Rebindable
  • Bugzilla 3658: Crashing on vector operations (Mac only)
  • Bugzilla 3662: Wrong compile error within struct constructor and C-style initializer
  • Bugzilla 3667: Regression(D2 only): broken out(result) in contracts
  • Bugzilla 3786: bug in std.string.removechars
  • Bugzilla 3854: Error on static initialization of arrays with trailing comma.
  • Bugzilla 3873: std.range.repeat should have popBack defined
  • Bugzilla 3876: std.range.Take back/popBack methods don't work correctly
  • Bugzilla 3880: std.regex functions with const/immutable Regex object
  • Bugzilla 4003: The result changes only with the order of source files.
  • Bugzilla 4045: [CTFE] increasing array length
  • Bugzilla 4052: [CTFE] increment from array item
  • Bugzilla 4056: Template instantiation with bare parameter not documented
  • Bugzilla 4073: core.cpuid crashes
  • Bugzilla 4078: [CTFE] Failed return of dynamic array item
  • Bugzilla 4084: Ignored missing main() closing bracket
  • Bugzilla 4109: writeln doesn't work with empty static array
  • Bugzilla 4143: fix warnings in dmd build
  • Bugzilla 4156: Segfault with array+=array
  • Bugzilla 4169: building dmd with a modern gcc produces a buggy compiler
  • Bugzilla 4175: linux.mak doesn't declare sufficient dependencies to support parallel builds
  • Bugzilla 4188: std.file.remove throws Exception on success
  • Bugzilla 4193: Regression 2.046, ICE(expression.c): initialising class member with const forward reference
  • Bugzilla 4202: Changset 1517 doesn't compile
  • Bugzilla 4207: std.cover.setDestDir does not work.
  • Bugzilla 4208: druntime should not depend on Phobos
  • Bugzilla 4212: DWARF: void arrays cause gdb errors
  • Bugzilla 4213: Strange behaviour with static void[] arrays
  • Bugzilla 4219: hasAliasing does not care about immutable
  • Bugzilla 4220: I cannot apply @safe to intrinsic operation(eg: std.math.sqrt)
  • Bugzilla 4228: std.array.replace contains 2 bugs
  • Bugzilla 4230: version(unittest)
  • Bugzilla 4231: Solitary opUnary Postincrement and Postdecrement user defined operators are broken.
  • Bugzilla 4242: ICE(module.c): importing a module with same name as package
  • Bugzilla 4249: std.regex fails to compile with debug=regex
  • Bugzilla 4252: [CTFE] No array bounds checking in assignment to char[] array
  • Bugzilla 4257: ICE(interpret.c): passing parameter into CTFE as ref parameter
  • Bugzilla 4259: Header generation omits leading '@' for properties
  • Bugzilla 4262: Header generation omits 'enum' for enum declarations
  • Bugzilla 4263: Header generation omits '@system' attribute
  • Bugzilla 4270: Missing line number in 'can only catch class objects' error message
  • Bugzilla 4300: BigInt * int doesn't work well
Version D 2.046 May 10, 2010

New/Changed Features

  • Add hints for missing import declarations.
  • Speed up compilation.
  • All length methods in Phobos are now a @property.
  • Bugzilla 1001: print stack trace (in debug mode) when program die

Bugs Fixed

  • Fix hanging problem on undefined identifiers.
  • Bugzilla 461: Constant not understood to be constant when circular module dependency exists.
  • Bugzilla 945: template forward reference with named nested struct only
  • Bugzilla 1055: union forward reference "overlapping initialization" error
  • Bugzilla 2085: CTFE fails if the function is forward referenced
  • Bugzilla 2386: Array of forward referenced struct doesn't compile
  • Bugzilla 3945: AssertExpression message should implicitly convert to const char[]
  • Bugzilla 4015: forward reference in alias causes error
  • Bugzilla 4016: const initializer cannot forward reference other const initializer
  • Bugzilla 4042: Unable to instantiate a struct template.
  • Bugzilla 4100: Break and continue to label should mention foreach
  • Bugzilla 4116: object.di does not match object_.d
  • Bugzilla 4146: Unavailable: core.sys.posix.sys.wait.waitid()
  • Bugzilla 4184: associative array with certain key types results in corrupt values during iteration
Version D 2.045 May 4, 2010

New/Changed Features

Bugs Fixed

  • Another try at fixing the Dwarf issues.
Version D 2.044 Apr 30, 2010

New/Changed Features

  • Improve spelling checking distance to 2.
  • Now all unittests are run, even if some fail
  • Many small improvements to error diagnostics and recovery

Bugs Fixed

  • Bugzilla 1079: gdb: Dwarf Error: Cannot find DIE at 0xb705 referenced from DIE at 0x250
  • Bugzilla 2437: ICE(tocsym.c, !needThis()) - default struct argument
  • Bugzilla 2935: ICE(out.c) using struct with constructor as function default argument
  • Bugzilla 2549: Segfault on array multiplication.
  • Bugzilla 3066: Array operation without a slice as the lvalue accepted, bad codegen
  • Bugzilla 3207: gdb: Push D patches upstream
  • Bugzilla 3415: broken JSON output
  • Bugzilla 3522: ICE(cg87.c): variable*array[].
  • Bugzilla 3987: [gdb] Invalid DWARF output for function pointers
  • Bugzilla 3974: ICE(init.c): Static array initializer with more elements than destination array
  • Bugzilla 4036: Segfault with -inline and literal of struct containing union
  • Bugzilla 4037: [gdb] Invalid DWARF output for wchar
  • Bugzilla 4038: [gdb] Invalid DWARF output for function pointers with ref args
  • Bugzilla 4067: [CTFE] Code inside try-catch blocks is silently ignored
  • Bugzilla 4072: Stack overflow on recursive template expansion inside contract
  • Bugzilla 4081: cannot compile the dmd on FreeBSD 8
  • Bugzilla 4089: crash when creating JSON output for incomplete struct
  • Bugzilla 4093: Segfault(interpret.c): with recursive struct templates
  • Bugzilla 4105: Stack overflow involving alias template parameters and undefined identifier
  • Bugzilla 4108: ICE(cod2.c): zero-length static array in function call
  • Bugzilla 4118: std.conv.to!SomeStruct("hello") crashes compiler
  • Bugzilla 4131: break does not work correctly with foreach and associative arrays
Version D 2.043 Apr 6, 2010

New/Changed Features

  • .init property for static arrays is now an array literal
  • Improved speed of associative arrays
  • std.bigint has been completely replaced with a faster implementation. Multiplication is now 5 times faster, division is 300 times faster, and squaring is 10 times faster. For large numbers (~5000 words), the speedup is 5 times larger than this.

Bugs Fixed





Version D 2.042 Mar 19, 2010

New/Changed Features

Bugs Fixed

Version D 2.041 Mar 7, 2010

New/Changed Features

Bugs Fixed

Version D 2.040 Jan 29, 2010

New/Changed Features

Bugs Fixed

Version D 2.039 Jan 1, 2010

New/Changed Features

Bugs Fixed

Version D 2.038 Dec 30, 2009

New/Changed Features

Bugs Fixed

Version D 2.037 Dec 3, 2009

New/Changed Features

Bugs Fixed

Version D 2.036 Nov 5, 2009

New/Changed Features

Bugs Fixed

Version D 2.035 Oct 14, 2009

New/Changed Features

Bugs Fixed

Version D 2.034 Oct 11, 2009

New/Changed Features

Bugs Fixed

Version D 2.033 Oct 5, 2009

New/Changed Features

Bugs Fixed

Version D 2.032 Sep 2, 2009

New/Changed Features

Bugs Fixed

Version D 2.031 July 6, 2009

New/Changed Features

Bugs Fixed

Version D 2.030 May 11, 2009

New/Changed Features

Bugs Fixed

Version D 2.029 Apr 19, 2009

New/Changed Phobos

New/Changed Features

Bugs Fixed

Version D 2.028 Apr 7, 2009

New/Changed Features

Bugs Fixed

Version D 2.027 Mar 31, 2009

New/Changed Features

Bugs Fixed

Version D 2.026 Mar 3, 2009

New/Changed Features

Bugs Fixed

Version D 2.025 Feb 14, 2009

New/Changed Features

Bugs Fixed

Version D 2.023 Jan 2, 2009

New/Changed Features

Bugs Fixed

Version D 2.022 Dec 11, 2008

New/Changed Features

Bugs Fixed

Version D 2.021 Nov 25, 2008

New/Changed Features

Bugs Fixed

Version D 2.020 Oct 20, 2008

New/Changed Features

Bugs Fixed

Version D 2.019 Sep 2, 2008

New/Changed Features

Bugs Fixed

Version D 2.018 Aug 7, 2008

New/Changed Features

Bugs Fixed

Version D 2.017 Jul 11, 2008

New/Changed Features

Bugs Fixed

Version D 2.016 Jul 8, 2008

New/Changed Features

Bugs Fixed

Version D 2.015 Jun 17, 2008

New/Changed Features

Bugs Fixed

Version D 2.014 May 16, 2008

New/Changed Features

Bugs Fixed

Version D 2.013 Apr 22, 2008

New/Changed Features

Bugs Fixed

Version D 2.012 Mar 6, 2008

New/Changed Features

Bugs Fixed

Version D 2.011 Feb 18, 2008

New/Changed Features

Bugs Fixed

Version D 2.010 Jan 20, 2008

New/Changed Features

Bugs Fixed

Version D 2.009 Jan 1, 2008

New/Changed Features

Bugs Fixed

Version D 2.008 Nov 27, 2007

New/Changed Features

Bugs Fixed

Version D 2.007 Oct 31, 2007

New/Changed Features

Bugs Fixed

Version D 2.006 Oct 16, 2007

New/Changed Features

Bugs Fixed

Version D 2.005 Oct 1, 2007

New/Changed Features

Bugs Fixed

Version D 2.004 Sep 5, 2007

New/Changed Features

Bugs Fixed

Version D 2.003 Jul 21, 2007

New/Changed Features

Bugs Fixed

Version D 2.002 Jul 1, 2007

New/Changed Features

Bugs Fixed

Version D 2.001 Jun 27, 2007

New/Changed Features

Bugs Fixed

Version D 2.000 Jun 17, 2007

New/Changed Features

Bugs Fixed

)
Forums | Comments |  D  | Search | Downloads | Home