www.digitalmars.com

D Programming Language 1.0


Last update Tue Jan 1 19:35:29 2013

D Change Log

Under Construction

  1. Shared libraries for Linux
Version D 1.075 Aug 2, 2012

New/Changed Features

  • Bugzilla 8127: dmd link library paths not given precedence over gcc defaults

Bugs Fixed

  • Bugzilla 1175: nested class inheritance
  • Bugzilla 1780: Type tuple deduction failure for class templates
  • Bugzilla 2328: setTypeInfo in gc.d backwards.
  • Bugzilla 2472: Delegates are not lvalue.
  • Bugzilla 2962: ICE(glue.c) or bad codegen passing variable as template value parameter
  • Bugzilla 3574: post-condition in void main() is not evaluated if there is no return statement
  • Bugzilla 3608: Allow isExpression and templates to capture template parameters and FQN of template
  • Bugzilla 4024: Last catch only accepts block statement
  • Bugzilla 4155: return of NaN to temporary fails equality test
  • Bugzilla 4288: Error on passing delegate to C linkage function
  • Bugzilla 4364: ICE(class.c) compiling a struct def named 'Object' followed by a class definition
  • Bugzilla 4583: PIC code not working: EBX register set incorrectly
  • Bugzilla 4785: auto return of a function with in contract
  • Bugzilla 4967: member default initializers not working in static struct initializers
  • Bugzilla 5039: Cannot use invariant() with auto methods
  • Bugzilla 5809: [64 bit] wrong code for *p==0, when widening conversion occurs
  • Bugzilla 6189: [64bit] optimizer: register content destroyed in function prolog
  • Bugzilla 6475: template identifier is not a member of alias
  • Bugzilla 6591: di header generation loses selective import symbols
  • Bugzilla 6612: Associative arrays with associative array keys literals
  • Bugzilla 6758: std.c.stdarg problems with 8 or more integer arguments on x86_64
  • Bugzilla 6891: template with uint value parameter causes several issues
  • Bugzilla 7396: Indicate default alignment with 0.
  • Bugzilla 7453: Can't return value from within opApply
  • Bugzilla 7478: stack overflow compiling with -deps -release -inline -noboundscheck
  • Bugzilla 7537: File.tmpfile requires administrator rights on Windows
  • Bugzilla 7581: Compiler uses wrong instructions to move complex value from ST to xmm registers
  • Bugzilla 7750: while(true) loop with try/catch block causes segfault
  • Bugzilla 7770: __dollar cannot be read at compile time
  • Bugzilla 7784: ICE with self-referencing literals
  • Bugzilla 7793: static assert( void_function() ) gives misleading error message
  • Bugzilla 7851: Internal error: e2ir.c 688
  • Bugzilla 7880: [CTFE] cast from void array allowed with different results than at runtime
  • Bugzilla 7893: Spec completely wrong for D variadic arguments on 64 bits
  • Bugzilla 7894: [CTFE] - goto within ForStatement restarts loop
  • Bugzilla 7907: [ICE] invalid expression on template argument crashes dmd
  • Bugzilla 7911: Nested static if failing to execute
  • Bugzilla 7931: Error message with _error_ with var[1,2]
  • Bugzilla 7932: Corrupted argument inside out contract in x86_64
  • Bugzilla 7933: Illegal interaction of templates
  • Bugzilla 7950: Type tuples are incorrectly flattened in base type list of interface
  • Bugzilla 7974: forward reference of mixin declaration
  • Bugzilla 7987: [CTFE] cannot compare arrays of slices
  • Bugzilla 8002: Excess initial errors when passing template args to non-templated struct
  • Bugzilla 8016: Methods defined in external object files when template alias parameter is involved
  • Bugzilla 8032: `mixin template` before virtual method with same method causes an error
  • Bugzilla 8060: xmmstore cannot allocate store for optimized operation that uses int and floats
  • Bugzilla 8066: ICE on missing return statement if invariant is present
  • Bugzilla 8069: incorrect ambiguous virtual function error
  • Bugzilla 8073: Regression (git) Error: undefined identifier __result
  • Bugzilla 8089: Importing package as module causes segfault
  • Bugzilla 8091: Optimizer generates wrong code when reducing comparisons
  • Bugzilla 8094: Static if matching using alias parameter in template fails
  • Bugzilla 8095: [64 bit] Wrong code generation with spilled register, -m64 -O
  • Bugzilla 8125: TypeInstance dedunction problem
  • Bugzilla 8147: Blah!R.init now requires parens - (Blah!R).init
  • Bugzilla 8188: need this to access member when mixining in a function
  • Bugzilla 8190: Externally defined struct error message
  • Bugzilla 8199: stack is not aligned in finally block
  • Bugzilla 8216: CTFE should allow 'pointer is inside range' comparisons
  • Bugzilla 8237: Error message with _error_ when using failed type inference in template parameter
  • Bugzilla 8276: [CTFE] ICE when reading variable from nested function
  • Bugzilla 8283: ICE(cod1.c): returning struct with constructor as member of another struct
  • Bugzilla 8423: Wrong code for bool parameter in 5th integer register.
  • Bugzilla 8437: [2.060 beta] static struct no size yet for forward reference
  • Bugzilla 8454: [ICE] (backend\cg87.c 3497) with cdouble and sqrt
