Romain Geissler <romain.geiss...@gmail.com> writes:

> Using structs with some sets of function pointers may break compatibility
> between minor release.

Yes, but fortunately we have a good understanding of how not to do that.

We could also go the even safer route used for linker plugins, in which
the plugin is invoked with a list of functions, where each function is
tagged with a code.  See include/plugin-api.h for the interface and
lto-plugin for an implementation.  The approach there is very clean and
permits forward and backward binary compatibility.  I don't know if we
want to go that far for compiler plugins.


> Anyway, you're suggestion to group functions in common names, that's just
> C++ motto. May the eventual plugin API in C++ (independently from internals
> being C++ or not) ?

I think we have a clear understanding of how to maintain compatibility
across releases in C.  I do not think we have that understanding in C++.

Ian

Reply via email to