DevelopmentThread Sanitizer for Swift on Linux
Swift 5.1 introduces Thread Sanitizer on Linux, enabling runtime detection of data races in multithreaded code, which can cause unexpected behaviour or memory corruption despite Swift's single-threaded safety guarantees.
DevelopmentPrivacy and User Experience
Good serie on privacy and user experience by Smashing Magazine. Worth the read!
DevelopmentSwift 5 Released!
Swift 5.0 marks a major milestone with ABI stability on Apple platforms, integrating the Swift runtime into macOS, iOS, tvOS, and watchOS for smaller apps and better performance.
DevelopmentUTF-8 String
Swift 5 changes String's preferred encoding from UTF-16 to UTF-8 for better performance in modern computing, like server-side work and C interop, while keeping efficient Objective-C bridging.
DevelopmentBehind the Proposal — SE-0200 Enhancing String Literals Delimiters to Support Raw Text
SE-0200 introduces custom delimiters for Swift string literals in Swift 5, allowing raw text that ignores escape sequences unless adjusted with matching pound signs, blending features from languages like Rust while retaining Swift's interpolation.
DevelopmentSwift 5.1 Release Process
Swift 5.1 aims to achieve module stability for the language. On Apple platforms, it keeps binary compatibility with Swift 5.0 and future releases because the ABI is now stable.
DevelopmentEvolving Swift On Apple Platforms After ABI Stability
Swift 5.0 achieves ABI stability on Apple platforms, allowing apps to use the OS-provided Swift runtime instead of bundling it, which reduces download sizes and enables better performance through deeper integration.
DevelopmentABI Stability and More
Swift 5 achieves ABI stability on Apple platforms, ensuring binary compatibility for apps and libraries across future Swift versions without needing to embed the Swift runtime in app bundles.
DevelopmentIntroducing the sourcekitd Stress Tester
Sourcekitd powers essential editor features like code completion and refactoring in Xcode and SourceKit-LSP, handling both syntactic and semantic requests for Swift files.
DevelopmentSwift 5 Exclusivity Enforcement
Swift 5 turns on runtime checks for exclusive access to memory by default in release builds.
DevelopmentThe User Experience of Chatbots
I absolutely hate chatbots! So much that I added a rule to Quiet to hide/block chatbots from websites.
DevelopmentREPL Support for Swift Packages
The swift run command now includes a --repl option. This lets you start the Swift REPL and import library targets from a package.
DevelopmentHow Mirror Works
Swift provides runtime type inspection through the Mirror API. This allows developers to examine arbitrary values and traverse object graphs without prior knowledge of types at compile time.
DevelopmentSwift 5.0 Release Process
Swift 5.0 aims to achieve ABI stability to enable a stable runtime for operating systems, with module stability as a key focus that may land in this release or a later 5.x update.
DevelopmentSwift 4.2 Released!
Swift 4.2 is a major update that enhances compile times, debugging, the standard library, and moves closer to binary compatibility, while maintaining source compatibility with Swift 4 and 4.1 but marking the last release to support Swift 3 compatibility.
DevelopmentExperience Rot
Steve Jobs once said, “You have to pick carefully. I’m actually as proud of the things we haven’t done as the things I have done. Innovation is saying ‘no’ to 1,000 things.”
DevelopmentIntroducing Related Projects to Swift Forums
The Swift community continues to expand, with developers increasingly relying on ecosystem projects to streamline app development for specific tasks. To foster better interaction, Swift Forums has introduced a new top-level category called Related Projects.
DevelopmentSwift Community-Hosted Continuous Integration
Swift.org has expanded its continuous integration testing system to include community-hosted nodes for additional platforms.
DevelopmentReimplementation of Implicitly Unwrapped Optionals
Swift 4.1 reimplements implicitly unwrapped optionals (IUOs) so they act as regular optionals with a flag that allows automatic unwrapping when needed, rather than as a distinct type.
DevelopmentSwift 4.1 Released!
Apple released Swift 4.1 as a minor update that maintains source compatibility with Swift 4.0. It adds generics features such as conditional conformance and synthesised Equatable and Hashable support.
DevelopmentSwift 4.2 Release Process
Swift 4.2 serves as a step towards ABI stability in Swift 5, incorporating ABI changes for performance, bug fixes, and targeted improvements to compile-time speed.
DevelopmentCode Size Optimization Mode in Swift 4.1
Swift 4.1 adds a new optimisation mode called -Osize. This mode helps reduce code size by 5 to 30 percent in some projects.
DevelopmentSwift Forums Now Open!
The Swift project has moved its main discussions from mailing lists to Swift Forums. The old mailing lists are shut down and archived, with their content imported into the new system.
DevelopmentConditional Conformance in the Standard Library
Swift 4.1 adds conditional conformances, which let generic types like Array and Optional conform to protocols such as Equatable or Hashable only when their elements do.
DevelopmentSwift 4.1 Release Process
Swift 4.1 is a source-compatible update to Swift 4.0 that adds minor language enhancements, improves the Swift Package Manager and Linux support, and includes quality fixes to the compiler and standard library, but it lacks binary compatibility due to ABI stabilisation work for Swift 5.