Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Forums
  - IRC
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Donate
- Resources
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - 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.040

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

Copyright © 1999-2018 by the D Language Foundation | Page generated by Ddoc on Tue Jan 2 20:54:25 2018