[cfe-dev] [RFC] Add include-what-you-use tool to clang-tools-extra
Volodymyr Sapsai via cfe-dev
cfe-dev at lists.llvm.org
Mon Sep 4 18:20:13 PDT 2017
As another include-what-you-use maintainer I support the proposal. I am
doing so solely in my personal capacity and am not representing any third
parties.
Regards,
Volodymyr
On Mon, Sep 4, 2017 at 13:41 Kim Gräsman via cfe-dev <cfe-dev at lists.llvm.org>
wrote:
> Hi all,
>
> This is a proposal to integrate include-what-you-use [1] into
> clang-tools-extra.
>
> # Background
> The include-what-you-use tool analyzes #includes in C and C++ files and
> recommends how to improve them. The goal is to capture symbol dependencies
> in
> code and produce the minimal set of #includes to satisfy these symbol
> dependencies. For more information you can check the project site [2],
> docs, and
> presentation from 2010 LLVM Developers' Meeting [3].
>
> # Benefits
> Migration to clang-tools-extra doesn't come without a cost, so I want to
> list
> some of the benefits this move yields.
>
> ## For Clang community
> * Ability to reuse some of IWYU analysis for other purposes. Currently
> IWYU is
> distributed as a CLI tool and has no API but it is possible to split out
> a
> separate library. I think there could be some integration potential with
> the
> budding refactoring tools, for example.
> * More community input in deciding further IWYU direction to help it to be
> more
> useful for various parties.
>
> ## For include-what-you-use users
> * Easier distribution and use. For users already using other Clang tools it
> should be easier to use IWYU as any other Clang tool. I also expect it
> to make
> life easier for people packaging include-what-you-use for various *nix
> distributions.
> * Moving the tool towards consistency with other Clang tools.
>
> ## For include-what-you-use project
> * Exposure to more users.
> * Easier release process. Instead of releasing IWYU separately, it could be
> bundled with LLVM+Clang releases. It shouldn't incur more work for
> LLVM+Clang
> releases as the main complexity comes from tracking different branches
> and
> building binaries for different platforms.
> * More resiliency as the project becomes more community-owned instead of
> personally-owned.
>
> # Potential downsides
> When new Clang sub-projects are proposed, one of the most common concerns
> is the
> maintenance burden. Dumping the code and walking away to let the community
> support the code is unacceptable. The longevity of the project demonstrates
> commitment to maintaining the project. The history on GitHub shows that
> include-what-you-use is not a passing fancy that will be discarded and
> forgotten
> in a week or two.
>
> What is your opinion, is there value in having include-what-you-use in
> clang-tools-extra?
>
> Thanks for any input,
> - Kim
>
> [1] https://github.com/include-what-you-use/include-what-you-use
> [2] https://include-what-you-use.org/
> [3] http://llvm.org/devmtg/2010-11/
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170905/da042ffb/attachment.html>
More information about the cfe-dev
mailing list