[llvm-dev] Proposal: introduce dependency on abseil when building benchmarks

Mircea Trofin via llvm-dev llvm-dev at lists.llvm.org
Thu Oct 7 19:32:54 PDT 2021

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>

> 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>

More information about the llvm-dev mailing list