DMD needs branches

Lars Ivar Igesund larsivar at igesund.net
Thu Apr 12 03:40:21 PDT 2007


Walter Bright wrote:

> Lars Ivar Igesund wrote:
>> Walter Bright wrote:
>> 
>>> Chris Miller wrote:
>>>> I know, I know, report bugs. This doesn't cut it. Reporting bugs is
>>>> hard as hell and time consuming. I need time to report bugs. Now I have
>>>> to either restrict use to specific compiler versions, which people
>>>> don't always know about and report their issues back to me, until I
>>>> remind them they need to downgrade their compiler (which isn't always
>>>> an option if they need bug fixes), or I have to rush to fix my code to
>>>> workaround such issues and report bugs. If there was a stable branch, I
>>>> could get the code working with the unstable branch at a reasonable
>>>> pace.
>>> Please let me know which issues are breaking your code. I'll be sure
>>> they get in the test suite so they'll never break again.
>> 
>> This was said (many times!) back when the date for 1.0 was decided upon -
>> there is no single point in making such a milestone, if there is no
>> actual way for the user to have it enforced. One could argue that they
>> should stick with DMD 1.000, but it has serious bugs too which has been
>> fixed in later releases, but when these releases create new bugs (even
>> when using the -v1 switch), then you in reality have no stable 1.0
>> branch. It is useless as it is.
> 
> The test suite is run before every new release. If things break with a
> new release, it is because the case isn't reflected in the test suite.
> Every fixed bug goes in to the test suite. For example, Kris posted two
> things that broke with the 1.011 update. Both are fixed now, and both
> are now in the test suite. They'll stay fixed.
> 
> Over time, the suite has a ratchet effect, with things getting better
> and better. I've been using that system for decades with the C++
> compiler, and it's pretty rare for an update to break anything.
> 
> But if bugs aren't reported, then they don't get fixed, and the test
> case never winds up in the test suite.
> 
> The only way to get a stable system is to report bugs, fix them, and put
> the cases in the test suite. I tend to put priority on fixing things
> that break existing code; I know how maddening that can be.

Point is that every new feature is likely to create new bugs that will make
an upgrade difficult. And as long as more new bugs appear than what is
closed, your solution will not work.

You can't compare with your C++ compiler either, as it is not implementing a
specification in constant flux. Using a revision system tend to make it
very easy to apply just bugfixes to one branch, and new features _and_
bugfixes to the development branch.

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango



More information about the Digitalmars-d mailing list