Function pointers/delegates default args were stealth removed?

foobar foo at bar.com
Tue Aug 28 04:00:43 PDT 2012


On Monday, 27 August 2012 at 21:29:06 UTC, Jonathan M Davis wrote:
> On Monday, August 27, 2012 23:22:39 foobar wrote:
>> All true, except one crucial fact: DMD gets critical bug fixes
>> incorporated with new features in the same release. This 
>> leaves a
>> poor choice to the programmer, either he sticks with older
>> compiler version and can't get any critical bug fixes, or he
>> updates the compiler to latest version with all the bug fixes 
>> but
>> risks breakage of code due to new features (which is _exactly_
>> what happened to manu).
>
> Except that the change which is causing Manu problems _isn't_ a 
> new feature.
> It's a bug fix. So, better versioning wouldn't necessarily have 
> helped him any
> at all. At best, if we had a more complex versioning scheme, it 
> could be
> decided that the bug fix was potentially disruptive enough that 
> it should only
> be fixed in a more major release, but _every_ bug fix risks 
> breaking code,
> especially when code could be relying on the buggy behavior.
>
> - Jonathan M Davis

I guess your definition of stable is different than mine.
"Accepts invalid" bugs should never be fixed on the current 
stable branch as they introduce a breaking change unless it's a 
matter of a security problem.

All compilers have a list of accepts invalid bugs and no one 
"fixes" them on the stable/release branch exactly because it will 
break existing code as evidently shown by manu's posts.
Python introduced version 3 to handle this and Ruby had version 
1.9, all the while both the stable and the next-version branches 
got bug-fixes.

D was moved to Git long ago which trivially allows such branching 
schemes so there really no excuse to stick with the current 
flawed system except inertia.


More information about the Digitalmars-d mailing list