- StdPlus: Fixed
Duration.timeIntervalprecision — split computation via.componentsso integer-second inputs like.seconds(30)round-trip exactly throughDoubleinstead of losing precision throughInt128→Doubleconversion
- remove strictMemorySafety and defaultIsolation settings
- Added just command runner for ergonomic build and test workflows
- Documented just commands in CLAUDE.md and README.md
- CI: Release workflow now updates existing releases instead of failing when a tag already exists
- Removed unused
Synchronizationimport
Renamed Types:
Box→Shared
New Types:
OwnedPointer: Unique ownership semantics with proper documentation
Fixes:
Sharednow correctly conforms toSendablefor~Copyabletypes
resume()convenience method forVoidcontinuations onSaferContinuation
Release Automation:
- New release script (
./scripts/release.sh) with Claude Code integration for changelog enhancement - git-cliff configuration for conventional commit parsing
Documentation:
- Commit convention guidelines in
.github/COMMIT_CONVENTION.md - Git workflow and release instructions in CLAUDE.md
- Full release documentation in RELEASING.md
- Box: Reference wrappers for values, including thread-safe
MutexBoxusing Swift 6'sSynchronization.Mutex - AsyncPlus: Concurrency utilities including
SaferContinuationfor leak-safe continuations andScaledClockfor time-scaled testing
New Functions:
- Free functions:
with(),configure(),catchAndReturn()(with async variants)
New Sequence Extensions:
onlyproperty for extracting a single element from a sequence
Optional Enhancements:
- Made
UnwrapErrorgeneric for better type precision - Added
takeOrThrow()(mutating) to consume optional values - Added async
map()andflatMap()for async transformations
Numeric Extensions:
clamped()to constrain values to a rangenonZero()to filter out zero valuespositive()to filter for positive values only
StatefulAsyncSequence:
- Added
Sendableinitializer variant for sendable state
-
Either: A sum type representing one of two possible values, with full support for non-copyable types
- APIs:
map,flatMap,mapLeft,bimap,fold,swapped,separated
- APIs:
-
SequenceBuilder: A result builder for declarative sequence construction
- Works with any
RangeReplaceableCollectionorSetAlgebratype
- Works with any
-
StdPlus: Ergonomic extensions to Swift standard library types
- Collection Extensions:
nonEmptyproperty - Optional Extensions:
orThrow()for unwrapping with custom errors - Numeric Extensions:
isNearEqual()for floating-point comparison - Duration Extensions:
timeIntervalconversion - Async Sequences:
StatefulAsyncSequencefor async sequences with mutable state
- Collection Extensions: