<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jun 28, 2016 at 12:55 PM, Chandler Carruth via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><span class=""><div dir="ltr">On Tue, Jun 28, 2016 at 12:45 PM Rafael Esp√≠ndola <<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">> I don't think this is as obvious as you might think it is. We can happily<br>
> drop the "major version equals bitcode compatibility" implicit promise if we<br>
> want, but it's been there for a while and will need some messaging as to the<br>
> actual promises here and what we'll do to fulfill and what we mean when we<br>
> want to change it (will we actually rev the version? not?). I think Hans's<br>
> idea for the release is fine and then will let us argue it as much as we'd<br>
> like on llvm-dev until we get a proposal that people are happy with.<br>
<br>
The promise just says that 4.0 *will* read 3.X and 4.1 might.<br></blockquote><div><br></div></span><div>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.</div><div><br></div><div>Essentially, what Eric said: it may be accurate, but it isn't *obvious*, at least not to everyone.</div><span class=""><div>¬†</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
I think I agree with Chris with 3.10 being the worst possible outcome.<br></blockquote><div><br></div></span><div>I'd be interested to understand why you or Chris thing 3.10 is the worst possible outcome.</div></div></div></blockquote><div><br></div><div>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.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div>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.</div></div></div></blockquote><div><br></div><div>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?".</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div>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.</div><div><br></div><div>I actually don't care at all what the number is: 4 or 40 seem fine.</div><div><br></div><div>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.</div></div></div></blockquote><div><br></div><div>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.</div><div><br></div><div>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.)</div></div></div></div>