Skip to content

Commit 37771a7

Browse files
authored
Merge pull request #1405 from swiftlang/automerge/merge-main-2025-07-07_09-01
Merge `main` into `release/6.2`
2 parents 961bd28 + 1d5d709 commit 37771a7

File tree

110 files changed

+3802
-3595
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+3802
-3595
lines changed

Benchmarks/Benchmarks/Formatting/BenchmarkFormatting.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import Dispatch
1616

1717
#if os(macOS) && USE_PACKAGE
1818
import FoundationEssentials
19+
import FoundationInternationalization
1920
#else
2021
import Foundation
2122
#endif

Benchmarks/Benchmarks/Internationalization/BenchmarkCalendar.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ import FoundationInternationalization
2020
import Foundation
2121
#endif
2222

23-
let benchmarks = {
23+
func calendarBenchmarks() {
24+
2425
Benchmark.defaultConfiguration.maxIterations = 1_000
2526
Benchmark.defaultConfiguration.maxDuration = .seconds(3)
2627
Benchmark.defaultConfiguration.scalingFactor = .kilo
@@ -229,3 +230,4 @@ let benchmarks = {
229230
}
230231
}
231232
}
233+

Benchmarks/Benchmarks/Internationalization/BenchmarkLocale.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import FoundationInternationalization
2020
import Foundation
2121
#endif
2222

23-
let benchmarks = {
23+
func localeBenchmarks() {
2424
Benchmark.defaultConfiguration.maxIterations = 1_000
2525
Benchmark.defaultConfiguration.maxDuration = .seconds(3)
2626
Benchmark.defaultConfiguration.scalingFactor = .kilo
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import Benchmark
2+
3+
let benchmarks = {
4+
calendarBenchmarks()
5+
localeBenchmarks()
6+
}

Benchmarks/Benchmarks/String/BenchmarkString.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import FoundationEssentials
1919
import Foundation
2020
#endif
2121

22-
#if !os(macOS)
22+
#if !FOUNDATION_FRAMEWORK
2323
private func autoreleasepool<T>(_ block: () -> T) -> T { block() }
2424
#endif
2525

@@ -157,7 +157,7 @@ let benchmarks = {
157157
let str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
158158

159159
Benchmark("read-utf8") { benchmark in
160-
let rootURL = URL(fileURLWithPath: NSTemporaryDirectory(), isDirectory: true).appendingPathComponent(UUID().uuidString, isDirectory: true)
160+
let rootURL = URL.temporaryDirectory.appendingPathComponent(UUID().uuidString, isDirectory: true)
161161
#if compiler(>=6)
162162
let fileURL = rootURL.appending(path: "benchmark.txt", directoryHint: .notDirectory)
163163
#else
@@ -178,7 +178,7 @@ let benchmarks = {
178178
}
179179

180180
Benchmark("read-utf16") { benchmark in
181-
let rootURL = URL(fileURLWithPath: NSTemporaryDirectory(), isDirectory: true).appendingPathComponent(UUID().uuidString, isDirectory: true)
181+
let rootURL = URL.temporaryDirectory.appendingPathComponent(UUID().uuidString, isDirectory: true)
182182
#if compiler(>=6)
183183
let fileURL = rootURL.appending(path: "benchmark.txt", directoryHint: .notDirectory)
184184
#else

Benchmarks/Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ print("swift-foundation benchmarks: \(usePackage.description)")
5454
var packageDependency : [Package.Dependency] = [.package(url: "https://github.com/ordo-one/package-benchmark.git", from: "1.11.1")]
5555
var targetDependency : [Target.Dependency] = [.product(name: "Benchmark", package: "package-benchmark")]
5656
var i18nTargetDependencies : [Target.Dependency] = []
57-
var swiftSettings : [SwiftSetting] = []
57+
var swiftSettings : [SwiftSetting] = [.unsafeFlags(["-Rmodule-loading"]), .enableUpcomingFeature("MemberImportVisibility")]
5858

5959
switch usePackage {
6060
case .useLocalPackage(let root):

CMakeLists.txt

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,11 @@ list(APPEND CMAKE_MODULE_PATH ${SwiftFoundation_SOURCE_DIR}/cmake/modules)
9494

9595
# Availability Macros (only applies to FoundationEssentials and FoundationInternationalization)
9696
set(_SwiftFoundation_BaseAvailability "macOS 15, iOS 18, tvOS 18, watchOS 11")
97+
set(_SwiftFoundation_macOS26Availability "macOS 26, iOS 26, tvOS 26, watchOS 26")
9798
set(_SwiftFoundation_FutureAvailability "macOS 10000, iOS 10000, tvOS 10000, watchOS 10000")
9899

99100
# All versions to define for each availability name
100101
list(APPEND _SwiftFoundation_versions
101-
"0.1"
102-
"0.2"
103-
"0.3"
104-
"0.4"
105102
"6.0.2"
106103
"6.1"
107104
"6.2"
@@ -110,16 +107,12 @@ list(APPEND _SwiftFoundation_versions
110107
# Each availability name to define
111108
list(APPEND _SwiftFoundation_availability_names
112109
"FoundationPreview"
113-
"FoundationPredicate"
114-
"FoundationPredicateRegex"
115110
"FoundationSpan")
116111

117112
# The aligned availability for each name (in the same order)
118113
list(APPEND _SwiftFoundation_availability_releases
119114
${_SwiftFoundation_BaseAvailability}
120-
${_SwiftFoundation_BaseAvailability}
121-
${_SwiftFoundation_BaseAvailability}
122-
${_SwiftFoundation_FutureAvailability})
115+
${_SwiftFoundation_macOS26Availability})
123116

124117
foreach(version ${_SwiftFoundation_versions})
125118
foreach(name release IN ZIP_LISTS _SwiftFoundation_availability_names _SwiftFoundation_availability_releases)

Package.swift

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,16 @@ import CompilerPluginSupport
77
// Availability Macros
88

99
let availabilityTags: [_Availability] = [
10-
_Availability("FoundationPreview"), // Default FoundationPreview availability,
11-
_Availability("FoundationPredicate"), // Predicate relies on pack parameter runtime support
12-
_Availability("FoundationPredicateRegex"), // Predicate regexes rely on new stdlib APIs
13-
_Availability("FoundationSpan", availability: .future), // Availability of Span types
10+
_Availability("FoundationPreview"), // Default FoundationPreview availability
11+
_Availability("FoundationSpan", availability: .macOS26), // Availability of Span types
1412
]
15-
let versionNumbers = ["0.1", "0.2", "0.3", "0.4", "6.0.2", "6.1", "6.2"]
13+
let versionNumbers = ["6.0.2", "6.1", "6.2"]
1614

1715
// Availability Macro Utilities
1816

1917
enum _OSAvailability: String {
2018
case alwaysAvailable = "macOS 15, iOS 18, tvOS 18, watchOS 11" // This should match the package's deployment target
19+
case macOS26 = "macOS 26, iOS 26, tvOS 26, watchOS 26"
2120
// Use 10000 for future availability to avoid compiler magic around the 9999 version number but ensure it is greater than 9999
2221
case future = "macOS 10000, iOS 10000, tvOS 10000, watchOS 10000"
2322
}

0 commit comments

Comments
 (0)