Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: manmal/swift-async-algorithms
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: apple/swift-async-algorithms
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 10 commits
  • 40 files changed
  • 8 contributors

Commits on Sep 2, 2025

  1. Add enable_wasm_sdk_build: true to pull_request.yml (apple#363)

    `swift-async-algorithms` should be built for Wasm as one of the officially supported platforms on CI to prevent possible future regressions.
    MaxDesiatov authored Sep 2, 2025
    Configuration menu
    Copy the full SHA
    c537393 View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2025

  1. Update the project to address concurrency failures for 6.2 build mode…

    …s. (apple#362)
    
    * Correct build failures while updating to 6.2 swift build modes
    
    * Add a package definition for 5.8 builds
    
    * Add some brief explanation for the alteration of the Element in the buffer to an UnsafeTransfer
    
    * Fix broken merge for wasi threads
    phausler authored Sep 8, 2025
    Configuration menu
    Copy the full SHA
    18e2398 View commit details
    Browse the repository at this point in the history
  2. Clear up CI issues and testing failures (apple#365)

    * Conditionalize the testing targets for non-windows targets to avoid the TaskDriver requirements
    * Some driveby formatting fixes and remove the freebsd target since that is not supported in swiftpm yet
    * Rework validation import conditions to dependency conditionals
    * Exclude 5.9 workflows and enable macOS testing scheme for CI
    * Additional ifdefing out non windows targets for sequence diagram testing and more formatting fixes
    phausler authored Sep 8, 2025
    Configuration menu
    Copy the full SHA
    ca38935 View commit details
    Browse the repository at this point in the history

Commits on Sep 10, 2025

  1. Share algorithm (apple#357)

    This is an implementation of share; an algorithm for allowing AsyncSequence types to be iterated by multiple consumers. In addition this cleans up the project to be a starting point for the 1.1 release - it fixes the continuous integration support and configurations but has the cost of only supporting 3 active releases (6.0, 6.1, and 6.2). Previous releases are only going to have legacy support via older released versions.
    
    * Fix the remaining todo on hard cancellation vs soft cancellation
    
    * Update Sources/AsyncAlgorithms/AsyncShareSequence.swift
    
    Co-authored-by: Jamie <[email protected]>
    
    * Update the implementation of share to handle sendability requirements, address some edge cases and update to the latest version of the discussion around buffering behaviors as well as adding some documentation and commentary
    
    * Add some first drafts at unit tests for verifying share behaviors
    
    * Cleanup some of the documentation and address feedback for implementation details
    
    * Fix merge damage by restoring the changes from @jamieQ
    
    * Fix up some availability issues w.r.t. sendable metatypes
    
    * Add a preamble to SendableMetatypes.swift
    
    * Add a fallback for next (for pre 6.2 swift's)
    
    * Slight adjustments for older compiler builds and expose the sendable metatypes since those are part of documentation
    
    * Update formatting and gate availability for older compilers
    
    * Speculative fix for pre 6.1 compiler crashes by removing the sending keyword
    
    * Revert "Speculative fix for pre 6.1 compiler crashes by removing the sending keyword"
    
    This reverts commit 875fa81.
    
    * Speculative fix for pre 6.1 compiler crashes by removing the sending keyword, and correct sendable metatype shim availability
    
    * Remove block comment for formatting check
    
    * Take a more conservative approach and roll back to only supporting share on 6.2
    
    * Only test share on 6.2 or newer
    
    * roll back to older sendable metatype constraints
    
    * yet another stab at 5.10 visionOS guards
    
    * Formatting pass
    
    * Disable 5.10 builds and leave those to older releases
    
    * Ignore swift-version files to avoid local swiftly toolchain selection from being required by others
    
    * Renumber the proposals and copy share into a guide
    
    * Add a link from the primary doc interface to share
    
    ---------
    
    Co-authored-by: Jamie <[email protected]>
    phausler and jamieQ authored Sep 10, 2025
    Configuration menu
    Copy the full SHA
    70c36ce View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2025

  1. Configuration menu
    Copy the full SHA
    daf3c0d View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2025

  1. Configuration menu
    Copy the full SHA
    26111a6 View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2025

  1. Configuration menu
    Copy the full SHA
    24bd5ac View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2025

  1. Add MultiProducerSingleConsumerChannel (apple#305)

    * Add `AsyncBackpressuredStream` proposal and implementation
    
    # Motivation
    
    The pitch to add external backpressure support to the standard libraries `AsyncStream` got returned for revision since there are larger open questions around `AsyncSequence`. However, having external backpressure in a source asynchronous sequence is becoming more and more important.
    
    # Modification
    
    This PR adds a modified proposal and implementation that brings the Swift Evolution proposal over to Swift Async Algorithms.
    
    * Update proposal and implementation
    
    * Update proposal
    
    * Add example project
    
    * Formatting
    
    * Fix Swift 6.0 build
    
    * Future direction for ~Copyable elements
    
    * Apply formatting
    
    * Fix CI
    
    * Move to 6.1 and update proposal
    
    * Guard tests
    
    * Minor edits to the proposal
    
    * Fix revision order
    
    * FIxup setOnTerminationCallback
    
    * Address review feedback
    
    * Rename to `MultiProducerSingleConsumerAsyncChannel`
    
    * Allow one termination callback per source.
    
    * Fix all sendable warnings
    
    * Remove unbounded strategy, rename copy -> makeAdditionalSource, rename asyncSequence() -> elements(), and move enqueue and cancel to the `CallbackHandle` previously called `CallbackToken`
    
    * Remove Example and fix docs and fix format
    
    * fixes grammar and some word order issues
    
    * Remove unnecessary consume
    
    ---------
    
    Co-authored-by: Joe Heck <[email protected]>
    FranzBusch and heckj authored Nov 18, 2025
    Configuration menu
    Copy the full SHA
    4686d2e View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2025

  1. This removes the build constraint at Swift Package Index from Swift 5…

    ….8 so that (apple#377)
    
    symbols that are only available in later versions (for example, MultiProducerSingleConsumerAsyncChannel)
    are reflected in the hosted documentation.
    heckj authored Nov 19, 2025
    Configuration menu
    Copy the full SHA
    2773d41 View commit details
    Browse the repository at this point in the history

Commits on Dec 1, 2025

  1. Make MPSCAsyncChannel source methods nonisolated(nonsending) (app…

    …le#380)
    
    `nonisolated(nonsending)` is a 6.2 language feature that allows the inheritance of the callers isolation. The new `MPSCAsyncChannel.Source` send methods should adopt this to avoid unnecessary isolation hops.
    FranzBusch authored Dec 1, 2025
    Configuration menu
    Copy the full SHA
    6c050d5 View commit details
    Browse the repository at this point in the history
Loading