Swift 5.2.3 for Linux

Announcing Swift 5.2.3 for Linux

We are happy to announce the release of Swift 5.2.3 for Linux.
On behalf of the Swift community, I'd like to thank the folks who made this release possible.
New downloads are available on swift.org. Official Docker images will be available soon.

Release Notes

Swift

  • [5.2][Property Wrappers] Improve error recovery in buildStorageReference. [#30993]
  • [5.2] [Typechecker] Fix _modify for wrapped properties with observers [#30994]
  • AST: Fix accessibility checking in opaque type archetype substitution logic [5.2] [#31058]
  • Sema: Force property wrappers in EmittedMembersRequest::evaluate() [5.2] [#31059]
  • [5.2][CodeCompletion] Fix a crash in context type analysis for tuple expr [#31079]
  • [5.2] Remove dependency on libatomic on Linux [#31053]
  • [5.2] Fix linker flags for -static-executable [#31244]

swift-corelibs-foundation

  • [5.2] SR-11917: Using JSONEncoder's .outputFormatting = .sortedKeys has a memory leak on Linux [#2692]
  • [5.2] SR-11569: DateComponents.isValidDate() ignores timeZone [#2627]
  • [5.2] Backport: Don't try to follow relative links in __CFTimeZoneCreateSystem [#2738]
  • Fix Process tests that fails when stdin is empty [#2765]
  • [5.2] Support Linux variants with older libcurl [#2770]

swift-package-manager

  • Backport fedora support [#2662]
  • [5.2] [SR-12667] Fix a SwiftPM 5.2 regression that causes non-source files under declared source directories to be treated as source files [#2711]

swift-llbuild

  • Backport: Call echo with -e in strip-colors.ninja [#652]

swift-syntax

  • [5.2] Add workaround for stack overflow in tree visitation when having a reduced stack size [#208]
19 Likes

It Looks Fabulous

2 Likes

With this update, it appears that cx16 support is required for all x64-based platforms. SwiftPM currently compiles C code for mac using cx16, but doesn't do so on Linux. That inconsistency is no longer necessary.

@drexin thanks for the detailed writeup. I am curious about the docker process. It seems there is a bit of lag time between the release and the docker tags being available. Are there a lot of manual steps in that process that would benefit from being automated?

Yes, the dependency to libatomic on Linux was unfortunate and the result of a strange interplay between clang and libstdc++ that caused it to determine the alignment incorrectly and also that the default march on Linux was older than what is being used on macOS. These problems have been fixed and the dependency on libatomic could be dropped.

1 Like

The Docker images are available now, the page just has not been updated, yet. The images should usually be available shortly after the version goes live on swift.org, so it‘s worth checking Dockerhub even before the page is updated.

2 Likes