Files
swift-mirror/utils/availability-macros.def
Artem Chikin 1f14158a1d Introduce VisionOS Platform
This change introduces a new compilation target platform to the Swift compiler - visionOS.

- Changes to the compiler build infrastrucuture to support building compiler-adjacent artifacts and test suites for the new target.
- Addition of the new platform kind definition.
- Support for the new platform in language constructs such as compile-time availability annotations or runtime OS version queries.
- Utilities to read out Darwin platform SDK info containing platform mapping data.
- Utilities to support re-mapping availability annotations from iOS to visionOS (e.g. 'updateIntroducedPlatformForFallback', 'updateDeprecatedPlatformForFallback', 'updateObsoletedPlatformForFallback').
- Additional tests exercising platform-specific availability handling and availability re-mapping fallback code-path.
- Changes to existing test suite to accomodate the new platform.
2024-04-10 09:38:02 -07:00

45 lines
2.1 KiB
Modula-2

# This file defines availability macros mapping Swift releases to ABI stable
# OS releases that include the corresponding Swift Standard Library version.
#
# The macros defined here are available for use in all Swift libraries and swift
# lit tests defined in this repository. They can be used in place of a full
# version constraint list in `@available` attributes. That is to say, instead of
#
# @available(macOS 10.15.4, iOS 13.4, watchOS 6.2, tvOS 13.4, *)
#
# we can write
#
# @available(SwiftStdlib 5.2, *)
#
# Comments in this file start with `#`. Comments and empty lines are ignored.
# Each of the remaining lines must define an availability macro in the same
# format used by the `-define-availability` frontend command line option.
# 9999 is the generic unknown future Swift release. It always needs to resolve
# to the special placeholder version numbers 9999.
SwiftStdlib 9999:macOS 9999, iOS 9999, watchOS 9999, tvOS 9999
# The last entry in this list corresponds to the Swift version currently under
# development. This usually resolves to placeholder version numbers (9999) until
# the corresponding operating systems get announced.
SwiftStdlib 5.0:macOS 10.14.4, iOS 12.2, watchOS 5.2, tvOS 12.2
SwiftStdlib 5.1:macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0
SwiftStdlib 5.2:macOS 10.15.4, iOS 13.4, watchOS 6.2, tvOS 13.4
SwiftStdlib 5.3:macOS 11.0, iOS 14.0, watchOS 7.0, tvOS 14.0
SwiftStdlib 5.4:macOS 11.3, iOS 14.5, watchOS 7.4, tvOS 14.5
SwiftStdlib 5.5:macOS 12.0, iOS 15.0, watchOS 8.0, tvOS 15.0
SwiftStdlib 5.6:macOS 12.3, iOS 15.4, watchOS 8.5, tvOS 15.4
SwiftStdlib 5.7:macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0
SwiftStdlib 5.8:macOS 13.3, iOS 16.4, watchOS 9.4, tvOS 16.4
SwiftStdlib 5.9:macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0
SwiftStdlib 5.10:macOS 14.4, iOS 17.4, watchOS 10.4, tvOS 17.4, visionOS 1.1
SwiftStdlib 6.0:macOS 9999, iOS 9999, watchOS 9999, tvOS 9999, visionOS 9999
# TODO: Also update ASTContext::getSwift510Availability when needed
# TODO: Also update ASTContext::getSwift60Availability when needed
# Local Variables:
# mode: conf-unix
# End: