diff --git a/benchmark/single-source/CharacterRecognizer.swift b/benchmark/single-source/CharacterRecognizer.swift index 8662291cb9e..13017e2634f 100644 --- a/benchmark/single-source/CharacterRecognizer.swift +++ b/benchmark/single-source/CharacterRecognizer.swift @@ -13,7 +13,7 @@ import TestsUtils public var benchmarks: [BenchmarkInfo] { - guard #available(macOS 9999, iOS 9999, watchOS 9999, tvOS 9999, *) else { + guard #available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *) else { return [] } return [ @@ -82,7 +82,7 @@ let _asciiString = #""" """# let asciiString = String(repeating: _asciiString, count: 10) -@available(macOS 9999, iOS 9999, watchOS 9999, tvOS 9999, *) +@available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *) func run(string: String, n: Int) { var state = Unicode._CharacterRecognizer() var c = 0 diff --git a/benchmark/single-source/StringTests.swift b/benchmark/single-source/StringTests.swift index 9fa313c7320..bcc43a26337 100644 --- a/benchmark/single-source/StringTests.swift +++ b/benchmark/single-source/StringTests.swift @@ -14,36 +14,43 @@ import TestsUtils @_spi(_Unicode) import Swift -public let benchmarks = [ - BenchmarkInfo( - name: "StringEqualPointerComparison", - runFunction: run_StringEqualPointerComparison, - tags: [.validation, .api, .String]), - BenchmarkInfo( - name: "StringHasPrefixAscii", - runFunction: run_StringHasPrefixAscii, - tags: [.validation, .api, .String], - legacyFactor: 10), - BenchmarkInfo( - name: "StringHasPrefixUnicode", - runFunction: run_StringHasPrefixUnicode, - tags: [.validation, .api, .String], - legacyFactor: 1000), - BenchmarkInfo( - name: "StringHasSuffixAscii", - runFunction: run_StringHasSuffixAscii, - tags: [.validation, .api, .String], - legacyFactor: 10), - BenchmarkInfo( - name: "StringHasSuffixUnicode", - runFunction: run_StringHasSuffixUnicode, - tags: [.validation, .api, .String], - legacyFactor: 1000), - BenchmarkInfo( - name: "StringIterateWords", - runFunction: run_iterateWords, - tags: [.validation, .String]), -] +public var benchmarks: [BenchmarkInfo] { + var result = [ + BenchmarkInfo( + name: "StringEqualPointerComparison", + runFunction: run_StringEqualPointerComparison, + tags: [.validation, .api, .String]), + BenchmarkInfo( + name: "StringHasPrefixAscii", + runFunction: run_StringHasPrefixAscii, + tags: [.validation, .api, .String], + legacyFactor: 10), + BenchmarkInfo( + name: "StringHasPrefixUnicode", + runFunction: run_StringHasPrefixUnicode, + tags: [.validation, .api, .String], + legacyFactor: 1000), + BenchmarkInfo( + name: "StringHasSuffixAscii", + runFunction: run_StringHasSuffixAscii, + tags: [.validation, .api, .String], + legacyFactor: 10), + BenchmarkInfo( + name: "StringHasSuffixUnicode", + runFunction: run_StringHasSuffixUnicode, + tags: [.validation, .api, .String], + legacyFactor: 1000), + ] + + if #available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *) { + result.append( + BenchmarkInfo( + name: "StringIterateWords", + runFunction: run_iterateWords, + tags: [.validation, .String])) + } + return result +} // FIXME(string) public func run_StringHasPrefixAscii(_ n: Int) { @@ -1644,11 +1651,8 @@ architecture on Linux.

extension String { @inline(never) - @available(SwiftStdlib 5.9, *) + @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *) var _words: [Substring] { - guard #available(macOS 9999, iOS 9999, watchOS 9999, tvOS 9999, *) else { - fatalError("Can't run this benchmark") - } var result: [Substring] = [] var i = startIndex @@ -1666,6 +1670,7 @@ extension String { } } +@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *) public func run_iterateWords(_ n: Int) { for _ in 0 ..< n { blackHole(swiftOrgHTML._words)