<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">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,<u></u><u></u></span></p>
        <p class="MsoNormal"><span><u></u> <u></u></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?<u></u><u></u></span></p>
        <p class="MsoNormal"><span><u></u> <u></u></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.<u></u><u></u></span></p>
        <p class="MsoNormal"><span><u></u> <u></u></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?<u></u><u></u></span></p>
        <p class="MsoNormal"><span><u></u> <u></u></span></p>
        <p class="MsoNormal"><span><u></u> <u></u></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<u></u><u></u></p>
          </div>
        </div>
        <p class="MsoNormal"><u></u> <u></u></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.)<u></u><u></u></span></p>
        <p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></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<u></u><u></u></span></p>
        </div>
        <div>
          <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"><u></u> <u></u></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. <u></u><u></u></span></p>
          <div>
            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"><u></u> <u></u></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:<u></u><u></u></span></p>
          </div>
          <div>
            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">- Install a standard C++ toolchain<u></u><u></u></span></p>
          </div>
          <div>
            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">- Clone source<u></u><u></u></span></p>
          </div>
          <div>
            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">- Paste a standard configuration command<u></u><u></u></span></p>
          </div>
          <div>
            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US">- make<u></u><u></u></span></p>
          </div>
          <div>
            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"><u></u> <u></u></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.<u></u><u></u></span></p>
          </div>
        </div>
        <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"><u></u> <u></u></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:<u></u><u></u></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.
                  <u></u><u></u></span></p>
              <div>
                <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"><u></u> <u></u></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.<u></u><u></u></span></p>
              </div>
              <div>
                <div>
                  <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"><u></u> <u></u></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).<u></u><u></u></span></p>
                </div>
              </div>
              <div>
                <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"><u></u> <u></u></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.<u></u><u></u></span></p>
                </div>
              </div>
              <div>
                <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"><u></u> <u></u></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.<u></u><u></u></span></p>
              </div>
              <div>
                <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"><u></u> <u></u></span></p>
              </div>
            </div>
            <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"><u></u> <u></u></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:<u></u><u></u></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)<u></u><u></u></span></p>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> <u></u><u></u></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.<u></u><u></u></span></p>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> <u></u><u></u></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.”<u></u><u></u></span></p>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> <u></u><u></u></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<u></u><u></u></span></p>
                      </div>
                    </div>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> <u></u><u></u></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.<u></u><u></u></span></p>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> <u></u><u></u></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:<u></u><u></u></span></p>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> <u></u><u></u></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"><u></u><u></u></span></p>
                    <p class="MsoNormal" style="margin-left:36pt"><span lang="EN-US"> <u></u><u></u></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"><u></u><u></u></span></p>
                    </div>
                    <div>
                      <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></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.<u></u><u></u></span></p>
                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></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<u></u><u></u></span></p>
                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></span></p>
                    <div>
                      <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Hi All,<u></u><u></u></span></p>
                      <div>
                        <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></span></p>
                      </div>
                      <div>
                        <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Throwing a couple of comments
                            in:<u></u><u></u></span></p>
                      </div>
                      <div>
                        <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></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.<u></u><u></u></span></p>
                      </div>
                      <div>
                        <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></span></p>
                      </div>
                      <div>
                        <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Thoughts?<u></u><u></u></span></p>
                      </div>
                      <div>
                        <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></span></p>
                      </div>
                      <div>
                        <p class="MsoNormal" style="margin-bottom:12pt;margin-left:72pt">
                          <span lang="EN-US">-eric<u></u><u></u></span></p>
                      </div>
                    </div>
                    <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></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:<u></u><u></u></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"> <u></u><u></u></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?<u></u><u></u></span></p>
                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></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.<u></u><u></u></span></p>
                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></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.<u></u><u></u></span></p>
                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></span></p>
                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Thanks,<u></u><u></u></span></p>
                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">   Christopher Tetreault<u></u><u></u></span></p>
                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></span></p>
                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></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<u></u><u></u></span></p>
                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></span></p>
                            <div>
                              <div>
                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></span></p>
                              </div>
                              <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></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:<u></u><u></u></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"> <u></u><u></u></span></p>
                                    <div>
                                      <p class="MsoNormal" style="margin-bottom:12pt;margin-left:72pt">
                                        <span lang="EN-US"> <u></u><u></u></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:<u></u><u></u></span></p>
                                        </div>
                                        <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></span></p>
                                        <div>
                                          <div>
                                            <div>
                                              <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></span></p>
                                            </div>
                                            <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></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:<u></u><u></u></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.<u></u><u></u></span></p>
                                                </div>
                                              </blockquote>
                                              <div>
                                                <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></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.<u></u><u></u></span></p>
                                              </div>
                                            </div>
                                          </div>
                                        </div>
                                      </blockquote>
                                      <div>
                                        <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></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):<u></u><u></u></span></p>
                                      </div>
                                      <div>
                                        <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></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.<u></u><u></u></span></p>
                                      </div>
                                    </div>
                                  </div>
                                </blockquote>
                                <div>
                                  <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></span></p>
                                </div>
                                <div>
                                  <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Thanks, this is my
                                      point indeed!<u></u><u></u></span></p>
                                </div>
                                <div>
                                  <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></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.<u></u><u></u></span></p>
                                </div>
                                <div>
                                  <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US"> <u></u><u></u></span></p>
                                </div>
                                <div>
                                  <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">-- <u></u><u></u></span></p>
                                </div>
                                <div>
                                  <p class="MsoNormal" style="margin-left:72pt"><span lang="EN-US">Mehdi<u></u><u></u></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"><u></u><u></u></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"><u></u><u></u></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"><u></u><u></u></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>