<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 9, 2020 at 4:26 PM Philip Reames <<a href="mailto:listmail@philipreames.com">listmail@philipreames.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    <p>Eric,</p>
    <p>I think you're commingling two points: "setup scripts" and "must
      support default toolchain".  I think it's important to keep them
      separate as, IMO, we should strongly resist the temptation to do
      the former, while the second is optional.  <br></p></div></blockquote><div>Sure, but... this discussion has hit both throughout it and it sounded like you were also making commentary that way.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><p>
    </p>
    <p>Speaking personally, I'd be open to only supporting default
      configuration builds on a small subset of platforms. For instance,
      maybe *only* Ubuntu last LTS, Windows 10 latest, and MacOS
      latest.  Having to build a newer cmake doesn't seem like a huge
      hassle.</p></div></blockquote><div>I'd really like "build cmake" to not be an option. "Install a release" maybe, and Chris's points around the workflow in windows development (and possibly things like osx in the future) are very compelling as well.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
    <p>We do want the setup to be straight forward for a broad class of
      recent-ish distros, but there's a difference between "instructions
      are simple and straight forward" and "works out of the box".</p></div></blockquote><div><br></div><div>Agreed :)</div><div><br></div><div>-eric</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
    <p>Philip<br>
    </p>
    <div>On 4/9/20 4:18 PM, Eric Christopher
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">FWIW I do very much agree here.
        <div><br>
        </div>
        <div>Currently we specify a base set of compiler tools and cmake
          versions, but at this point if we follow the proposals
          mentioned by Philip, Chris, and Reid we need to actually give
          supported OS/Distro/Developer Tools versions in order to let
          people know base requirements. I'm not against specifying
          this, but I think we need consensus on how far back we're ok
          with "base system" or "LTS release" we're willing to support
          and the technical debt associated with such a support strategy
          :)</div>
        <div><br>
        </div>
        <div>Thoughts?</div>
        <div><br>
        </div>
        <div>-eric</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Thu, Apr 9, 2020 at 4:13 PM
          Philip Reames via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div>
            <p>I would be opposed to this proposal.  I've worked with
              build systems that went this route before.  What happens
              is the script grows ever more complicated, the person who
              wrote the script eventually leaves, and no one knows how
              to build it outside of a particular frozen set of
              environments.  I've literally seen code bases die (i.e. no
              one wants to work on them, eventual rewrite target) due to
              issues this can be traced solely back to this decision.<br>
            </p>
            <p>The fact we use standard build tools is a feature not a
              bug.  Let's not "fix" our way into a much worse set of
              problems.</p>
            <p>Philip</p>
            <p>p.s. To be clear, I'm not stating an opinion on the
              original question of whether building cmake from source
              was a reasonable expectation.  <br>
            </p>
            <div>On 4/9/20 2:55 PM, Alexandre Ganea via llvm-dev wrote:<br>
            </div>
            <blockquote type="cite">
              <div>
                <p class="MsoNormal"><span>Sorry if this was discussed,</span></p>
                <p class="MsoNormal"><span> </span></p>
                <p class="MsoNormal"><span>Why not have a <b>setup.sh</b>/<b>setup.bat</b>/<b>setup.exe</b>
                    which could download/install/setup everything we
                    want, at the version we want, on a vanilla system?
                    Handle the cases described by Chris below? Why leave
                    the burden to the end-user?</span></p>
                <p class="MsoNormal"><span> </span></p>
                <p class="MsoNormal"><span>Currently, it’s not exactly
                    trivial to setup everything for building &
                    running LLVM on Windows on a cloud VM if you want
                    `ninja check-all` to pass on </span><span>-DLLVM_ENABLE_PROJECTS=llvm;mlir;clang;lld;clang-tools-extra;compiler-rt;lldb</span><span>.
                    There are many manuals steps, and often things that
                    you forget (GnuWin32 FTW). On Ubuntu it is a bit
                    easier, but still lots of trial and error.</span></p>
                <p class="MsoNormal"><span> </span></p>
                <p class="MsoNormal"><span>We use <a href="https://docs.microsoft.com/en-us/nuget/install-nuget-client-tools" target="_blank"> NuGet</a>
                    packages in our build system and for our developers,
                    to ensure they always have the right setup. Our
                    games always build and use the toolings from the
                    .nugets, not the default installations on the
                    machine. This guarantees universal determinism
                    everywhere and makes the developer setup a <b>one-click-exe</b>.
                    Setting up a similar thing for LLVM for different
                    OSes could be a bit more tricky, but nothing
                    insurmountable?</span></p>
                <p class="MsoNormal"><span> </span></p>
                <p class="MsoNormal"><span> </span></p>
                <div>
                  <div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0cm 0cm">
                    <p class="MsoNormal"><b>De :</b> llvm-dev <a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank"><llvm-dev-bounces@lists.llvm.org></a>
                      <b>De la part de</b> Shoaib Meenai via llvm-dev<br>
                      <b>Envoyé :</b> April 9, 2020 4:26 PM<br>
                      <b>À :</b> Reid Kleckner <a href="mailto:rnk@google.com" target="_blank"><rnk@google.com></a>;
                      James Y Knight <a href="mailto:jyknight@google.com" target="_blank"><jyknight@google.com></a><br>
                      <b>Cc :</b> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
                      <b>Objet :</b> Re: [llvm-dev] Upgrading LLVM's
                      minimum required CMake version</p>
                  </div>
                </div>
                <p class="MsoNormal"> </p>
                <p class="MsoNormal"><span lang="EN-US">I agree that’s
                    valuable, but then it’s also important to pin down
                    exactly what a “modern OS” is, and which ones we
                    should keep in mind when we’re considering e.g.
                    which CMake versions are feasible. (The same applies
                    even more so to toolchain requirements, of course.)</span></p>
                <p class="MsoNormal"><span lang="EN-US"> </span></p>
                <div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(181,196,223);padding:3pt 0cm 0cm">
                  <p class="MsoNormal" style="margin-left:36pt"><b><span style="font-size:12pt;color:black" lang="EN-US">From:
                      </span></b><span style="font-size:12pt;color:black" lang="EN-US">llvm-dev
                      <</span><a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank"><span style="font-size:12pt" lang="EN-US">llvm-dev-bounces@lists.llvm.org</span></a><span style="font-size:12pt;color:black" lang="EN-US">>
                      on behalf of Reid Kleckner via llvm-dev <</span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span style="font-size:12pt" lang="EN-US">llvm-dev@lists.llvm.org</span></a><span style="font-size:12pt;color:black" lang="EN-US">><br>
                      <b>Reply-To: </b>Reid Kleckner <</span><a href="mailto:rnk@google.com" target="_blank"><span style="font-size:12pt" lang="EN-US">rnk@google.com</span></a><span style="font-size:12pt;color:black" lang="EN-US">><br>
                      <b>Date: </b>Thursday, April 9, 2020 at 1:20 PM<br>
                      <b>To: </b>James Y Knight <</span><a href="mailto:jyknight@google.com" target="_blank"><span style="font-size:12pt" lang="EN-US">jyknight@google.com</span></a><span style="font-size:12pt;color:black" lang="EN-US">><br>
                      <b>Cc: </b>"</span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span style="font-size:12pt" lang="EN-US">llvm-dev@lists.llvm.org</span></a><span style="font-size:12pt;color:black" lang="EN-US">"
                      <</span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span style="font-size:12pt" lang="EN-US">llvm-dev@lists.llvm.org</span></a><span style="font-size:12pt;color:black" lang="EN-US">><br>
                      <b>Subject: </b>Re: [llvm-dev] Upgrading LLVM's
                      minimum required CMake version</span></p>
                </div>
                <div>
                  <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                </div>
                <div>
                  <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">I would add my voice to Chris's:
                      building out of the box on standard distros is a
                      valuable feature. I don't have time to really
                      participate in this discussion, but I'd discourage
                      us from adding any more steps at all to the LLVM
                      getting started document. </span></p>
                  <div>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                  </div>
                  <div>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">When I started working on
                        compilers, it was important that I could build
                        LLVM on the system and hardware that I had. That
                        was a meaningful differentiating advantage over
                        GCC, which sent me off on a side quest to check
                        out two unfamiliar arbitrary precision math
                        libraries, and asked me if I wanted to do a
                        two-stage bootstrap. Forget that. From a modern
                        OS, building LLVM should be as simple as:</span></p>
                  </div>
                  <div>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">- Install a standard C++ toolchain</span></p>
                  </div>
                  <div>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">- Clone source</span></p>
                  </div>
                  <div>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">- Paste a standard configuration
                        command</span></p>
                  </div>
                  <div>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">- make</span></p>
                  </div>
                  <div>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                  </div>
                  <div>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">If we get too far away from that,
                        we've lost something.</span></p>
                  </div>
                </div>
                <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                <div>
                  <div>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">On Wed, Apr 8, 2020 at 2:49 PM
                        James Y Knight via llvm-dev <</span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span lang="EN-US">llvm-dev@lists.llvm.org</span></a><span lang="EN-US">> wrote:</span></p>
                  </div>
                  <blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt">
                    <div>
                      <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">I am strongly in favor of
                          increasing the minimum CMake version. </span></p>
                      <div>
                        <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                      </div>
                      <div>
                        <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">I think we should NOT be
                            waiting for the next LLVM release to do
                            so, but should do so as soon as practical
                            (e.g. maybe a month from now). A warning
                            message emitted in CMake spam is not likely
                            to help users very much, IMO. An entry in
                            the release notes saying "This version of
                            LLVM now requires CMake X.Y.Z." along with a
                            link to the completely-trivial instructions
                            on how to get, build, and use a new version
                            for building LLVM (WITHOUT having to install
                            it!), should both suffice -- and is more
                            likely to be useful.</span></p>
                      </div>
                      <div>
                        <div>
                          <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                        </div>
                        <div>
                          <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">I do NOT think we should have
                              a policy tying ourselves to versions
                              supported by certain LTS releases. Users
                              of such LTSes can download a newer cmake.
                              We should, of course, strive to not be
                              unnecessarily annoying -- even though the
                              amount of work to download a new version
                              is small, it's not zero. We should
                              _consider_ the versions that developers
                              are likely to have pre-installed on their
                              machines, and drop support for those
                              versions only when the new features are
                              judged compelling enough to offset the
                              cost (small-pain-per-developer times
                              number-of-deveopers-affected).</span></p>
                        </div>
                      </div>
                      <div>
                        <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                      </div>
                      <div>
                        <div>
                          <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">I agree with others who say
                              we should only upgrade when would be truly
                              valuable -- not automatically just because
                              a new version exists. We should avoid
                              changing the minimum-requirement too
                              often.</span></p>
                        </div>
                      </div>
                      <div>
                        <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                      </div>
                      <div>
                        <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">FInally, I think we should put
                            the decision of when such an upgrade is
                            judged valuable into the hands of those who
                            are spending the most time working on the
                            build system. We do not need to redo this
                            discussion every time.</span></p>
                      </div>
                      <div>
                        <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                      </div>
                    </div>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                    <div>
                      <div>
                        <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">On Wed, Apr 8, 2020 at 4:36 PM
                            Chris Tetreault via llvm-dev <</span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span lang="EN-US">llvm-dev@lists.llvm.org</span></a><span lang="EN-US">> wrote:</span></p>
                      </div>
                      <blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt">
                        <div>
                          <div>
                            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">We should decide who we
                                consider the major distros to be. In my
                                mind this is Ubuntu, Debian, Fedora, and
                                CentOS/RHEL. We should also consider
                                Visual Studio releases and whatever OSX
                                and the major BSD’s have. (I honestly
                                have no idea so I’ll refrain from
                                speculating)</span></p>
                            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">For all of these, we should
                                try very hard to support the most recent
                                LTS. For the previous LTS, it would be
                                nice if we could support it, but we
                                shouldn’t require it. Old LTSs tend to
                                have really out of date packages,
                                especially in times like now with Ubuntu
                                where we’re really close to the current
                                LTS becoming the old LTS.</span></p>
                            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">That said, if CMake version
                                X has a killer feature that we need, we
                                should consider upgrading even if it
                                doesn’t fit this criteria. Similarly, we
                                should not just upgrade because the
                                minimum bound of CMake versions
                                supported by this set of OSs increased.
                                The point is to upgrade only when
                                there’s a compelling reason, and this
                                set of OSs is just a heuristic of “most
                                people probably already have this CMake
                                version.”</span></p>
                            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                            <div>
                              <div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0cm 0cm">
                                <p class="MsoNormal" style="margin-left:36pt"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> Shoaib Meenai <</span><a href="mailto:smeenai@fb.com" target="_blank"><span lang="EN-US">smeenai@fb.com</span></a><span lang="EN-US">> <br>
                                    <b>Sent:</b> Wednesday, April 8,
                                    2020 12:58 PM<br>
                                    <b>To:</b> Chris Tetreault <</span><a href="mailto:ctetreau@quicinc.com" target="_blank"><span lang="EN-US">ctetreau@quicinc.com</span></a><span lang="EN-US">>; Eric Christopher
                                    <</span><a href="mailto:echristo@gmail.com" target="_blank"><span lang="EN-US">echristo@gmail.com</span></a><span lang="EN-US">><br>
                                    <b>Cc:</b> </span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span lang="EN-US">llvm-dev@lists.llvm.org</span></a><span lang="EN-US"><br>
                                    <b>Subject:</b> [EXT] Re: [llvm-dev]
                                    Upgrading LLVM's minimum required
                                    CMake version</span></p>
                              </div>
                            </div>
                            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">Yeah, I don’t anticipate
                                Windows posing problems. Also, it’s
                                pretty common in Windows to just install
                                software yourself, and CMake ships
                                prebuilt binaries and an installer, so
                                it’s pretty easy to get set up with it.</span></p>
                            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">Chris, I’m gonna reiterate
                                a question of mine from an earlier
                                email, since you may have thoughts on
                                it:</span></p>
                            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                            <p class="MsoNormal" style="margin-left:36pt"><span style="color:black" lang="EN-US">* If we
                                want to limit ourselves to CMake
                                versions supported by LTS releases of
                                distros, which distros should we
                                consider, and how far back should we go
                                (i.e. is it just the latest LTS or the
                                last two LTS versions)?</span><span lang="EN-US"></span></p>
                            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> </span></p>
                            <div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(181,196,223);padding:3pt 0cm 0cm">
                              <p class="MsoNormal" style="margin-left:72pt"><b><span style="font-size:12pt;color:black" lang="EN-US">From: </span></b><span style="font-size:12pt;color:black" lang="EN-US">llvm-dev <</span><a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank"><span style="font-size:12pt" lang="EN-US">llvm-dev-bounces@lists.llvm.org</span></a><span style="font-size:12pt;color:black" lang="EN-US">> on behalf of Chris
                                  Tetreault via llvm-dev <</span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span style="font-size:12pt" lang="EN-US">llvm-dev@lists.llvm.org</span></a><span style="font-size:12pt;color:black" lang="EN-US">><br>
                                  <b>Reply-To: </b>Chris Tetreault <</span><a href="mailto:ctetreau@quicinc.com" target="_blank"><span style="font-size:12pt" lang="EN-US">ctetreau@quicinc.com</span></a><span style="font-size:12pt;color:black" lang="EN-US">><br>
                                  <b>Date: </b>Wednesday, April 8, 2020
                                  at 12:51 PM<br>
                                  <b>To: </b>Eric Christopher <</span><a href="mailto:echristo@gmail.com" target="_blank"><span style="font-size:12pt" lang="EN-US">echristo@gmail.com</span></a><span style="font-size:12pt;color:black" lang="EN-US">><br>
                                  <b>Cc: </b>"</span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span style="font-size:12pt" lang="EN-US">llvm-dev@lists.llvm.org</span></a><span style="font-size:12pt;color:black" lang="EN-US">" <</span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span style="font-size:12pt" lang="EN-US">llvm-dev@lists.llvm.org</span></a><span style="font-size:12pt;color:black" lang="EN-US">><br>
                                  <b>Subject: </b>Re: [llvm-dev]
                                  Upgrading LLVM's minimum required
                                  CMake version</span><span lang="EN-US"></span></p>
                            </div>
                            <div>
                              <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                            </div>
                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Visual studio 2019 ships
                                with CMake 3.15.5, which is pretty darn
                                new IMO. From what I can tell, CMake
                                versions are tied to visual studio
                                releases. So assuming we go with “what
                                do recent LTS distros have” as our
                                metric, I think it’s reasonable to say
                                “what do recent visual studio versions
                                have”. It probably makes sense to
                                confirm with MS though before we assume
                                that this is the case.</span></p>
                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                            <p class="MsoNormal" style="margin-left:72pt"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> Eric Christopher <</span><a href="mailto:echristo@gmail.com" target="_blank"><span lang="EN-US">echristo@gmail.com</span></a><span lang="EN-US">> <br>
                                <b>Sent:</b> Wednesday, April 8, 2020
                                12:41 PM<br>
                                <b>To:</b> Chris Tetreault <</span><a href="mailto:ctetreau@quicinc.com" target="_blank"><span lang="EN-US">ctetreau@quicinc.com</span></a><span lang="EN-US">><br>
                                <b>Cc:</b> Mehdi AMINI <</span><a href="mailto:joker.eph@gmail.com" target="_blank"><span lang="EN-US">joker.eph@gmail.com</span></a><span lang="EN-US">>; Louis Dionne <</span><a href="mailto:ldionne@apple.com" target="_blank"><span lang="EN-US">ldionne@apple.com</span></a><span lang="EN-US">>; </span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span lang="EN-US">llvm-dev@lists.llvm.org</span></a><span lang="EN-US"><br>
                                <b>Subject:</b> [EXT] Re: [llvm-dev]
                                Upgrading LLVM's minimum required CMake
                                version</span></p>
                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                            <div>
                              <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Hi All,</span></p>
                              <div>
                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                              </div>
                              <div>
                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Throwing a couple of
                                    comments in:</span></p>
                              </div>
                              <div>
                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                              </div>
                              <div>
                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Chris's position here
                                    has a lot of good points and we want
                                    to make sure we're not raising the
                                    barrier too high. I definitely want
                                    to be able to push ahead with our
                                    versions of tools; being able to
                                    update quickly is one of the
                                    hallmarks of the llvm project. That
                                    said, binary packages that can be
                                    updated are a minimal first step
                                    IMO. I'd really like to not build
                                    anything from source :) It seems
                                    like there are binaries available
                                    for cmake for all of our current
                                    platforms, but the windows use case
                                    that he brings is definitely a
                                    significant one. Can we perhaps
                                    reach out and find out the
                                    likelihood of a reasonably soonish
                                    update there? Linux distros are
                                    probably less of a problem - while
                                    we all can't use ppas we should be
                                    able to do something, similarly with
                                    osx.</span></p>
                              </div>
                              <div>
                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                              </div>
                              <div>
                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Thoughts?</span></p>
                              </div>
                              <div>
                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                              </div>
                              <div>
                                <p class="MsoNormal" style="margin-bottom:12pt;margin-left:72pt">
                                  <span lang="EN-US">-eric</span></p>
                              </div>
                            </div>
                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                            <div>
                              <div>
                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">On Wed, Apr 8, 2020 at
                                    9:53 AM Chris Tetreault via llvm-dev
                                    <</span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span lang="EN-US">llvm-dev@lists.llvm.org</span></a><span lang="EN-US">> wrote:</span></p>
                              </div>
                              <blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt">
                                <div>
                                  <div>
                                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">A line has to be
                                        drawn in the sand somewhere. How
                                        many “easy” things are we going
                                        to require the user to do? Today
                                        it’s build a specific CMake from
                                        source. What’s next?</span></p>
                                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Not having to
                                        manually track down a bunch of
                                        dependencies before building is
                                        a feature. Not having to have an
                                        internet connection at build
                                        time (if we were to script the
                                        getting of the custom CMake) is
                                        a feature. Being able to just
                                        call cmake instead of using some
                                        build_llvm.sh that (probably
                                        poorly) wraps cmake and
                                        downloads the correct version is
                                        a feature. Being able to use
                                        CMake that is distributed with
                                        visual studio so that invoking
                                        cmake from the developer
                                        powershell just works without
                                        fiddling with PATHs is a
                                        feature. Not having to install
                                        msys so that I can invoke
                                        download_cmake.sh is a feature.
                                        Not having to have the correct
                                        version of python (is it 2 or
                                        3?) be on the path in order to
                                        invoke download_cmake.py is a
                                        feature. Not having to remember
                                        to do --recurse-submodules on
                                        the llvm repo if we include it
                                        as a git submodule is a feature.
                                        The list goes on. Yeah, these
                                        are all little things, but a
                                        bunch of little things adds up
                                        to a huge barrier.</span></p>
                                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">People use Linux
                                        distos because by and large they
                                        just have all the dependencies
                                        that they need. I know I
                                        personally hate installing some
                                        open source thing on my machines
                                        when they have some dependency
                                        that’s not in the repos. Sure,
                                        it may be easy to build CMake
                                        from source. But now I have two
                                        CMakes: one that is
                                        automatically updated when I do
                                        sudo apt-get upgrade, and one
                                        that is just randomly in some
                                        folder that’s probably not on
                                        the PATH. I personally would
                                        really appreciate it if we made
                                        an attempt to reduce this sort
                                        of friction.</span></p>
                                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Thanks,</span></p>
                                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">   Christopher
                                        Tetreault</span></p>
                                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                    <p class="MsoNormal" style="margin-left:72pt"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> llvm-dev <</span><a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank"><span lang="EN-US">llvm-dev-bounces@lists.llvm.org</span></a><span lang="EN-US">> <b>On Behalf
                                          Of </b>Mehdi AMINI via
                                        llvm-dev<br>
                                        <b>Sent:</b> Wednesday, April 8,
                                        2020 9:06 AM<br>
                                        <b>To:</b> Louis Dionne <</span><a href="mailto:ldionne@apple.com" target="_blank"><span lang="EN-US">ldionne@apple.com</span></a><span lang="EN-US">><br>
                                        <b>Cc:</b> </span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span lang="EN-US">llvm-dev@lists.llvm.org</span></a><span lang="EN-US"><br>
                                        <b>Subject:</b> [EXT] Re:
                                        [llvm-dev] Upgrading LLVM's
                                        minimum required CMake version</span></p>
                                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                    <div>
                                      <div>
                                        <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                      </div>
                                      <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                      <div>
                                        <div>
                                          <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">On Wed, Apr
                                              8, 2020 at 9:02 AM Louis
                                              Dionne <</span><a href="mailto:ldionne@apple.com" target="_blank"><span lang="EN-US">ldionne@apple.com</span></a><span lang="EN-US">> wrote:</span></p>
                                        </div>
                                        <blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt">
                                          <div>
                                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                            <div>
                                              <p class="MsoNormal" style="margin-bottom:12pt;margin-left:72pt">
                                                <span lang="EN-US"> </span></p>
                                              <blockquote style="margin-top:5pt;margin-bottom:5pt">
                                                <div>
                                                  <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">On
                                                      Apr 7, 2020, at
                                                      22:16, Mehdi AMINI
                                                      via llvm-dev <</span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span lang="EN-US">llvm-dev@lists.llvm.org</span></a><span lang="EN-US">>
                                                      wrote:</span></p>
                                                </div>
                                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                                <div>
                                                  <div>
                                                    <div>
                                                      <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                                    </div>
                                                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                                    <div>
                                                      <div>
                                                        <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">On Tue, Apr 7, 2020 at 11:27
                                                          AM David
                                                          Blaikie <</span><a href="mailto:dblaikie@gmail.com" target="_blank"><span lang="EN-US">dblaikie@gmail.com</span></a><span lang="EN-US">>
                                                          wrote:</span></p>
                                                      </div>
                                                      <blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt">
                                                        <div>
                                                          <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">I think it does make a
                                                          difference how
                                                          many things we
                                                          ask new
                                                          developers to
                                                          do to get up
                                                          and running -
                                                          because we've
                                                          asked them to
                                                          do one thing
                                                          doesn't mean
                                                          it's low-cost
                                                          to ask them to
                                                          do another
                                                          thing.</span></p>
                                                        </div>
                                                      </blockquote>
                                                      <div>
                                                        <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                                      </div>
                                                      <div>
                                                        <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">In this case I see it rather
                                                          that if we ask
                                                          them to do one
                                                          quite big
                                                          thing already,
                                                          we should be
                                                          OK with what
                                                          seems like a
                                                          trivial one.</span></p>
                                                      </div>
                                                    </div>
                                                  </div>
                                                </div>
                                              </blockquote>
                                              <div>
                                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                              </div>
                                              <div>
                                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">I
                                                    strongly agree. I
                                                    think Mehdi's point
                                                    can be summarized as
                                                    (Mehdi, feel free to
                                                    correct me):</span></p>
                                              </div>
                                              <div>
                                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                              </div>
                                              <div>
                                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">   
                                                    It's incredibly
                                                    trivial to install
                                                    CMake, so if a user
                                                    is *already*
                                                    required to install
                                                    a non-default
                                                    toolchain (which is
                                                    not so trivial),
                                                    requiring them to
                                                    install a
                                                    non-default CMake is
                                                    not increasing the
                                                    barrier by much.</span></p>
                                              </div>
                                            </div>
                                          </div>
                                        </blockquote>
                                        <div>
                                          <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                        </div>
                                        <div>
                                          <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Thanks, this
                                              is my point indeed!</span></p>
                                        </div>
                                        <div>
                                          <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                        </div>
                                        <div>
                                          <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">I think it is
                                              even slightly stronger
                                              than what you wrote since
                                              you don't even need to
                                              *install* CMake as it can
                                              be built and used directly
                                              from the build directory:
                                              it is entirely
                                              non-intrusive on the
                                              system.</span></p>
                                        </div>
                                        <div>
                                          <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> </span></p>
                                        </div>
                                        <div>
                                          <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">-- </span></p>
                                        </div>
                                        <div>
                                          <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Mehdi</span></p>
                                        </div>
                                      </div>
                                    </div>
                                  </div>
                                </div>
                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">_______________________________________________<br>
                                    LLVM Developers mailing list<br>
                                  </span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span lang="EN-US">llvm-dev@lists.llvm.org</span></a><span lang="EN-US"><br>
                                  </span><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Ddev&d=DwMGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=OUvi60kOTuMyRUJcCtHsN-RK1gHy4sXxEGS0pAunCoE&s=W77RObkJ6AlX4-NZ-OApzF80Y5rSjh4gDzuBG4ScjEQ&e=" target="_blank"><span lang="EN-US">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</span></a><span lang="EN-US"></span></p>
                              </blockquote>
                            </div>
                          </div>
                        </div>
                        <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">_______________________________________________<br>
                            LLVM Developers mailing list<br>
                          </span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span lang="EN-US">llvm-dev@lists.llvm.org</span></a><span lang="EN-US"><br>
                          </span><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Ddev&d=DwMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=RvaD9Q_VY7Y2QSH5JAtJlUDjQZKLr1RSWDceq7JxvZE&s=SdeUoPXT_jrLA6F111g6osrDG6MW34YbjgUwfq1YSl0&e=" target="_blank"><span lang="EN-US">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</span></a><span lang="EN-US"></span></p>
                      </blockquote>
                    </div>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">_______________________________________________<br>
                        LLVM Developers mailing list<br>
                      </span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span lang="EN-US">llvm-dev@lists.llvm.org</span></a><span lang="EN-US"><br>
                      </span><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Ddev&d=DwMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=RvaD9Q_VY7Y2QSH5JAtJlUDjQZKLr1RSWDceq7JxvZE&s=SdeUoPXT_jrLA6F111g6osrDG6MW34YbjgUwfq1YSl0&e=" target="_blank"><span lang="EN-US">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</span></a><span lang="EN-US"></span></p>
                  </blockquote>
                </div>
              </div>
              <br>
              <fieldset></fieldset>
              <pre>_______________________________________________
LLVM Developers mailing list
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
            </blockquote>
          </div>
          _______________________________________________<br>
          LLVM Developers mailing list<br>
          <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
          <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
        </blockquote>
      </div>
    </blockquote>
  </div>

</blockquote></div></div>