Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Calendar
  - Forums
  - IRC
  - Community Discord
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Security Team
  - Donate
  - Sponsors
- Resources
  - Tour
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - run.dlang.io
  - 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.030

Download D 2.030
released May 11, 2009

#### New/Changed Features

- added -vtls compiler switch
- classic global storage now defaults to TLS (Thread Local Storage). This is a big change, see Migrating To Shared.
- std.algorithm: added minPos. Improvements to Splitter suggested by Brad Roberts. Splitter now is bidirectional. Also Splitter has one extra trailing element if it ends with a separator. Added variadic arguments for setUnion and setIntersection. Added functions setSymmetricDifference and largestPartialIntersection. Improved BinaryHeap's interface and implementation.
- std.array: Improvements to Appender. Now it works with string and other immutable-element arrays, and accepts ranges in put().
- std.format: added raw specifier for reading
- std.range: Added iota with two arguments. Added FrontTransversal and Transversal.
- std.stdio: added File.byChunk
- std.traits: Added isImplicitlyConvertible.
- std.tuple: Added Tuple.opComp.
- Folded in compiler changes by Unknown W. Brackets to support Solaris.
- added .typeinfo to ClassInfo Bugzilla 2836: Navigate from ClassInfo to TypeInfo

#### Bugs Fixed

- Fix instruction scheduler bug on Linux
- unlisted: made std.numeric.entropy work on const/immutable arrays
- Fixed several problems associated with thread local storage
- Bugzilla 642: error: mixin "static this" into where it cannot be
- Bugzilla 713: circular const definitions with module operator "." cause the compiler to segfault
- Bugzilla 752: Assertion failure: 'e->type->ty != Ttuple' on line 4518 in file 'mtype.c'
- Bugzilla 858: Forward reference to struct inside class crashes the compiler
- Bugzilla 884: Segfault in recursive template
- Bugzilla 934: Segfault taking mangleof a forward reference in a template.
- Bugzilla 1011: illegal import declaration causes compile time segfault
- Bugzilla 1054: regression: circular aliases cause segfaults
- Bugzilla 1061: "asm inc [;" segfaults compiler.
- Bugzilla 1305: Compiler hangs with templated opCmp returning templated class
- Bugzilla 1385: Stack Overflow with huge array literal.
- Bugzilla 1428: Segfault on template specialization with delegates and tuples
- Bugzilla 1791: Segmentation fault with anon class in anon class and non-constant variable init
- Bugzilla 1916: segfault on invalid string concat
- Bugzilla 1946: Compiler crashes on attempt to implicit cast const typedef to non-const.
- Bugzilla 2048: DMD crash on CTFE that involves assigning to member variables of void-initialized struct
- Bugzilla 2061: wrong vtable call with multiple interface inheritance
- Bugzilla 2215: Forward reference enum with base type within a struct causes Segmentation Fault in the compiler
- Bugzilla 2309: Crash on a template mixing in a variadic template with an undefined template identifier
- Bugzilla 2346: ICE when comparing typedef'd class
- Bugzilla 2580: Documented WinMain for D2 is wrong
- Bugzilla 2633: incorrect ModuleInfo declaration in object.di
- Bugzilla 2695: pure functions can invoke impure function pointers
- Bugzilla 2807: Marking a nested function as 'pure' may cause bad code generations silently accepted
- Bugzilla 2821: struct alignment inconsistent with C for { int, long }
- Bugzilla 2851: Segfault using C-style struct initializer with too few arguments
- Bugzilla 2865: RandomCover not random
- Bugzilla 2882: std.random.MersenneTwisterEngine without seed
- Bugzilla 2890: deadlock in std.stdio
- Bugzilla 2893: qualified types don't have an Unsigned counterpart
- Bugzilla 2906: writef problem with formatting floating point
- Bugzilla 2914: to!string(struct) is broken
- Bugzilla 2920: recursive templates blow compiler stack
- Bugzilla 2922: Egregiously bad hashing performance with strings

Copyright © 1999-2020 by the D Language Foundation | Page generated by Ddoc on Sun Jan 5 12:40:50 2020