Implement runtime availability checking #661
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add macro for runtime availability checking, with static assertions against the deployment target that allows eliding the runtime checks when unnecessary.
Part of #266.
Usage:
Runtime lookup implementation tested on:
aarch64-apple-darwin
aarch64-apple-ios-macabi
x86_64-apple-ios-macabi
aarch64-apple-ios-sim
x86_64-apple-darwin
i686-apple-darwin
x86_64-apple-ios
armv7-apple-ios
TODO:
sysctl
.os_version!(macos = 15.0, ..)
version!(macos = 15.0, ..)
os_available!(macos = 15.0, ..)
available!(macos(15.0), ..)
available!(macos 15.0, ..)
available!(macOS = 15.0, ..)
available!(macos = 15.0, *)
available!(macos = 15.0, _)
Use macro in examples.No current examples where it makes sense.available!(macos = 15.0)
on e.g. iOS is desirable, or if we just want to returnfalse
here?