<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<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]-->
</head>
<body lang="EN-CA" link="blue" vlink="purple">
<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">
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 <llvm-dev-bounces@lists.llvm.org> <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 <rnk@google.com>; James Y Knight <jyknight@google.com><br>
<b>Cc :</b> llvm-dev@lists.llvm.org<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 lang="EN-US" style="font-size:12.0pt;color:black">From:
</span></b><span lang="EN-US" style="font-size:12.0pt;color:black">llvm-dev <</span><a href="mailto:llvm-dev-bounces@lists.llvm.org"><span lang="EN-US" style="font-size:12.0pt">llvm-dev-bounces@lists.llvm.org</span></a><span lang="EN-US" style="font-size:12.0pt;color:black">>
 on behalf of Reid Kleckner via llvm-dev <</span><a href="mailto:llvm-dev@lists.llvm.org"><span lang="EN-US" style="font-size:12.0pt">llvm-dev@lists.llvm.org</span></a><span lang="EN-US" style="font-size:12.0pt;color:black">><br>
<b>Reply-To: </b>Reid Kleckner <</span><a href="mailto:rnk@google.com"><span lang="EN-US" style="font-size:12.0pt">rnk@google.com</span></a><span lang="EN-US" style="font-size:12.0pt;color:black">><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"><span lang="EN-US" style="font-size:12.0pt">jyknight@google.com</span></a><span lang="EN-US" style="font-size:12.0pt;color:black">><br>
<b>Cc: </b>"</span><a href="mailto:llvm-dev@lists.llvm.org"><span lang="EN-US" style="font-size:12.0pt">llvm-dev@lists.llvm.org</span></a><span lang="EN-US" style="font-size:12.0pt;color:black">" <</span><a href="mailto:llvm-dev@lists.llvm.org"><span lang="EN-US" style="font-size:12.0pt">llvm-dev@lists.llvm.org</span></a><span lang="EN-US" style="font-size:12.0pt;color:black">><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"><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"><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"><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<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 lang="EN-US" 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><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 lang="EN-US" style="font-size:12.0pt;color:black">From: </span></b><span lang="EN-US" style="font-size:12.0pt;color:black">llvm-dev <</span><a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank"><span lang="EN-US" style="font-size:12.0pt">llvm-dev-bounces@lists.llvm.org</span></a><span lang="EN-US" style="font-size:12.0pt;color:black">>
 on behalf of Chris Tetreault via llvm-dev <</span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span lang="EN-US" style="font-size:12.0pt">llvm-dev@lists.llvm.org</span></a><span lang="EN-US" style="font-size:12.0pt;color:black">><br>
<b>Reply-To: </b>Chris Tetreault <</span><a href="mailto:ctetreau@quicinc.com" target="_blank"><span lang="EN-US" style="font-size:12.0pt">ctetreau@quicinc.com</span></a><span lang="EN-US" style="font-size:12.0pt;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"><span lang="EN-US" style="font-size:12.0pt">echristo@gmail.com</span></a><span lang="EN-US" style="font-size:12.0pt;color:black">><br>
<b>Cc: </b>"</span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span lang="EN-US" style="font-size:12.0pt">llvm-dev@lists.llvm.org</span></a><span lang="EN-US" style="font-size:12.0pt;color:black">" <</span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span lang="EN-US" style="font-size:12.0pt">llvm-dev@lists.llvm.org</span></a><span lang="EN-US" style="font-size:12.0pt;color:black">><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"><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<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"><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"><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<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"><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"><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"><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"><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"><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"><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"><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"><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"><o:p></o:p></span></p>
</blockquote>
</div>
</div>
</body>
</html>