Skip to content

How do we mark things as unstable? #191

Open
@danakj

Description

@danakj

We want to stabilize numerics, which come with Option. But not stabilize iterators and tuples yet which are found in the Option API.

We need to mark those methods as unstable somehow so they won't be used by accident?

  • [[deprecated]]?
  • A marker unstable_fn type?
  • [[clang::annotate]]?

We also want to mark concepts (e.g. NeverValueField) or types (e.g. Iterator) as unstable.

[[clang::annotate("sus::unstable")]] seems like the most clear choice except it wouldn't do anything. We'd need to just say you can't use them, and we can write a clang-tidy pass that errors on their use?

The use of a clang-only attribute is unfortunate. Not sure how to address this in a cross-compiler way. This would be enough for some projects like Chromium.

Metadata

Metadata

Assignees

No one assigned

    Labels

    designDesign of the library systems as a whole, such as concepts

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions