Sent from my iPhone

> On Oct 8, 2018, at 8:09 AM, Zachary Turner via llvm-dev 
> <llvm-...@lists.llvm.org> wrote:
> 
> 
> 
>> On Mon, Oct 8, 2018 at 7:42 AM Greg Bedwell <gregbedw...@gmail.com> wrote:
>> Thanks for raising this.
>> 
>> This is a topic I've been interested in for a while too, as I've had to do a 
>> few of those lite.site.cfg fix-ups that you mention (in fact I have one 
>> sitting unreviewed at https://reviews.llvm.org/D40522 although I've not 
>> pinged it in a long time so I'll need to double check that it's still an 
>> issue).  There are also other issues.  For example 
>> LLVM_ENABLE_ABI_BREAKING_CHECKS is implemented in such a way that by default 
>> the value is defined at CMake time based on the value of 
>> LLVM_ENABLE_ASSERTIONS which gets confusing with the Visual Studio generator 
>> where the value of LLVM_ENABLE_ASSERTIONS does not necessarily correspond to 
>> whether assertions are enabled or not.
>> 
>> As I understand it, what you're proposing is to not support building for any 
>> configs that return true for GENERATOR_IS_MULTI_CONFIG.  This includes all 
>> of the Visual Studio generators, but also the Xcode generator.  I'm not an 
>> Xcode user. Does anyone make use of that generator or is it entirely 
>> replaced in practice by single-config generators, i.e. Ninja?
> I haven't heard of anyone using the Xcode generated project. 

I’ve been using the Xcode generated project on a daily basis for several years. 

> In fact, LLDB maintains its own hand-created Xcode project precisely because 
> the CMake one is considered "unusable". 

I don’t know where this “unusable” comment came from. My impression is that 
nobody really tried the generated Xcode project: LLDB had its own 
hand-maintained Xcode project for a long time, and the CMake build system came 
later. Workflows didn’t necessarily change when they could have. 

> That said, I don't personally use Xcode or a Mac, so I can't speak for if 
> anyone else might be using the Xcode generator.

There are certainly other users. The Swift Compiler’s build script explicitly 
supports setting up a usable Xcode project because we recommend it for a decent 
build/debut experience in the Mac. 

I am strongly against removing support for building within Xcode, because it is 
my primary development workflow and having a skeleton project + make would be a 
huge regression. 

  - Doug

>  
>> 
>> We're still using the Visual Studio generators in production at Sony at the 
>> moment.  This is largely because until recently they were actually faster 
>> than Ninja for us due to the availability of distributed builds on our 
>> network.  We've recently patched in support for our system into our private 
>> branch of Ninja now so in theory it should be faster/on-par again but we've 
>> not yet pulled the trigger on making them the default.  If there's consensus 
>> that this is the way forward, then we'll definitely need some time to make 
>> the change internally.  I'm only speaking personally in this reply as I'll 
>> need to discuss with the rest of the team before we can reach a position, 
>> but basically I wouldn't want the conclusion of this thread to be "No 
>> dissenting voices, so here's an immediate patch to remove support!"
> There's a patch up right now to add support for /MP.  
> https://reviews.llvm.org/D52193.  In theory this should also help unless you 
> have your own distributed build system.  I'm curious what was actually faster 
> though.  I've found hitting Ctrl+Shift+B from within Visual Studio to be much 
> slower, but it seems like a lot of that time is going to MSBuild resolving 
> dependencies and stuff.  Like it sometimes takes over 30 seconds before it 
> even starts doing *anything*.
>  
>> 
>> I've not tried the workflow you describe.  I'll try it out in the coming 
>> days to see how it works for me.  My main concerns are:
>> 
>> * How far will it raise the barrier of entry to new developers?  My 
>> impression is that a lot of students coming to LLVM for the first time, 
>> first build out of the box with Visual Studio before later discovering this 
>> magical thing called Ninja that will speed things up.  Potentially this 
>> could be mitigated with good enough documentation in the getting started 
>> guide I expect.
> There's a couple of ways we can mitigate this.  We can print a warning when 
> using the VS generator, and we can update the getting started guide.  But I'm 
> not sure it will raise the barrier of entry much, if at all.  Right now new 
> developers are struggling with building and running even with VS.  Every 
> couple of weeks there's posts about how the test suite wouldn't run, or 
> something is running out of heap space, or they forgot to use -Thost=x64.  
>  
>> 
>> * LLVM's CMake is super-slow on Windows, and we'd need to run it twice 
>> whenever there are project changes.  This could be a significant drawback in 
>> the proposed workflow but I'll need to try it before I can say that for sure.
> I mentioned this in my response to Aaron, but just to re-iterate here, you 
> only ever need to run CMake on the VS project if you actually want to edit a 
> file that has been added, which is pretty rare.  I have gone several months 
> without re-generating and it works fine.  This is actually a big improvement 
> over the VS-generator-only workflow.  FWIW, my experience is that the Ninja 
> generator is at least twice as fast as the CMake generator.
>  
> _______________________________________________
> LLVM Developers mailing list
> llvm-...@lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to