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

previous version: 2.039 – next version: 2.041

Download D 2.040
released Jan 29, 2010

New/Changed Features

  • Clarification: function returns are not lvalues
  • Added shared static constructors/destructors, regular static constructors/destructors now deal with TLS
  • Add -map command line switch
  • Add @disable attribute
  • Delegates and function pointers may be used in CTFE
  • Delegate literals and function literals may be used in CTFE
  • Lazy function parameters may now be used in CTFE
  • Slicing of char[] arrays may now be used in CTFE
  • added static/final function implementations to interfaces
  • added getOverloads, identifier, and isStaticFunction traits.
  • ModuleInfo changed from class to struct
  • Bugzilla 3556: version(CTFE)
  • Bugzilla 3728: getOverloads and identifier traits

Bugs Fixed

  • Added TLS support for OSX
  • Bugzilla 47: Internal error: cg87 3316
  • Bugzilla 1298: CTFE: tuple foreach bugs
  • Bugzilla 1790: CTFE: foreach(Tuple) won't compile if Tuple contains string
  • Bugzilla 2101: CTFE: Please may I use mutable arrays at compile time?
  • Bugzilla 2066: to!(string)(int) into CTFE-compatible
  • Bugzilla 3488: Segfault(expression.c): enum declared with struct static initializer
  • Bugzilla 3535: struct constructors don't work in CTFE
  • Bugzilla 3552: ICE(mtype.c): declaring a variable called 'AssociativeArray' then using an AA.
  • Partial fix for Bugzilla 3569, stops the stack overflow
  • Bugzilla 3600: template instantiation with empty tuple
  • Bugzilla 3660: Templates and shared functions don't mix
  • Bugzilla 3668: foreach over typedef'd array crashes dmd
  • Bugzilla 3671: x^^3 gives wrong result when x is a floating-point literal
  • Bugzilla 3674: forward reference error with multiple overloads with same name
  • Bugzilla 3675: Regression: Struct literals cannot be initialized with another struct literal
  • Bugzilla 3687: Array operation "slice times scalar" tramples over memory
  • Bugzilla 3719: forward references can cause out-of-memory error
  • Bugzilla 3723: Regression: forward referenced enum
  • Bugzilla 3724: bug in Expression::arraySyntaxCopy (null pointer dereference on struct->union->struct)
  • Bugzilla 3726: Regression: ICE(mangle.c 81): struct forward reference with static this
  • Bugzilla 3727: lots of "deffering SomeStructName" messages when compiling
  • Bugzilla 3734: [patch] src/traits.c does not compile with gcc (Ubuntu 4.4.1-4ubuntu8) 4.4.1
  • Bugzilla 3740: Regression: class with fwd reference of a nested struct breaks abstract
previous version: 2.039 – next version: 2.041