[PATCH] D31342: Add ParsedAttrInfo::handleDeclAttribute

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 27 09:27:29 PST 2020


aaron.ballman added a reviewer: rsmith.
aaron.ballman added a subscriber: rsmith.
aaron.ballman added a comment.

Adding @rsmith for questions about stability guarantees.



================
Comment at: clang/docs/ClangPlugins.rst:74
+
+  class ExampleAttrInfo : public ParsedAttrInfo {
+  public:
----------------
john.brawn wrote:
> aaron.ballman wrote:
> > We should be documenting the fields of `ParsedAttrInfo` that the user would be interacting with. We should also consider whether we are introducing a new stability guarantee with that interface and document accordingly. I think we should not promise that this structure will be stable from release to release, but it will be stable within a given release (e.g., the type can change between Clang 11 -> Clang 12, but the type will not change between Clang 11 -> Clang 11.0.1).
> I'll add documentation of the relevant fields. As to API stability, looking at Tooling.rst it says only libclang has a stable API (or rather, it says libclang has a stable API, says libtooling doesn't, and says nothing about plugins).
We may want to bump this out into a larger discussion and it shouldn't impact the ability to move forward with this patch while we discuss.

I think that for practical purposes we should be guaranteeing ABI stability for plugins during a patch releases (10.0 -> 10.0.1) or otherwise patch releases become a major compiler upgrade as opposed to an incremental one. I thought that we had already promised such stability for things like the AST serialization format for similar reasons, but maybe I'm mis-remembering. @rsmith -- do you have thoughts?

To be clear about the situation I'm concerned with -- it would be a shame to have a working attribute plugin in Clang 10.0 that either fails to load or silently behaves differently in Clang 10.0.1 because we generally want developers to be able to move to the latest patch release without undue burden.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D31342/new/

https://reviews.llvm.org/D31342





More information about the cfe-commits mailing list