<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">+1<br>
      <br>
      On 01/03/2018 12:00 PM, Robinson, Paul via llvm-dev wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:E3B07FDB86BFF041819DC057DEED8FEA0133F7F8CD@USCULXMSG13.am.sony.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <meta name="Generator" content="Microsoft Word 14 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">I
            agree with Hal, X.99 is easier to notice as something
            different/unusual.  It also doesn't revisit the
            version-naming debate for formal releases.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">--paulr<o:p></o:p></span></p>
        <p class="MsoNormal"><a name="_MailEndCompose"
            moz-do-not-send="true"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></a></p>
        <div style="border:none;border-left:solid blue 1.5pt;padding:0in
          0in 0in 4.0pt">
          <div>
            <div style="border:none;border-top:solid #B5C4DF
              1.0pt;padding:3.0pt 0in 0in 0in">
              <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext">From:</span></b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext">
                  llvm-dev [<a class="moz-txt-link-freetext" href="mailto:llvm-dev-bounces@lists.llvm.org">mailto:llvm-dev-bounces@lists.llvm.org</a>]
                  <b>On Behalf Of </b>Hal Finkel via llvm-dev<br>
                  <b>Sent:</b> Wednesday, January 03, 2018 11:24 AM<br>
                  <b>To:</b> James Y Knight; llvm-dev<br>
                  <b>Subject:</b> Re: [llvm-dev] Distinguishing trunk
                  version number from release<o:p></o:p></span></p>
            </div>
          </div>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p><o:p> </o:p></p>
          <div>
            <p class="MsoNormal">On 01/03/2018 11:25 AM, James Y Knight
              via llvm-dev wrote:<o:p></o:p></p>
          </div>
          <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
            <div>
              <div>
                <div>
                  <p class="MsoNormal">On Wed, Jan 3, 2018 at 12:24 PM,
                    James Y Knight <<a
                      href="mailto:jyknight@google.com" target="_blank"
                      moz-do-not-send="true">jyknight@google.com</a>>
                    wrote:<o:p></o:p></p>
                  <div>
                    <p class="MsoNormal">I'd like to propose that trunk
                      always have a version number which is in between
                      versions used by the previous release branch, and
                      before the versions used in the next release
                      branch.<o:p></o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal"><o:p> </o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal" style="margin-bottom:12.0pt">Oops,
                      I misphrased that -- I meant to say "which is
                      <i>after</i> versions used by the previous release
                      branch, and before the versions used in the next
                      release branch."<o:p></o:p></p>
                  </div>
                  <blockquote style="border:none;border-left:solid
                    #CCCCCC 1.0pt;padding:0in 0in 0in
                    6.0pt;margin-left:4.8pt;margin-right:0in">
                    <div>
                      <div>
                        <p class="MsoNormal"><o:p> </o:p></p>
                      </div>
                      <div>
                        <p class="MsoNormal">Right now, trunk is sharing
                          the 7.0.0 number, which will also be used by
                          the next release 4 months from now. Since some
                          people use and release snapshots of clang from
                          trunk (e.g. the Android NDK), it'd be helpful
                          to be able to more reliably distinguish this.
                          <o:p></o:p></p>
                        <div>
                          <div>
                            <p class="MsoNormal"><o:p> </o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal">This is both confusing
                              in general, and means that if you're
                              writing an #if checking the version (which
                              of course ought to be avoided when
                              possible, but is sometimes the best
                              answer), it is more difficult than it
                              needs to be to do the right thing.<o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal"><o:p> </o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal">E.g., a check like this
                              will erroneously think that trunk, now, is
                              Clang 7, and has fixed this hypothetical
                              bug.<o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal">#if __clang_major__
                              >= 7<o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal">// Do something which
                              was buggy before Clang 7.<o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal">#endif<o:p></o:p></p>
                          </div>
                          <div>
                            <p class="MsoNormal"><o:p> </o:p></p>
                          </div>
                          <div>
                            <div>
                              <p class="MsoNormal">I see a couple
                                alternatives for improving this:<o:p></o:p></p>
                            </div>
                            <div>
                              <p class="MsoNormal"><o:p> </o:p></p>
                            </div>
                            <div>
                              <p class="MsoNormal">1. Change the way we
                                version trunk.<o:p></o:p></p>
                            </div>
                            <div>
                              <p class="MsoNormal"><o:p> </o:p></p>
                            </div>
                            <div>
                              <p class="MsoNormal">After creating
                                release branch for X.0, change trunk to
                                version X.99 instead of (X+1).0. Thus,
                                trunk would always have a .99 minor
                                release. The release branch would be
                                incremented from X.99 to (X+1).0 upon
                                creation.<o:p></o:p></p>
                            </div>
                            <div>
                              <p class="MsoNormal"><o:p> </o:p></p>
                            </div>
                            <div>
                              <p class="MsoNormal"><span
                                  style="font-family:"Courier
                                  New"">6.99.0-------7.99.0----------------8.99.0------...</span><o:p></o:p></p>
                            </div>
                            <div>
                              <p class="MsoNormal"><span
                                  style="font-family:"Courier
                                  New"">         
                                   \-7.0.0----7.0.1     
                                  \-8.0.0----8.0.1</span><o:p></o:p></p>
                            </div>
                            <div>
                              <p class="MsoNormal"><o:p> </o:p></p>
                            </div>
                            <div>
                              <p class="MsoNormal">2. Change the minor
                                version of the first release.<o:p></o:p></p>
                            </div>
                            <div>
                              <p class="MsoNormal"><o:p> </o:p></p>
                            </div>
                            <div>
                              <p class="MsoNormal">Leave trunk as X.0 as
                                now, but on the release branch,
                                increment the version to X.1.<o:p></o:p></p>
                            </div>
                          </div>
                          <div>
                            <p class="MsoNormal"><o:p> </o:p></p>
                          </div>
                          <div>
                            <div>
                              <p class="MsoNormal"
                                style="background:white"><span
                                  style="font-family:"Courier
                                  New";color:#222222">7.0.0--------8.0.0-----------------9.0.0------...</span><span
