Re: [PATCH] c2xml

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Josh Triplett wrote:
> Josh Triplett wrote:
>> On Wed, 2007-06-27 at 14:51 +0100, Rob Taylor wrote:
>>> Here's something I've hacked up for my work on gobject-introspection
>>> [1]. It basically dumps the parse tree for a given file as simplistic
>>> xml, suitable for further transformation by something else (in my case,
>>> some python).
>>>
>>> I'd expect this to also be useful for code navigation in editors and c
>>> refactoring tools, but I've really only focused on my needs for c api
>>> description.
>>>
>>> There are 3 patches here. The first introduces a field in the symbol
>>> struct for the end position of the symbol. I've added this in my case
>>> for documentation generation, but again I think it'd be useful in other
>>> cases. The next introduces a sparse_keep_tokens, which parses a file,
>>> but doesn't free the tokens after parsing. The final one adds c2xml and
>>> the DTD for the xml format. It builds conditionally on whether libxml2
>>> is available.
>>>
>>> All feedback appreciated!
>> Wow.  Very nice.  I can already think of several other uses for this.
> [...]
>>       * Please consider including information from the context and
>>         address space attributes.
> 
> Actually, don't worry about that one; we can always add it later, and I'd love
> to see this get merged as soon as possible.

Yes, I was about to say I deliberately left this out as I don't need it
for my use case, but it shouldn't be difficult to add if the need arises
for it.

>>       * Rather than the current base-type and base-type-builtin
>>         mechanism, you might consider having designated IDs for the base
>>         types and using those in base-type.  You could even output the
>>         builtin types if you want.  I don't know if this makes things
>>         easier or harder for consumers of the output; what do you think?
> 
> On second thought, ignore this.  We can always change it later, but having a
> special syntax for the base types makes sense to me.  Anything that cares
> about types will need to understand the base types.

Agreed.

>>       * I don't know if sparse_keep_symbols seems like the right API.
>>         Sparse's approach to memory management (or lack thereof) bugs me
>>         a bit.  More importantly, though, it makes the hierarchy of
>>         functions sparse(), then __sparse(), then sparse_keep_symbols(),
>>         which seems strange.  I don't know a better solution offhand,
>>         though; don't worry too much about addressing this.
> 
> Ignore this too.  The API you propose will work fine for now, and I don't want
> to hold up merging the patch on trying to think of the perfect API for
> something not directly related to the point of your patch.

Heh, yeah, sorting out memory management is quite a scary prospect :) I
think we'd basically need to go for some sort of reference counting
scheme, but that'd need some very careful work to deal with potential
cycles.

>> Thanks again for this work; it looks great, and highly useful.

Thanks!

Rob
Rob

-
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux