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
local clone.
Change Log: 2.055
Download D 2.055
released Sep 4, 2011
New/Changed Features
- Added dman
- Add support for Mac OS X 10.7 Lion
- Add protection to json output
- Add SSE4.1 and SSE4.2 assembly instructions
- Bugzilla 4375: Require explicit braces when 'else' is ambiguous
- std.algorithm.copy now specializes on arrays for 10-80x improved performance.
- std.path has been rewritten from scratch and has a completely new API.
- std.utf.toUTFz allows you to get a zero-terminated string of any character type and of any type of mutability.
- Added symlink and readLink to std.file for Posix systems.
- Values for GDC and LDC were added to std.compiler.Vendor.
- Added functions to std.bitswap for generically handling swapping endianness.
- Added std.parallelism.TaskPool.workerIndex.
- Added buffer recycling overload of std.parallelism.asyncBuf
- std.math.tgamma, lgamma, erf, and erfc are now deprecated. The equivalent functions in std.mathspecial should be used instead.
- The names of the values of std.mmfile.Mode, std.system.Endian, std.traits.FunctionAttributes, std.traits.ParameterStorageClass, and std.traits.Variadic were changed to match Phobos' naming conventions.
- std.range: Added indexed and chunks
- std.string.translate has been updated to work with unicode. As a result, its signature has been changed. The old version and std.string.maketrans have been scheduled for deprecation.
- std.string.tr has been updated so that it works with any string type.
- std.conv.parse works for associative array and static array
- std.format: Improvement of formatValue and unformatValue. They now works for associative array, consider element escaping, and treat range format spec more properly.
- std.complex: added sin(), cos(), sqrt()
- md5: 1.4X speedup
Druntime Bugs Fixed
- Bugzilla 5967: Mangling of ArgClose for variadic function is swapped
- Bugzilla 6493: Source code for the doc of core.time points to std.datetime.
- Bugzilla 6466: core.demangle incorrect demangling of variables
Library Bugs Fixed
- Unlisted bug: std.range.transversal should have length
- Bugzilla 3890: Bad writeln of a nested struct
- Bugzilla 4500: scoped moves class after calling the constructor
- Bugzilla 4977: cannot use nothrow or pure with Rebindable
- Bugzilla 5237: writefln doesn't respect Complex.toString
- Bugzilla 5645: std.range.drop()
- Bugzilla 5825: write is calling a deprecated function
- Bugzilla 6040: std.cpuid and core.cpuid return different values for some methods
- Bugzilla 6064: std.array.join is unnecssarily slow for strings
- Bugzilla 6194: [GSoC] Destructor gets called on object before it is copied when calling writeln()
- Bugzilla 6261: [2.054 beta regression] Regex cannot take a char[]
- Bugzilla 6301: Cannot 'zip'/'retro'/'stride' etc. a range having 'ulong' length.
- Bugzilla 6377: std.conv.to should check range when changing signedness
- Bugzilla 6424: std.traits.hasElaborateAssign is limited
- Bugzilla 6448: writef("%05d", BigInt) problem
- Bugzilla 6514: CTFE dot product
- Bugzilla 6587: std.parallelism's Task cannot handle immutable values
- Bugzilla 6606: RefCounted doesn't work with unions due to use of format
- Bugzilla 6608: Tuple field is not escaped
DMD Bugs Fixed
- Bugzilla 1471: Linker error on template function. Error 42: Symbol Undefined ...
- Bugzilla 1567: call to private super-constructor should not be allowed
- Bugzilla 1684: offsetof does not work, adding cast is workaround
- Bugzilla 1904: wrong protection lookup for private template functions
- Bugzilla 2156: [] and null should be accepted where a compile-time string is required
- Bugzilla 2234: __traits(allMembers) returns incorrect results for mixin and template alias members of an aggregate
- Bugzilla 2245: Bug with overloaded, mixin template functions in classes
- Bugzilla 2246: Regression(2.046, 1.061): Specialization of template to template containing int arguments fails
- Bugzilla 2540: super can not be using in alias statement
- Bugzilla 2634: Function literals are non-constant.
- Bugzilla 2355: is() doesn't resolve aliases before template matching
- Bugzilla 2579: Template function accepting a delegate with in argument doesn't compile
- Bugzilla 2774: Functions-as-properties makes it impossible to get the .mangleof a function
- Bugzilla 2777: alias this doesn't forward __dollar and slice op.
- Bugzilla 2781: alias this doesn't work with foreach
- Bugzilla 2787: Members found in an 'alias this' are not implicitly accessible in methods
- Bugzilla 2941: Wrong code for inline asm because CPU type is set too late
- Bugzilla 3268: can't compare pointer to functions when one is const
- Bugzilla 3273: Regression(2.031): struct invariant + dtor fails to compile (no line number)
- Bugzilla 3512: dchar iteration over string in CTFE fails
- Bugzilla 3661: ^^ not supported in array operations.
- Bugzilla 3797: Regression(2.038): Implicit conversion between incompatible function pointers
- Bugzilla 4021: [CTFE] AA rehash
- Bugzilla 4099: Inconsistent behaviour of ++/-- when mixing opUnary and 'alias this'.
- Bugzilla 4444: Cannot index built-in array with expression tuple
- Bugzilla 4460: Regression(2.036) ICE(e2ir.c) when compiling foreach over associative array literal
- Bugzilla 4682: [CTFE] Run-time Vs Compile-time of int.min % -1
- Bugzilla 4773: Rebindable should be castable to bool
- Bugzilla 4837: ICE(constfold.c) CTFE with >>>=
- Bugzilla 4984: Recursive template constraint results in dmd running out of memory
- Bugzilla 5046: Wrong type of implicit 'this' in struct/class templates
- Bugzilla 5081: Pure functions as initializers for immutable structures
- Bugzilla 5188: alias this and compare expression generates wrong code
- Bugzilla 5239: optimizer misreports an used before set error
- Bugzilla 5373: Regression (2.051) CTFE and std.string.replace() causes "Bad binary function q{a == b}..
- Bugzilla 5440: ICE(template.c): when struct AssociativeArray is missing from object.d
- Bugzilla 5585: bad debug line number info for return statements with enumerator expressions
- Bugzilla 5745: Missing error line number with lazy argument
- Bugzilla 5750: Allow pure functions to have lazy arguments
- Bugzilla 5777: Move semantics require full spec NRVO
- Bugzilla 5785: Lexing or Parsing issue with UFCS
- Bugzilla 5790: 'Error: variable result used before set' when -release -inline -O
- Bugzilla 5799: Address-of operator fails on nested conditional operator expression
- Bugzilla 5936: Regression(2.050): Segfault when forward-referencing pure auto-return member function with parameter.
- Bugzilla 5953: Too many trailing commas are accepted
- Bugzilla 6097: SSSE3 not working with MMX instructions
- Bugzilla 6215: LLVM-compiled DMD segfaults due to mem.c alignment issues
- Bugzilla 6220: Regression(2.053) static foreach over a string[] no longer produces directly usable strings
- Bugzilla 6228: Regression(2.053) ICE(e2ir.c) on {auto x = (*ptr) ^^ y} with const integer types
- Bugzilla 6230: Member functions can no longer be weakly pure
- Bugzilla 6250: [CTFE] Crash when swapping two pointers to arrays.
- Bugzilla 6265: Pure-inference failed when calling other pure functions
- Bugzilla 6270: XMMREGS not preserved on indirect function call
- Bugzilla 6276: [CTFE] Strange behavior of using ~= operator twice
- Bugzilla 6280: [CTFE] Cannot put 'in' expression of AA in an 'if' condition
- Bugzilla 6281: [CTFE] A null pointer '!is null' returns 'true'.
- Bugzilla 6282: [CTFE] ICE when dereferencing a pointer to reference type from 'in' of an AA
- Bugzilla 6283: [CTFE][Regression 2.054] Failed to assign to AA using a constness-changed array as key
- Bugzilla 6284: [Regression 2.054] 'pure' does not work with 'with' statement
- Bugzilla 6286: Regression(2.054): Static arrays can not be assigned from const(T)[N] to T[N]
- Bugzilla 6293: [Regression 2.054] The expression x.y makes the function impure when the 'x' part is not just a variable
- Bugzilla 6295: [Regression 2.054] Segfault in checkPurity() of template value parameter
- Bugzilla 6306: Regression(2.054): [CTFE] Strange behavior of indirect recursive call in CTFE
- Bugzilla 6308: Destruction of temporaries on exception causes unhandled access violation
- Bugzilla 6316: Regression(2.054): Class downcast is rejected in @safe code
- Bugzilla 6317: ICE on struct literal of nested struct
- Bugzilla 6331: [CTFE] Cannot evaluate SliceExp on if condition
- Bugzilla 6337: [CTFE] ICE when touching member variable of struct during CTFE
- Bugzilla 6344: [CTFE] Assertion Failure in interpret.c when create an empty slice from null pointer
- Bugzilla 6351: Regression(2.054) Segfault: Vararg delegate as template param
- Bugzilla 6355: Template constructor cannot initialize non-mutable field
- Bugzilla 6366: alias this doesn't work with foreach range.front
- Bugzilla 6369: alias this doesn't work with initializer
- Bugzilla 6374: [CTFE] Cannot subscript using pointer to array
- Bugzilla 6375: [CTFE] Segfault when using std.array.appender with an initial array
- Bugzilla 6386: [CTFE] ICE on pointer casting
- Bugzilla 6389: Segfault(dsymbol.c): deprecated @disable
- Bugzilla 6399: [CTFE] struct member array.length -= x doesn't work, while array[0..$-x] works
- Bugzilla 6404: Cannot check ref-ness of auto ref parameter in template constraint
- Bugzilla 6418: [CTFE] Cannot call a struct member function with name 'length'.
- Bugzilla 6420: [CTFE] ICE on dereference-assigning to a pointer casted from a literal
- Bugzilla 6429: Nested function error in reduce
- Bugzilla 6433: Meta-Bug AA type propagation
- Bugzilla 6434: opDispatch must be considered before alias this.
- Bugzilla 6491: Fully qualified values in default arguments of non-template functions are generated with an extra 'module' keyword
- Bugzilla 6499: [GSoC] Destructor not called on object returned by method.
- Bugzilla 6505: Wrong code for expression involving 8 floats, only with -O
- Bugzilla 6508: alias this doesn't work with AssignExp rhs
- Bugzilla 6510: [CTFE] "internal error: illegal stack value" when compiled with -inline
- Bugzilla 6511: [CTFE] Array op gives wrong result
- Bugzilla 6512: [CTFE] new T[][] doesn't work
- Bugzilla 6516: Regression(2.055 beta) [CTFE] ICE(constfold.c) involving new dchar[]
- Bugzilla 6517: [CTFE] ptr++ doesn't work but ++ptr does
- Bugzilla 6546: alias this + IdentityExpression doesn't work
- Bugzilla 6556: ICE for ImportStatement in DebugStatement
- Bugzilla 6558: [CTFE] UTF-decoding foreach gives wrong index (1-indexed)
- Bugzilla 6561: alias this + undefined symbol should cause error
- Bugzilla 6563: wrong code when using at least 8 XMM regs
- Bugzilla 6577: 'Cannot initialize member' error line number
- Bugzilla 6601: Regression(2.053): CTFE segfault taking address of function template
- Bugzilla 6602: Invalid template instantiations leaked by is(typeof())/__traits(compiles, )/Type::trySemantic