Version D 1.074 Apr 12, 2012

New/Changed Features

  • Add predefined Ddoc macro SRCFILENAME
  • Added std.c.stdint

Bugs Fixed

  • Bugzilla 176: [module] message "module and package have the same name"
  • Bugzilla 783: Cannot use an array w/ const or variable index as new[] size argument.
  • Bugzilla 977: Expressions inside a struct or array initializer get wrong line number
  • Bugzilla 3354: invalid number of args accepted for 1/2 arg floating point instructions
  • Bugzilla 3509: Cannot forward reference a template mixin's members in a compile-time context
  • Bugzilla 3510: Cannot forward reference a templated type from within a template mixin
  • Bugzilla 3559: DMD 1.048+ fails to take function pointer from overloaded member functions
  • Bugzilla 3630: bad error location in "has no effect in expression" error
  • Bugzilla 3682: Regression(2.038) is expression fails to match types
  • Bugzilla 3812: Missing line number for implicit cast of variadic function to array
  • Bugzilla 3822: Invalid optimization of alloca called with constant size
  • Bugzilla 4241: duplicate union initialization error doesn't give a file location
  • Bugzilla 4269: Regression(2.031): invalid type accepted if evaluated while errors are gagged
  • Bugzilla 4820: Regression(1.058, 2.044) in DStress caused by changeset 452
  • Bugzilla 4993: Temporary values and opIndexAssign
  • Bugzilla 5181: Excess cast on in-place operation op= involving conversion
  • Bugzilla 5554: [qtd] Covariance detection failure
  • Bugzilla 5879: Not all frontend errors use stderr
  • Bugzilla 6391: Line-less error when passing the '.im' of floating pointer value by reference
  • Bugzilla 6438: [CTFE] wrong error "value used before set" when slicing =void array
  • Bugzilla 6699: More cases of __error in error messages
  • Bugzilla 6681: struct constructor call is converted to struct literal that breaks union initialization
  • Bugzilla 7380: Crash trying to use address of variable in struct constructor at module level
  • Bugzilla 7399: Broken import statement in trySemantic() causes silent compiler error
  • Bugzilla 7406: tuple foreach doesn't work with mixed tuples
  • Bugzilla 7462: Error message with _error_ in overridden function
  • Bugzilla 7463: Duplicated error message with bad template value parameter
  • Bugzilla 7473: [CTFE] Non-ref argument behaves as if it's a ref argument
  • Bugzilla 7493: Initialization of void[][N]
  • Bugzilla 7527: [CTFE] Segfault when slicing a pointer at compile time
  • Bugzilla 7536: ctfeAdrOnStack triggered
  • Bugzilla 7544: ICE(interpret.c) Catching an exception with a null catch block
  • Bugzilla 7547: -deps output lists object as a top level module
  • Bugzilla 7550: Missing AVX instruction VPMULDQ
  • Bugzilla 7557: Sea of errors after template failure
  • Bugzilla 7563: Class members with default template arguments have no type
  • Bugzilla 7568: pragma(msg) segfaults with an aggregate including a class.
  • Bugzilla 7592: Conversion from ireal to ifloat broken when using xmm
  • Bugzilla 7633: Missing CTFE error message
  • Bugzilla 7639: Undefined enum AA key crashes compiler
  • Bugzilla 7641: std.typecons.Proxy incorrectly allows implicit conversion to class
  • Bugzilla 7667: ICE(interpret.c): 'ctfeStack.stackPointer() == 0'
  • Bugzilla 7681: Regression(2.059head):ICE:opCatAssign(delegate) to undefined identifier
  • Bugzilla 7694: Internal error: e2ir.c 1251 when calling member function inside struct via alias param
  • Bugzilla 7699: Cannot get frame pointer to in contract when compiling with -inline
  • Bugzilla 7735: Functions with variadic void[][]... arguments corrupt passed data
  • Bugzilla 7745: Regression (1.x git-415e48a) Methods defined in external object files when a pointer to it is taken
  • Bugzilla 7754: static this() in template is stripped during header gen
  • Bugzilla 7755: regression(2.059head): ICE in glue.c
  • Bugzilla 7768: More readable template error messages
  • Bugzilla 7781: [CTFE] Segmentation fault on 'mixin({return;}());
  • Bugzilla 7782: [ICE] With wrong import syntax
  • Bugzilla 7785: [CTFE] ICE when slicing pointer to variable
  • Bugzilla 7786: dmd crashes with invalid module name
  • Bugzilla 7789: [CTFE] null pointer exception on setting array length
  • Bugzilla 7794: Sea of errors when calling regex() after compile error
  • Bugzilla 7812: Segfault on invalid code during template match deduction with errors gagged
  • Bugzilla 7814: Regression(2.059head) ICE(tocsym.c) using scope(failure) within foreach-range
  • Bugzilla 7817: opAssign to in declaration broken in dmd 1.074 beta1
