Skip to content

Swift 5.9 release blog post #372

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 51 commits into from
Sep 18, 2023
Merged

Swift 5.9 release blog post #372

merged 51 commits into from
Sep 18, 2023

Conversation

alexandersandberg
Copy link
Member

@alexandersandberg alexandersandberg commented Aug 29, 2023

This PR adds the announcement blog post for the upcoming Swift 5.9 release.

We have tried to improve this process since last time, and one of the more notable things this time around is that we're trying to include the community a bit more.

We're still exploring ways of doing this, but as an example, it would be nice to link to blog posts, articles, videos, open-source projects, and other resources that the community has created that relate to what's new in Swift 5.9.

I will start a thread on the forums later today to let the community know.
The forum thread is now published: Swift 5.9 release blog post community contributions

TODOs

  • Add community resources
  • Write release summary for first paragraph
  • More Developer Experience sections?
  • More Ecosystem sections?
  • Language and Standard Library content (@beccadax)
  • Add link to the Debugging blog post once it's available Update section with new content as debugging blog post will be published later
  • Windows Platform content (@compnerd)
  • Downloads content (@shahmishal)
  • Include SE-0386 in the evolutions appendix? (@hborla)

Closes #330.

@alexandersandberg alexandersandberg self-assigned this Aug 29, 2023
* Update 2023-08-29-swift-5.9-released.md

* indent code block in list

---------

Co-authored-by: Alexander Sandberg <[email protected]>
Add some words about the new crash handler, including a promise of a
future blog post on the subject.
@0xTim
Copy link
Member

0xTim commented Sep 9, 2023

If we get a chance we should definitely call out the new linker as that is providing massive speed ups and more importantly significantly less memory usage which is useful when compiling on memory constrained environments


Swift's fundamental goal is to encourage code that is clear and concise, while remaining safe and efficient.

This release adds three long-desired features that further that goal: a new macro system for more expressive libraries, parameter packs to make overloaded APIs natural to use, and new ownership features to offer more performance control in low-level code.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

more performance control in -> more control over performance in


Swift expressions can now refer to generic type parameters. This allows setting a conditional breakpoint in a generic function that only triggers when a type parameter is instantiated with a specific concrete type.

The debug info produced by the Swift compiler is now more precisely scoping local variables, which makes it less likely to see variables backed by uninitialized memory in the debugger.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is now more precisely scoping local variables, which makes -> now more precisely scopes local variables, making
likely to see -> likely that you see


- Packages can use the new `package` access modifier, allowing access of symbols in another target / module within the same package without making them public. SwiftPM automatically sets the new compiler configuration to ensure this feature works out-of-the-box for packages.

- The `CompilerPluginSupport` module enables defining macro targets. Macro targets allow authoring and distributing custom Swift macros as API in a library.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

API - > APIs


- SwiftPM can now publish to a registry following the specification defined in [SE-0391](https://github.com/apple/swift-evolution/blob/main/proposals/0391-package-registry-publish.md), as well as support signed packages, which may be required by a registry. Trust-on-first-use (TOFU) validation checks can now use signing identities in addition to fingerprints, and are enforced for source archives as well as package manifests.

- SwiftPM now supports cross compilation based on [Swift SDK bundles](https://github.com/apple/swift-evolution/blob/main/proposals/0387-cross-compilation-destinations.md#swift-sdk-bundles). While the feature is still considered experimental, we invite users to try it out and provide feedback.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Swift SDK bundles -> the new Swift SDK bundle format


[swift-syntax](https://github.com/apple/swift-syntax) is an essential tool for parsing Swift code and helps power the new macro system. This year, swift-syntax received a number of improvements:

- Syntax nodes names are more consistent and accurately reflect the Swift language.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Syntax nodes names -> Names of Syntax nodes

Alternatively -> Syntax nodes' names

The current formulation is wrong.

@cthielen cthielen self-requested a review September 18, 2023 17:51
@alexandersandberg
Copy link
Member Author

@swift-ci test

1 similar comment
@cthielen
Copy link
Contributor

@swift-ci test

@cthielen cthielen merged commit a65ad79 into main Sep 18, 2023
@cthielen cthielen deleted the 5.9-blog-post branch September 18, 2023 18:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Swift 5.9 Blog Post