Next focus: PROCESS

deadalnix deadalnix at gmail.com
Sat Dec 15 23:39:08 PST 2012


On Sunday, 16 December 2012 at 03:59:33 UTC, Rob T wrote:
> On Thursday, 13 December 2012 at 07:18:16 UTC, foobar wrote:
>>
>> Per my answer to Rob:
>> D2 *is* the major version.
>> releases should be minor versions and largely backwards 
>> compatible - some evolution is allowed given some reasonable 
>> restrictions like a proper migration path over several 
>> releases.
>> Critical bug-fixes can go directly on stable releases but 
>> nothing else.
>>
>
> I just realized that we are mixing together the version numbers 
> for two entirely different things.
>
> As you have correctly pointed out, one of the version numbers 
> is for the D language specification, which is version 
> 2.something, the other version is for the compiler releases, 
> which has the major language specification version assigned to 
> identify it as supporting version 2.something of the D 
> language. The remaining numbers indicate incremental releases 
> which may also roughly correspond to the minor evolutionary 
> changes to the language specification, i.e., does DMD 2.061 
> also mean D specification 2.061?
>

Yes it does. If new features are introduced, then this is by 
definition a change in the specs.

> I think it makes good sense that the "2" is used to indicate 
> that the compiler supports D major version 2 of the 
> specification, but we should all be clear that is all that it 
> represents. Therefore DMD 3.x will never appear unless there's 
> a D language ver 3 specification for it to support.
>

A version 3 would means introducing change in the specification 
that may break a lot of code. This is type of stuff you shouldn't 
do often.

> A completely separate issue that should be dealt with, is that 
> the language specification's version number is not indicated 
> anywhere that I could see. We just assume it's version 
> 2.something and we have no idea where the "something" part is 
> currently at or what has changed since ver 2.0. This is no good 
> because it means that we cannot indicate in the compiler 
> release change log what minor version of the 2.x specification 
> the compiler is actually supporting.
>

The compiler source code is probably what we have that look like 
the most as a spec right now.


More information about the Digitalmars-d mailing list