[cfe-dev] RFC: Adding index-while-building support to Clang

Ilya Biryukov via cfe-dev cfe-dev at lists.llvm.org
Tue Aug 29 01:55:14 PDT 2017


Thanks for the design.

1. You briefly mention an in-memory mapping on top the index to support
efficient lookup of index records.
Is it part of the available implementation? Do you think it would make
sense to reuse it in other tools?

I'm asking because that seems like something most editors and IDEs are also
interested in. Proper reuse of this implementation could prove useful.

2.  In clangd, we're not controlling the build step, instead building ASTs
in-memory. We would rather store the indexing information in-memory or
consume it on the go while building ASTs.
Do you have suggestions on which parts of the API we should look at?
We could implement our own IndexASTConsumer, but are there more
opportunities for reusing other parts of your implementation? Code for
collecting indexing dependencies, definitions of high-level record
structures (i.e. symbol definitions, etc.)?

On Tue, Aug 29, 2017 at 9:34 AM, Manuel Klimek <klimek at google.com> wrote:

> Hi, thanks for the details design, I'm really looking forward for having
> this :)
> On a high level, I think this all makes lots of sense.
> I have one question about how things get deleted: will record files for
> headers be deleted at some point, or will they be kept around, and you have
> to look at all unit files to see whether a given record file is still valid?
> Cheers,
> /Manuel
> On Tue, Aug 29, 2017 at 2:18 AM Nathan Hawes <nhawes at apple.com> wrote:
>> Hey everyone,
>> Xcode 9 shipped with index-while-building functionality based on
>> enhancements to Clang that we’d like to upstream. Key among them is a new
>> option, -index-store-path, that in addition to Clang's usual outputs,
>> causes it to write out indexing data at the supplied path with minimal
>> overhead.
>> While the current implementation is available at
>> https://github.com/apple/swift-clang, we’d like to start by getting
>> feedback on the high-level design, which you can read about here:
>> https://docs.google.com/document/d/1cH2sTpgSnJZCkZtJl1aY-
>> rzy4uGPcrI-6RrUpdATO2Q/edit?usp=sharing
>> Please let us know of any concerns, comments or questions you have
>> regarding this feature.
>> Thanks!
>> Nathan

Ilya Biryukov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170829/62c1433e/attachment.html>

More information about the cfe-dev mailing list