Skip to content

Modern Swift concurrency#2

Merged
RISCfuture merged 2 commits into
mainfrom
modern-concurrency
Jun 27, 2026
Merged

Modern Swift concurrency#2
RISCfuture merged 2 commits into
mainfrom
modern-concurrency

Conversation

@RISCfuture

Copy link
Copy Markdown
Owner

Summary

Adopt the Swift 6.2 Approachable Concurrency upcoming features
(NonisolatedNonsendingByDefault and InferIsolatedConformances) across the
library, test, and tool targets. SwiftDOF was already a clean Swift 6.2
structured-concurrency codebase (async/await, custom AsyncSequence line
readers, an actor for progress, Swift Testing), so there were no
GCD/threads/locks/nonisolated(unsafe)/MainActor.run/@unchecked Sendable/
@preconcurrency sites to migrate.

The public async API keeps the same signatures and existing source compiles
unchanged. Under the new default, the execution domain of nonisolated async
entry points (init(url:), init(bytes:), from(url:)) follows the caller's
executor. The streaming byte line reader's async iterator
(AsyncBytesLineReader.AsyncIterator.next()) is marked @concurrent so
large-file and remote-stream parsing continues to run off the caller's executor
under the new default.

No public API signatures changed; this is a source-compatible behavioral
modernization.

Verification

  • swift build --build-tests passes.
  • Unit tests pass (59/59).
  • The macOS E2E executable target was run end-to-end against live FAA data and
    passed.

Version

New version: 1.1.0 (minor — source-compatible behavioral change to async
execution semantics). The GitHub release will be cut after this PR is merged.

🤖 Generated with Claude Code

RISCfuture and others added 2 commits June 26, 2026 23:46
Adopt the Swift 6.2 Approachable Concurrency upcoming features
(NonisolatedNonsendingByDefault and InferIsolatedConformances) across
the library, test, and tool targets. The public async API keeps its
existing signatures; under the new default, nonisolated async entry
points run on the caller's executor. Mark the streaming line reader's
async iterator next() @Concurrent so large-file and remote-stream
parsing continues to run off the caller's executor.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Document the adoption of the Approachable Concurrency upcoming features
in the change log.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@RISCfuture RISCfuture merged commit 6803de4 into main Jun 27, 2026
5 checks passed
@RISCfuture RISCfuture deleted the modern-concurrency branch June 27, 2026 18:30
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.

1 participant