<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<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 class="moz-cite-prefix">On 4/9/20 2:55 PM, Alexandre Ganea via
llvm-dev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:BN8PR17MB29787EF44B743AD45D692396EBC10@BN8PR17MB2978.namprd17.prod.outlook.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.EmailStyle18
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle19
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle20
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Sorry
if this was discussed,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">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?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">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 style="font-size:10.0pt;font-family:"Courier
New";mso-fareast-language:EN-US">-DLLVM_ENABLE_PROJECTS=llvm;mlir;clang;lld;clang-tools-extra;compiler-rt;lldb</span><span
style="mso-fareast-language:EN-US">. 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.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">We
use <a
href="https://docs.microsoft.com/en-us/nuget/install-nuget-client-tools"
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?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>De :</b> llvm-dev
<a class="moz-txt-link-rfc2396E" href="mailto:llvm-dev-bounces@lists.llvm.org"><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 class="moz-txt-link-rfc2396E" href="mailto:rnk@google.com"><rnk@google.com></a>; James Y
Knight <a class="moz-txt-link-rfc2396E" href="mailto:jyknight@google.com"><jyknight@google.com></a><br>
<b>Cc :</b> <a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<b>Objet :</b> Re: [llvm-dev] Upgrading LLVM's minimum
required CMake version<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></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.)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin-left:36.0pt"><b><span
style="font-size:12.0pt;color:black" lang="EN-US">From:
</span></b><span style="font-size:12.0pt;color:black"
lang="EN-US">llvm-dev <</span><a
href="mailto:llvm-dev-bounces@lists.llvm.org"
moz-do-not-send="true"><span style="font-size:12.0pt"
lang="EN-US">llvm-dev-bounces@lists.llvm.org</span></a><span
style="font-size:12.0pt;color:black" lang="EN-US">> on
behalf of Reid Kleckner via llvm-dev <</span><a
href="mailto:llvm-dev@lists.llvm.org"
moz-do-not-send="true"><span style="font-size:12.0pt"
lang="EN-US">llvm-dev@lists.llvm.org</span></a><span
style="font-size:12.0pt;color:black" lang="EN-US">><br>
<b>Reply-To: </b>Reid Kleckner <</span><a
href="mailto:rnk@google.com" moz-do-not-send="true"><span
style="font-size:12.0pt" lang="EN-US">rnk@google.com</span></a><span
style="font-size:12.0pt;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" moz-do-not-send="true"><span
style="font-size:12.0pt" lang="EN-US">jyknight@google.com</span></a><span
style="font-size:12.0pt;color:black" lang="EN-US">><br>
<b>Cc: </b>"</span><a
href="mailto:llvm-dev@lists.llvm.org"
moz-do-not-send="true"><span style="font-size:12.0pt"
lang="EN-US">llvm-dev@lists.llvm.org</span></a><span
style="font-size:12.0pt;color:black" lang="EN-US">" <</span><a
href="mailto:llvm-dev@lists.llvm.org"
moz-do-not-send="true"><span style="font-size:12.0pt"
lang="EN-US">llvm-dev@lists.llvm.org</span></a><span
style="font-size:12.0pt;color:black" lang="EN-US">><br>
<b>Subject: </b>Re: [llvm-dev] Upgrading LLVM's minimum
required CMake version<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><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. <o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><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:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US">- Install a standard C++ toolchain<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US">- Clone source<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US">- Paste a standard configuration command<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US">- make<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US">If we get too far away from that, we've
lost something.<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US"><o:p> </o:p></span></p>
<div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><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"
moz-do-not-send="true"><span lang="EN-US">llvm-dev@lists.llvm.org</span></a><span
lang="EN-US">> wrote:<o:p></o:p></span></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC
1.0pt;padding:0cm 0cm 0cm
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US">I am strongly in favor of increasing the
minimum CMake version.
<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><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.<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><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).<o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><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.<o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><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.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US"><o:p> </o:p></span></p>
</div>
</div>
<p class="MsoNormal" style="margin-left:36.0pt"><span
lang="EN-US"><o:p> </o:p></span></p>
<div>
<div>
<p class="MsoNormal" style="margin-left:36.0pt"><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:<o:p></o:p></span></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC
1.0pt;padding:0cm 0cm 0cm
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><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)<o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><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.<o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><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.”<o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><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<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><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.<o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><span
lang="EN-US">Chris, I’m gonna reiterate a
question of mine from an earlier email, since
you may have thoughts on it:<o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><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"><o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:36.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><b><span
style="font-size:12.0pt;color:black"
lang="EN-US">From: </span></b><span
style="font-size:12.0pt;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:12.0pt" lang="EN-US">llvm-dev-bounces@lists.llvm.org</span></a><span
style="font-size:12.0pt;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:12.0pt" lang="EN-US">llvm-dev@lists.llvm.org</span></a><span
style="font-size:12.0pt;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:12.0pt" lang="EN-US">ctetreau@quicinc.com</span></a><span
style="font-size:12.0pt;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:12.0pt" lang="EN-US">echristo@gmail.com</span></a><span
style="font-size:12.0pt;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:12.0pt" lang="EN-US">llvm-dev@lists.llvm.org</span></a><span
style="font-size:12.0pt;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:12.0pt" lang="EN-US">llvm-dev@lists.llvm.org</span></a><span
style="font-size:12.0pt;color:black"
lang="EN-US">><br>
<b>Subject: </b>Re: [llvm-dev] Upgrading
LLVM's minimum required CMake version</span><span
lang="EN-US"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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.<o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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<o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US">Hi All,<o:p></o:p></span></p>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US">Throwing a couple of comments
in:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US">Thoughts?<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;margin-bottom:12.0pt;margin-left:72.0pt">
<span lang="EN-US">-eric<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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:<o:p></o:p></span></p>
</div>
<blockquote style="border:none;border-left:solid
#CCCCCC 1.0pt;padding:0cm 0cm 0cm
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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?<o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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.<o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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.<o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> Christopher Tetreault<o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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<o:p></o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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:<o:p></o:p></span></p>
</div>
<blockquote
style="border:none;border-left:solid
#CCCCCC 1.0pt;padding:0cm 0cm 0cm
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;margin-bottom:12.0pt;margin-left:72.0pt">
<span lang="EN-US"> <o:p></o:p></span></p>
<blockquote
style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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:<o:p></o:p></span></p>
</div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<div>
<div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
<div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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:<o:p></o:p></span></p>
</div>
<blockquote
style="border:none;border-left:solid
#CCCCCC
1.0pt;padding:0cm 0cm
0cm
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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.<o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US">I strongly
agree. I think Mehdi's point
can be summarized as (Mehdi,
feel free to correct me):<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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.<o:p></o:p></span></p>
</div>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US">Thanks, this is my
point indeed!<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US">-- <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><span
lang="EN-US">Mehdi<o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:72.0pt"><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"><o:p></o:p></span></p>
</blockquote>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-left:36.0pt"><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"><o:p></o:p></span></p>
</blockquote>
</div>
<p class="MsoNormal" style="margin-left:36.0pt"><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"><o:p></o:p></span></p>
</blockquote>
</div>
</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>