D Programming Language 1.0

>
- Forum
- Wiki
- Search
- Downloads
- Home

Last update Thu Dec 16 17:55:44 2010

# D Change Log

#### Under Construction

1. 64 bit support for Linux
2. Shared libraries for Linux

Version D 1.066 Dec 14, 2010

#### New/Changed Features

#### 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 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 2994: Incomplete "Predefined Versions" documentation
- 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 parantheses
- Bugzilla 4529: Segfault(typinf.c) involving typeid(typeof(functionName))
- Bugzilla 4728: Segfault(toctype.c) by protected/private constructor in an other module
- Bugzilla 4864: ICE(statement.c) Crash on invalid 'if statement' body inside mixin
- 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 5145: Regression(2.050, 1.065) override error with forward ref of superclass
- Bugzilla 5159: Segfault(interpret.c): calling a static function pointer variable in CTFE
- 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 5195: Forward references ignore const
- 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 5275: x86_64 related hidden function parameter mishandled
- Bugzilla 5294: -O optimization breaks for loop
- Bugzilla 5331: mach format problem

- What's new for D 1.066
- What's new for D 1.065
- What's new for D 1.064
- What's new for D 1.063
- What's new for D 1.062
- What's new for D 1.061
- What's new for D 1.060
- What's new for D 1.059
- What's new for D 1.058
- What's new for D 1.057
- What's new for D 1.056
- What's new for D 1.055
- What's new for D 1.054
- What's new for D 1.053
- What's new for D 1.052
- What's new for D 1.051
- What's new for D 1.050
- What's new for D 1.049
- What's new for D 1.048
- What's new for D 1.047
- What's new for D 1.046
- What's new for D 1.045
- What's new for D 1.044
- What's new for D 1.043
- What's new for D 1.042
- What's new for D 1.041
- What's new for D 1.040
- What's new for D 1.039
- What's new for D 1.038
- What's new for D 1.037
- What's new for D 1.036
- What's new for D 1.035
- What's new for D 1.034
- What's new for D 1.033
- What's new for D 1.032
- What's new for D 1.031
- What's new for D 1.030
- What's new for D 1.029
- What's new for D 1.028
- What's new for D 1.027
- What's new for D 1.026
- What's new for D 1.025
- What's new for D 1.024
- What's new for D 1.023
- What's new for D 1.022
- What's new for D 1.021
- What's new for D 1.020
- What's new for D 1.019
- What's new for D 1.018
- What's new for D 1.017
- What's new for D 1.016
- What's new for D 1.015
- What's new for D 1.014
- What's new for D 1.013
- What's new for D 1.012
- What's new for D 1.011
- What's new for D 1.010
- What's new for D 1.009
- 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
- change log for D 2.0
- older versions
- even older versions
- Download latest stable (1.030) D compiler for Win32 and x86 linux
- tech support

Version D 1.065 Oct 29, 2010

#### New/Changed Features

- added talign() and argTypes() to TypeInfo
- Upgrade zlib support to zlib 1.2.5

#### Bugs Fixed

- Unlisted bug: signed long comparisons under OS X
- Bugzilla 3602: ICE(tocsym.c) compiling a class, if its super class has preconditions
- Bugzilla 3665: Regression(1.051, 2.036) Assignment with array slicing does not work
- Bugzilla 4398: dmd always uses Windows name mangling for _d_throw may require update to Tango
- Bugzilla 4623: Non-integer type allowed as static array size
- Bugzilla 4768: Regression(1.056): wrong code with forward declaration of enum
- Bugzilla 4825: Regression(1.057, 2.040) "Error: non-constant expression" with -inline
- Bugzilla 4873: Assertion failure: '0' on line 1483 in file 'expression.c'
- Bugzilla 4897: CodeView: No locals or parameters are shown when debugging, because of missing function info
- Bugzilla 4925: [ICE] segfault with module-scope assert(0)
- Bugzilla 4926: ICE: PREC_zero assertion failure due to unset precedence
- Bugzilla 4941: Built-in tuple slice boundaries are not CTFE'd
- Bugzilla 4949: ICE on invalid static if using value of 'this'
- Bugzilla 5026: ICE(expression.c) Incomplete mixin expression + char[] to char assignment

Version D 1.064 Sep 13, 2010

#### New/Changed Features

#### Bugs Fixed

