D Change Log
- What's new for D 1.007
- What's new for D 1.006
- What's new for D 1.005
- What's new for D 1.004
- What's new for D 1.003
- What's new for D 1.002
- What's new for D 1.001
- older versions
- even older versions
- Download D compiler for Win32 and x86 linux
- tech support
What's New for D 1.007
Feb 20, 2007New/Changed Features
- Comparison operators are no longer associative; comparison, equality, identity and in operators all have the same precedence.
- out and inout parameters are now allowed for compile time function execution.
- The .dup property is now allowed for compile time function execution.
- Updated lib to insert COMDATs into symbol table.
- Class references can no longer be implicitly converted to void*.
Bugs Fixed
- D/48806 crash
- D/48811
- D/48845
- D/48869
- D/48917
- D/48953
- D/48990
- D/49033
- D.announce/7496
- Bugzilla 968: ICE on compile-time execution
- Bugzilla 974: compile-time parenthesis bug
- Bugzilla 975: compile-time const array makes dmd crash
- Bugzilla 980: If a function tries to concatenate a char to a empty array, dmd complains that the function can't be evaluated at compile time
- Bugzilla 981: CFTE fails in non-template and functions that takes no args.
- Bugzilla 986: Internal error: e2ir.c 1098
What's New for D 1.006
Feb 15, 2007New/Changed Features
- Added -Jpath switch, which is now required in order to import text files.
- Enhanced -v output to include actual filename.
- name string for TypeInfo_Struct now part of the TypeInfo_Struct comdat.
- Compile time execution of functions
Bugs Fixed
- Bugzilla 960: New: DMD 1.0 is in the past -- not the future
- Codeview for classes now gives correct LF_CLASS
What's New for D 1.005
Feb 5, 2007New/Changed Features
- -v now emits pragma library statements and imported file names
- deprecated === and !== tokens no longer recognized
- length can no longer shadow other length declarations
- Added MixinStatements, MixinExpressions, and MixinDeclarations.
- Added ImportExpressions.
- Added std.metastrings
Bugs Fixed
- Bugzilla 761: std.format.doFormat fails for items of a char[][] containing %s
- Bugzilla 784: regression: [Issue 402] compiler crash with mixin and forward reference
- Bugzilla 787: incorrect documentation of std.ctype.isprint
- Bugzilla 788: Compiler rejects hex floats in the format: HexPrefix HexDigits . HexDigits(opt) with binary-exponent-part required
- Bugzilla 789: const initialization in forwarding constructors doesn't work
- Bugzilla 791: dhry.d example doesn't compile in 1.0 without trivial change
- Bugzilla 794: std.math.exp2(0) equals 0 instead of 1
- Bugzilla 800: writefln() on an associative array fails hard
- Bugzilla 821: segfault with char array copy; mistaken samples in doc
- Bugzilla 831: Warning!! String literals are read-only one some platforms.
- Bugzilla 832: NRVO: return inside foreach results in junk
- Bugzilla 835: RegExp.test wrongly matches strings on case insensitive attribute
- Bugzilla 846: Error 42: Symbol Undefined _D1a7__arrayZ
- Bugzilla 848: typo in C sorting example
- Bugzilla 862: Selectively importing a nonexistent identifier results in spurious and incorrect error message
- Bugzilla 872: Assertion in expression.c caused by taking typeof of "this.outer" in nested classes.
- Bugzilla 875: crash in glue.c line 700
- Bugzilla 886: std.zlib uncompression routines do not mark result as containing no pointers
- Bugzilla 887: TypeInfo does not correctly override opCmp, toHash
- Bugzilla 888: -cov and _ModuleInfo linking bugs
- Bugzilla 890: Returning char[4] and assigning to char[] produces unexpected results.
- Bugzilla 891: Crash when compiling the following code (tested with 1.0, 1.001 and 1.002)
- Bugzilla 893: The profile flag no longer seems to work on Linux x86 64
- Bugzilla 894: base class with implemented abstract method problem
- Bugzilla 897: fix default dmd.conf file
- Bugzilla 898: std.conv.toInt doesn't raise ConvOverflowError
- Bugzilla 901: Comparison of array literals fails
- Bugzilla 903: Example with printf and string literals crashes
- Bugzilla 908: compiler dies trying to inline static method call to nonstatic method in template code.
- Bugzilla 910: Error in description of "this" and "super" keywords
- Bugzilla 913: deprecated tokens still listed
- Bugzilla 915: dmd generate bad form return(retn 4) for invariant func
- Bugzilla 916: regression: Internal error: ../ztc/gloop.c 1305
- Bugzilla 917: regression: circular typedefs cause segfaults
- Bugzilla 924: GC collects valid objects
- D.announce/6983
What's New for D 1.004
Jan 26, 2007New/Changed Features
Bugs Fixed
- Bugzilla 892: Another bug in the new GC - pointers in mixins
What's New for D 1.003
Jan 26, 2007New/Changed Features
Bugs Fixed
What's New for D 1.002
Jan 24, 2007New/Changed Features
Bugs Fixed
- D.announce/6893: ClassInfo.flags incorrectly set
- D.announce/6906: Three subtle cases of tail recursion item 1 and 2
What's New for D 1.001
Jan 23, 2007New/Changed Features
- tail recursion works again
- New type aware GC
Bugs Fixed
- Bugzilla 621: When inside a loop, if you call break inside a try block the finally block is never executed
- Bugzilla 804: missing linux functions
- Bugzilla 815: scope(exit) isn't executed when "continue" is used to continue a while-loop
- Bugzilla 817: const char[] = string_literal - string_literal gets included for every reference
- Bugzilla 819: mention response files in cmd line usage
- Bugzilla 820: gc should scan only pointer types for pointers
- Bugzilla 823: frontend: incorrect verror declaration in mars.h
- Bugzilla 824: "mov EAX, func;" and "lea EAX, func;" generate incorrect code
- Bugzilla 825: dmd segmentation fault with large char[] template value parameter
- Bugzilla 826: ICE: is-expression with invalid template instantiation