Skip to content

Re-enable swift development toolchain usages for Clock/Instant/Duration #105

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 24, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,12 @@ let package = Package(
],
products: [
.library(name: "AsyncAlgorithms", targets: ["AsyncAlgorithms"]),
.library(name: "ClockShims", type: .static, targets: ["ClockShims"]),
.library(name: "AsyncSequenceValidation", targets: ["AsyncSequenceValidation"]),
.library(name: "_CAsyncSequenceValidationSupport", type: .static, targets: ["AsyncSequenceValidation"])
],
dependencies: [],
targets: [
.target(name: "AsyncAlgorithms", dependencies: ["ClockShims"]),
.target(name: "ClockShims"),
.target(name: "AsyncAlgorithms"),
.target(
name: "AsyncSequenceValidation",
dependencies: ["_CAsyncSequenceValidationSupport", "AsyncAlgorithms"]),
Expand Down
17 changes: 9 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,27 +86,28 @@ Finally, add `import AsyncAlgorithms` to your source code.

## Getting Started

⚠️ Please note that this package currently requires a recent [Swift Trunk Development toolchain](https://www.swift.org/download/#trunk-development-main). More information on how to use custom toolchains with Xcode can be viewed [here](https://developer.apple.com/library/archive/documentation/ToolsLanguages/Conceptual/Xcode_Overview/AlternativeToolchains.html).

### Building/Testing Using Xcode on macOS

1. Open the `swift-async-algorithms` package directory in Xcode
2. Build or Test in Xcode as normal

### Building/Testing Using Swift Package Manager
1. Download the most recent development Xcode toolchain.
2. Install the package
4. Select the development toolchain in Xcode
4. Open the `swift-async-algorithms` package directory in Xcode
5. Build or Test in Xcode as normal

1. In the `swift-async-algorithms` directory run `swift build` or `swift test` accordingly
⚠️ Note: `swift test` does not currently work properly with custom toolchains for this package.

### Building/Testing on Linux

1. Download the most recent toolchain for your Linux distribution
1. Download the most recent development toolchain for your Linux distribution
2. Decompress the archive to a path in which the `swift` executable is in the binary search path environment variable (`$PATH`)
3. In the `swift-async-algorithms` directory run `swift build` or `swift test` accordingly

## Source Stability

The Swift Async Algorithms package has a goal of being source stable as soon as possible; version numbers will follow [Semantic Versioning](https://semver.org/). Source breaking changes to public API can only land in a new major version.

Before the version 1.0 the `swift-async-algorithms` package will not be source or ABI stable. Particularly the shims associated with `Clock`, `Instant` and `Duration` are present just to provide backwards compatability to older toolchains. As soon as this is available widely the shims will be removed; which will be an ABI breaking change.

The public API of version 1.0 of the `swift-async-algorithms` package will consist of non-underscored declarations that are marked `public` in the `AsyncAlgorithms` module. Interfaces that aren't part of the public API may continue to change in any release, including patch releases.

Future minor versions of the package may introduce changes to these rules as needed.
Expand Down
12 changes: 0 additions & 12 deletions Sources/AsyncAlgorithms/Reexport.swift

This file was deleted.

2 changes: 1 addition & 1 deletion Sources/AsyncSequenceValidation/Test.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ extension AsyncSequenceValidationDiagram {
let sequence: Operation
let output: Specification

func test<C: ClockShims.Clock>(with clock: C, activeTicks: [C.Instant], output: Specification, _ event: (String) -> Void) async throws {
func test<C: _Concurrency.Clock>(with clock: C, activeTicks: [C.Instant], output: Specification, _ event: (String) -> Void) async throws {
var iterator = sequence.makeAsyncIterator()
do {
for tick in activeTicks {
Expand Down
76 changes: 0 additions & 76 deletions Sources/ClockShims/Clock.swift

This file was deleted.

173 changes: 0 additions & 173 deletions Sources/ClockShims/ContinuousClock.swift

This file was deleted.

Loading