<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>+1 to Reid and Chris.<br>
</p>
<div class="moz-cite-prefix">On 4/9/20 1:19 PM, Reid Kleckner via
llvm-dev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CACs=tyJ5bcZZKZyGUxeaYdMqGAdTFHDJvTk7JK3nySCTPAV-jQ@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">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.
<div><br>
</div>
<div>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:</div>
<div>- Install a standard C++ toolchain</div>
<div>- Clone source</div>
<div>- Paste a standard configuration command</div>
<div>- make</div>
<div><br>
</div>
<div>If we get too far away from that, we've lost something.</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Apr 8, 2020 at 2:49 PM
James Y Knight 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 dir="ltr">I am strongly in favor of increasing the
minimum CMake version.
<div><br>
</div>
<div>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.</div>
<div>
<div><br>
</div>
<div>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).</div>
</div>
<div><br>
</div>
<div>
<div>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.</div>
</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Apr 8, 2020 at
4:36 PM Chris Tetreault via llvm-dev <<a
href="mailto:llvm-dev@lists.llvm.org" target="_blank"
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 lang="EN-US">
<div>
<p class="MsoNormal">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)</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">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.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">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.”</p>
<p class="MsoNormal"> </p>
<div>
<div
style="border-right:none;border-bottom:none;border-left:none;border-top:1pt
solid rgb(225,225,225);padding:3pt 0in 0in">
<p class="MsoNormal"><b>From:</b> Shoaib Meenai
<<a href="mailto:smeenai@fb.com"
target="_blank" moz-do-not-send="true">smeenai@fb.com</a>>
<br>
<b>Sent:</b> Wednesday, April 8, 2020 12:58 PM<br>
<b>To:</b> Chris Tetreault <<a
href="mailto:ctetreau@quicinc.com"
target="_blank" moz-do-not-send="true">ctetreau@quicinc.com</a>>;
Eric Christopher <<a
href="mailto:echristo@gmail.com"
target="_blank" moz-do-not-send="true">echristo@gmail.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>Subject:</b> [EXT] Re: [llvm-dev] Upgrading
LLVM's minimum required CMake version</p>
</div>
</div>
<p class="MsoNormal"> </p>
<p class="MsoNormal">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.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Chris, I’m gonna reiterate a
question of mine from an earlier email, since you
may have thoughts on it:</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span style="color:black">* 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></p>
<p class="MsoNormal"> </p>
<div
style="border-right:none;border-bottom:none;border-left:none;border-top:1pt
solid rgb(181,196,223);padding:3pt 0in 0in">
<p class="MsoNormal" style="margin-left:0.5in"><b><span
style="font-size:12pt;color:black">From:
</span></b><span
style="font-size:12pt;color:black">llvm-dev <</span><a
href="mailto:llvm-dev-bounces@lists.llvm.org"
target="_blank" moz-do-not-send="true"><span
style="font-size:12pt">llvm-dev-bounces@lists.llvm.org</span></a><span
style="font-size:12pt;color:black">> 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">llvm-dev@lists.llvm.org</span></a><span
style="font-size:12pt;color:black">><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">ctetreau@quicinc.com</span></a><span
style="font-size:12pt;color:black">><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">echristo@gmail.com</span></a><span
style="font-size:12pt;color:black">><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">llvm-dev@lists.llvm.org</span></a><span
style="font-size:12pt;color:black">" <</span><a
href="mailto:llvm-dev@lists.llvm.org"
target="_blank" moz-do-not-send="true"><span
style="font-size:12pt">llvm-dev@lists.llvm.org</span></a><span
style="font-size:12pt;color:black">><br>
<b>Subject: </b>Re: [llvm-dev] Upgrading LLVM's
minimum required CMake version</span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"> </p>
</div>
<p class="MsoNormal" style="margin-left:0.5in">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.</p>
<p class="MsoNormal" style="margin-left:0.5in"> </p>
<p class="MsoNormal" style="margin-left:0.5in"><b>From:</b>
Eric Christopher <<a
href="mailto:echristo@gmail.com" target="_blank"
moz-do-not-send="true">echristo@gmail.com</a>>
<br>
<b>Sent:</b> Wednesday, April 8, 2020 12:41 PM<br>
<b>To:</b> Chris Tetreault <<a
href="mailto:ctetreau@quicinc.com" target="_blank"
moz-do-not-send="true">ctetreau@quicinc.com</a>><br>
<b>Cc:</b> Mehdi AMINI <<a
href="mailto:joker.eph@gmail.com" target="_blank"
moz-do-not-send="true">joker.eph@gmail.com</a>>;
Louis Dionne <<a href="mailto:ldionne@apple.com"
target="_blank" moz-do-not-send="true">ldionne@apple.com</a>>;
<a href="mailto:llvm-dev@lists.llvm.org"
target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br>
<b>Subject:</b> [EXT] Re: [llvm-dev] Upgrading
LLVM's minimum required CMake version</p>
<p class="MsoNormal" style="margin-left:0.5in"> </p>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Hi
All,</p>
<div>
<p class="MsoNormal" style="margin-left:0.5in"> </p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Throwing
a couple of comments in:</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"> </p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">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.</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"> </p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Thoughts?</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"> </p>
</div>
<div>
<p class="MsoNormal"
style="margin-right:0in;margin-bottom:12pt;margin-left:0.5in">
-eric<br>
<br>
</p>
</div>
</div>
<p class="MsoNormal" style="margin-left:0.5in"> </p>
<div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">On
Wed, Apr 8, 2020 at 9:53 AM Chris Tetreault via
llvm-dev <<a
href="mailto:llvm-dev@lists.llvm.org"
target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a>>
wrote:</p>
</div>
<blockquote
style="border-top:none;border-right:none;border-bottom:none;border-left:1pt
solid rgb(204,204,204);padding:0in 0in 0in
6pt;margin:5pt 0in 5pt 4.8pt">
<div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">
</p>
<p class="MsoNormal" style="margin-left:0.5in">
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?</p>
<p class="MsoNormal" style="margin-left:0.5in">
</p>
<p class="MsoNormal" style="margin-left:0.5in">
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.</p>
<p class="MsoNormal" style="margin-left:0.5in">
</p>
<p class="MsoNormal" style="margin-left:0.5in">
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.</p>
<p class="MsoNormal" style="margin-left:0.5in">
</p>
<p class="MsoNormal" style="margin-left:0.5in">
Thanks,</p>
<p class="MsoNormal" style="margin-left:0.5in">
Christopher Tetreault</p>
<p class="MsoNormal" style="margin-left:0.5in">
</p>
<p class="MsoNormal" style="margin-left:0.5in">
</p>
<p class="MsoNormal" style="margin-left:0.5in">
<b>From:</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>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 <<a
href="mailto:ldionne@apple.com"
target="_blank" moz-do-not-send="true">ldionne@apple.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>Subject:</b> [EXT] Re: [llvm-dev]
Upgrading LLVM's minimum required CMake
version</p>
<p class="MsoNormal" style="margin-left:0.5in">
</p>
<div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
</p>
</div>
<p class="MsoNormal"
style="margin-left:0.5in">
</p>
<div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
On Wed, Apr 8, 2020 at 9:02 AM Louis
Dionne <<a
href="mailto:ldionne@apple.com"
target="_blank"
moz-do-not-send="true">ldionne@apple.com</a>>
wrote:</p>
</div>
<blockquote
style="border-top:none;border-right:none;border-bottom:none;border-left:1pt
solid rgb(204,204,204);padding:0in 0in
0in 6pt;margin:5pt 0in 5pt 4.8pt">
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
</p>
<div>
<p class="MsoNormal"
style="margin-bottom:12pt;margin-left:0.5in">
</p>
<blockquote
style="margin-top:5pt;margin-bottom:5pt">
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
On Apr 7, 2020, at 22:16,
Mehdi AMINI via llvm-dev <<a
href="mailto:llvm-dev@lists.llvm.org" target="_blank"
moz-do-not-send="true">llvm-dev@lists.llvm.org</a>>
wrote:</p>
</div>
<p class="MsoNormal"
style="margin-left:0.5in">
</p>
<div>
<div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
</p>
</div>
<p class="MsoNormal"
style="margin-left:0.5in">
</p>
<div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
On Tue, Apr 7, 2020 at
11:27 AM David Blaikie
<<a
href="mailto:dblaikie@gmail.com"
target="_blank"
moz-do-not-send="true">dblaikie@gmail.com</a>>
wrote:</p>
</div>
<blockquote
style="border-top:none;border-right:none;border-bottom:none;border-left:1pt
solid
rgb(204,204,204);padding:0in
0in 0in 6pt;margin:5pt 0in
5pt 4.8pt">
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
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.</p>
</div>
</blockquote>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
</p>
</div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
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.</p>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
</p>
</div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
I strongly agree. I think
Mehdi's point can be summarized
as (Mehdi, feel free to correct
me):</p>
</div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
</p>
</div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
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.</p>
</div>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
</p>
</div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
Thanks, this is my point indeed!</p>
</div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
</p>
</div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
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.</p>
</div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
</p>
</div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
-- </p>
</div>
<div>
<p class="MsoNormal"
style="margin-left:0.5in">
Mehdi</p>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-left:0.5in">_______________________________________________<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://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">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a></p>
</blockquote>
</div>
</div>
</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>
_______________________________________________<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>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
</blockquote>
</body>
</html>