You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
motivation: accurate CHANGELOG.md
changes:
add missing features introduced in 5.9
reorder list chronologically
---------
Co-authored-by: Max Desiatov <m_desiatov@apple.com>
Co-authored-by: Yim Lee <yim_lee@apple.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+51-15Lines changed: 51 additions & 15 deletions
Original file line number
Diff line number
Diff line change
@@ -3,51 +3,81 @@ Note: This is in reverse chronological order, so newer entries are added to the
3
3
Swift Next
4
4
-----------
5
5
6
-
*[#6111]
7
-
8
-
Package creation using `package init` now also supports the build tool plugin and command plugin types.
9
-
10
6
*[#5728]
11
7
12
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.
13
9
14
-
*[#6185], [#6200]
15
-
16
-
Add a new `CompilerPluginSupport` module which contains the definition for macro targets. Macro targets allow authoring and distribution of custom Swift macros such as [expression macros](https://github.com/apple/swift-evolution/blob/main/proposals/0382-expression-macros.md).
17
10
18
11
Swift 5.9
19
12
-----------
20
13
14
+
*[SE-0386]
15
+
16
+
SwiftPM packages can now use `package` as a new access modifier, allowing accessing symbols in another target / module within the same package without making it public.
17
+
18
+
*[SE-0387]
19
+
20
+
New `swift experimental-sdk` experimental command is now available for managing Swift SDK bundles that follow the format described in [SE-0387]: "Swift SDKs for Cross-Compilation".
21
+
22
+
*[SE-0391]
23
+
24
+
SwiftPM can now publish to a registry following the publishing spec as defined in [SE-0391]. SwiftPM also gains support for signed packages. Trust-on-first-use (TOFU) check which includes only fingerprints (e.g., checksums) previously has been extended to include signing identities, and it is enforced for source archives as well as package manifests.
25
+
21
26
*[#5966]
22
27
23
28
Plugin compilation can be influenced by using `-Xbuild-tools-swiftc` arguments in the SwiftPM command line. This is similar to the existing mechanism for influencing the manifest compilation using `-Xmanifest` arguments. Manifest compilation will also be influenced by `-Xbuild-tools-swiftc`, but only if no other `-Xmanifest` arguments are provided. Using `-Xmanifest` will show a deprecation message. `-Xmanifest` will be removed in the future.
24
29
30
+
*[#6060]
31
+
32
+
Support for building plugin dependencies for the host when cross-compiling.
33
+
25
34
*[#6067]
26
35
27
36
Basic support for a new `.embedInCode` resource rule which allows embedding the contents of the resource into the executable code by generating a byte array, e.g.
28
37
29
38
```
30
39
struct PackageResources {
31
-
static let best_txt: [UInt8] = [104,101,108,108,111,32,119,111,114,108,100,10]
40
+
static let best_txt: [UInt8] = [104,101,108,108,111,32,119,111,114,108,100,10]
32
41
}
33
42
```
34
43
35
-
*[#6294]
44
+
*[#6111]
36
45
37
-
When a package contains a single target, sources may be distributed anywhere within the `./Sources` directory. If sources are placed in a subdirectory under `./Sources/<target>`, or there is more than one target, the existing expectation for sources apply.
46
+
Package creation using `package init` now also supports the build tool plugin and command plugin types.
38
47
39
48
*[#6114]
40
49
41
50
Added a new `allowNetworkConnections(scope:reason:)` for giving a command plugin permissions to access the network. Permissions can be scoped to Unix domain sockets in general or specifically for Docker, as well as local or remote IP connections which can be limited by port. For non-interactive use cases, there is also a `--allow-network-connections` commandline flag to allow network connections for a particular scope.
42
51
43
-
*[#6060]
44
-
45
-
Support for building plugin dependencies for the host when cross-compiling.
46
-
47
52
*[#6144]
48
53
49
54
Remove the `system-module` and `manifest` templates and clean up the remaining `empty`, `library`, and `executable` templates so they include the minimum information needed to get started, with links to documentation in the generated library, executable, and test content.
50
55
56
+
*[#6185], [#6200]
57
+
58
+
Add a new `CompilerPluginSupport` module which contains the definition for macro targets. Macro targets allow authoring and distribution of custom Swift macros such as [expression macros](https://github.com/apple/swift-evolution/blob/main/proposals/0382-expression-macros.md).
59
+
60
+
*[#6276]
61
+
62
+
Add new build setting in the package manifest that enables Swift/C++ Interoperability for a given Swift target.
63
+
64
+
```
65
+
.interoperabilityMode(.Cxx, version: "swift-5.9")
66
+
```
67
+
68
+
*[#6294]
69
+
70
+
When a package contains a single target, sources may be distributed anywhere within the `./Sources` directory. If sources are placed in a subdirectory under `./Sources/<target>`, or there is more than one target, the existing expectation for sources apply.
71
+
72
+
*[#6540]
73
+
74
+
Build tool plugins can be used with C-family targets
75
+
76
+
*[#6663]
77
+
78
+
Add `visionOS` as a platform alongside `iOS` and other platforms
0 commit comments