<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <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>
    <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>
    <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>
    <p>Philip<br>
    </p>
    <div class="moz-cite-prefix">On 4/9/20 4:18 PM, Eric Christopher
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CALehDX5rk2YkSJnHj_K=VUzL3FH-UiOc9D=_QYwSJi_AidVO9g@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <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" moz-do-not-send="true">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" moz-do-not-send="true"> 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" moz-do-not-send="true"><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"
                        moz-do-not-send="true"><rnk@google.com></a>;
                      James Y Knight <a
                        href="mailto:jyknight@google.com"
                        target="_blank" moz-do-not-send="true"><jyknight@google.com></a><br>
                      <b>Cc :</b> <a
                        href="mailto:llvm-dev@lists.llvm.org"
                        target="_blank" moz-do-not-send="true">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" moz-do-not-send="true"><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" moz-do-not-send="true"><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"
                      moz-do-not-send="true"><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"
                      moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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"
                                    moz-do-not-send="true"><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"
                                    moz-do-not-send="true"><span
                                      lang="EN-US">ctetreau@quicinc.com</span></a><span
                                    lang="EN-US">>; Eric Christopher
                                    <</span><a
                                    href="mailto:echristo@gmail.com"
                                    target="_blank"
                                    moz-do-not-send="true"><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"
                                    moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><span
                                  lang="EN-US">ldionne@apple.com</span></a><span
                                lang="EN-US">>; </span><a
                                href="mailto:llvm-dev@lists.llvm.org"
                                target="_blank" moz-do-not-send="true"><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"
                                    moz-do-not-send="true"><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"
                                        moz-do-not-send="true"><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"
                                        moz-do-not-send="true"><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"
                                        moz-do-not-send="true"><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"
                                              moz-do-not-send="true"><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"
                                                      moz-do-not-send="true"><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" moz-do-not-send="true"><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"
                                    moz-do-not-send="true"><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"
                                    moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true"><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" moz-do-not-send="true">llvm-dev@lists.llvm.org</a>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank" moz-do-not-send="true">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"
            moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br>
          <a
            href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
        </blockquote>
      </div>
    </blockquote>
  </body>
</html>