[dmd-internals] Changelog update
Jonathan M Davis
jmdavisProg at gmx.com
Mon Jul 4 00:28:15 PDT 2011
On 2011-07-04 00:15, Don Clugston wrote:
> Here's my version of the DMD changelog, to merge into yours (some of
> the CTFE bugfixes aren't obvious since they depended on a complicated
> set of commits).
>
> $(VERSION 054, ddd mm, 2011,
> =================================================,
>
> $(WHATSNEW
> $(LI Implement @safe)
> $(LI Implement @property)
> $(LI Automatic inference for @safe, pure, nothrow)
> $(LI Allow labelled break and continue in CTFE)
> $(LI Warn about switch case fallthrough)
> $(LI Pointers are now supported in CTFE)
> $(LI Heap-allocated structs are now supported in CTFE)
> )
> $(DMDBUGSFIXED
> $(LI $(BUGZILLA 693): 'this' can't be used as an alias
> parameter for a mixin)
> $(LI $(BUGZILLA 1373): typeof(func).stringof fails when func
> has parameters)
> $(LI $(BUGZILLA 1411): ref Tuple should transform to Tuple of
> ref's) $(LI $(BUGZILLA 1570): Wrong return for address operator)
> $(LI $(BUGZILLA 2180): filename error with #line)
> $(LI $(BUGZILLA 2521): Not possible to return immutable value by
> ref) $(LI $(BUGZILLA 2625): Creating new struct with literal
> bypasses immutability of members if struct is in array)
> $(LI $(BUGZILLA 3147): Incorrect value range propagation for
> addition) $(LI $(BUGZILLA 3511): ref return property confused with
> property setter)
> $(LI $(BUGZILLA 3722): A method without an in contract should
> always succeed, even if overridden)
> $(LI $(BUGZILLA 3799): isStaticFunction trait evaluates to
> true for non-static nested functions)
> $(LI $(BUGZILLA 4031): Should be able to access const
> value-type globals from pure functions)
> $(LI $(BUGZILLA 4063): [CTFE] key not found in AA gives bad
> error message)
> $(LI $(BUGZILLA 4065): [CTFE] AA "in" operator doesn't work)
> $(LI $(BUGZILLA 4107): Duplicate documentation for member
> function templates)
> $(LI $(BUGZILLA 4170): Missing line number on compile-time array
> index) $(LI $(BUGZILLA 4258): "auto ref" doesn't work in one or more
> cases) $(LI $(BUGZILLA 4448): [CTFE] labeled break doesn't work in CTFE)
> $(LI $(BUGZILLA 4494): ICE(cod1.c) Array literal filled with results of
> void function)
> $(LI $(BUGZILLA 4633): typeof({return 1;}()) declaration fails
> if inside main)
> $(LI $(BUGZILLA 4661): Array Literal Incompatible Type Error
> Msg Should Include Line Number)
> $(LI $(BUGZILLA 4745): Non-uniform handling of commas in
> static initialization of structs)
> $(LI $(BUGZILLA 4910): [CTFE] Cannot evaluate a function that
> has failed at once)
> $(LI $(BUGZILLA 4963): ICE(type.c:320) for struct append where
> T.sizeof < 3)
> $(LI $(BUGZILLA 4969): nothrow check can't handle multiple catches)
> $(LI $(BUGZILLA 5258): [CTFE] Stack overflow with struct by ref)
> $(LI $(BUGZILLA 5284): Array ops punch through const system)
> $(LI $(BUGZILLA 5327): Creating new struct with literal
> bypasses immutability of members of members of the struct)
> $(LI $(BUGZILLA 5396): [CTFE] Invalid code with nested
> functions in CTFE)
> $(LI $(BUGZILLA 5551): opUnary-opBinary conflict)
> $(LI $(BUGZILLA 5574): Struct destructor freaks out when an
> array of struct with single element is instantiated inside a class)
> $(LI $(BUGZILLA 5615): [CTFE] std.string.indexOf broken at compile
> time) $(LI $(BUGZILLA 5633): [CTFE] ICE(constfold.c): is expression with
> struct, struct pointer, array literal...)
> $(LI $(BUGZILLA 5657): Temporary object destruction)
> $(LI $(BUGZILLA 5659): Conditional operator, array literal,
> and std.traits.CommonType return a wrong common type)
> $(LI $(BUGZILLA 5676): [CTFE] segfault using tuple containing
> struct that has opAssign)
> $(LI $(BUGZILLA 5682): [CTFE] Silently wrong result possibly
> related to operator overloading and expression order)
> $(LI $(BUGZILLA 5693): Segfault with address of template struct
> opCall) $(LI $(BUGZILLA 5708): [CTFE] Incorrect string constant
> folding with -inline)
> $(LI $(BUGZILLA 5819): DMD doesn't error/warn about illegal
> asm for 64bit mode)
> $(LI $(BUGZILLA 5856): overloading on const doesn't work for
> operator overload)
> $(LI $(BUGZILLA 5859): Declaration inside if condition doesn't
> call destructor)
> $(LI $(BUGZILLA 5861): Wrong filename in error message when an
> invalid delegate in a template parameter is typeof()-ed)
> $(LI $(BUGZILLA 5885): wrong codegen for OPu32_d)
> $(LI $(BUGZILLA 5897): unrelated struct type casting should
> ignite construction)
> $(LI $(BUGZILLA 5946): failing lookup 'this' from function in
> template) $(LI $(BUGZILLA 5954): [CTFE] enum structs with ctor)
> $(LI $(BUGZILLA 5962): Template function declaration with
> prefixed storage class and auto occurs conflict)
> $(LI $(BUGZILLA 6001): [CTFE] ICE(interpret.c): mutating ref array)
> $(LI $(BUGZILLA 6015): [CTFE] Strange behavior of assignment
> appears in a situation)
> $(LI $(BUGZILLA 6049): [CTFE] Array literals of structs with
> invariant() are wrong)
> $(LI $(BUGZILLA 6052): [CTFE] Struct elements in an array are
> treated like reference type)
> $(LI $(BUGZILLA 6053): [CTFE] Two ICEs involving pointers
> (dereference and assign; pointer variable on stack))
> $(LI $(BUGZILLA 6054): [CTFE] ICE when returning a returned
> compile-time associative array containing a key of an idup-ed array
> literal)
> $(LI $(BUGZILLA 6059): Incompatible types in array literal
> shows __error and error)
> $(LI $(BUGZILLA 6072): [CTFE] Regression(git master): Cannot
> declare variable inside an 'if' condition)
> $(LI $(BUGZILLA 6077): [CTFE] Cannot append null array to null
> array) $(LI $(BUGZILLA 6078): [CTFE] ICE on foreach over array struct
> member which is null)
> $(LI $(BUGZILLA 6079): [CTFE] Array index out of bound
> detection is off-by-one)
> $(LI $(BUGZILLA 6090): DDoc parenthesis escape issues.)
> $(LI $(BUGZILLA 6100): [CTFE] Regression: struct return values
> wrong if used in array initializer)
> $(LI $(BUGZILLA 6109): 'nothrow' does not check slice indices)
> $(LI $(BUGZILLA 6111): Escaping reference to local variable
> not detected)
> $(LI $(BUGZILLA 6119): Assertion failure: '0' on line 1118 in
> file 'glue.c')
> $(LI $(BUGZILLA 6120): [CTFE] ICE on calling constructor of
> template struct with -inline in function/delegate literal.)
> $(LI $(BUGZILLA 6123): [CTFE] Cannot call a template member
> method inside delegate/function literal with -inline.)
> $(LI $(BUGZILLA 6137): [CTFE] Foreach on semantically wrong
> initialized array crashes the compiler)
> $(LI $(BUGZILLA 6145): Meaningless second error message for
> complex size of static array)
> $(LI $(BUGZILLA 6161): iasm opcode family Jcc use absolute
> address instead of relative for functions)
> $(LI $(BUGZILLA 6164): [CTFE] Local arrays in a recursive
> local function behave funny)
> $(LI $(BUGZILLA 6198): [GSoC] ICE(e2ir.c) With circular import)
> $(LI $(BUGZILLA 6229): %= and /= no longer work on char type)
> $(LI $(BUGZILLA 6242): Disallow inoperant "in" contracts)
> )
> )
Wow. That's a lot. The changelog sure isn't going to be short this time
around. :)
- Jonathan M Davis
More information about the dmd-internals
mailing list