Biggest Issue with D - Definition and Versioning

Walter Bright newshound2 at digitalmars.com
Wed Jan 18 15:13:19 PST 2012


On 1/18/2012 2:15 PM, Adam Wilson wrote:
> I would argue that what would have the most effect is a concerted effort to
> stabilize the compiler. That means normalizing the differences between DMD/DRT,
> the Spec, and TDPL. That means taking a break from anything new (regardless of
> how badly we want them ... *COFF*COFF*), doing a thorough audit of the open
> issues and prioritizing compiler issues first. Then dedicated a release or three
> to doing nothing but fixing those issues. There are 2719 open issues in the
> bugtracker; that number alone will scare off many potential users. And the
> number of ICE's is much higher than it really should be to call DMD stable. In
> open-source terms, DMD is beta. I'm leaving out Phobos here specifically because
> it doesn't interact with the compiler nearly as much as the runtime does.

Take a look at the changelog. I just don't see how anyone could conclude that is 
not exactly what we are doing. Here's the current list for the upcoming version 
of D2:


314 - [module] Static, renamed, and selective imports are always public
796 - Asserting a null object reference throws AssertError Failure 
internal\invariant.d(14) or Access Violation
1313 - out/body disables escape analysis
2411 - Reference Tuple Foreach
2442 - opApply does not allow inferring parameter types when overloaded on const
2443 - opApply should allow delegates that are not ref if it makes no sense
2997 - allMembers does not return interface members
3092 - Indexing a tuple produces a tuple containing the indexed element
3187 - Nested foreach over opApply doesn't work
3235 - [tdpl] Function literals must be deduced as "function" or "delegate"
4251 - Hole in the const system: immutable(T)[] implicitly casts to ref const(T)[]
4413 - typeof(this) doesn't work in method template signature
4523 - [tdpl] .remove method for Associative Arrays returns void in all cases
4550 - D2 Language Docs: http://www.digitalmars.com/d/2.0/statement.html
4553 - D2 Language Docs: http://www.digitalmars.com/d/2.0/struct.html
4647 - [tdpl] Cannot explicitly call final interface method, ambiguous calls allowed
4675 - [tdpl] Eponymous Template should hide internal names
4711 - Incorrect handling of && operator with void operand
4940 - ICE(symbol.c): Accessing tuple-typed field of struct literal with 
user-defined constructor
5493 - Able to overwrite immutable data by passing through ref function parameter
5605 - [tdpl] foreach with ranges doesn't support opSlice()
6037 - [CTFE] recursive ref parameters evaluated incorrectly
6205 - Strongly-pure nothrow functions with ignored return value are entirely 
stripped even if it contains a failing 'assert'.
6208 - Parameter storage classes are ignored in template function deducing.
6364 - Static struct's destructor called on exit of function
6473 - Stack overflow with struct destructor as default parameter
6701 - template specialization resolution failure
6714 - [tdpl] Type inference for parameters of function and delegate literals
6933 - Segfault(declaration.c) using struct with destructor in CTFE
6934 - [CTFE] can't use $ in a slice of an array passed by ref
6939 - wrong type qualifier combination
6940 - immutable(int*)*/immutable(int)** and int** do not combine
6964 - Error message with __error: static assert(undefined+1)
6984 - CTFE generates a torrent of spurious errors, if there was a previous error
6985 - [CTFE] Non-constant case expressions can't be interpreted
6995 - [CTFE] can't interpret static template method
7011 - No line number error for vector power
7037 - TemplateTypeParameterSpecialization works differently from IsExpression 
regarding alias this
7043 - CTFE: ICE illegal reference value 0LU, only with -inline
7073 - Parsing of class-returning varargs function inside module ctor fails
7108 - ICE: TraitsExp::semantic(Scope*) 2.056 -> 2.057 regression - segfault
7120 - Scope Delegates + Delegate Literals
7123 - static assert(is(typeof(toDelegate(&main)))) is false
7124 - Alias this type is not considered in template type deduction
7127 - Const-related infinite recursion in DWARF generation
7133 - [tdpl] There should be no empty statement
7136 - alias this lookup should run before merging modifiers of both sides.
7143 - [CTFE] cannot compare class references with "is"
7144 - [CTFE] base class does not call overridden members
7154 - [CTFE] failing downcast causes error
7158 - [CTFE] ICE(interpret.c) calling a class member using a dotvar expression
7160 - Regression(2.057): ICE(dsymbol.c:1052) ICE using __traits(derivedMembers)
7162 - [CTFE] "bool || void" expression crashes dmd
7165 - [CTFE] ice converting null pointer to bool with constant member function
7168 - Regression(2.057) __traits(allMembers) returns wrong tuple
7170 - [UFCS] array + specialized template member syntax causes ICE
7173 - dmd: glue.c:1065: virtual unsigned int Type::totym(): Assertion `0' failed.
7185 - [CTFE] ICE on changing char array length
7187 - Regression(head 12d62ca5): [CTFE] ICE on slicing
7189 - inline failed
7190 - Tuple length incorrect
7193 - Regression(2.058head): ICE: delete lambda expression crashes dmd
7194 - [CTFE] Incorrect behaviour with pointers as local struct variable
7196 - Unfair function address overload resolution
7201 - Lambda template assignment to variable
7207 - Explicit cast should resolve lambda type
7212 - Regression(Head): ICE with overload resolution and delegate/function 
inference
7217 - [CTFE] ICE on accessing struct array field
7218 - Nested function with contract is rejected
7232 - Warning: statement is not reachable has no line number
7239 - C style struct initialization doesn't work with aliases
7245 - [CTFE] Address of ref foreach parameter changes to point after array
7248 - [CTFE] Stack overflow on using struct filed pointer with address of array 
element
7266 - [CTFE] Assign to ref param (that's taken from struct member) is noop
7278 - Templated struct (instantiated with null) can't access its own members
7285 - Implicit fixed-size array cast
7290 - Heap allocation with scoped delegate literal
7309 - [2.058] Regression caused by new inlining code


More information about the Digitalmars-d mailing list