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

Manuel Klimek via cfe-dev cfe-dev at lists.llvm.org
Tue Aug 29 07:35:31 PDT 2017


On Tue, Aug 29, 2017 at 10:55 AM Ilya Biryukov <ibiryukov at google.com> wrote:

> Hi,
>
> 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.)?
>

Btw, I'd assume in clangd we'll want both: indexing as part of the build,
and updated (possibly overlayed) indexing as part of the AST reparsing.


>
>
> 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
>>>
>>
>
>
> --
> Regards,
> Ilya Biryukov
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170829/32614c61/attachment.html>


More information about the cfe-dev mailing list