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.