[cfe-dev] Python bindings overhaul
Gregory Szorc
gregory.szorc at gmail.com
Thu Feb 2 14:17:44 PST 2012
On 2/2/12 12:43 AM, Tobias Grosser wrote:
> On 02/02/2012 08:57 AM, Tobias Grosser wrote:
>> On 02/02/2012 01:00 AM, Eric Christopher wrote:
>>> Hi Gregory!
>>>
>>> On Jan 27, 2012, at 2:41 PM, Gregory Szorc wrote:
>>>
>>>> Major changes:
>>>>
>>>> * Enumerations split out into clang.cindex.enumerations module
>>>> * Objects hold references to parent (i.e. worry-free memory management)
>>>> * Support for Token API
>>>> * More APIs supported around the board. Pretty much everything from
>>>> libclang is supported except the high-level Indexing component.
>>>>
>>>> Other improvements:
>>>>
>>>> * Python style improvements. pylint and pyflakes output is now
>>>> tolerable and the code mostly follows Python best practices.
>>>> * Improved documentation
>>>> * Increased test coverage
>>>> * Added test to ensure enumerations are up-to-date with Index.h (uses
>>>> Tokens API)
>>>> * Introduced decorator to cache/lazy load properties. This should cut
>>>> down on C function calls.
>>>
>>> This all sounds awesome. How about we start small here though? You've
>>> mentioned that you have a bunch of cleanups for eye sores, doxygen
>>> comments, etc that we could apply on our way to having the python
>>> bindings get feature parity with libclang. Let's get some of those reviewed
>>> separately and then tackle the larger tasks as we go?
>>>
>>> Thanks again for all of this work, I haven't had time to look at your
>>> github repository but hope to soon!
>>
>> Hi Gregory,
>>
>> just to give you some first feedback right now. I skimmed trough the git
>> repository and I like the overall direction of the patches. They seem to
>> improve the python bindings a lot. Unfortunately I did not have time to
>> look into the exact details.
>>
>> One comment:
>>
>> I think the patch is very large. This is good to show the overall
>> direction. However, to commit and review these changes I would very much
>> appreciate smaller patches. As I have seen in your git repository, you
>> have all this already divided in small patches. Most of them seem to be
>> easy to review.
>>
>> I will give it another look (either today or tomorrow). I will also try
>> your changes with clang_complete.
>
> I just did this. For me they were a drop in replacement. Everything
> continues to work as expected. The completion time did not change.
> clang_complete does not seem to be affected by these changes, but may
> obviously later take advantage of the new features.
Glad to hear it! Code complete doesn't have good test coverage, so I was
a bit worried about that one.
I'll start sending some smaller patches that incrementally add libclang
features. I think we can get a long way through the commits in my branch
before we start hitting some larger, more controversial changes.
Gregory
More information about the cfe-dev
mailing list