<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>