GSOC 2015
Milian Wolff
mail at milianw.de
Thu May 28 23:07:39 UTC 2015
On Thursday 28 May 2015 20:23:26 Maciej Poleski wrote:
> Dnia czwartek, 28 maja 2015 15:54:57 piszesz:
> > Again, I'm missing again some context. kdev-clang will stick to clang-c,
> > the libTooling support must be handled somehow separately, e.g. in a
> > separate process/plugin/library, due to the ABI instability of
> > libTooling.
>
> What does it mean "ABI instability"?
> C++ does not specify ABI. ABI compatibility between modules in some
> libraries like Qt is something like "assisted" coincidence, result of
> thoroughly implemented changes from version to version of library which can
> free user from need of recompilation on every update of any dependency. But
> in general we cannot guarantee this.
>
> libTooling ABI is not stable (similarly to ABI of many other libraries), but
> Clang libraries are not DSO (shared libraries). These are in fact archives
> of object code. This code is (statically) linked into binary by the time of
> compilation. Even update of Clang shouldn't break already built code.
>
> That's why i don't understand why "libTooling must be handled separately...
> due to the ABI instability". Can You elaborate more on this?
Ah, so libTooling can only be linked statically? Interesting! No ABI issues
arise then. I was expecting the libraries to be installed as shared libs, but
indeed that is not the case.
Anyhow, the API is unstable, i.e. source-incompatible changes may be done, and
thus we cannot safely use it without hooking ourselves to a certain clang
version, which is cumbersome - we want to support multiple distros with
varying clang versions.
So overall, we go back to the initial idea - move tooling into a (collection
of) executables and call them from kdev-clang as required. If no executables
could be build (due to source incompatibilities), then the refactoring actions
are disabled.
Sounds good?
Bye
--
Milian Wolff
mail at milianw.de
http://milianw.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20150529/d62b7322/attachment.sig>
More information about the KDevelop-devel
mailing list