Next focus: PROCESS

Rob T rob at ucora.com
Sat Dec 15 19:59:26 PST 2012


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?

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 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.

--rt


More information about the Digitalmars-d mailing list