[llvm-dev] [cfe-dev] [Openmp-dev] [lldb-dev] What version comes after 3.9? (Was: [3.9 Release] Release plan and call for testers)

Richard Smith via llvm-dev llvm-dev at lists.llvm.org
Tue Jun 28 13:17:54 PDT 2016

On Tue, Jun 28, 2016 at 12:55 PM, Chandler Carruth via cfe-dev <
cfe-dev at lists.llvm.org> wrote:

> On Tue, Jun 28, 2016 at 12:45 PM Rafael EspĂ­ndola <
> openmp-dev at lists.llvm.org> wrote:
>> > I don't think this is as obvious as you might think it is. We can
>> happily
>> > drop the "major version equals bitcode compatibility" implicit promise
>> if we
>> > want, but it's been there for a while and will need some messaging as
>> to the
>> > actual promises here and what we'll do to fulfill and what we mean when
>> we
>> > want to change it (will we actually rev the version? not?). I think
>> Hans's
>> > idea for the release is fine and then will let us argue it as much as
>> we'd
>> > like on llvm-dev until we get a proposal that people are happy with.
>> The promise just says that 4.0 *will* read 3.X and 4.1 might.
> Yes, but while you have read it and interpreted it precisely, I suspect
> that many people have misinterpreted it and assume that 4.0 will be the
> last release to read 3.X. They may be incorrect, but I think it would still
> be worth considering them and working to communicate this effectively.
> Essentially, what Eric said: it may be accurate, but it isn't *obvious*,
> at least not to everyone.
>> I think I agree with Chris with 3.10 being the worst possible outcome.
> I'd be interested to understand why you or Chris thing 3.10 is the worst
> possible outcome.

Personally: I think it would be a bad outcome, because if we go to 3.10, I
do not see when we would ever transition to 4.0. What change would be
"large enough" to classify as a new major version of all of LLVM? Given
that we are (presumably) going to have a "sliding window" support story for
LLVM IR changes, and even LLVM IR changes are irrelevant to a significant
number of LLVM subprojects (all of which share the same versioning scheme),
it's not clear to me what would justify this.

Chris has said it is because he thinks we'll never change the "3", but I
> don't understand why 3.10 is worse than 3.9 was in that respect. I happen
> to agree that we'll never change the "3", but I don't think this makes 3.10
> a particularly bad choice.

We've historically gone from x.9 to x+1.0, so this sets precedent, and we
seem to have the energy and motivation to discuss and possibly change our
version numbering scheme right now. For me, it's just a question of "if not
now, then when?".

I'm seeing pretty much zero support for continuing to have a major/minor
> split. As such, I pretty strongly suggest that as a community we move to a
> single integer that increments every (time based) release, and a .N that
> increments with every patch release off of that branch. GCC and numerous
> other projects work this way.
> I actually don't care at all what the number is: 4 or 40 seem fine.
> If 4 seems too confusing, and 40 seems too extreme, how about 10.
> Seriously. It seems exactly as good as any other integer to start counting
> rationally, and won't confuse people by looking like a 4.0 release.

I think going to 10 or 40 is likely to be confusing, because there'll be
two different ways to refer to the same version (people will say 3.10 when
referring to version 10, or 38 when referring to version 3.8,
respectively). This happened to Java in the version 1.6 / version 6
numbering transition.

In order to preserve numbering continuity and minimize confusion, if we go
from three-component versions (major.minor.patch) to two-component versions
(major.patch), I would suggest we go from x.y.z to x+1.0. (This is also
consistent with how GCC handled the transition.)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160628/fbb766cb/attachment.html>

More information about the llvm-dev mailing list