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

Chris Lattner via llvm-dev llvm-dev at lists.llvm.org
Mon Jun 20 21:56:21 PDT 2016

On Jun 19, 2016, at 10:21 AM, Adve, Vikram Sadanand via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>> Let me clarify. What I’m trying to say is that:
>>> a) LLVM has a time-based release cycle, not a schedule-based one. As
>>> such, a simple and predictable version number makes sense.
>>> b) The LLVM project as a whole is a lot bigger than LLVM IR, even
>>> given its centrality to the project in some ways.
>>> c) I think that it makes sense to keep adding 0.1 to each major
>>> release going forward well into the future.
> Now you’re making the versions sound like floating point numbers :-).  Just to be clear, you are proposing we use 3.10/3.11/etc. rather than 4.0/4.1/etc.?

No, I’m suggesting that we continue the progression we’ve had from the start and proceed from 3.8 to 3.9 to 4.0 to 4.1.

> If so, I agree with that for a couple of reasons.  First, as several people said, version numbers should not be driven primarily by IR changes: the LLVM project is a lot more than the IR, even though the IR is a fundamental component.  Our releases are time-based and the predictability of that has worked pretty well.
> A second reason is that major version numbers also have a useful communication value: signifying a major step forward in the system along some dimension.  It just so happens that these major changes have been IR changes in the past -- and perhaps opaque pointer types will turn out to be the next major change -- but regardless of what the change is, I think there is some value in reserving major version increments (like 3.x.y to 4.0) when major changes happen.

These seem like contradictory points: on the one hand you’re observing that we have an inherently schedule driven process, but are also saying that major version numbers are important to signify “major” changes.  Given the scope of LLVM, I suspect we’ll never have a “major” change that lines up across all of the sub-projects, so this doesn’t seem like something we should bank on.

I don’t think that there is really a problem to solve here, but if we were sufficiently motivated to “solve” this problem, then the answer is obvious: instead of 4.0, we should just go to 40, and add one for every release after that.


More information about the llvm-dev mailing list