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.