This repository was archived by the owner on Aug 29, 2022. It is now read-only.
Releases: bignerdranch/Deferred
Releases · bignerdranch/Deferred
v2.2.1: Deferred Del Vesuvio
Threading fixes from the newly-introduced Task code.
v2.2: Task Del Giorno
- Introduces the
Task<SuccessValue>class, a composition of aFuture<Result>andNSProgress. (#98, #111) - Introduces sugar for
upon(_:)withResultsuccesses and failures (#98) - Introduces sugar for
fill(_:)withResultsuccesses and failures (#98) - Fix API unintentionally exposed to ObjC in 2.0.0 (#111)
v2.2 Candidate: Task de Napoli
- Introduces the
Task<SuccessValue>class, a composition of aFuture<Result>andNSProgress. (#98, #111) - Introduces sugar for
upon(_:)withResultsuccesses and failures (#98) - Introduces sugar for
fill(_:)withResultsuccesses and failures (#98) - Fix API unintentionally exposed to ObjC in 2.0.0 (#111)
v2.0: No Promises
Deferred is a milestone release of our framework for Swift 2.x, used daily by your friends at Big Nerd Ranch.
Since 1.0:
- An extensible protocol-oriented concept of
Futures andPromises, which compose into theDeferredyou know and love. Deferreditself is much more efficient, requiring no locking overhead.- Introduce
ExecutorTypeas an alternative to directly using Dispatch queues. ReadWriteLockandLockProtectedsupportthrows.- Completely rewritten documentation.
- Enhanced debugging and Playgrounds support.
- Support for macOS, tvOS, and watchOS.
Special thanks to @cbkeur, @jeremy-w, @jgallagher, @lyricsboy, and @randomstep for their hours of rubber-ducking and passion for the specific color of this bikeshed.
v2.0 Release Candidate: Deferred County Superior Court
Since 2.0b6:
- Improvements to documentation (#78, #89, #94, #96)
- Better support for playgrounds and debugging on futures and
LockProtected(#80, #85) - Support for Swift 2.2 (#81)
- Add a convenience initializer to
Future<Value>that never fills. This is great for stub APIs, and could previously be accomplished withFuture(Deferred()). (#82) - Expose the generic GCD queue used by the no-argument
uponas public API (#83) - Introduce
ExecutorTypeas an alternative to directly using GCD queues (#89) - Replace
IgnoringFuture.init(_:)withFutureType.ignored(). TheIgnoringFuturetype may be removed in a future release. (#92)
v2.0 Beta 6: Singing In The Rain
v2.0 Beta 5: It'll Get There Eventually!
- Fixes bug in
Deferred.wait(_:). (#67; thanks @preble!) - Performance improvements for locking types (#69)
- Support for Swift Package Manager (#69)
- Basic compatibility with Linux (assuming availability of Grand Central Dispatch; #69)
- Makes
map(upon:transform:)andflatMap(upon:transform:)correctly returnFuture(#71; #72)
v2.0 Beta 4: Do? There Is No Do. There Is Only Try.
- Cleanups and refactorings to more clearly define the use of GCD. (Part #54)
ReadWriteLockandLockProtectedare all nowrethrows-compatible. (#55)- Adds 3- and 4-argument versions of
and. (#52) - Turn
.ignoringValueinto a fullIgnoringFuturetype. (#60) - Renames
AnyFutureto simplyFuture. (#60) - Adds tvOS and watchOS targets. (#62)
- Adds CocoaPods support. (#62)
v2.0 Beta 3: General Atomics International
Requires Swift 2.1 (Xcode 7.1 and 7.2)
- Significant internal reworking. (#30)
- Deferred now requires Swift 2.1, and deploys to OS X 10.10 and iOS 8.0.
- Removes any dependency on Foundation in
Deferreditself. Deferred.fill(_:)andDeferred.upon(_:)are each much more efficient, and involve no threading overhead.- Removes
Deferred.value. Use the newDeferred.wait(_:)method instead. - Adopts GCD QoS classes for improved performance.
- Improves unit test coverage.
any(_:)andall(_:)now take any collection. (#30)- Restructures convenience methods into protocol extensions. (#33)
- Introduces
AnyFuturefor erasing the type of an underlyingDeferredor Task. (#24)
- Introduces
- Revamps
anyto flatten nestedDeferredinstances. (#42) - Improve coverage and automatically publish documentation. (#53)
v2.0 Beta 2: Once Upon a Queue
Adds uponMainQueue function for convenient resolution of the value on the main queue.