[cfe-dev] Integrating clang-based refactoring tools into IDEs - best practices?
kfunk at kde.org
Mon Jun 1 06:54:55 PDT 2015
On Saturday 30 May 2015 14:43:44 Milian Wolff wrote:
> Hello all,
> for KDevelop, we have a GSOC student this summer doing a R&D project on how
> we could leverage libTooling and friends to create refactoring tools for
> C++ code. I'm pretty sure that this is the correct way in the long run, but
> I have some trouble with the lack of API and ABI stability in the C++
> libraries of LLVM, most notably libTooling here.
I just talked to a few people in #llvm and it appears that library ABI from
x.y.0 is supposed to be same for x.y.1 and onwards. So there seems to be a ABI
stability guarantee for patch releases. (Can someone from LLVM/Clang devs
confirm this? Tom Stellard told me it's indeed "official")
This combined with the fact that distros usually co-install LLVM/Clang minor
releases (3.5, 3.6, ...) should avoid us running in ABI issues, no?
I'd really appreciate if we could just use the libTooling API and share parsed
data (somehow...) and avoid the multi-process approach altogether. Maybe
that's indeed the better approach for our R&D project -- just use the API
directly, don't add a wrapper (yet).
PS: Sorry I didn't step in earlier on the KDevelop mailing list, but I'm
buried in "real" work at the moment
> I was thinking about a separate process that works only against a very
> specific LLVM version. Thus, if distributors update LLVM, and the stuff does
> not compile anymore, we only loose the refactoring but not the whole
> language support (based on clang-c).
> With this approach though, the cached parse data cannot be shared between
> language support and refactoring...
> How do other IDEs handle this situation? Is there maybe an external
> libTooling-c shim or similar that we could leverage?
Kevin Funk | kfunk at kde.org | http://kfunk.org
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 181 bytes
Desc: This is a digitally signed message part.
More information about the cfe-dev