Version D 1.073 Feb 8, 2012

New/Changed Features

  • Convert to -shared dmd switch instead of -dylib
  • Better use of XMM registers in OS X 32 bit target.
  • Add inline assembler support for AVX instructions (64 bit targets only).

Bugs Fixed

  • Bugzilla 516: Mutually calling constructors allowed
  • Bugzilla 664: is(func T == function) ignores variadic arguments
  • Bugzilla 678: Compiler accepts, for a function T[] t(), t().ptr but not t.ptr
  • Bugzilla 796: Asserting a null object reference throws AssertError Failure internal\invariant.d(14) or Access Violation
  • Bugzilla 949: Wrong spec/compiler behaviour for Strings, Integers and Floats
  • Bugzilla 955: Passing arguments into functions - in, out, inout, const, and contracts
  • Bugzilla 1313: out/body disables escape analysis
  • Bugzilla 1521: Ambiguous documentation
  • Bugzilla 1563: dynamic cast is not always performed
  • Bugzilla 1570: Wrong return for address operator
  • Bugzilla 1918: __traits(getVirtualFunctions) returns final functions
  • Bugzilla 1920: Class documentation incomplete
  • Bugzilla 1943: Templates can't take function pointer parameters
  • Bugzilla 2106: export class doesn't affect, what is exported
  • Bugzilla 2351: enum with no members allowed
  • Bugzilla 2382: spec is not clear on what is allowed as global/static initializers
  • Bugzilla 2387: Static array terminology
  • Bugzilla 2417: [module] protected base member is not available via base handle in a derived class if it is defined in a separate module
  • Bugzilla 2483: DMD allows assignment to a scope variable
  • Bugzilla 2494: describe explicit casting of arrays
  • Bugzilla 2495: const syntax for member functions needs better description
  • Bugzilla 2497: delete and null relationship needs more details
  • Bugzilla 2639: Hex and octal string values not completely specified
  • Bugzilla 2819: array.sort segfaults if array length >=0x8F_FFFF
  • Bugzilla 2894: abstract classes sometimes allow non-abstract bodyless functions
  • Bugzilla 3084: Formatting of lazy in parameters section
  • Bugzilla 3092: Indexing a tuple produces a tuple containing the indexed element
  • Bugzilla 3111: 'mangleof' can't be member of a struct not documented
  • Bugzilla 3187: Nested foreach over opApply doesn't work
  • Bugzilla 3204: Document global properties
  • Bugzilla 3265: .classinfo for Interface-typed reference does not return instance's ClassInfo
  • Bugzilla 3492: Can't overload nested functions
  • Bugzilla 3578: Impossible to run a struct invariant using assert(s)
  • Bugzilla 3735: op=
  • Bugzilla 3757: Overloading const function with overridden non-const function results in seg fault.
  • Bugzilla 3777: size_t is undefined
  • Bugzilla 3783: Text inconsistent with EscapeSequence rules
  • Bugzilla 3787: clarification: assigment to 'this'
  • Bugzilla 3791: Reference anonymous nested classes when describing new expressions
  • Bugzilla 3838: PrimaryExpression rule doesn't permit module scope template instances
  • Bugzilla 3886: Bad example of definition file for DLLs
  • Bugzilla 3906: Undefined struct and union declarations are not documented
  • Bugzilla 3954: DeclDef rule is missing TemplateMixinDeclaration
  • Bugzilla 3988: Provide canonical example for operator overloading
  • Bugzilla 4135: Regression(1.034): ICE(statement.c): mixin in bad foreach, D1 only
  • Bugzilla 4180: D DWARF extensions conflict with DWARF-4
  • Bugzilla 4235: !in not working (D1)
  • Bugzilla 4371: segfault(template.c) template tuple in is() expression
  • Bugzilla 4413: typeof(this) doesn't work in method template signature
  • Bugzilla 4523: [tdpl] .remove method for Associative Arrays returns void in all cases
  • Bugzilla 4545: Alias to members possible without "this" instance
  • Bugzilla 4647: [tdpl] Cannot explicitly call final interface method, ambiguous calls allowed
  • Bugzilla 4711: Incorrect handling of && operator with void operand
  • Bugzilla 4887: Right-shifting by 32 is allowed and broken
  • Bugzilla 4956: remove direct references to gcc from linux.mak
  • Bugzilla 5023: Docs about order of execution of invariant and pre/post conditions
  • Bugzilla 5111: Static function-level variables are not in the language spec.
  • Bugzilla 5114: Too many error messages
  • Bugzilla 5132: ~ unary operator silently different from C
  • Bugzilla 5138: Special token sequence
  • Bugzilla 5337: Documentation regarding interfacing with C does not account for TLS differences
  • Bugzilla 5476: spec: attributes have an optional else clause
  • Bugzilla 5527: Bug in http://www.digitalmars.com/d/2.0/ctod.html#closures
  • Bugzilla 5648: dmd command line option list inconsistencies
  • Bugzilla 5715: Contradiction in spec: meaning of variable.init
  • Bugzilla 5796: ICE with pragma(msg, ...) after missing ';' in a template
  • Bugzilla 5820: Documentation states string literals can implicitly convert to char*
  • Bugzilla 5841: alias grammar is incorrect
  • Bugzilla 6013: private ignored for aliases
  • Bugzilla 6037: [CTFE] recursive ref parameters evaluated incorrectly
  • Bugzilla 6451: [64bit] ICE(expression.c:4434): SymbolExp::SymbolExp(Loc, TOK, int, Declaration*, int): Assertion 'var' failed
  • Bugzilla 6504: Regression(2.041): "str" ~ [arr] allows string literal to be modified
  • Bugzilla 6701: template specialization resolution failure
  • Bugzilla 6933: Segfault(declaration.c) using struct with destructor in CTFE
  • Bugzilla 6934: [CTFE] can't use $ in a slice of an array passed by ref
  • Bugzilla 6964: Error message with __error: static assert(undefined+1)
  • Bugzilla 6968: Segmantation fault, if exclamation mark absent
  • Bugzilla 6971: [lex.dd] Type of string literals are outdated
  • Bugzilla 6984: CTFE generates a torrent of spurious errors, if there was a previous error
  • Bugzilla 6985: [CTFE] Non-constant case expressions can't be interpreted
  • Bugzilla 6995: [CTFE] can't interpret static template method
  • Bugzilla 7011: No line number error for vector power
  • Bugzilla 7043: CTFE: ICE illegal reference value 0LU, only with -inline
  • Bugzilla 7073: Parsing of class-returning varargs function inside module ctor fails
  • Bugzilla 7108: ICE: TraitsExp::semantic(Scope*) 2.056 -> 2.057 regression - segfault
  • Bugzilla 7120: Scope Delegates + Delegate Literals
  • Bugzilla 7123: static assert(is(typeof(toDelegate(&main)))) is false
  • Bugzilla 7127: Const-related infinite recursion in DWARF generation
  • Bugzilla 7143: [CTFE] cannot compare class references with "is"
  • Bugzilla 7144: [CTFE] base class does not call overridden members
  • Bugzilla 7154: [CTFE] failing downcast causes error
  • Bugzilla 7158: [CTFE] ICE(interpret.c) calling a class member using a dotvar expression
  • Bugzilla 7162: [CTFE] "bool || void" expression crashes dmd
  • Bugzilla 7165: [CTFE] ice converting null pointer to bool with constant member function
  • Bugzilla 7166: Internal error: ../ztc/cgxmm.c 60
  • Bugzilla 7173: dmd: glue.c:1065: virtual unsigned int Type::totym(): Assertion `0' failed.
  • Bugzilla 7178: Segfault with import of invalid template
  • Bugzilla 7185: [CTFE] ICE on changing char array length
  • Bugzilla 7187: Regression(head 12d62ca5): [CTFE] ICE on slicing
  • Bugzilla 7188: "import phobos;" crashes DMD
  • Bugzilla 7189: inline failed
  • Bugzilla 7190: Tuple length incorrect
  • Bugzilla 7194: [CTFE] Incorrect behaviour with pointers as local struct variable
  • Bugzilla 7197: enum string doesn't work with CTFE
  • Bugzilla 7216: [CTFE] Can't call struct member function using pointer field
  • Bugzilla 7217: [CTFE] ICE on accessing struct array field
  • Bugzilla 7218: Nested function with contract is rejected
  • Bugzilla 7228: MOVDQ2Q instruction is emitted with swapped register indices
  • Bugzilla 7231: Segfault using opDispatch with property notation
  • Bugzilla 7232: Warning: statement is not reachable has no line number
  • Bugzilla 7239: C style struct initialization doesn't work with aliases
  • Bugzilla 7245: [CTFE] Address of ref foreach parameter changes to point after array
  • Bugzilla 7248: [CTFE] Stack overflow on using struct filed pointer with address of array element
  • Bugzilla 7266: [CTFE] Assign to ref param (that's taken from struct member) is noop
  • Bugzilla 7277: [CTFE ICE] Assertion failure: 'thisval' on line 1690 in file 'interpret.c'
  • Bugzilla 7285: Implicit fixed-size array cast
  • Bugzilla 7309: [2.058] Regression caused by new inlining code
  • Bugzilla 7335: sometimes the OUT - block have undefined class members-acces
  • Bugzilla 7351: Possible asm bug: bad type/size of operands 'xadd'
  • Bugzilla 7359: Template function with typesafe variadic rejects more than one string arguments
  • Bugzilla 7367: wrong char comparison result
  • Bugzilla 7373: (Regression git) Renamed imports conflict with other implicitly imported symbols
  • Bugzilla 7375: Regression(2.057): Invalid downcast permitted with derived/aliased template classes
  • Bugzilla 7377: Compiler segfault in: TemplateMixin::hasPointers()
  • Bugzilla 7383: Blank lines in code sections cause premature section termination
  • Bugzilla 7419: [2.058/CTFE] Constructor of struct is overwritten inside a unittest with -inline
  • Bugzilla 7435: Regression(master):dmd crashes when 'scope(failure) debug ...' without -debug option.
Version D 1.072 Dec 10, 2011

New/Changed Features

  • Better use of XMM registers in 64 bit targets.
  • Add Mach-O 64 bit support for obj2asm and dumpobj
  • Add OSX 64 bit target
  • classes, interfaces, and exceptions are supported in CTFE

Bugs Fixed

Version D 1.071 Oct 26, 2011

New/Changed Features

  • add -gs compiler switch
  • Bugzilla 6752: Add separate option to control stack frame generation

Bugs Fixed

  • Bugzilla 546: Error message for accessing a deprecated variable is doubled
  • Bugzilla 1891: Array-concatenation of T* and T*[] produces corrupted result
  • Bugzilla 1993: Error calling vararg delegate with null
  • Bugzilla 2315: DMD Stack Overflow on unwanted ctfe recursion
  • Bugzilla 2553: Excess attribute propagation for interfaces
  • Bugzilla 2740: Template Mixins do not work as advertised
  • Bugzilla 2953: tuple.length rejected as a tuple parameter in a static foreach
  • Bugzilla 3069: Array literals do not implicitly cast to void[]
  • Bugzilla 3133: Compiler does not check that static array casts are legal
  • Bugzilla 4022: [CTFE] AA get
  • Bugzilla 4197: ICE(glue.c): error in forward-referenced in/out contract
  • Bugzilla 4206: type accepted as enum initializer
  • Bugzilla 4237: Typedefs of the same name cause initializer conflict
  • Bugzilla 4269: Regression(2.031): invalid type accepted if evaluated while errors are gagged
  • Bugzilla 4284: empty string[] alias lacks .length in a template
  • Bugzilla 5453: ICE(statement.c): invalid switch statement forward referenced by CTFE
  • Bugzilla 5696: Templates typetuple iteration
  • Bugzilla 5932: Internal error: s2ir.c 339
  • Bugzilla 6073: Cannot pass __traits(parent, ...) as a template parameter if it is a module
  • Bugzilla 6084: Impossible to instantiate local template with TypeTuple-foreach iterator variable.
  • Bugzilla 6087: typeof(this) doesn't work outside member function
  • Bugzilla 6139: Duplicate error message on compile-time out of bounds array index
  • Bugzilla 6296: ICE(glue.c): invalid template instantiated in is(typeof()).
  • Bugzilla 6584: ICE on large version number/debug level
  • Bugzilla 6599: Segfault: invalid expression in initializer
  • Bugzilla 6661: Templates instantiated only through is(typeof()) shouldn't cause errors
  • Bugzilla 6665: Regression(2.055) ICE(cg87.c): static double inside closure
  • Bugzilla 6672: [CTFE] ICE on compile time std.algorithm.sort
  • Bugzilla 6693: [CTFE] Cannot set value to nested AA
  • Bugzilla 6695: typeof(this) does not take into account const/immutable attributes inside member functions
  • Bugzilla 6721: [CTFE] Cannot get pointer to start of char[]
  • Bugzilla 6727: [CTFE] ICE(interpret.c): assignment from string literal.dup.ptr
  • Bugzilla 6733: Regression(2.054) ICE(cod2.c) pure nothrow func with side-effect parameters
  • Bugzilla 6739: [CTFE] Cannot set a value to an outer AA of a nested AA
  • Bugzilla 6749: [CTFE] problem with array of structs
  • Bugzilla 6751: [CTFE] ref argument of AA doesn't work
  • Bugzilla 6765: [CTFE]: AA.length doesn't compile when AA is null
  • Bugzilla 6769: [CTFE] AA.keys doesn't compile when -inline is used
  • Bugzilla 6775: Regression(2.054) ICE(glue.c) template parameter deduction with errors gagged
  • Bugzilla 6813: Yet another "cannot get frame pointer" error
  • Bugzilla 6825: Regression(2.055+): Address of templated method incorrectly taken
Version D 1.070 Sep 4, 2011

New/Changed Features

  • Add support for Mac OS X 10.7 Lion
  • Add protection to json output
  • Add SSE4.1 and SSE4.2 assembly instructions

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 2246: Regression(2.046, 1.061): Specialization of template to template containing int arguments fails
  • Bugzilla 2355: is() doesn't resolve aliases before template matching
  • Bugzilla 2634: Function literals are non-constant.
  • Bugzilla 2774: Functions-as-properties makes it impossible to get the .mangleof a function
  • Bugzilla 2941: Wrong code for inline asm because CPU type is set too late
  • Bugzilla 3512: dchar iteration over string in CTFE fails
  • Bugzilla 4021: [CTFE] AA rehash
  • 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 4837: ICE(constfold.c) CTFE with >>>=
  • Bugzilla 5046: Wrong type of implicit 'this' in struct/class templates
  • Bugzilla 5239: optimizer misreports an used before set error
  • Bugzilla 5585: bad debug line number info for return statements with enumerator expressions
  • Bugzilla 5790: 'Error: variable result used before set' when -release -inline -O
  • Bugzilla 5799: Address-of operator fails on nested conditional operator expression
  • 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 6250: [CTFE] Crash when swapping two pointers to arrays.
  • 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 6306: Regression(2.054): [CTFE] Strange behavior of indirect recursive call in CTFE
  • 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 6355: Template constructor cannot initialize non-mutable field
  • 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 6399: [CTFE] struct member array.length -= x doesn't work, while array[0..$-x] works
  • Bugzilla 6418: [CTFE] Cannot call a struct member function with name 'length'.
  • Bugzilla 6429: Nested function error in reduce
  • Bugzilla 6491: Fully qualified values in default arguments of non-template functions are generated with an extra 'module' keyword
  • Bugzilla 6505: Wrong code for expression involving 8 floats, only with -O
  • Bugzilla 6512: [CTFE] new T[][] doesn't work
  • Bugzilla 6516: Regression(2.055 beta) [CTFE] ICE(constfold.c) involving new dchar[]
  • Bugzilla 6558: [CTFE] UTF-decoding foreach gives wrong index (1-indexed)
  • Bugzilla 6563: wrong code when using at least 8 XMM regs
  • 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
Version D 1.069 Jul 10, 2011

New/Changed Features

  • Allow labelled break and continue in CTFE
  • Pointers are now supported in CTFE
  • Heap-allocated structs are now supported in CTFE
  • Added SSSE3 instructions to inline assembler
  • Change win32 dmd to not emit a map file unless asked for with -map

Bugs Fixed

  • Bugzilla 693: 'this' can't be used as an alias parameter for a mixin
  • Bugzilla 1373: typeof(func).stringof fails when func has parameters.
  • Bugzilla 1570: Wrong return for address operator
  • Bugzilla 2180: filename error with #line
  • Bugzilla 2842: std.file.listdir on OSX produces invalid UTF-8 sequence
  • Bugzilla 3445: partial fix
  • Bugzilla 3722: A method without an in contract should always succeed, even if overridden
  • Bugzilla 4063: [CTFE] key not found in AA gives bad error message
  • Bugzilla 4065: [CTFE] AA "in" operator doesn't work
  • Bugzilla 4107: Duplicate documentation for member function templates
  • Bugzilla 4448: [CTFE] labeled break doesn't work in CTFE
  • Bugzilla 4494: ICE(cod1.c) Array literal filled with results of void function
  • Bugzilla 4633: typeof({return 1;}()) declaration fails if inside main
  • Bugzilla 4745: Non-uniform handling of commas in static initialization of structs
  • Bugzilla 4910: [CTFE] Cannot evaluate a function that has failed at once
  • Bugzilla 4963: ICE(type.c:320) for struct append where T.sizeof < 3
  • Bugzilla 4969: nothrow check can't handle multiple catches
  • Bugzilla 5086: Regression(1.061): Stack overflow with recursive alias declaration
  • Bugzilla 5258: [CTFE] Stack overflow with struct by ref
  • Bugzilla 5396: [CTFE] Invalid code with nested functions in CTFE
  • Bugzilla 5615: [CTFE] std.string.indexOf broken at compile time
  • Bugzilla 5633: [CTFE] ICE(constfold.c): is expression with struct, struct pointer, array literal...
  • Bugzilla 5676: [CTFE] segfault using tuple containing struct that has opAssign
  • Bugzilla 5682: [CTFE] Silently wrong result possibly related to operator overloading and expression order
  • Bugzilla 5682: Wrong CTFE with operator overloading
  • Bugzilla 5708: [CTFE] Incorrect string constant folding with -inline
  • Bugzilla 5845: Regression(2.041) [CTFE] "stack overflow" with recursive ref argument
  • Bugzilla 5936: Invalid code with nested functions in CTFE
  • Bugzilla 5946: failing lookup 'this' from function in template
  • Bugzilla 5963: iasm does not accept 64bit integer literal
  • Bugzilla 5885: wrong codegen for OPu32_d
  • Bugzilla 6001: [CTFE] ICE(interpret.c) mutating ref array
  • Bugzilla 6015: [CTFE] Strange behavior of assignment appears in a situation
  • Bugzilla 6049: [CTFE] Array literals of structs with invariant() are wrong
  • Bugzilla 6052: [CTFE] Struct elements in an array are treated like reference type
  • Bugzilla 6053: [CTFE] Two ICEs involving pointers (dereference and assign; pointer variable on stack)
  • Bugzilla 6054: [CTFE] ICE when returning a returned compile-time associative array containing a key of an idup-ed array literal
  • Bugzilla 6072: [CTFE] Regression(git master): Cannot declare variable inside an 'if' condition
  • Bugzilla 6077: [CTFE] Cannot append null array to null array.
  • Bugzilla 6078: [CTFE] ICE on foreach over array struct member which is null
  • Bugzilla 6079: [CTFE] Array index out of bound detection is off-by-one
  • Bugzilla 6090: DDoc parenthesis escape issues.
  • Bugzilla 6100: [CTFE] Regression: struct return values wrong if used in array initializer
  • Bugzilla 6120: [CTFE] ICE on calling constructor of template struct with -inline in function/delegate literal.
  • Bugzilla 6123: [CTFE] Cannot call a template member method inside delegate/function literal with -inline.
  • Bugzilla 6137: [CTFE] Foreach on semantically wrong initialized array crashes the compiler
  • Bugzilla 6164: [CTFE] Local arrays in a recursive local function behave funny
  • Bugzilla 6242: Disallow inoperant "in" contracts
Version D 1.068 May 12, 2011

New/Changed Features

  • Added 64 bit tools to Linux
  • Renamed linux/bin to linux/bin32, added linux/bin64
  • Bugzilla 4833: dmd -od doesn't make it to optlink's command line for map files
  • Added cmpxchg16b, 64 bit bswap and movq instructions to IASM

Bugs Fixed

  • Bugzilla 937: C-style variadic functions broken
  • Bugzilla 1330: Array slicing does not work the same way in CTFE as at runtime
  • Bugzilla 1389: Can't use mixin expressions when start of a statement.
  • Bugzilla 2436: Unexpected OPTLINK termination EIP = 00425303 with /co
  • Bugzilla 2990: TypeInfo.init() returns invalid array
  • Bugzilla 3214: Incorrect DWARF line number debugging information on Linux
  • Bugzilla 3372: optlink silently mistreats object files with more than 16384 symbols
  • Bugzilla 3779: ["123"][0][$-1] causes __dollar unresolved in compile-time.
  • Bugzilla 3792: Regression(1.053) "non-constant expression" for a template inside
  • Bugzilla 3801: CTFE: this.arr[i] cannot be evaluated at compile time for structs
  • Bugzilla 3809: Struct initializers apparently always CTFE'd
  • Bugzilla 3835: ref foreach does not work in CTFE
  • Bugzilla 4001: const variables should be readable inside CTFE
  • Bugzilla 4048: [CTFE] struct initializer: missing line number in error message
  • Bugzilla 4050: [CTFE] array struct member slice update
  • Bugzilla 4051: [CTFE] array struct member item update
  • Bugzilla 4140: Error: non-constant expression "hello"[1u..__dollar]
  • Bugzilla 4275: Unexpected optlink termination when 'export' attribute is missing
  • Bugzilla 4543: Regression(1.054, 2.038) typedef circular definition and segfault
  • Bugzilla 4815: CodeView: Global and Static symbols should have unmangled names
  • Bugzilla 4817: CodeView: Enum members should have simple names
  • Bugzilla 4917: Symbol conflict error message refers to aliased symbol instead of the alias
  • Bugzilla 5147: [CTFE] Return fixed-sized matrix
  • Bugzilla 5362: checking $ in bracket is broken.
  • Bugzilla 5647: [64-bit] Valgrind complains about illegal instruction
  • Bugzilla 5664: Cannot compile static synchronized member function.
  • Bugzilla 5670: Optlink 8.00.11 crash
  • Bugzilla 5671: Issue 5671 - CTFE string concat problem
  • Bugzilla 5672: ICE(cod2.c): incorrect optimization of (long &1) == 1
  • Bugzilla 5680: wrong calling convention on wsprintfA/W
  • Bugzilla 5694: va_arg doesn't work with idouble and ifloat
  • Bugzilla 5706: Incorrect opcode prefix generated for x86_64 inline assembly
  • Bugzilla 5708: Incorrect string constant folding with -inline
  • Bugzilla 5717: 1.067 regression: appending Unicode char to string broken
  • Bugzilla 5722: Regression(2.052): Appending code-unit from multi-unit code-point at compile-time gives wrong result.
  • Bugzilla 5735: non-scalar types implicitly converted to boolean.
  • Bugzilla 5740: Unable to use "this" pointer in inline assembly
  • Bugzilla 5741: Add the SYSCALL and SYSRET opcodes to the inline assembler
  • Bugzilla 5840: Cannot assign to an array member of struct in CTFE
  • Bugzilla 5852: CTFE: wrong code for string[] ~= const(string)
  • Bugzilla 5858: Import not acctept const string as arguments
  • Bugzilla 5865: __dollar cannot be read at compile time
  • Bugzilla 5916: DMD: bad message for incorrect operands error
  • Bugzilla 5966: [2.053 beta][CTFE] Stack overflow on trivial func
  • Bugzilla 5972: CTFE: Can't assign to elements of arrays of slices
  • Bugzilla 5975: [2.053 beta][CTFE] ICE: 'global.errors' on line 1416 in file 'constfold.c'
  • Bugzilla 5976: "variable used before set" with foreach with ref + scope(failure) + structure method + -O -inline
  • Fix spelling of cmpxchgb8
Version D 1.067 Feb 17, 2011

New/Changed Features

  • 64 bit support for Linux
  • Support HTML5 entities
  • FreeBSD version upgraded to FreeBSD 8.1

Bugs Fixed

  • Bugzilla 190: Cannot forward reference typedef/alias in default value for function parameter
  • Bugzilla 1914: Array initialisation from const array yields memory trample
  • Bugzilla 3198: wrong initializer for structs arrays
  • Bugzilla 3681: ICE(go.c): when function takes too long to optimize, only with -O.
  • Bugzilla 4245: Declaring conflicting symbols in single function scope allowed
  • Bugzilla 4379: ICE(blockopt.c): foreach over huge tuple, only with -O
  • Bugzilla 4389: ICE(constfold.c, expression.c), or wrong code: string~=dchar in CTFE
  • Bugzilla 4486: CodeView debug info should contain absolute path names
  • Bugzilla 4753: fail_compilation/fail116.d sends dmd into a loop, exhausting memory
  • Bugzilla 4878: Ddoc: Default arguments can break Ddoc output
  • Bugzilla 4973: map file with spaces in file name passed without quotes to linker
  • Bugzilla 5015: Regression(1.061): Cyclic import breaks is() in a static if
  • Bugzilla 5090: ICE(todt.c) struct literal initializing zero length array
  • Bugzilla 5105: Member function template cannot be synchronized
  • Bugzilla 5221: entity.c: Merge Walter's list with Thomas'
  • Bugzilla 5241: dmd: ABI breakage/regression (TypeInfo.toString() returns partially corrupted string)
  • Bugzilla 5242: self referencing template constraint crashes compiler
  • Bugzilla 5244: PATCH: fix use of uninitialised variable in toObj.c
  • Bugzilla 5246: PATCH(s): fix a couple more uninitialised variables
  • Bugzilla 5349: ICE(toir.c): nested class in static member function
  • Bugzilla 5391: Crash with recursive alias declaration
  • Bugzilla 5439: 64bit struct alignment inconsistent with C ABI
  • Bugzilla 5455: ICE(cgcod.c): Optimization (register allocation?) regression in DMD 1.065
  • Bugzilla 5486: Missing define for running dmd as 64 bit
  • Bugzilla 5534: [64-bit] Inexplicable segfault in small code snippet, -O -release -m64 only
  • Bugzilla 5536: Array append with dollar op on 64-bit
  • Bugzilla 5545: [64-bit] DMD fails to postincrement ubytes.
  • Bugzilla 5549: [64-bit] Internal error: backend/cgcod.c 1845
  • Bugzilla 5556: [64-bit] Wrong Implicit Conversion to Double
  • Bugzilla 5557: [64-Bit] FP (alignment?) issues with Rvalues
  • Bugzilla 5564: [64-bit] loading of wrong constant byte value
  • Bugzilla 5565: [64-bit] Wrong Floating Point Results, Related to Mixing With size_t
  • Bugzilla 5566: [64-bit] More erratic FP results with size_t
  • Bugzilla 5571: [64-bit] new bool returns bogus address
  • Bugzilla 5572: [64-bit] Global Hidden Mutexes Seem to share Addresses W/ Global Variables
  • Bugzilla 5580: [64-bit] String switch statements broken in 64-bit mode
  • Bugzilla 5581: [64-bit] Wrong code with bitwise operations on bools
  • Bugzilla 5592: Previous definition different: __arrayExpSliceMulSliceAddass_d
Version D 1.066 Dec 21, 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
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

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

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

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

Version D 1.043 Apr 6, 2009

New/Changed Features

  • Added FreeBSD 7.1 support.

Bugs Fixed

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

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

Version D 1.034 Aug 7, 2008

New/Changed Features

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

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

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

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

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

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

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

Bugs Fixed

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

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

Version D 1.009 Mar 10, 2007

Bugs Fixed

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

Version D 1.006 Feb 15, 2007

New/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
Version D 1.005 Feb 5, 2007

New/Changed Features

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.002 Jan 24, 2007

Bugs Fixed

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

AltStyle によって変換されたページ (->オリジナル) /