Every Swift Task Already Has an ID. You Just Couldn't Read It Cheaply.
SE-0553 adds Task.currentID to Swift — a process-unique, never-reused task identifier that costs nanoseconds instead of the 15x-slower withUnsafeCurrentTask dance. Here's why that gap existed and what it unlocks for tracing and logging.
Float.pi Has Been Slightly Wrong Since 2016. Swift Is Finally Fixing the Rounding.
SE-0552, in active review through October 6, 2026, changes how Float.pi rounds — undoing a Swift 3-era decision to always round toward zero. Here's the actual bit that moves, why it was ever rounded down on purpose, and whether your code needs to care.
Someone Pitched 'and' and 'or' for Swift. The Rejection Was Already Written in 2015.
A fresh Swift Forums pitch to replace && and || with and/or got shut down in two replies — pointing to a document that's been saying no since Swift's early years. Here's the real technical reason, not just 'we don't like it.'
Thread Sanitizer Just Flagged Your Correct Code as a Race. Swift Might Finally Let You Say 'I Know.'
SE-0550 proposes a @noSanitize attribute for Swift functions, letting you opt individual functions out of ASan/TSan instrumentation. Here's the real problem it solves, and the sharp edges it comes with.
Swift's let Never Meant 'Never Changes.' A New Pitch Wants Property Wrappers to Admit It.
A fresh Swift Evolution pitch lets property wrappers live on let declarations, fixing the real Swift 6 strict concurrency error that rejects thread-safe wrappers in Sendable types, static properties, and nonisolated members.
One Bad Element in Your JSON Array Can Freeze Your App Forever. Swift Wants to Fix It.
A fresh Swift Evolution pitch adds skip() to UnkeyedDecodingContainer, fixing a real Codable footgun: the 'decode what you can, skip what you can't' loop that looks correct and hangs at runtime.
Swift 6.4 Lets Your defer Block Await. withTaskCancellationShield Is Why That's Actually Safe.
Swift 6.4 ships async defer (SE-0493) and withTaskCancellationShield (SE-0504) together, finally letting cleanup code make network calls without racing cancellation. Here's what changes and why the pairing matters.
Swift Testing Is About to Turn Off the One Field Your CI Script Actually Reads
ST-0029 was accepted into Swift Testing on September 13, adding structured issue metadata to the JSON event stream. The quiet part: the human-readable messages field becomes opt-in, off by default. Here's what that means for anyone parsing test output in CI.
Your private(set) Property Isn't as Private as You Think. Swift's Memberwise Init Still Lets Anyone Set It.
A fresh Swift Evolution pitch tackles a real gap: struct memberwise initializers ignore private(set) and let callers set properties you meant to protect. Here's the pitch, the pushback, and why the debate matters more than the syntax.
Swift Might Get a Compile-Time #if for Your Deployment Target
A fresh Swift Forums pitch proposes #if deploymentTargetAtLeast(...) — a compile-time check tied to your minimum OS version, aimed at killing dead backward-compat branches that if #available can't touch.
SwiftPM Traits Let You Turn Off Half Your Library. Your Test Suite Has No Idea.
A new Swift Evolution pitch fixes a real gap in SwiftPM package traits: there's currently no way to declare which trait combinations a test target actually needs to run against. Here's the bug, the pitch, and the naming collision that'll trip you up first.
The Fix for SwiftPM's 200-Second Compile Bug Just Landed. It Skips the Type Checker Entirely.
A new Swift Forums pitch replaces embedInCode's byte-array literals with linked object files and Span<UInt8>, turning a 70-second, 7.2GB build into a 1.6-second one. Here's how it works and why one reviewer already isn't sure it's worth the complexity.
SwiftPM Embeds Resources as Byte Arrays. One 165KB File Can Take 200 Seconds to Compile.
A fresh Swift Forums pitch wants to give SwiftPM's .embedInCode a real, path-preserving EmbeddedFileSystem — fixing both its lack of directory structure and a documented type-checker bug where a single resource file bloats debug build times by minutes.
SwiftPM Is Getting Real Compilation Caching. My Five Cold Builds a Day Are About to Get Cheaper.
SE-0547 brings CAS-backed compilation caching to SwiftPM: content-addressed cache keys instead of timestamps, with reported 67-75% faster clean builds. Here's what it actually configures, and why it matters more for worktrees and CI than for your everyday edit-build-run loop.
Your @MainActor Code Was Never Promised the Main Thread. Swift's About to Make That Official.
Swift Evolution's fourth pitch for Custom Main and Global Executors quietly confirms something most iOS developers get wrong: @MainActor guarantees serialized isolation, not literally Thread.main. Here's what changes and why it matters.
Swift Finally Lets You Put a Memberwise Init Where It Belongs
SE-0546 fixes a Swift limitation nearly a decade old: you couldn't define a struct's memberwise initializer in a same-file extension. Here's why that mattered, with a real example from a Live Activity.
Swift Wants to Let a Closure Promise 'I Run Once.' Here's the Bug That's Been Waiting For It.
A fresh Swift Evolution pitch, @called(once), lets the compiler know a function is invoked at most one time — and that one guarantee quietly unlocks Task closures that consume non-Sendable values and non-Copyable captures that don't work today. Here's the errors it fixes, in real code.
InlineArray Just Got Hashable. Here's Why That Took a Whole Proposal.
SE-0543 was accepted on August 18, 2026, giving InlineArray a Hashable conformance. It sounds like a one-line addition — it wasn't. Here's what InlineArray actually is, why Hashable needed its own proposal, and where a fixed-size, stack-allocated array earns its keep over a regular Array.
ST-0026 Got Accepted. The Whole Review Came Down to One Parameter Label.
Swift Testing's .taskLocal trait (ST-0026) was accepted with modifications on August 15, 2026 — the only change was adding a withValue: label. Here's the final API, why the label debate actually mattered, and the real BrewLog migration it unlocks.
Swift Testing Runs Your Suite in Parallel. That Static Var You Swap for DI Is a Race Condition.
Swift Testing parallelizes tests by default, in the same process. A huge number of Swift codebases — BrewLog's AppIntents suite included — still inject test dependencies by mutating a global static var. ST-0026 proposes a .taskLocal trait to fix it properly. Here's the real bug, the real code, and where the proposal stands.
Swift Just Got a Real Timeout API. Here's What We've All Been Duct-Taping Instead.
SE-0526 withDeadline was accepted into Swift on July 30, 2026 — a real, composable, absolute-time-limit API for async operations. I found the exact gap it fills in a real app's networking layer, fixed it today's way with a TaskGroup race, and lined it up against what withDeadline will let me delete once it ships.