Coming Soon: Stable D Releases!

Adam Wilson flyboynw at gmail.com
Tue Jul 24 10:27:30 PDT 2012


On Tue, 24 Jul 2012 01:50:02 -0700, Don Clugston <dac at nospam.com> wrote:

> On 16/07/12 09:51, Adam Wilson wrote:
>> As a result of the D Versioning thread, we have decided to create a new
>> organization on Github called dlang-stable. This organization will be
>> responsible for maintaining stable releases of DMD, DRuntime, and  
>> Phobos.
>>
>> So what is a stable release?
>> A stable release is a complete build of DMD, DRuntime, and Phobos that
>> ONLY includes the latest bug-fixes and non-breaking enhancements to
>> existing features. It will not include, new features, breaking
>> enhancements, and any other code that the core development team may be
>> working on.
>
> I'm not actually sure what this means. I fear that it may be motivated  
> by an inaccurate assessment of the current situation.
>
> The existing instability comes almost entirely from Phobos, not from the  
> compiler. Historically there have been very few instances where you  
> might want to choose an older compiler in preference to the latest  
> release.
>
> As I've said before, the one time when a language change caused  
> *massive* instability was in the attempt to move AAs from language to  
> library -- even though that wasn't even supposed to affect existing code  
> in any way. The other thing that typically causes regressions is fixes  
> to forward-reference bugs.
>
> Historically, addition of new language features has NOT caused  
> instability. What has been true is that features have been added to the  
> compiler before they were really usable, but they have not broken  
> existing code. Fairly obviously the 64 bit compiler was quite buggy when  
> initially released. But even that massive change wasn't much more buggy  
> than the library AAs! So I am not sure that you can correctly guess  
> where instability will come from.
>
> In summary -- I would not expect your stable DMD to be very different  
> from the normal DMD. Phobos is where the instability issue is.

There are three issues we are trying to address:

The first and largest issue is the long and variable periods between DMD  
releases. By the end of the 2.060 Beta period there will have been at  
least 3.5 months since 2.059. And while for the people who can use Git  
HEAD this may not be a problem, there are MANY who, for whatever reason,  
must use the released versions. For them the 314 resolved issues and  
dozens of regressions fixed are a tantalizingly out of reach.

The second issue is the root of the first. Much of the delay was caused by  
Walter starting to work on COFF. Which brings up the second point of  
contention in the community, a significant number of bugs are typically  
introduced when this new work is introduced precisely because it's not  
ready, and the effort required to make it stable would significantly delay  
the release, which loops back to the first problem of release cadence.  
Yes, D is more stable than ever, but we keep breaking it to push bugfix  
builds because the community starts to get restless without bugfixes.  
Which is the whole reason this stable project got started.

The third is the result of the first two. The slow release cadence  
combined with the requirement to push new features along side bug-fixes is  
seriously holding back the growth of the D community. There is a feeling  
out here that D is lurching unsteadily forward when it should be smoothly  
accelerating and most of this feeling is rooted in the prior two causes.  
This has a very corrosive effect on the community and particularly their  
willingness to contribute.

The goal of dlang-stable is to provide the primary development team (you!)  
with the ability to release whenever you feel a new feature or enhancement  
is stable enough to be released WITHOUT having to worry about the ever  
growing number of bugfixes that are backlogged in with the new features.  
We are trying to reduce the bugfix pressure so that you can focus on  
delivering high-quality code when it's ready.

The community WANTS these new features, but we CAN'T wait 3.5 months (or  
more!) for the bugfixes that are baked in with them. We have to provide  
BOTH.

That is dlang-stable.

-- 
Adam Wilson
IRC: LightBender
Project Coordinator
The Horizon Project
http://www.thehorizonproject.org/


More information about the Digitalmars-d-announce mailing list