style="font-family:"Arial","sans-serif";color:#222222"><o:p></o:p></span></p>
                            </div>
                            <div>
                              <p class="MsoNormal"
                                style="background:white"><span
                                  style="font-family:"Courier
                                  New";color:#222222">         
                                   \-7.1.0----7.1.1     
                                  \-8.1.0----8.1.1</span><span
style="font-family:"Arial","sans-serif";color:#222222"><o:p></o:p></span></p>
                            </div>
                          </div>
                        </div>
                        <div>
                          <p class="MsoNormal"><o:p> </o:p></p>
                        </div>
                      </div>
                      <div>
                        <p class="MsoNormal"><span
style="font-family:"Arial","sans-serif";color:#222222;background:white">I'd
                            marginally favor #2, because that's similar
                            to how GCC is doing it now, but what do
                            others think?</span><o:p></o:p></p>
                      </div>
                    </div>
                  </blockquote>
                </div>
              </div>
            </div>
          </blockquote>
          <p class="MsoNormal"><br>
            I'm in favor of doing one of these two things. I have a
            slight preference for (1), because I think that will be less
            confusing to users, and prevents us from having to talk
            about "something point one", instead of just "something", as
            the release version.<br>
            <br>
             -Hal<br>
            <br>
            <br>
            <o:p></o:p></p>
          <div>
            <div>
              <div>
                <blockquote style="border:none;border-left:solid #CCCCCC
                  1.0pt;padding:0in 0in 0in
                  6.0pt;margin-left:4.8pt;margin-right:0in">
                  <div>
                    <div>
                      <p class="MsoNormal"><o:p> </o:p></p>
                    </div>
                  </div>
                </blockquote>
              </div>
              <p class="MsoNormal"><o:p> </o:p></p>
            </div>
          </div>
          <p class="MsoNormal"><br>
            <br>
            <br>
            <o:p></o:p></p>
          <pre>_______________________________________________<o:p></o:p></pre>
          <pre>LLVM Developers mailing list<o:p></o:p></pre>
          <pre><a href="mailto:llvm-dev@lists.llvm.org" moz-do-not-send="true">llvm-dev@lists.llvm.org</a><o:p></o:p></pre>
          <pre><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" moz-do-not-send="true">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><o:p></o:p></pre>
          <p class="MsoNormal"><br>
            <br>
            <o:p></o:p></p>
          <pre>-- <o:p></o:p></pre>
          <pre>Hal Finkel<o:p></o:p></pre>
          <pre>Lead, Compiler Technology and Programming Languages<o:p></o:p></pre>
          <pre>Leadership Computing Facility<o:p></o:p></pre>
          <pre>Argonne National Laboratory<o:p></o:p></pre>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>