Skip to content

Commit dd098a2

Browse files
committed
Merge remote-tracking branch 'origin/main' into release/5.10
2 parents 37a89d9 + a805a37 commit dd098a2

File tree

48 files changed

+236
-96
lines changed

Some content is hidden

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

48 files changed

+236
-96
lines changed

CHANGELOG.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@ Note: This is in reverse chronological order, so newer entries are added to the
33
Swift Next
44
-----------
55

6-
* [#5728]
7-
8-
In packages that specify resources using a future tools version, the generated resource bundle accessor will import `Foundation.Bundle` for its own implementation only. _Clients_ of such packages therefore no longer silently import `Foundation`, preventing inadvertent use of Foundation extensions to standard library APIs, which helps to avoid unexpected code size increases.
9-
106
* [#7010]
117

128
On macOS, `swift build` and `swift run` now produce binaries that allow backtraces in debug builds. Pass `SWIFT_BACKTRACE=enable=yes` environment variable to enable backtraces on such binaries when running them.

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ if(CMAKE_VERSION VERSION_LESS 3.16)
1919
set(CMAKE_LINK_LIBRARY_FLAG "-l")
2020
endif()
2121

22+
add_compile_options(-DUSE_IMPL_ONLY_IMPORTS)
23+
2224
set(CMAKE_Swift_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/swift)
2325

2426
if(CMAKE_VERSION VERSION_LESS 3.16 AND CMAKE_SYSTEM_NAME STREQUAL Windows)

Package.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ let package = Package(
128128
name: "PackageDescription",
129129
exclude: ["CMakeLists.txt"],
130130
swiftSettings: [
131+
.define("USE_IMPL_ONLY_IMPORTS"),
131132
.unsafeFlags(["-package-description-version", "999.0"]),
132133
.unsafeFlags(["-enable-library-evolution"]),
133134
],

Sources/Basics/SQLite.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@
1212

1313
import Foundation
1414

15+
#if USE_IMPL_ONLY_IMPORTS
1516
@_implementationOnly import SPMSQLite3
17+
#else
18+
import SPMSQLite3
19+
#endif
1620

1721
/// A minimal SQLite wrapper.
1822
public final class SQLite {

Sources/Basics/SwiftVersion.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13+
#if USE_IMPL_ONLY_IMPORTS
1314
@_implementationOnly import TSCclibc
15+
#else
16+
import TSCclibc
17+
#endif
1418

1519
public struct SwiftVersion {
1620
/// The version number.

Sources/Build/BuildDescription/ProductBuildDescription.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,17 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
import Basics
14-
@_implementationOnly import DriverSupport
1514
import PackageGraph
1615
import PackageModel
1716
import OrderedCollections
1817
import SPMBuildCore
1918

19+
#if USE_IMPL_ONLY_IMPORTS
20+
@_implementationOnly import DriverSupport
21+
#else
22+
import DriverSupport
23+
#endif
24+
2025
import struct TSCBasic.SortedArray
2126

2227
/// The build description for a product.

Sources/Build/BuildDescription/SwiftTargetBuildDescription.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,12 @@ import PackageGraph
1616
import PackageLoading
1717
import PackageModel
1818
import SPMBuildCore
19+
20+
#if USE_IMPL_ONLY_IMPORTS
1921
@_implementationOnly import DriverSupport
22+
#else
23+
import DriverSupport
24+
#endif
2025

2126
import struct TSCBasic.ByteString
2227

@@ -373,7 +378,7 @@ public final class SwiftTargetBuildDescription {
373378

374379
let content =
375380
"""
376-
\(self.toolsVersion < .vNext ? "import" : "@_implementationOnly import") Foundation
381+
import Foundation
377382
378383
extension Foundation.Bundle {
379384
static let module: Bundle = {

Sources/Build/BuildManifest/LLBuildManifestBuilder+Swift.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13-
@_implementationOnly import class DriverSupport.SPMSwiftDriverExecutor
14-
@_implementationOnly import SwiftDriver
1513
import struct Basics.InternalError
1614
import struct Basics.AbsolutePath
1715
import struct Basics.RelativePath
@@ -24,6 +22,14 @@ import protocol TSCBasic.FileSystem
2422
import enum TSCBasic.ProcessEnv
2523
import func TSCBasic.topologicalSort
2624

25+
#if USE_IMPL_ONLY_IMPORTS
26+
@_implementationOnly import class DriverSupport.SPMSwiftDriverExecutor
27+
@_implementationOnly import SwiftDriver
28+
#else
29+
import class DriverSupport.SPMSwiftDriverExecutor
30+
import SwiftDriver
31+
#endif
32+
2733
import PackageModel
2834

2935
extension LLBuildManifestBuilder {

Sources/Build/BuildManifest/LLBuildManifestBuilder.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,18 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
import Basics
14-
@_implementationOnly import DriverSupport
1514
import LLBuildManifest
1615
import PackageGraph
1716
import PackageModel
1817
import SPMBuildCore
18+
19+
#if USE_IMPL_ONLY_IMPORTS
20+
@_implementationOnly import DriverSupport
1921
@_implementationOnly import SwiftDriver
22+
#else
23+
import DriverSupport
24+
import SwiftDriver
25+
#endif
2026

2127
import struct TSCBasic.ByteString
2228
import enum TSCBasic.ProcessEnv

Sources/Build/BuildOperation.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
import Basics
14-
@_implementationOnly import DriverSupport
1514
import LLBuildManifest
1615
import PackageGraph
1716
import PackageLoading
@@ -31,7 +30,13 @@ import class TSCUtility.MultiLineNinjaProgressAnimation
3130
import class TSCUtility.NinjaProgressAnimation
3231
import protocol TSCUtility.ProgressAnimationProtocol
3332

33+
#if USE_IMPL_ONLY_IMPORTS
34+
@_implementationOnly import DriverSupport
3435
@_implementationOnly import SwiftDriver
36+
#else
37+
import DriverSupport
38+
import SwiftDriver
39+
#endif
3540

3641
public final class BuildOperation: PackageStructureDelegate, SPMBuildCore.BuildSystem, BuildErrorAdviceProvider {
3742
/// The delegate used by the build system.

Sources/Build/BuildPlan/BuildPlan.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,12 @@ import PackageGraph
1818
import PackageLoading
1919
import PackageModel
2020
import SPMBuildCore
21+
22+
#if USE_IMPL_ONLY_IMPORTS
2123
@_implementationOnly import SwiftDriver
24+
#else
25+
import SwiftDriver
26+
#endif
2227

2328
import enum TSCBasic.ProcessEnv
2429

Sources/Commands/PackageTools/ArchiveSource.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ extension SwiftPackageTool {
6767
) throws {
6868
let gitRepositoryProvider = GitRepositoryProvider()
6969
if gitRepositoryProvider.repositoryExists(at: packageDirectory) &&
70-
gitRepositoryProvider.isValidDirectory(packageDirectory){
70+
(try? gitRepositoryProvider.isValidDirectory(packageDirectory)) == true {
7171
let repository = GitRepository(path: packageDirectory, cancellator: cancellator)
7272
try repository.archive(to: archivePath)
7373
} else {

Sources/Commands/Utilities/SymbolGraphExtract.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,16 @@
1212

1313
import ArgumentParser
1414
import Basics
15-
@_implementationOnly import DriverSupport
1615
import PackageGraph
1716
import PackageModel
1817
import SPMBuildCore
1918

19+
#if USE_IMPL_ONLY_IMPORTS
20+
@_implementationOnly import DriverSupport
21+
#else
22+
import DriverSupport
23+
#endif
24+
2025
import class TSCBasic.Process
2126

2227
/// A wrapper for swift-symbolgraph-extract tool.

Sources/CoreCommands/SwiftTool.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import ArgumentParser
1414
import Basics
1515
import Dispatch
16-
@_implementationOnly import DriverSupport
1716
import class Foundation.NSLock
1817
import class Foundation.ProcessInfo
1918
import PackageGraph
@@ -22,6 +21,12 @@ import PackageModel
2221
import SPMBuildCore
2322
import Workspace
2423

24+
#if USE_IMPL_ONLY_IMPORTS
25+
@_implementationOnly import DriverSupport
26+
#else
27+
import DriverSupport
28+
#endif
29+
2530
#if canImport(WinSDK)
2631
import WinSDK
2732
#elseif canImport(Darwin)

Sources/PackageCollectionsSigning/CertificatePolicy.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,14 @@ import Dispatch
1414
import Foundation
1515

1616
import Basics
17+
18+
#if USE_IMPL_ONLY_IMPORTS
1719
@_implementationOnly import SwiftASN1
1820
@_implementationOnly import X509
21+
#else
22+
import SwiftASN1
23+
import X509
24+
#endif
1925

2026
public enum CertificatePolicyKey: Hashable, CustomStringConvertible {
2127
case `default`(subjectUserID: String? = nil, subjectOrganizationalUnit: String? = nil)

Sources/PackageCollectionsSigning/PackageCollectionSigning.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,21 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13-
@_implementationOnly import _CryptoExtras
13+
1414
import Basics
15-
@_implementationOnly import Crypto
1615
import Dispatch
1716
import Foundation
1817
import PackageCollectionsModel
18+
19+
#if USE_IMPL_ONLY_IMPORTS
20+
@_implementationOnly import _CryptoExtras
21+
@_implementationOnly import Crypto
1922
@_implementationOnly import X509
23+
#else
24+
import _CryptoExtras
25+
import Crypto
26+
import X509
27+
#endif
2028

2129
public protocol PackageCollectionSigner {
2230
/// Signs package collection using the given certificate and key.

Sources/PackageCollectionsSigning/Signature.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,15 @@
2525

2626
import Foundation
2727

28+
#if USE_IMPL_ONLY_IMPORTS
2829
@_implementationOnly import _CryptoExtras
2930
@_implementationOnly import Crypto
3031
@_implementationOnly import X509
32+
#else
33+
import _CryptoExtras
34+
import Crypto
35+
import X509
36+
#endif
3137

3238
// The logic in this source file loosely follows https://www.rfc-editor.org/rfc/rfc7515.html
3339
// for JSON Web Signature (JWS).

Sources/PackageCollectionsSigning/X509Extensions.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,13 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13+
#if USE_IMPL_ONLY_IMPORTS
1314
@_implementationOnly import SwiftASN1
1415
@_implementationOnly import X509
16+
#else
17+
import SwiftASN1
18+
import X509
19+
#endif
1520

1621
extension Certificate {
1722
func hasExtension(oid: ASN1ObjectIdentifier) -> Bool {

Sources/PackageDescription/PackageDescriptionSerialization.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13+
#if USE_IMPL_ONLY_IMPORTS
1314
@_implementationOnly import Foundation
15+
#else
16+
import Foundation
17+
#endif
1418

1519
enum Serialization {
1620
// MARK: - build settings serialization

Sources/PackageLoading/ContextModel.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13+
#if USE_IMPL_ONLY_IMPORTS
1314
@_implementationOnly import Foundation
15+
#else
16+
import Foundation
17+
#endif
1418

1519
struct ContextModel {
1620
let packageDirectory : String

Sources/PackageLoading/ManifestJSONParser.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13-
@_implementationOnly import Foundation
13+
import Foundation
1414
import PackageModel
1515

1616
import struct Basics.AbsolutePath

0 commit comments

Comments
 (0)