DMD 0.161 release

Walter Bright newshound at digitalmars.com
Thu Jun 22 20:49:44 PDT 2006


Stewart Gordon wrote:
> Walter Bright wrote:
>> Stewart Gordon wrote:
>>> Walter Bright wrote:
>>>> Mostly bug fixes.
>>>>
>>>> http://www.digitalmars.com/d/changelog.html
>>>
>>> "Shadowing local variable declarations is now deprecated."
>>>
>>> I thought it had always been illegal by the spec.
>>
>> It wasn't implemented.
> 
> So you've implemented it as a deprecation for the time being, rather 
> than banning it altogether?

Yes, because it breaks a lot of existing code.

>>> "Fixed Bugzilla 57  in 0.151"
>>>
>>> Why is this in the changelog for 0.161?
>>
>> It was overlooked.
> 
> What do you mean?  The changelog for 0.151 also lists this bug as fixed.

Yes, but it was left open in bugzilla.


>>> "Fixed Bugzilla 36  (better error message)"
>>> "Fixed Bugzilla 85  (now issues error message)"
>>>
>>> And they're also marked as fixed in Bugzilla.  However, at the moment 
>>> I can't seem to find the bit of the spec that indicates that either 
>>> is illegal code.
>>
>> 36: forward references are an ongoing issue, I'd like to get rid of 
>> all such errors. But in the meantime, having feet of clay, some will 
>> give error messages instead.
> 
> Nobody else I know would claim that changing the error message resulting 
> from a bug constitutes fixing the bug.
> If the bug _is_ the bad error message, rather than the fact that an 
> error is produced at all, then that's another matter.

Giving clear error messages takes care of the problem for now.


>> 85: It can't be made to work, because an interface handle is different 
>> from a class handle.
> 
> But it can be made to create a new array of the interface type.  But 
> this should probably require an explicit cast.
> 
> Just looking at the documentation, the "Implicit Conversions" section of 
> arrays.html mentions "U[] where U is a base class of T" - I now suppose 
> it's just a temptation to think that it would work on interfaces as 
> well.  Clarification would certainly be welcome.
> 
> And we could also do with some decent documentation on what arrays may 
> be converted to by explicit casting.
> 
>> It doesn't work in C++, either, for the same reasons.
> Since when has C++ had interfaces?

Multiple inheritance is a superset of interfaces.



More information about the Digitalmars-d-announce mailing list