Stella Laurenzo via llvm-dev
2021-Oct-08 02:22 UTC
[llvm-dev] Proposal: introduce dependency on abseil when building benchmarks
Perhaps an unpopular opinion, but I don't see the value proposition in foundation things like benchmark taking such convenience dependencies. Abseil is not a lightweight dependency, either from the code or the build system perspective, and it will limit portability (such a thing is hard to prove, but I can speak from experience, being a downstream that has taken the time to scalpel Abseil out in order to achieve better compatibility and footprint). In my experience, there are typically a small handful of things that actually boost such a project (usually related to strings and collections). For foundation components, I would far rather see such things forked in if needed vs adding a hard dependency. Even better if components like abseil were unobtrusive in keeping things separated for this form of sharing. My project will most likely fork benchmark or switch to something lighter if it goes down this path. LLVM can of course take its own path but I generally consider forking when I see foundation components start down the path of losing control of their dependencies. On Thu, Oct 7, 2021, 6:57 PM Matthias Braun via llvm-dev < llvm-dev at lists.llvm.org> wrote:> > > > On Sep 30, 2021, at 10:07 AM, Mircea Trofin via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > > > TL;DR; When either of LLVM_BUILD_BENCHMARKS or LIBCXX_INCLUDE_BENCHMARKS > are enabled, as well as for llvm-test-suite, a dependency to abseil would > either be auto-downloaded by the build system, or need to be > user-specifiable, or provided in the source tree. > > FWIW: I'm not a fan of auto-downloading stuff. That's just a sneaky to add > a dependency that sure may not give trouble to the users where the > auto-download succeeds. But many companies have their build farms isolated > from the internet and security people would not be happy if we just > download a blob of code from a separate project that can change somewhat > unnoticed by users of LLVM. > > Can't we copy the thing into the LLVM repository (aka vendoring) like we > copied the benchmark library? I feel that things become a different story > when we actually add dependencies... > > - Matthias > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20211007/c78b1c70/attachment.html>
Mircea Trofin via llvm-dev
2021-Oct-08 02:32 UTC
[llvm-dev] Proposal: introduce dependency on abseil when building benchmarks
This is valuable feedback, and I think it would help if you could please post it in on the thread on the benchmark project side (i.e. https://github.com/google/benchmark/pull/1183), since it would help the decision making process there - thanks! On Thu, Oct 7, 2021 at 7:22 PM Stella Laurenzo <stellaraccident at gmail.com> wrote:> Perhaps an unpopular opinion, but I don't see the value proposition in > foundation things like benchmark taking such convenience dependencies. > Abseil is not a lightweight dependency, either from the code or the build > system perspective, and it will limit portability (such a thing is hard to > prove, but I can speak from experience, being a downstream that has taken > the time to scalpel Abseil out in order to achieve better compatibility and > footprint). > > In my experience, there are typically a small handful of things that > actually boost such a project (usually related to strings and collections). > For foundation components, I would far rather see such things forked in if > needed vs adding a hard dependency. Even better if components like abseil > were unobtrusive in keeping things separated for this form of sharing. > > My project will most likely fork benchmark or switch to something lighter > if it goes down this path. LLVM can of course take its own path but I > generally consider forking when I see foundation components start down the > path of losing control of their dependencies. > > > > On Thu, Oct 7, 2021, 6:57 PM Matthias Braun via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> >> >> > On Sep 30, 2021, at 10:07 AM, Mircea Trofin via llvm-dev < >> llvm-dev at lists.llvm.org> wrote: >> > >> > TL;DR; When either of LLVM_BUILD_BENCHMARKS or >> LIBCXX_INCLUDE_BENCHMARKS are enabled, as well as for llvm-test-suite, a >> dependency to abseil would either be auto-downloaded by the build system, >> or need to be user-specifiable, or provided in the source tree. >> >> FWIW: I'm not a fan of auto-downloading stuff. That's just a sneaky to >> add a dependency that sure may not give trouble to the users where the >> auto-download succeeds. But many companies have their build farms isolated >> from the internet and security people would not be happy if we just >> download a blob of code from a separate project that can change somewhat >> unnoticed by users of LLVM. >> >> Can't we copy the thing into the LLVM repository (aka vendoring) like we >> copied the benchmark library? I feel that things become a different story >> when we actually add dependencies... >> >> - Matthias >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20211007/19f35dba/attachment.html>