[PATCH] D124153: [CMake] Change default CMAKE_BUILD_TYPE to Release

Aaron Ballman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 22 10:49:50 PDT 2022


aaron.ballman added a comment.

In D124153#3468050 <https://reviews.llvm.org/D124153#3468050>, @tstellar wrote:

> In D124153#3467965 <https://reviews.llvm.org/D124153#3467965>, @aaron.ballman wrote:
>
>> In D124153#3467906 <https://reviews.llvm.org/D124153#3467906>, @tstellar wrote:
>>
>>> The target audience for the default configuration should be people who are new to the project, it could be users or it could be developers.  It also could be people with very little experience programming or building from code from source.  We want to keep the barrier for entry as low as possible for this group of people.  We can have the best documentation or have verbose error messages to help guide them in the right direction, but the best way to communicate to new users about how to build the project is to have a sensible default configuration.
>>
>> I agree with almost every point, right up until "have a sensible default configuration"; I don't think it's possible to have a default configuration that is sensible to both users and developers. Well, I take that back. I think it *is* possible, but I think we would have to invest significant effort in improving the LLVM compilation performance issues so that you don't need a super computer to build the project. My understanding is *that* is what's most off-putting to new folks, whether they're users or developers, and that's somewhat (but not entirely) orthogonal to the default build mode.
>
> I don't see it as choosing between users and developers, I think new developers and new users approach the codebase in the same way.  Step 1: Build it.  Step 2: Figure out what I can do with it.  Step 1 is the same for both groups and that's why I think it's important to have the default configuration be the one that makes building the project the easiest.

Step 0 for a significant number of people is "be told by your boss to go fix/implement something in the project", so I'm not certain I agree that Step 1 is the same for both groups in practice. I think it's highly dependent on who is doing the downloading, and I don't think we'll be able to pick a default that's "right" without data as to who is downloading and why (which would be very difficult data to collect, I think). That's why I'm not seeing a strong enough motivation for this change -- we don't know what the impacts will be in practice, but we know there will be impacts.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D124153/new/

https://reviews.llvm.org/D124153



More information about the llvm-commits mailing list