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