- Bugzilla 1715: Template specialization checks for equality rather than convertibility
- Bugzilla 1970: Templated interfaces not matched
- Bugzilla 2511: Covariant return type doesn't work with circular import
- Bugzilla 2716: Confusion of auto and scope as the class attribute
- Bugzilla 3046: Segfault with C++ static variable (Linux only)
- Bugzilla 3418: link error with cast(ulong)(ulong*real)
- Bugzilla 3544: optlink termination 0041338f with recursive nested functions
- Bugzilla 3554: Ddoc generats invalid output for documentation comments with non paired paranthasis
- Bugzilla 3627: -of with a filename with a double extension confuses linker
- Bugzilla 4009: OPTLINK ruins the day yet again
- Bugzilla 4173: Regression(2.037) Explicitly instantiated templates still try to do IFTI in some cases
- Bugzilla 4278: allow inlining of super calls (undo limitations of bug3500's fix)
- Bugzilla 4302: Regression(2.046, 1.061): compiler errors using startsWith in CTFE
- Bugzilla 4645: to!string(const char*) in library causes Optlink to issue warning
- Bugzilla 4652: Compiler hangs on template with zero-length tuple and another argument
- Bugzilla 4655: Regression(1.063, 2.048) goto to a try block ICEs
- Bugzilla 4676: Overload resolution rejects valid code when mixing variadics, non-variadics
- Bugzilla 4691: Incorrect comparison of double and long
- Bugzilla 4721: compilation slow when compiling unittests on dcollections
- Bugzilla 4751: Regression(1.062, 2.047) ICE(constfold.c) >> after error
- Bugzilla 4752: fail_compilation/fail345.d asserts in expression.c
- Bugzilla 4771: fail_compilation/fail274.d hits a halt in iasm.c
- Bugzilla 4828: ICE w/ non-boolean dot expression sth.template_instance in static if

Version D 1.063 Aug 8, 2010

#### New/Changed Features

- Bugzilla 4080: Patch for building dynamic libraries on Mac OS X

#### Bugs Fixed

- Bugzilla 1418: tupleof bug on nested classes
- Bugzilla 1678: ref with varargs generates invalid code
- Bugzilla 2931: Initialization struct with array from another struct
- Bugzilla 3326: $ in delegate literal causes Access Violation
- Bugzilla 3560: foreach over nested function generates wrong code
- Bugzilla 3569: DMD Stack Overflow with a struct member function inside a C-style struct initializer
- Bugzilla 3679: Regression(2.031) template forward reference regression
- Bugzilla 3706: delegates of interfaces with multiple inheritance fail
- Bugzilla 4191: [FreeBSD] real constants are rounded to double precision
- Bugzilla 4198: [FreeBSD] imprecision in decimal floating-point literals
- Bugzilla 4238: Segfault(statement.c): with(typeof(int))
- Bugzilla 4303: __traits(compiles) returns wrong result when used recursively
- Bugzilla 4314: Regression(1.062): Expression array1 && array2 doesn't compile
- Bugzilla 4339: Struct destructor + invariant + struct parameter = horrific error message
- Bugzilla 4396: mkdir race prevents concurrent compiling with DMD using make -j
- Bugzilla 4443: Optimizer produces wrong code for || or && with struct arrays
- Bugzilla 4503: forward reference to aliased template instance
- Bugzilla 4506: Regression(2.034): -O flag breaks some recursive functions
- Bugzilla 4514: Regression: Cannot cast from X* to X
- Bugzilla 4569: extern(c++) doesn't understand const types, produces bad mangled symbol
- Bugzilla 4578: Regression(2.047,1.062): ICE(cgcod.c): var+arr[]

Version D 1.062 Jun 9, 2010

#### New/Changed Features

- Bugzilla 2008: Poor optimization of functions with ref parameters
- Bugzilla 4296: Reduce parasitic error messages

#### Bugs Fixed

- Bugzilla 1193: regression: "matches more than one template declaration" doesn't list the location of the conflicting templates
- Bugzilla 1894: scope(exit) is ignored except in compound statements
- Bugzilla 1941: missing line on inaccesable external private module member
- Bugzilla 2127: inliner turns struct "return *this" from by-value into by-ref
- Bugzilla 2276: Error message missing line number on array operation
- Bugzilla 2546: Array Ops silently fail when no slice symbol is used.
- Bugzilla 2881: x.stringof returns typeof(x).stringof when x is an enum
- Bugzilla 3064: Invalid array operation accepted, generates bad code
- Bugzilla 3323: Segfault or ICE(e2ir.c) using struct with destructor almost anywhere
- Bugzilla 3398: Attributes inside a union screws data alignment
- Bugzilla 3547: for option -od for relative path the path is added twice
- Bugzilla 3548: ICE occurs when an array is returned from a function is incorrectly used in an array op expression.
- Bugzilla 3651: mangleof broken for enums
- Bugzilla 3854: Error on static initialization of arrays with trailing comma.
- Bugzilla 4003: The result changes only with the order of source files.
- Bugzilla 4045: [CTFE] increasing array length
- Bugzilla 4052: [CTFE] increment from array item
- Bugzilla 4078: [CTFE] Failed return of dynamic array item
- Bugzilla 4084: Ignored missing main() closing bracket
- Bugzilla 4143: fix warnings in dmd build
- Bugzilla 4156: Segfault with array+=array
- Bugzilla 4169: building dmd with a modern gcc produces a buggy compiler
- Bugzilla 4175: linux.mak doesn't declare sufficient dependencies to support parallel builds
- Bugzilla 4210: Random crashes / heisenbugs caused by dmd commit 478: compiler messes up vtables
- Bugzilla 4212: DWARF: void arrays cause gdb errors
- Bugzilla 4213: Strange behaviour with static void[] arrays
- Bugzilla 4242: ICE(module.c): importing a module with same name as package
- Bugzilla 4252: [CTFE] No array bounds checking in assignment to char[] array
- Bugzilla 4257: ICE(interpret.c): passing parameter into CTFE as ref parameter
- Bugzilla 4259: Header generation omits leading '@' for properties
- Bugzilla 4270: Missing line number in 'can only catch class objects' error message

Version D 1.061 May 10, 2010

#### New/Changed Features

- Add hints for missing import declarations.
- Speed up compilation.

#### Bugs Fixed

- Fix hanging problem on undefined identifiers.
- Bugzilla 461: Constant not understood to be constant when circular module dependency exists.
- Bugzilla 945: template forward reference with named nested struct only
- Bugzilla 1055: union forward reference "overlapping initialization" error
- Bugzilla 2085: CTFE fails if the function is forward referenced
- Bugzilla 2386: Array of forward referenced struct doesn't compile
- Bugzilla 4015: forward reference in alias causes error
- Bugzilla 4016: const initializer cannot forward reference other const initializer
- Bugzilla 4042: Unable to instantiate a struct template.
- Bugzilla 4100: Break and continue to label should mention foreach

Version D 1.060 May 4, 2010

#### New/Changed Features

#### Bugs Fixed

- Another try at fixing the Dwarf issues.

Version D 1.059 Apr 30, 2010

#### New/Changed Features

- Improve spelling checking distance to 2.

#### Bugs Fixed

- Bugzilla 1079: gdb: Dwarf Error: Cannot find DIE at 0xb705 referenced from DIE at 0x250
- Bugzilla 2549: Segfault on array multiplication.
- Bugzilla 3066: Array operation without a slice as the lvalue accepted, bad codegen
- Bugzilla 3207: gdb: Push D patches upstream
- Bugzilla 3415: broken JSON output
- Bugzilla 3522: ICE(cg87.c): variable*array[].
- Bugzilla 3974: ICE(init.c): Static array initializer with more elements than destination array
- Bugzilla 3987: [gdb] Invalid DWARF output for function pointers
- Bugzilla 4036: Segfault with -inline and literal of struct containing union
- Bugzilla 4037: [gdb] Invalid DWARF output for wchar
- Bugzilla 4038: [gdb] Invalid DWARF output for function pointers with ref args
- Bugzilla 4067: [CTFE] Code inside try-catch blocks is silently ignored
- Bugzilla 4089: crash when creating JSON output for incomplete struct
- Bugzilla 4093: Segfault(interpret.c): with recursive struct templates
- Bugzilla 4105: Stack overflow involving alias template parameters and undefined identifier

Version D 1.058 Apr 6, 2010

#### New/Changed Features

#### Bugs Fixed

- Bugzilla 122: DDoc newline behaviour produces suboptimal results
- Bugzilla 1628: Ddoc produces invalid documentation for --- blocks
- Bugzilla 2609: No documentation generated for destructor
- Bugzilla 3808: Assertion Failure : Assertion failure: 'classinfo->structsize == CLASSINFO_SIZE' on line 870 in file 'toobj.c'
- Bugzilla 3842: ICE(expression.c) using pointer in CTFE
- Bugzilla 3884: Segfault: defining a typedef with an invalid object.d
- Bugzilla 3885: No multithread support for Windows DLL
- Bugzilla 3899: CTFE: poor error message for use of uninitialized variable
- Bugzilla 3900: CTFE: Wrong return value for array.var assignment
- Bugzilla 3901: PATCH: Nested struct assignment for CTFE
- Bugzilla 3914: Struct as argument that fits in register has member accessed wrong
- Bugzilla 3919: ICE(expression.c, 9944): * or / with typedef ireal
- Bugzilla 3920: Assertion failure: '0' on line 10018 in file 'expression.c'
- Bugzilla 3958: mixin(non-static method) crashes compiler
- Bugzilla 3972: Regarding module with name different from its file name
- Bugzilla 4002: dmd.conf and binary path in dmd -v output
- Bugzilla 4004: DMD 2.042 CTFE regression with functions taking ref parameters
- Bugzilla 4005: std.c.stdlib.exit in CTFE and more
- Bugzilla 4011: Incorrect function overloading using mixins
- Bugzilla 4019: [CTFE] Adding an item to an empty AA
- Bugzilla 4020: [ICE][CTFE] struct postblit in CTFE
- Bugzilla 4027: Closures in CTFE generate wrong code
- Bugzilla 4029: CTFE: cannot invoke delegate returned from function

Version D 1.057 Mar 7, 2010

#### New/Changed Features

- Warnings no longer halt the parsing/semantic passes, though they still return an error status and still do not generate output files. They also no longer count as errors when testing with "compiles" traits.
- Added -wi switch for Bugzilla 2567
- Associative array contents can now be compared for equality
- Add simple spell checking.

#### Bugs Fixed

- Bugzilla 2321: spec on inline asm can be misunderstood
- Bugzilla 2463: No line number in "statement is not reachable" warning
- Bugzilla 3029: Bug in array value mangling rule
- Bugzilla 3306: bad function/delegate literal generated into header files
- Bugzilla 3373: bad codeview debug info for long and ulong
- Posix only, Bugzilla 3420: [PATCH] Allow string import of files using subdirectories
- Bugzilla 3450: incorrect result for is (typeof({ ... }())) inside a struct
- Bugzilla 3500: super behaves differently with -inline
- Bugzilla 3558: Optimizer bug results in false if condition being taken
- Bugzilla 3670: Declarator grammar rule is broken
- Bugzilla 3710: Typo in allMembers description?
- Bugzilla 3736: corrupted struct returned by function with optimizations (-O)
- Bugzilla 3737: SEG-V at expression.c:6255 from bad opDispatch
- Bugzilla 3768: reapeted quotes in ddoc.html
- Bugzilla 3769: Regression: Segfault(constfold.c) array literals and case statements
- Bugzilla 3775: Segfault(cast.c): casting no-parameter template function using property syntax
- Bugzilla 3781: ICE(interpret.c): using no-argument C-style variadic function in CTFE
- Bugzilla 3792: Regression: "non-constant expression" for a template inside a struct using a struct initializer
- Bugzilla 3803: compiler segfaults
- Bugzilla 3840: Jump to: section in the docs should be sorted

Version D 1.056 Jan 29, 2010

#### New/Changed Features

- Clarification: function returns are not lvalues
- Add -map command line switch
- 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

#### Bugs Fixed

- Bugzilla 48: Internal error: cgreg 784
- 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?
- Partial fix for Bugzilla 3569, stops the stack overflow
- Bugzilla 3668: foreach over typedef'd array crashes dmd
- Bugzilla 3674: forward reference error with multiple overloads with same name
- Bugzilla 3685: Regression(D1 only): DMD silently exits on valid code
- 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 3740: Regression: class with fwd reference of a nested struct breaks abstract

Version D 1.055 Jan 1, 2010

#### New/Changed Features

#### Bugs Fixed

- Bugzilla 3663: struct forward reference regresssion
- Bugzilla 3664: struct forward declaration causes enum to conflict with itself

Version D 1.054 Dec 30, 2009

#### New/Changed Features

#### Bugs Fixed

- Bugzilla 45: Internal error: cgcod 1594
- Bugzilla 46: Constant folding with long doubles
- D/103391: D1 garbage collector + threads + malloc = garbage?
- Bugzilla 282: Bizarre circular import nested name invisibility issue
- Bugzilla 390: Cannot forward reference enum nested in struct
- Bugzilla 400: forward reference error; no propety X for type Y (struct within struct)
- Bugzilla 1160: enums can not be forward referenced
- Bugzilla 1564: Forward reference error for enum in circular import
- Bugzilla 2029: Typesafe variadic functions don't work in CTFE
- Bugzilla 2816: Sudden-death static assert is not very useful
- Bugzilla 3455: Some Unicode characters not allowed in identifiers
- Bugzilla 3575: CTFE: member structs not initialized correctly
- Bugzilla 3584: DeclDef rule is missing entries
- Bugzilla 3585: Duplicate clauses in EqualExpression and RelExpression rules
- Bugzilla 3587: Aggregate rule references undefined Tuple
- Bugzilla 3588: WithStatement rule references unspecified Symbol
- Bugzilla 3589: BaseClassList and InterfaceClasses rules are incorrect, missing ','
- Bugzilla 3590: FunctionParameterList rule is missing
- Bugzilla 3591: TemplateIdentifier rule is misspelled
- Bugzilla 3592: ClassTemplateDeclaration and FunctionTemplateDeclaration rules are unreferenced
- Bugzilla 3593: IntegerExpression rule unspecified
- Bugzilla 3594: AsmPrimaryExp rule references unspecified rules
- Bugzilla 3595: Several rules are missing ':' after rule name
- Bugzilla 3601: Debug and Release builds of DMD produce different object files
- Bugzilla 3611: Enum forward referencing regression
- Bugzilla 3612: ExpressionList is undefined
- Bugzilla 3617: CTFE: wrong code for if(x) where x is int or smaller
- Bugzilla 3628: can't cast null to int
- Bugzilla 3633: Optimizer causes access violation
- Bugzilla 3645: manifest constant (enum) crashes dmd

Version D 1.053 Dec 3, 2009

#### New/Changed Features

#### Bugs Fixed

- Bugzilla 111: appending a dchar to a char[]
- Bugzilla 370: Compiler stack overflow on recursive typeof in function declaration.
- Bugzilla 2229: ICE(template.c) instantiating an invalid variadic template with more than one argument
- Bugzilla 2967: spec does not mention that inline asm is a valid "return" statement
- Bugzilla 3115: >>> and >>>= generate wrong code
- Bugzilla 3171: % not implemented correctly for floats
- Bugzilla 3381: [tdpl] Incorrect assessment of overriding in triangular-shaped hierarchy
- Bugzilla 3469: ICE(func.c): Regression. Calling non-template function as a template, from another module
- Bugzilla 3495: Segfault(typinf.c) instantiating D variadic function with too few arguments
- Bugzilla 3496: ICE(cgelem.c, optimizer bug) cast(void *)(x&1)== null.
- Bugzilla 3502: Fix for dropped Mac OS X 10.5
- Bugzilla 3521: Optimized code access popped register
- Bugzilla 3540: Another DWARF line number fix

Version D 1.052 Nov 12, 2009

#### New/Changed Features

- OSX versions 10.5 and older are no longer supported.

#### Bugs Fixed

- Works on OSX 10.6 now.

Version D 1.051 Nov 5, 2009

#### New/Changed Features

#### Bugs Fixed

- Problem with complicated array op expressions
- Bugzilla 195: DDoc generates bad output when example contains "protected" attribute
- Bugzilla 424: Unexpected OPTLINK Termination at EIP=0044C37B (too many fixups)
- Bugzilla 874: Bad codegen: wrong value variable in tuple foreach, D1 only
- Bugzilla 1117: ddoc generates corrupted docs if code examples contain attributes with colons
- Bugzilla 1812: DDOC - Unicode identifiers are not correctly marked.
- Bugzilla 2862: ICE(template.c) using type tuple as function argument
- Bugzilla 3292: ICE(todt.c) when using a named mixin with an initializer as template alias parameter
- Bugzilla 3397: Unintended function call to static opCall
- Bugzilla 3401: Compiler crash on invariant + method overload
- Bugzilla 3422: ICE(cgcod.c) Structs with default initializers bigger than register size cannot be default parameters
- Bugzilla 3426: ICE(optimize.c): struct literal with cast, as function default parameter.
- Bugzilla 3432: ICE(e2ir.c): casting template expression

Version D 1.050 Oct 14, 2009

#### New/Changed Features

- Use -X to generate JSON files.

#### Bugs Fixed

- Fold in patch from Bugzilla 1170
- Bugzilla 923: No constant folding for template value default arguments, D1 only
- Bugzilla 1534: Can't mix in a case statement.
- Bugzilla 2423: Erroneous unreachable statement warning
- Bugzilla 3392: a cast of this to void in tango.core.Thread is not allowed

Version D 1.049 Oct 11, 2009

#### New/Changed Features

#### Bugs Fixed

- Bugzilla 258: Undefined identifier error for circular import
- Bugzilla 928: nested struct definition in unittest section of a templated class, hangs DMD
- Bugzilla 1140: ICE(cod1.c) casting last function parameter to 8 byte value
- Bugzilla 1592: dmd fail to resolve class symbol when i put files in a package
- Bugzilla 1787: Compiler segfaults on circular references.
- Bugzilla 1897: ICE(template.c) with tuple delegate
- Bugzilla 1934: ICE(e2ir.c) using static array as AA key
- Bugzilla 2229: ICE(template.c) instantiating an invalid variadic template with more than one argument
- Bugzilla 2687: ICE(statement.c): tuple foreach in an erroneous template.
- Bugzilla 2773: ICE(go.c) array assignment through a pointer, only with -O.
- Bugzilla 2829: ICE(expression.c) static array block-initialized in struct literal
- Bugzilla 2851: Segfault(expression.c) using C-style struct initializer with too few arguments
- Bugzilla 3006: ICE(e2ir.c, tocsym.c) template module using array operation
- Bugzilla 3041: Array slices can be compared to their element type: bad codegen or ICE
- Bugzilla 3101: Stack overflow: declaring aggregate member twice with static if
- Bugzilla 3174: ICE(mtype.c): Compiler crash or compiler error with auto returns and const / immutable / invarient / pure
- Bugzilla 3176: Compiler hangs on poorly formed mixin in variadic template
- Bugzilla 3261: compiler crash with mixin and forward reference
- Bugzilla 3286: Default parameter prevents to resolve inter-module circular dependency
- Bugzilla 3301: Undefined identifier error dependent on order of imports when a circular import is involved
- Bugzilla 3325: ICE(func.c) function literal with post-contract
- Bugzilla 3343: Crash by "auto main(){}"
- Bugzilla 3344: ICE(e2ir.c) returning an invalid function from main()
- Bugzilla 3357: ICE(cod1.c) using 'in' with a static char array as AA key
- Bugzilla 3366: Segfault(declaration.c) variadic template with unmatched constraint
- Bugzilla 3374: [tdpl] ICE(init.c): Associative array type not inferred

Version D 1.048 Oct 5, 2009

#### New/Changed Features

- Compiler now detects some cases of illegal null dereferencing when compiled with -O
- Bugzilla 2905: Faster +-*/ involving a floating-pointing literal

#### Bugs Fixed

- gdb stack trace should work now
- Bugzilla 302: in/out contract inheritance yet to be implemented
- Bugzilla 718: ICE(cgcod.c) with int /= cast(creal)
- Bugzilla 814: lazy argument + variadic arguments = segfault
- Bugzilla 1168: Passing a .stringof of an expression as a template value parameter results in the string of the type
- Bugzilla 1571: Segfault(class.c) const on function parameters not carried through to .di file
- Bugzilla 1731: forward reference of function type alias resets calling convention
- Bugzilla 2202: Error getting type of non-static member of a class
- Bugzilla 2469: ICE(cod1.c) arbitrary struct accepted as struct initializer
- Bugzilla 2697: Cast of float function return to ulong or uint gives bogus value
- Bugzilla 2702: Struct initialisation silently inserts deadly casts
- Bugzilla 2839: ICE(cgcs.c) with int /= imaginary
- Bugzilla 3049: ICE(cod4.c) or segfault: Array operation on void[] array
- Bugzilla 3059: Nonsensical complex op= should be illegal
- Bugzilla 3160: ICE(cgcod.c 1511-D1) or bad code-D2 returning string from void main
- Bugzilla 3304: Segfault using 'is' with a pointer enum.
- Bugzilla 3305: Segfault(expression.c) with recursive struct template alias expressions
- Bugzilla 3335: minor warning cleanups
- Bugzilla 3336: ICE(glue.c) declaring AA with tuple key, only with -g
- Bugzilla 3353: storage class of a member function is propagated to default arguments

Version D 1.047 Sep 2, 2009

#### New/Changed Features

- Bugzilla 3122: [patch] Adding support for fast and reliable build tools to the frontend
- Added support for:

      a[i].var = e2

  and:

      a[] = e

  in CTFE. (thanks, Don!)
- Member functions can now be used in CTFE
- Operator overloading can now be used in CTFE
- Nested functions can now be used in CTFE
- CTFE error messages now explain why the function could not be interpreted at compile time

#### Bugs Fixed

- Fixed bug processing spaces in dmd's directory
- Bugzilla 601: statement.html - Formatting/markup errors in BNF
- Bugzilla 1461: Local variable as template alias parameter breaks CTFE
- Bugzilla 1605: break in switch with goto breaks in ctfe
- Bugzilla 1948: CTFE fails when mutating a struct in an array
- Bugzilla 1950: CTFE doesn't work correctly for structs passed by ref
- Bugzilla 2569: static arrays in CTFE functions don't compile
- Bugzilla 2575: gdb can not show code
- Bugzilla 2604: DW_TAG_module and GDB
- Bugzilla 2940: null is null cannot be evaluated at compile time
- Bugzilla 2960: CTFE rejects static array to dynamic array casts
- Bugzilla 3039: -vtls compiler flag not listed in man file
- Bugzilla 3165: What kind of integer division does D use?
- Bugzilla 3166: "positive" -> "non-negative" in modulo operator description
- Bugzilla 3168: Declaring structs as incomplete types no longer works
- Bugzilla 3170: Forward reference of nested class fails if outer class is not plain
- Bugzilla 3183: Spec of align attribute needs work
- Bugzilla 3186: corrections for http://www.digitalmars.com/d/2.0/dmd-osx.html
- Bugzilla 3192: asm in a anonymous delegate crash the compiler
- Bugzilla 3196: Segfault(mtype.c) after almost any error involving a delegate literal
- Bugzilla 3205: CTFE: $ cannot be used in lvalues
- Bugzilla 3246: ICE(init.c) using indexed array initializer on local array
- Bugzilla 3264: -O causes wrong "used before set" error when using enum.

Version D 1.046 Jul 6, 2009

#### New/Changed Features

- Bugzilla 3080: dmd should output compilation errors to stderr, not stdout

#### Bugs Fixed

- Fix dmd crash on multicore Windows.
- Bugzilla 106: template - mixin sequence
- Bugzilla 810: Cannot forward reference template
- Bugzilla 852: ICE(toir.c) using local class in non-static nested function in nested static function
- Bugzilla 854: TypeTuple in anonymous delegate causes ice in glue.c
- Bugzilla 1054: regression: circular aliases cause compiler stack overflow
- Bugzilla 1343: Various errors with static initialization of structs and arrays
- Bugzilla 1358: ICE(root.c) on Unicode codepoints greater than 0x7FFFFFFF
- Bugzilla 1459: ICE(cgcs.c) on attempt to set value of non-lvalue return struct
- Bugzilla 1524: ICE(constfold.c) on using "is" with strings in CTFE
- Bugzilla 1984: Assertion failure: 'e1->type' on line 1198 in file 'constfold.c'
- Bugzilla 2323: ICE(cgcs.c): taking address of a method of a temporary struct
- Bugzilla 2429: std.stream.File incorrect flag parsing and sharing mode
- Bugzilla 2432: complex alias -> mtype.c:125: virtual Type* Type::syntaxCopy(): Assertion `0' failed.
- Bugzilla 2603: ICE(cgcs.c) on subtracting string literals
- Bugzilla 2843: ICE(constfold.c) with is-expression with invalid dot-expression in is-expression involving typeid
- Bugzilla 2884: ICE: Assert: 'template.c', line 3773, 'global.errors'
- Bugzilla 2888: [PATCH] speedup for float * 2.0
- Bugzilla 2915: [Patch]: Optimize -a*-b into a*b
- Bugzilla 2923: -O generates bad code for ?:
- Bugzilla 2932: bad e_ehsize (36 != 52)
- Bugzilla 2952: Segfault on exit when using array ops with arrays of doubles larger than 8 elements
- Bugzilla 3003: Need to implicitly add () on member template function calls
- Bugzilla 3014: ICE(template.c) instantiating template with tuple
- Bugzilla 3016: Errors in the documentation of std.math.acos
- Bugzilla 3026: Segfault with incomplete static array initializer
- Bugzilla 3044: Segfault(template.c) instantiating struct tuple constructor with zero arguments.
- Bugzilla 3078: NaN reported as equal to zero
- Bugzilla 3114: optlink failing on multicore machines
- Bugzilla 3117: dmd crash by *1
- Bugzilla 3128: Internal error: ..\ztc\cod4.c 2737
- Bugzilla 3130: Crashed with triple stars

Version D 1.045 May 11, 2009

#### New/Changed Features

- Folded in compiler/library changes by Unknown W. Brackets to support Solaris.
- Migrate Posix uses of std.c.linux.linux to std.c.posix.posix
- added .typeinfo to ClassInfo Bugzilla 2836: Navigate from ClassInfo to TypeInfo

#### Bugs Fixed

- Fix instruction scheduler bug on Linux
- 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 1195: regression: aliasing an enum member causes compile time segfaults
- 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 1586: DMD and GDC segfaults on incomplete code segment.
- 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 2821: struct alignment inconsistent with C for { int, long }
- Bugzilla 2920: recursive templates blow compiler stack

Version D 1.044 Apr 9, 2009

#### New/Changed Features

- Added std.c.posix.* to Phobos.

#### Bugs Fixed

- Bugzilla 675: %a format has an out-by-1 bug for denormals.
- Bugzilla 2064: Segfault with mixin(for/foreach) with empty loop body
- Bugzilla 2199: Segfault using array operation in function call
- Bugzilla 2203: typeof(class.template.foo) crashes compiler

Version D 1.043 Apr 6, 2009

#### New/Changed Features

- Added FreeBSD 7.1 support.

#### Bugs Fixed

- Bugzilla 2796: Dependency on libstdc++-v3

Version D 1.042 Mar 31, 2009

#### New/Changed Features

- Added response files for Linux and OSX
- On Windows, if there are multiple source files on the command line they are now read with a background thread. This may speed up compilation.
- Folded in patches for LDC compatibility from Tomas Lindquist Olsen
- The Posix version identifier can now be set even though it is reserved and predefined, because many build systems and makefiles try to set it.

#### Bugs Fixed

- std.math.hypot is wrong for subnormal arguments
- Fix bug where / wasn't recognized as a path separator on Windows.
- Bugzilla 920: Fix one more out of date reference to 'auto' rather than 'scope'
- Bugzilla 1923: GC optimization for contiguous pointers to the same page
- Bugzilla 2319: "Win32 Exception" not very useful
- Bugzilla 2570: Patch for some mistakes in Ddoc comments
- Bugzilla 2591: custom allocator new argument should be size_t instead of uint
- Bugzilla 2689: seek behaves incorrectly on MAC OSX
- Bugzilla 2692: alignment of double on x86 linux is incorrect
- Bugzilla 2705: Response file size cannot exceed 64kb
- Bugzilla 2711: -H produces bad headers files if function defintion is templated and have auto return value
- Bugzilla 2731: Errors in associative array example
- Bugzilla 2743: dumpobj gives "buss error" on Tiger
- Bugzilla 2744: wrong init tocbuffer of forstatement
- Bugzilla 2745: missing token tochars in lexer.c
- Bugzilla 2747: improper toCBuffer of funcexp
- Bugzilla 2750: Optimize slice copy with size known at compile time
- Bugzilla 2751: incorrect scope storage class vardeclaration tocbuffer
- Bugzilla 2767: DMD incorrectly mangles NTFS stream names
- Bugzilla 2772: lib can't open response file

Version D 1.041 Mar 3, 2009

#### New/Changed Features

- Added buildable dmd source.
- Improved accuracy of exp, expm1, exp2, sinh, cosh, tanh on Mac OSX, and tripled speed on all platforms.

#### Bugs Fixed

- Bugzilla 1629: Link error: Previous Definition Different: blablah__initZ
- Bugzilla 1662: Falls back to libphobos if -debuglib isn't used when -g is
- Bugzilla 1681: cast(real) ulong.max == 0
- Bugzilla 2416: Slice of typedef'ed array should preserve the typedef'ed type
- Bugzilla 2582: Significantly Increased Compile Times For DWT
- Bugzilla 2670: std.file.read() should read files of 0 length
- Bugzilla 2673: Static constructors sometimes do not run when compiling with -lib
- Bugzilla 2678: for loops are already assumed to terminate
- Bugzilla 2679: Spurious "warning - " messages and erratic behaviour with is(typeof({void function}()))
- Bugzilla 2690: DMD aborts with MALLOC_CHECK_ set

Version D 1.040 Feb 11, 2009

#### New/Changed Features

- Added Mac OSX support.
- Separated bin and lib directories into windows, linux, and osx.
- No longer need to download dmc to use the windows version.
- Use version(OSX) for Mac OSX. Although version(darwin) is also supported for the time being, it is deprecated.

#### Bugs Fixed

Version D 1.039 Jan 14, 2009

#### New/Changed Features

- Improved speed of long division.
- Added predefined version D_Ddoc which is predefined when -D switch is thrown.

#### Bugs Fixed

- Bugzilla 2517: DDoc omits abstract on classes
- Bugzilla 2518: scope(success) not execuate and RAII variable destructor is not called
- Bugzilla 2519: Segfault when >> used in an invalid slice
- Bugzilla 2527: Alias Template Params Are Always Same Type As First Instantiation (according to typeof(x).stringof)
- Bugzilla 2531: DDoc not generated correctly for struct methods inside static if
- Bugzilla 2537: compiler crashes on this code:
- Bugzilla 2542: array casts behave differently at compile and runtime

Version D 1.038 Dec 11, 2008

#### New/Changed Features

- Changed IUnknown to use the extern(System) interface rather that extern(Windows).
- Added Partial IFTI Bugzilla 493

#### Bugs Fixed

- Bugzilla 1518: Crash using 'scope', 'with' and undefined 'RegExp'
- Bugzilla 1685: Array index is evaluated twice
- Bugzilla 1963: -H creates broken headers
- Bugzilla 2041: Spec implies relationship between interfaces and COM objects
- Bugzilla 2105: added patch
- Bugzilla 2468: result type of AndAndExp and OrOrExp deduced incorrectly
- Bugzilla 2489: import in struct causes assertion failure
- Bugzilla 2490: extern(C++) can not handle structs as return types
- Bugzilla 2492: ICE building on Linux with -lib option
- Bugzilla 2499: Template alias default value cannot be template instantiation
- Bugzilla 2500: template struct methods are left unresolved if imported from multiple modules
- Bugzilla 2501: member function marked as final override ignores override requirements
- Incorporated some of the patches from Bugzilla 1752

Version D 1.037 Nov 25, 2008

#### New/Changed Features

#### Bugs Fixed

- Bugzilla 313: Fully qualified names bypass private imports
- Bugzilla 341: Undocumented function void print() in object.d
- Bugzilla 929: Resizing array of associative arrays (uint[char[]][]) causes infinite loop / hang
- Bugzilla 1372: Compiler accepts pragma(msg,)
- Bugzilla 1610: Enum.stringof is int, not the name of the enum
- Bugzilla 1663: pragma(lib, "") don't work on linux
- Bugzilla 1797: Documentation comments - ///
- Bugzilla 2326: Methods within final class are not considered final when optimizing
- Bugzilla 2429: std.stream.File incorrect flag parsing and sharing mode
- Bugzilla 2431: Internal error: ../ztc/cgcod.c 1031 when using -O
- Bugzilla 2470: Cannot build libraries from other libraries
- unittest functions now always use D linkage

Version D 1.036 Oct 20, 2008

#### New/Changed Features

- Improved performance of AAs by rebalancing trees when rehashing.

#### Bugs Fixed

- Bugzilla 1229: Linker fills disk
- Bugzilla 2340: Template properties don't work
- Bugzilla 2365: compilation error: static const array in struct
- Bugzilla 2368: Calling a function with an address of another function, then calling a returned object is rejected
- Bugzilla 2373: freebsd select does not accept values > 999,999
- Bugzilla 2376: CTFE fails on array literal of array literals of chars
- Bugzilla 2380: static struct initializer accepted as non static initializer is not documented
- Bugzilla 2383: default arguments can implicitly access private global variables that are not visible at call site
- Bugzilla 2385: spec says all structs are returned via hidden pointer on linux, but it uses registers
- Bugzilla 2390: Missing warning on conversion from int to char

Version D 1.035 Sep 2, 2008

#### New/Changed Features

#### Bugs Fixed

- Bugzilla 1627: ICE with a method called _ctor
- Bugzilla 1633: Nonsensical "C style cast illegal" message with !is
- Bugzilla 1637: regression: new unittest failure in std/math2.d, odd cosh() behavior
- Bugzilla 1763: EndianStream doesn't handle ubyte/byte read/writes. Simple fix.
- Bugzilla 1771: dmd fails to execute on linux
- Bugzilla 1773: excessively long integer literal
- Bugzilla 1785: Mixing in an incorrect array literal causes infinite loop.
- Bugzilla 2176: Assertion failure: 'sz == es2->sz' on line 1339 in file 'constfold.c' (concatenating strings of different types)
- Bugzilla 2183: Bad formatting in std.c.stdlib
- Bugzilla 2232: DMD generates invalid code when an object file is compiled -inline
- Bugzilla 2241: DMD abort
- Bugzilla 2243: const bool = is(function literal), badly miscast
- Bugzilla 2262: -inline breaks -lib library
- Bugzilla 2286: movmskpd compiled incorrectly
- Bugzilla 2308: CTFE crash on foreach over nonexistent variable
- Bugzilla 2311: Static destructors in templates are never run
- Bugzilla 2314: Crash on anonymous class variable instantiation
- Bugzilla 2317: asm offsetof generates: Internal error: ../ztc/cod3.c 2651

Version D 1.034 Aug 7, 2008

#### New/Changed Features

- Now supports array operations.

#### Bugs Fixed

- Added hash to generated module names when building libs to reduce collisions
- Bugzilla 1622: parameters to TypeInfo_Struct.compare seem to be switched around.
- Bugzilla 2216: bad code generation for static arrays of zero length static arrays
- Bugzilla 2223: Typo in error message
- Bugzilla 2242: linux system calls are canceled by GC
- Bugzilla 2247: bad header file generated for if (auto o = ...) {}
- Bugzilla 2248: .di should be a supported file extension
- Bugzilla 2250: Update of user32.lib and kernel32.lib
- Bugzilla 2254: Size of executable almost triples
- Bugzilla 2258: Docs -> Inline Assembler -> Operand Types -> qword missing
- Bugzilla 2259: Assertion failure: '0' on line 122 in file 'statement.c'
- Bugzilla 2269: D BUG: cosine of complex
- Bugzilla 2272: synchronized attribute documentation
- Bugzilla 2273: Whitespace is not inserted after commas

Version D 1.033 Jul 11, 2008

#### New/Changed Features

#### Bugs Fixed

- Bugzilla 870: contradictory error messages for templates
- Bugzilla 2207: overload resolution fails with deprecation
- Bugzilla 2208: Deprecated function declarations cannot use deprecated types
- Bugzilla 2209: Typo in doc for offsetof

Version D 1.032 Jul 9, 2008

#### New/Changed Features

- Added .__vptr and .__monitor properties for class objects for use in the internal runtime library.

#### Bugs Fixed

- D.announce/12322: mixin regression
- Bugzilla 203: std.format.doFormat() pads width incorrectly on Unicode strings
- Bugzilla 211: Linking error with alias mixin params and anonymous methods
- Bugzilla 224: Incorrect warning "no return at end of function"
- Bugzilla 252: -w and switch returns = bogus "no return at end of function" warning
- Bugzilla 253: Invalid <dl> tag generated by Ddoc
- Bugzilla 294: DDoc: Function templates get double and incomplete documentation
- Bugzilla 398: No way to abort compilation in a doubly recursive mixin
- Bugzilla 423: dmd ignores empty commandline arguments
- Bugzilla 515: Spec incorrect in where .offsetof can be applied
- Bugzilla 520: Invariants allowed to call public functions
- Bugzilla 542: Function parameter of a deprecated type (other than a class) is not caught
- Bugzilla 543: Function return of a deprecated type is not caught
- Bugzilla 544: Variable declared of a deprecated type (other than a class) is not caught
- Bugzilla 545: Attempt to access a static built-in property of a deprecated struct, union, enum or typedef is not caught
- Bugzilla 547: Accessing a deprecated member variable through an explicit object reference is not caught
- Bugzilla 548: Accessing a value of a deprecated enum is not caught
- Bugzilla 566: Adding non-static members and functions to classes using a template doesn't error
- Bugzilla 570: Bogus recursive mixin error
- Bugzilla 571: class instance member template returns strange value
- Bugzilla 572: parse error when using template instantiation with typeof
- Bugzilla 581: Error message w/o line number in dot-instantiated template
- Bugzilla 617: IFTI doesn't use normal promotion rules for non-template parameters
- Bugzilla 951: Missing line number: no constructor provided for a class derived from a class with no default constructor
- Bugzilla 1097: Missing line number: casting array to array of different element size
- Bugzilla 1158: Missing line number: invalid mixin outside function scope
- Bugzilla 1176: Error missing file and line number
- Bugzilla 1187: Segfault with syntax error in two-level mixin.
- Bugzilla 1194: fcmov* emmits incorrect code
- Bugzilla 1207: Documentation on destructors is confusing
- Bugzilla 1341: typeof(int) should probably be legal
- Bugzilla 1601: shr and shl error message is missing line numbers
- Bugzilla 1612: No file/line number for using an undefined label in inline assembly
- Bugzilla 1907: Error message without a line number
- Bugzilla 1912: Error without line number (Tuple, invalid value argument)
- Bugzilla 1936: Error with no line number (array dimension overflow)
- Bugzilla 2161: Modify compiler to pass array TypeInfo to _adEq and _adCmp instead of element TypeInfo
- Bugzilla 2166: More stuff that doesn't compile in Phobos
- Bugzilla 2178: 3 errors without line number: typeof

Version D 1.031 June 18, 2008

#### New/Changed Features

- Added version identifier D_PIC when -fPIC switch is used.

#### Bugs Fixed

- Bugzilla 1383: Implicit Function Instantiation with typesafe-variadic of delegates doesn't work
- Bugzilla 1559: version statement makes code outside of it disappear
- Bugzilla 1675: "Identifier too long" error with OMF object files
- Bugzilla 1963: -H creates broken headers
- Bugzilla 2111: Protection incorrectly resolved when accessing super class' tupleof
- Bugzilla 2118: Inconsistent use of string vs invariant(char[]) in doc
- Bugzilla 2123: Anonymous class crashes
- Bugzilla 2132: CTFE: can't evaluate ~= at compile time, D2 only.
- Bugzilla 2136: typeof(super(...)) counted as a constructor call
- Bugzilla 2140: static if as final statement with no code causes containing code to be skipped
- Bugzilla 2143: Mixed-in identifier is not recognized by static if
- Bugzilla 2144: 'is' is defined to be the same as '==' for non-class and non-array types, but does not call opEquals
- Bugzilla 2146: Multiple execution of 'static this' defined in template
- Bugzilla 2149: Auto variables loose the keyword "auto" in di files generated with -H option.

Version D 1.030 May 16, 2008

#### New/Changed Features

- Added -lib switch to generate library files.
- Added -man switch to browse manual.
- When generating an executable file, only one object file is now generated containing all the modules that were compiled, rather than one object file per module.

#### Bugs Fixed

- Bugzilla 2031: Documentation: template value parameters
- Bugzilla 2032: Documentation for creating a class on the stack is unintuitive
- Bugzilla 2033: -g + circular refs => dmd hangs
- Bugzilla 2039: -ignore switch is missing from compiler docs
- Bugzilla 2044: -g hangs DMD
- Bugzilla 2055: (ICE) Compiler crash on struct initializer with too many elements
- Bugzilla 2058: Describe hidden value passed to class member functions
- Bugzilla 2067: call from anonymous class makes access violation.
- Bugzilla 2071: spec doesn't mention pointer arithmetic with two pointer operands
- Bugzilla 2075: Spec does not specify how array literals are stored.
- Bugzilla 2084: operator ?: does not compute the tightest type
- Bugzilla 2086: Describe relationship between string and char[] more explicitly
- Bugzilla 2089: Issues with CTFE and tuple indexes
- Bugzilla 2090: Cannot alias a tuple member which is a template instance

Version D 1.029 Apr 23, 2008

#### New/Changed Features

- Added -ignore switch to ignore unsupported pragmas.
- Unsupported pragmas now printed out with -v switch.
- Incorporated Benjamin Shropshire's doc changes

#### Bugs Fixed

- Bugzilla 1712: vtbl[0] for interface not set to corresponding Interface*
- Bugzilla 1741: crash on associative array with static array as index type
- Bugzilla 1905: foreach docs inconsistency
- Bugzilla 1906: foreach cannot use index with large arrays
- Bugzilla 1908: fix closure14.d
- Bugzilla 1935: The std.recls samples in the DMD .zip are obsolete.
- Bugzilla 1967: getDirName does not seem to use altsep on windows
- Bugzilla 1978: Wrong vtable call
- Bugzilla 1991: Dmd hangs
- Bugzilla 2019: Appending a one-element array literal doesn't work

Version D 1.028 Mar 6, 2008

#### New/Changed Features

- Added compile time error for comparing class types against `null`.

#### Bugs Fixed

- Fixed dwarf bug with DT_AT_upper_bound
- Bugzilla 756: IFTI for tuples only works if tuple parameter is last
- Bugzilla 1454: IFTI cant deduce parameter if alias argument used
- Bugzilla 1661: Not possible to specialize on template with integer parameter
- Bugzilla 1809: template.c:2600
- Bugzilla 1810: MmFile anonymous mapping does not work under win32
- Bugzilla 1819: spurious warning about missing return statement after synchronized
- Bugzilla 1828: Several Thread Issues
- Bugzilla 1833: std.c.windows.windows should use enums for constants, or be more selective about use of extern(Windows)
- Bugzilla 1836: Inline assembler can't use enum values as parameters.
- Bugzilla 1837: Make dmd stop flooding the console: prints content of passed parameter file
- Bugzilla 1843: Bogus unreachable statement on forward referenced struct, lacks line number
- Bugzilla 1850: The compiler accepts lower case asm registers.
- Bugzilla 1852: you get opCall missing when cast to a struct(diagnostic)
- Bugzilla 1853: opCmp documentation really needs some examples
- Bugzilla 1857: Runtime segfault while profileing - jump to invalid code address
- Bugzilla 1862: asm: [ESI+1*EAX] should be a legal addr mode
- Bugzilla 1864: Variable incorrectly declared final in final class template
- Bugzilla 1865: Escape sequences are flawed.
- Bugzilla 1877: Errors in the documentation of std.math.atan2
- Bugzilla 1879: Compiler segfaults on 'scope' and 'static if'
- Bugzilla 1882: Internal error: ..\ztc\cod1.c 2529

Version D 1.027 Feb 18, 2008

#### New/Changed Features

- Re-enabled auto interfaces.

#### Bugs Fixed

- Fixed display of ddoc template parameters that were aliased
- Bugzilla 1072: CTFE: crash on for loop with blank increment
- Bugzilla 1435: DDoc: Don't apply DDOC_PSYMBOL everywhere
- Bugzilla 1825: local instantiation and function nesting
- Bugzilla 1837: Make dmd stop flooding the console: prints content of passed parameter file
- Bugzilla 1842: Useless linker command line output during compilation on Linux

Version D 1.026 Jan 20, 2008

#### New/Changed Features

- `WinMain` and `DllMain` can now be in template mixins.

#### Bugs Fixed

- Bugzilla 1697: Internal error: ..\ztc\cgcod.c 2322 with -O
- Bugzilla 1707: '==' in TemplateParameterList in IsExpression causes segfault
- Bugzilla 1711: typeof with delegate literal not allowed as template parameter
- Bugzilla 1718: obscure exit with error code 5
- Bugzilla 1719: Compiler crash or unstable code generation with scoped interface instances
- Bugzilla 1724: Internal error: toir.c 177
- Bugzilla 1725: std.stream.BufferedFile.create should use FileMode.OutNew
- Bugzilla 1767: rejects-valid, diagnostic
- Bugzilla 1769: Typo on the page about exceptions
- Bugzilla 1773: excessively long integer literal
- Bugzilla 1779: Compiler crash when deducing more than 2 type args
- Bugzilla 1783: DMD 1.025 asserts on code with struct, template, and alias
- Bugzilla 1788: dmd segfaults without info

Version D 1.025 Jan 1, 2008

#### Bugs Fixed

- Bugzilla 1111: enum value referred to by another value of same enum is considered as enum's base type, not enum type
- Bugzilla 1720: std.math.NotImplemented missing a space in message
- Bugzilla 1738: Error on struct without line number
- Bugzilla 1742: CTFE fails on some template functions
- Bugzilla 1743: interpret.c:1421 assertion failure on CTFE code
- Bugzilla 1744: CTFE: crash on assigning void-returning function to variable
- Bugzilla 1749: std.socket not thread-safe due to strerror
- Bugzilla 1753: String corruption in recursive CTFE functions

Version D 1.024 Nov 27, 2007

#### New/Changed Features

- Changed the way coverage analysis is done so it is independent of order dependencies among modules.

#### Bugs Fixed

- Bugzilla 70: valgrind: Conditional jump or move depends on uninitialised value(s) in elf_findstr
- Bugzilla 71: valgrind: Invalid read of size 4 in elf_renumbersyms
- Bugzilla 204: Error message on attempting to instantiate an abstract class needs to be improved
- Bugzilla 1508: dmd/linux template symbol issues
- Bugzilla 1656: illegal declaration accepted
- Bugzilla 1664: (1.23).stringof generates bad code
- Bugzilla 1665: Internal error: ..\ztc\cod2.c 411

Version D 1.023 Oct 31, 2007

#### New/Changed Features

- Data items in static data segment >= 16 bytes in size are now paragraph aligned.

#### Bugs Fixed

- Bugzilla 318: wait does not release thread resources on Linux
- Bugzilla 322: Spawning threads which allocate and free memory leads to pause error on collect
- Bugzilla 645: Race condition in std.thread.Thread.pauseAll
- Bugzilla 689: Clean up the spec printfs!
- Bugzilla 697: No const folding on asm db,dw, etc
- Bugzilla 706: incorrect type deduction for array literals in functions
- Bugzilla 708: inline assembler: "CVTPS2PI mm, xmm/m128" fails to compile
- Bugzilla 709: inline assembler: "CVTPD2PI mm, xmm/m128" fails to compile
- Bugzilla 718: Internal error: ../ztc/cgcod.c 562
- Bugzilla 723: bad mixin of class definitions at function level: func.c:535: virtual void FuncDeclaration::semantic3(Scope*): Assertion `0' failed
- Bugzilla 725: expression.c:6516: virtual Expression* MinAssignExp::semantic(Scope*): Assertion `e2->type->isfloating()' failed.
- Bugzilla 726: incorrect error line for "override" mixin
- Bugzilla 729: scope(...) statement in SwitchBody causes compiler to segfault
- Bugzilla 733: std.conv.toFloat does not catch errors
- Bugzilla 1258: Garbage collector loses memory upon array concatenation
- Bugzilla 1478: Avoid libc network api threadsafety issues
- Bugzilla 1480: std.stream throws the new override warning all over the place
- Bugzilla 1483: Errors in threads not directed to stderr
- Bugzilla 1491: Suppress SIGPIPE when sending to a dead socket
- Bugzilla 1557: std.zlib allocates void[]s instead of ubyte[]s, causing leaks.
- Bugzilla 1562: Deduction of template alias parameter fails
- Bugzilla 1575: Cannot do assignment of tuples
- Bugzilla 1593: ICE compiler crash empty return statement in function
- Bugzilla 1613: DMD hangs on syntax error
- Bugzilla 1618: Typo in std\system.d

Version D 1.022 Oct 1, 2007

#### Bugs Fixed

- Fix std.boxer boxing of Object's (unit test failure)
- Fix std.demangle to not show hidden parameters (this and delegate context pointers)
- Bugzilla 217: typeof not working properly in internal/object.d
- Bugzilla 218: Clean up old code for packed bit array support
- Bugzilla 223: Error message for unset constants doesn't specify error location
- Bugzilla 278: dmd.conf search path doesn't work
- Bugzilla 479: can't compare arrayliteral statically with string
- Bugzilla 549: A class derived from a deprecated class is not caught
- Bugzilla 550: Shifting by more bits than size of quantity is allowed
- Bugzilla 551: Modulo operator works with imaginary and complex operands
- Bugzilla 556: is (Type Identifier : TypeSpecialization) doesn't work as it should
- Bugzilla 668: Use of *.di files breaks the order of static module construction
- Bugzilla 1125: Segfault using tuple in asm code, when size not specified
- Bugzilla 1437: dmd crash: "Internal error: ..\ztc\cod4.c 357"
- Bugzilla 1474: regression: const struct with an initializer not recognized as a valid alias template param
- Bugzilla 1484: Forward reference of enum member crashes DMD
- Bugzilla 1488: Bad code generation when using tuple from asm
- Bugzilla 1510: ICE: Assertion failure: 'ad' on line 925 in file 'func.c'
- Bugzilla 1523: struct literals not work with typedef
- Bugzilla 1531: cannot access typedef'd class field
- Bugzilla 1537: Internal error: ..\ztc\cgcod.c 1521
- Bugzilla 1609: TypeInfo_Typedef has incorrect implementation of next()

Version D 1.021 Sep 5, 2007

#### New/Changed Features

- Added command line switches -defaultlib and -debuglib
- Bugzilla 1445: Add default library options to sc.ini / dmd.conf
- Added trace_term() to object.d to fix Bugzilla 971: No profiling output is generated if the application terminates with exit
- Multiple module static constructors/destructors allowed.

#### Bugs Fixed

- Bugzilla 961: std.windows.registry stack corruption
- Bugzilla 1315: CTFE doesn't default initialise arrays of structs
- Bugzilla 1363: Compile-time issue with structs in 'for'
- Bugzilla 1375: CTFE fails for null arrays
- Bugzilla 1378: A function call in an array literal causes compiler to crash
- Bugzilla 1384: Compiler segfaults when using struct variable like a function with no opCall member.
- Bugzilla 1388: multiple static constructors allowed in module
- Bugzilla 1414: compiler crashes with CTFE and structs
- Bugzilla 1423: Registry: corrupted value
- Bugzilla 1436: std.date.getLocalTZA() returns wrong values when in DST under Windows
- Bugzilla 1447: CTFE does not work for static member functions of a class
- Bugzilla 1448: UTF-8 output to console is seriously broken
- Bugzilla 1450: Registry: invalid UTF-8 sequence
- Bugzilla 1460: Compiler crash on valid code
- Bugzilla 1464: "static" foreach breaks CTFE

Version D 1.020 Jul 23, 2007

#### Bugs Fixed

- Fixed extern (System)

Version D 1.019 Jul 21, 2007

#### New/Changed Features

- Added 0x78 Codeview extension for type dchar.
- Added extern (System)
- Bugzilla 345: updated std.uni.isUniAlpha to Unicode 5.0.0

#### Bugs Fixed

- Bugzilla 46: Included man files should be updated
- Bugzilla 268: Bug with SocketSet and classes
- Bugzilla 406: std.loader is broken on linux
- Bugzilla 561: Incorrect duplicate error message when trying to create instance of interface
- Bugzilla 588: lazy argument and nested symbol support to std.demangle
- Bugzilla 668: Use of *.di files breaks the order of static module construction
- Bugzilla 1110: std.format.doFormat + struct without toString() == crash
- Bugzilla 1199: Strange error messages when indexing empty arrays or strings at compile time
- Bugzilla 1300: Issues with struct in compile-time function
- Bugzilla 1306: extern (Windows) should work like extern (C) for variables
- Bugzilla 1331: header file genaration generates a ":" instead of ";" at pragma
- Bugzilla 1332: Internal error: ../ztc/cod4.c 357
- Bugzilla 1333: -inline ICE: passing an array element to an inner class's constructor in a nested function, all in a class or struct
- Bugzilla 1336: Internal error when trying to construct a class declared within a unittest from a templated class.

Version D 1.018 Jul 1, 2007

#### Bugs Fixed

- Bugzilla 540: Nested template member function error - "function expected before ()"
- Bugzilla 559: Final has no effect on methods
- Bugzilla 627: Concatenation of strings to string arrays with ~ corrupts data
- Bugzilla 629: Misleading error message "Can only append to dynamic arrays"
- Bugzilla 639: Escaped tuple parameter ICEs dmd
- Bugzilla 641: Complex string operations in template argument ICEs dmd
- Bugzilla 657: version(): ignored
- Bugzilla 689: Clean up the spec printfs!
- Bugzilla 1103: metastrings.ToString fails for long > 0xFFFF_FFFF
- Bugzilla 1107: CodeView: wrong CV type for bool
- Bugzilla 1118: weird switch statement behaviour
- Bugzilla 1186: Bind needs a small fix
- Bugzilla 1199: Strange error messages when indexing empty arrays or strings at compile time
- Bugzilla 1200: DMD crash: some statements containing only a ConditionalStatement with a false condition
- Bugzilla 1203: Cannot create Anonclass in loop
- Bugzilla 1204: segfault using struct in CTFE
- Bugzilla 1206: Compiler hangs on this() after method in class that forward references struct
- Bugzilla 1207: Documentation on destructors is confusing
- Bugzilla 1211: mixin("__LINE__") gives incorrect value
- Bugzilla 1212: dmd generates bad line info
- Bugzilla 1216: Concatenation gives 'non-constant expression' outside CTFE
- Bugzilla 1217: Dollar ($) seen as non-constant expression in non-char[] array
- Bugzilla 1219: long.max.stringof gets corrupted
- Bugzilla 1224: Compilation does not stop on asserts during CTFE
- Bugzilla 1228: Class invariants should not be called before the object is fully constructed
- Bugzilla 1233: std.string.ifind(char[] s, char[] sub) fails on certain non ascii strings
- Bugzilla 1234: Occurrence is misspelled almost everywhere
- Bugzilla 1235: std.string.tolower() fails on certain utf8 characters
- Bugzilla 1236: Grammar for Floating Literals is incomplete
- Bugzilla 1239: ICE when empty tuple is passed to variadic template function
- Bugzilla 1242: DMD AV
- Bugzilla 1244: Type of array length is unspecified
- Bugzilla 1247: No time zone info for India
- Bugzilla 1285: Exception typedefs not distinguished by catch
- Bugzilla 1287: Iterating over an array of tuples causes "glue.c:710: virtual unsigned int Type::totym(): Assertion `0' failed."
- Bugzilla 1290: Two ICEs, both involving real, imaginary, ? : and +=.
- Bugzilla 1291: .stringof for a class type returned from a template doesn't work
- Bugzilla 1292: Template argument deduction doesn't work
- Bugzilla 1294: referencing fields in static arrays of structs passed as arguments generates invalid code
- Bugzilla 1295: Some minor errors in the lexer grammar

Version D 1.017 Jun 25, 2007

#### New/Changed Features

- Added __VENDOR__ and __VERSION__.
- The .init property for a variable is now based on its type, not its initializer.

#### Bugs Fixed

- std.compiler now is automatically updated.
- Fixed CFTE bug with e++ and e--.
- Bugzilla 1254: Using a parameter initialized to void in a compile-time evaluated function doesn't work
- Bugzilla 1256: "with" statement with symbol
- Bugzilla 1259: Inline build triggers an illegal error msg "Error: S() is not an lvalue"
- Bugzilla 1260: Another tuple bug
- Bugzilla 1261: Regression from overzealous error message
- Bugzilla 1262: Local variable of struct type initialized by literal resets when compared to .init
- Bugzilla 1263: Template function overload fails when overloading on both template and non-template class
- Bugzilla 1268: Struct literals try to initialize static arrays of non-static structs incorrectly
- Bugzilla 1269: Compiler crash on assigning to an element of a void-initialized array in CTFE
- Bugzilla 1270: -inline produces an ICE
- Bugzilla 1272: problems with the new 1.0 section
- Bugzilla 1276: static assert message displayed with escaped characters
- Bugzilla 1283: writefln: formatter applies to following variable

Version D 1.016 Jun 14, 2007

#### New/Changed Features

- The compiler was not changed.
- Added aliases string, wstring, and dstring to ease compatiblity with 2.0.

#### Bugs Fixed

Version D 1.015 Jun 5, 2007

#### Bugs Fixed

- Added missing \n to exception message going to stderr.
- Fixed default struct initialization for CTFE.
- Bugzilla 1226: ICE on a struct literal
- Fixed gc memory corrupting problem.

Version D 1.014 Apr 26, 2007

#### New/Changed Features

- Added associative array literals
- Added struct literals
- Array element assignments can now be done in CTFE

#### Bugs Fixed

- Bugzilla 1000: writefln fails on nested arrays
- Bugzilla 1143: Assertion failure: '0' on line 850 in 'template.c' - On specialization of IFTI template parameters.
- Bugzilla 1144: template mixin causes DMD crash
- Bugzilla 1146: mixin + assert() crashes compiler
- Bugzilla 1153: dmd assertion failure
- Bugzilla 1159: Various mixins cause "CompileExp::semantic" message, some crash DMD
- Bugzilla 1174: Program hangs creating an array of enums with nonzero initializer
- Bugzilla 1177: $ no longer works inside CTFE functions.
- Bugzilla 1180: the GC failes to handle large allocation requests propperly
- Bugzilla 1189: Reverse the titles on web pages

Version D 1.013 Apr 19, 2007

#### Bugs Fixed

- Fixed crash with std.format and static arrrays
- Bugzilla 582: Cannot slice mixed tuples
- Bugzilla 594: can't cast arrayliteral statically
- Bugzilla 595: can't append to array/arrayliteral statically
- Bugzilla 997: [Regression] Struct-returning function that conditionally passes the result of another function straight through doesn't work (NRVO bug?)
- Bugzilla 1090: Attribute specification: "}" vs "end of scope"
- Bugzilla 1091: Wrong size reserved for critical sections
- Bugzilla 1094: switch bug
- Bugzilla 1096: Mysterious hang with toUTCString + UTCtoLocalTime + d_time_nan
- Bugzilla 1098: symbol collision in d/dmd/expression.c between math.h and port.h
- Bugzilla 1119: Internal error: ../ztc/cgcod.c 2190 (template instantiation)
- Bugzilla 1121: Assertion codegen issue with templated function
- Bugzilla 1132: DMD calling linker over commandline
- Bugzilla 1134: incorrect calling convention used
- Bugzilla 1135: invariant keyword parsing is messed up
- Bugzilla 1147: Typo in phobos/std/file.d: 4069 should be 4096
- Bugzilla 1148: Problems returning structs from functions
- Bugzilla 1150: Compiler creates wrong code
- Bugzilla 1156: Installed libraries need to be passed in different order
- Bugzilla 1163: Can't initialize multiple variables with void.

Version D 1.012 Apr 12, 2007

#### Bugs Fixed

- D.announce/8190 now works with -v1
- D.announce/8193
- Bugzilla 532: Wrong name mangling for template alias params of local vars
- Bugzilla 1068: stack corruption with mixins and function templates
- Bugzilla 1089: Unsafe pointer comparison in TypeInfo_Pointer.compare
- Bugzilla 1127: -v1 doesn't disable the ref and macro keywords

Version D 1.011 Apr 11, 2007

#### New/Changed Features

- Extended Codeview symbolic debug output with LF_OEM types.
- Extended Dwarf symbolic debug output with DW_TAG_darray_type, DW_TAG_aarray_type, and DW_TAG_delegate types.
- Added keywords ref and macro.
- final classes cannot be subclassed.
- final for variables now works.
- ref now works as a replacement for inout.
- Fixed so multiple type inferring declarations like `auto a=1,c=2;` works.

#### Bugs Fixed

- Fixed problem with overloading of function templates that have the same template parameter list, but different function parameters.
- Fixed problems with type deduction from specializations that are template instances.
- Fixed assert template.c(2956) s->parent
- Got .property to work for typeof.
- Fixed bug in DW_AT_comp_dir output for some linux versions.
- D.announce/8027
- D.announce/8047
- D/51800
- Bugzilla 1028: Segfault using tuple inside asm code.
- Bugzilla 1052: DMD 1.009 - aliasing functions from superclasses may result in incorrect conflicts
- Bugzilla 1080: Failed to link to std.windows.registry
- Bugzilla 1081: with using real and -O option, dmd generate bug code
- Bugzilla 1082: The .offsetof property yields a signed int, a size_t would be more appropriate
- Bugzilla 1086: CodeView: missing line information for string switch
- Bugzilla 1092: compiler crash in ..\ztc\cod1.c 2528
- Bugzilla 1102: switch case couldn't contain template member
- Bugzilla 1108: Indexing an int[] not evaluatable at compile time
- Bugzilla 1122: dmd generate bad line number while reporting error message

Version D 1.010 Mar 24, 2007

#### New/Changed Features

- Added template partial specialization derived from multiple parameters.
- Added Object.factory(char[] classname) method to create class objects based on a string.
- Added std.gc.malloc(), std.gc.extend() and std.gc.capacity().
- Added std.string.isEmail() and std.string.isURL().
- Added std.stdio.readln().
- Improved gc performance for array resize and append.
- Bugzilla 64: Unhandled errors should go to stderr
- Added predefined Ddoc macro DOCFILENAME

#### Bugs Fixed

- Fixed Broken link in http://digitalmars.com/d/comparison.html
- Fixed problem with CTFE and array literals
- Bugzilla 931: D Strings vs C++ Strings Page Incorrect
- Bugzilla 935: Extern Global C Variables
- Bugzilla 948: operatoroverloading.html - Rationale section is both out of date and incomplete
- Bugzilla 950: Missing filename and line number: conflict between implicit length in [...] and explicit length declared in the scope
- Bugzilla 959: smaller ddoc documentation issue
- Bugzilla 1056: segfault with pragma(msg) inside CTFE
- Bugzilla 1062: Cannot catch typedef'd class
- Bugzilla 1074: Dead link to std.c.locale webpage

Version D 1.009 Mar 10, 2007

#### Bugs Fixed

- D/49928 1
- D.announce 7563
- Bugzilla 146: Wrong filename in DWARF debugging information for templates
- Bugzilla 992: CTFE Failure with static if
- Bugzilla 993: incorrect ABI documentation for float parameters
- Bugzilla 995: compile-time function return element of Tuple / const array
- Bugzilla 1005: dmd: tocsym.c:343: virtual Symbol* FuncDeclaration::toSymbol(): Assertion `0' failed.
- Bugzilla 1009: CodeView: out and inout parameters are declared void*
- Bugzilla 1014: Error with character literal escaping when generating header with -H
- Bugzilla 1016: CTFE fails with recursive functions
- Bugzilla 1017: CTFE doesn't support (string == string)
- Bugzilla 1018: regression: Error: divide by 0
- Bugzilla 1019: regression: missing filename and line number: Error: array index X is out of bounds [0 .. Y]
- Bugzilla 1020: regression: mov EAX, func
- Bugzilla 1021: CTFE and functions returning void
- Bugzilla 1022: CodeView: unions have zero length in typeleafs and datasymbols
- Bugzilla 1026: dmd SEGV when checking length of Tuple elements when length == 0
- Bugzilla 1030: ICE one-liner; struct in delegate
- Bugzilla 1038: explicit class cast breakage in 1.007

Version D 1.007 Feb 20, 2007

#### New/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

Version D 1.006 Feb 15, 2007

#### New/Changed Features

- Added -J path 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

Version D 1.005 Feb 5, 2007

#### New/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

Version D 1.004 Jan 26, 2007

#### Bugs Fixed

- Bugzilla 892: Another bug in the new GC - pointers in mixins

Version D 1.003 Jan 26, 2007

#### Bugs Fixed

- D.announce/6929
- D.announce/6953

Version D 1.002 Jan 24, 2007

#### Bugs Fixed

- D.announce/6893: ClassInfo.flags incorrectly set
- D.announce/6906: Three subtle cases of tail recursion item 1 and 2

Version D 1.001 Jan 23, 2007

#### New/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

Forums | Comments | D | Search | Downloads | Home
Copyright © 1999-2010 by Digital Mars ®, All Rights Reserved | Page generated by Ddoc.