Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Forums
  - IRC
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - 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.051

Download D 2.051
released Dec 21, 2010

#### New/Changed Features

- Added std.mathspecial, containing mathematical Special Functions
- std.base64: Replaced. Boost License, Performance improvement, Range support. Function signature changed from 'encode' to 'Base64.encode'
- std.math: D implementation of pow. Almost all std.math functions are now @safe pure nothrow. tgamma, lgamma, erf, erfc have been moved to std.mathspecial
- std.exception: Added pure and nothrow to assumeUnique
- std.utf: Removed UtfError class and toUTF* shortcut functions for validation. Added pure, nothrow, @safe and @trusted attributes. count function supports dchar
- Both druntime and phobos now build successfully with dmd -m64. Still somewhat behind dmd1, very little executes correctly still.

#### Bugs Fixed

- Bugzilla 603: Undocumented behaviour: case and default create a scope
- Bugzilla 632: Typedef/enum promotions spec ambiguous - ultimate base type or lowest common denominator?
- Bugzilla 679: Spec needs allowances for copying garbage collection
- Bugzilla 690: ABI not fully documented
- Bugzilla 1351: Discrepancies in the language specification
- Bugzilla 1466: Spec claims maximal munch technique always works: not for "1..3"
- Bugzilla 2080: ICE(mangle.c) alias corrupts type inference of static variables
- Bugzilla 2206: unnamed template mixin of class inside function or class has incorrect classinfo and mangleof
- Bugzilla 2385: spec says all structs are returned via hidden pointer on linux, but it uses registers
- Bugzilla 2392: Parsing ambiguity between function pointer declaration and function call
- Bugzilla 2406: Declarator2 definition error
- Bugzilla 2556: Property classinfo needs better documentation (RTTI, typeof, typeid, runtime type information)
- Bugzilla 2616: Undocumented behaviour: part-explicit, part-implicit instantiations of function templates are accepted
- Bugzilla 2651: class body declaration grammar incorrect
- Bugzilla 2652: DeclDef grammar is wrong
- Bugzilla 2734: Ambiguity in tokenizing: _._ as a float literal
- Bugzilla 2751: const/invariant/immutable static arrays: const(T)[N] and const(T[N]) are the same, but DMD treats them as different
- Bugzilla 2954: [tdpl] Appalling bug in associative arrays (D2 only)
- Bugzilla 2994: Incomplete "Predefined Versions" documentation
- Bugzilla 3020: No description is given why function may not be nothrow
- Bugzilla 3112: Specification on what operations call the GC is missing
- Bugzilla 3276: Recursion broken by alias template parameter
- Bugzilla 3554: Ddoc generates invalid output for documentation comments with non paired parentheses
- Bugzilla 3864: Dyn array allocations can be allowed in nothrow functions
- Bugzilla 4059: Incorrect C++ name mangling
- Bugzilla 4217: Function overloads are not distinguished when instantiating templates
- Bugzilla 4254: ICE(mtype.c): function with const inout parameter
- Bugzilla 4297: Nothrow functions cannot use constant dynamic array
- Bugzilla 4384: Cyclic dependency check for modules is broken
- Bugzilla 4434: ICE(mtype.c, 887) alias with const, shared, or immutable
- Bugzilla 4445: roundTo!ubyte(255.0) throws
- Bugzilla 4529: Segfault(typinf.c) involving typeid(typeof(functionName))
- Bugzilla 4638: Regression: new writeln does not recognize "wstring toString"
- Bugzilla 4728: Segfault(toctype.c) by protected/private constructor in an other module
- Bugzilla 4781: Segfault(mtype.c) with forward referenced typeof and .init
- Bugzilla 4864: ICE(statement.c) Crash on invalid 'if statement' body inside mixin
- Bugzilla 4901: std.algorithm.sort does not compile for interfaces.
- Bugzilla 4915: auto return type escapes function purity
- Bugzilla 5020: Forward implicit bool conversions to alias this
- Bugzilla 5053: Better error message for cyclic dependencies.
- Bugzilla 5054: Splitter example doesn't work
- Bugzilla 5094: No implicit conversion with "alias property this"
- Bugzilla 5107: Const-shared classes/structs not typed as shared
- Bugzilla 5110: Excess attribute propagation of structs and classes
- Bugzilla 5117: [CTFE] Member function call with rather complex this: side effects ignored
- Bugzilla 5120: ICE(mtype.c) void associative arrays
- Bugzilla 5131: Segfault(expression.c) opAssign and associative arrays (AA) are broken for types != this
- Bugzilla 5133: dmd fails to build rdmd (problem with startsWith)
- Bugzilla 5145: Regression(2.050, 1.065) override error with forward ref of superclass
- Bugzilla 5148: Incorrect C++ mangling of multiple const char* parameters
- Bugzilla 5154: Class Range does not work in writeln
- Bugzilla 5159: Segfault(interpret.c): calling a static function pointer variable in CTFE
- Bugzilla 5163: meaningless error message with front() applied to void[].
- Bugzilla 5164: Error without line number using "is (T...)"
- Bugzilla 5180: ICE(arrayop.c) in-place array operation on incompatible types
- Bugzilla 5182: ICE(expression.c): calling unittest from a function
- Bugzilla 5191: Combination of pure and nothrow result in a function that does nothing
- Bugzilla 5194: ddoc does not show modifiers on constructors such as pure or nothrow
- Bugzilla 5195: Forward references ignore const
- Bugzilla 5214: Compiler crash with array of empty {}
- Bugzilla 5218: Can't implicitly convert from "abc"w to wchar[3]
- Bugzilla 5220: Make std.conv.ConvError an Exception instead of an Error; deprecated ConvError and ConvOverflowError with ConvException and ConvOverflowException. Note that any code depending on the fact that these exceptions were Error gets broken.
- Bugzilla 5230: Regression(2.041, 1.057) ICE(tocsym.c) overriding a method that has an out contract
- Bugzilla 5238: PATCH: fix return of uninitialised var in interpret.c
- Bugzilla 5247: std.utf.stride() should not return 0xFF
- Bugzilla 5275: x86_64 related hidden function parameter mishandled
- Bugzilla 5293: std.math: Error: shift by -48 is outside the range 0..32
- Bugzilla 5294: -O optimization breaks for loop
- Bugzilla 5321: std.math: assumes X86 or X86_64 on FPU control word code
- Bugzilla 5322: std.math: version(Sparc) should be SPARC
- Bugzilla 5330: Druntime/Phobos: remove special treatment for GDC
- Bugzilla 5331: mach format problem
- Bugzilla 5340: isOutputRange!(Appender!string, int) must be false
- Bugzilla 5353: clear function is calling the destructor twice

Copyright © 1999-2017 by the D Language Foundation | Page generated by Ddoc on Fri Sep 1 12:52:09 2017