r207392 - libclang: split out the documentation comment API

Alp Toker alp at nuanti.com
Mon Apr 28 00:16:36 PDT 2014


On 28/04/2014 07:22, Dmitri Gribenko wrote:
> On Mon, Apr 28, 2014 at 3:39 AM, Alp Toker <alp at nuanti.com> wrote:
>> Author: alp
>> Date: Sun Apr 27 21:39:27 2014
>> New Revision: 207392
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=207392&view=rev
>> Log:
>> libclang: split out the documentation comment API
>>
>> It's possible that the "comment AST" may be replaced or split out in the
>> midterm, any anyway this makes the headers easier to read.
>>
>> Developers don't currently need to include "clang-c/Documentation.h" explicitly
>> and there's no macro to test for availability yet.
>>
>> The raw comment and brief comment accessors have been kept in Index.h though
>> brief support may also move here as a separate proposal.
>>
>> This is not a deprecation, just a gentle separation of concerns as we look to
>> simplify the built-in representation of comment nodes and support external
>> comment processors.
> Alp,
>
> If you would like to "simplify" built-in representation of comment
> nodes by replacing or splitting out a major part of implementation,
> please discuss this first.  You have never replied to my other email,
> where I said that it is unclear to me what your goals are, and without
> understanding the goals it is impossible to review changes like that.

Sure, it'll be discussed.

The general approach for now is just to tidy the layering a little 
without changing functionality.

The next ideas are to avoid global Comment.h inclusion from ASTContext.h 
and fix the layering of RawComment and FullComment. It's also perhaps 
worth splitting out the comment dumper from ASTDumper given that 
comments aren't strictly part of the AST but rather a separate document 
that makes references in.

Some longer-term goals -- to improve -Wdocumentation performance (which 
has been discussed before), support code completion within comments and 
the checking of cross-references between translation units.

Most of all I'm certain that ~20,000 LoC can be reduced for what boils 
down to parsing a few comments and checking that param commands match 
the user's function parameters.

When the implementation starts to add HTML5 rules and JavaScript 
validators in libclang(!) while the basic one-liner comment parsing 
isn't yet dogfoodable due to performance issues it's worth taking a step 
back. Seriously, let's fix this.

Alp.

-- 
http://www.nuanti.com
the browser experts




More information about the cfe-commits mailing list