<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Wed, Jul 20, 2016 at 6:02 PM Mehdi Amini via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
> On Jul 20, 2016, at 5:56 PM, Renato Golin via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
><br>
> On 21 July 2016 at 01:39, Justin Lebar <<a href="mailto:jlebar@google.com" target="_blank">jlebar@google.com</a>> wrote:<br>
>> This is true if you s/checkout/clone/.  With a single repo, you must<br>
>> clone (download) everything (*), but after you've done so you can use<br>
>> sparse checkouts to check out (create a working copy of) only llvm and<br>
>> clang.  So you should only notice the fact that there exist things<br>
>> other than llvm and clang when you first clone (download) llvm.<br>
><br>
> So, we use that to a certain extent.<br>
><br>
> Linaro's GCC validation uses the full checkout, then do a shallow<br>
> checkout that only has the updates.<br>
><br>
> Our LLVM scripts, OTOH, clone all repos and use worktree for *all*<br>
> branches, and we only branch on the repos that we choose, for each<br>
> "working dir".<br>
><br>
> Our scripts probably would need certain modifications... but it should be fine.<br>
><br>
> But I'm not, by far, the most problematic user.<br>
><br>
> The real problem, and why people accepted sub-modules, is that a lot<br>
> of downstream people only use one or another projects. Mostly LLVM or<br>
> Clang or libc++.<br>
><br>
> Checking out all of it is bad, but having them officially interlinked,<br>
> it seems, is worse. IIUC, the problem is that the projects are now<br>
> built independently on their projects, but more and more CMake changes<br>
> are creeping in, making it harder and harder to separate their<br>
> projects from the rest of LLVM. This means they'll now depend on a<br>
> much larger body of sources that will need to be compiled together,<br>
> and will probably mean they'll abandon LLVM in favour of something<br>
> lighter.<br>
><br>
> I honestly don't know how big is that problem, I don't have it myself,<br>
> but I "can imagine" compiling LLVM and Clang without need would be<br>
> pretty bad.<br>
<br>
<br>
You seem to imply that all the projects in the single repo would be built by default, while it is not part of the proposal.<br>
Actually I’d expect an opt-in mechanism, so that: `mkdir build-llvm && cd build-llvm && cmake ../llvm` only builds LLVM.<br></blockquote><div><br></div><div>If we end up with a single repository, I agree and think at least some level of opt-in for building subprojects is essential.</div><div><br></div><div>I would expect at *most* to automatically enable building the set of subprojects we currently suggest by default in the getting started docs. Any more than that wouldn't make sense, and I could even imagine defaulting *fewer* projects at the build system level.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
—<br>
Mehdi<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div>