3.0.0 alpha 1
Pre-releaseThis is the first alpha release of ReactiveSwift 3.0. It supports Swift 3.2 and Swift 4.0, and requires either Xcode 9 or the Swift 4.0 OSS compiler toolchain.
Breaking Change
-
Signal
now usesLifetime
for resource management. (#404, kudos to @andersio)The
Signal
initialzer now accepts a generator closure that is passed with the inputObserver
and theLifetime
as its arguments. The original variant accepting a single-argument generator closure is now obselete. This is a source breaking change.// New: Add `Disposable`s to the `Lifetime`. let candies = Signal<U, E> { (observer: Signal<U, E>.Observer, lifetime: Lifetime) in lifetime += trickOrTreat.observe(observer) } // Obsolete: Returning a `Disposable`. let candies = Signal { (observer: Signal<U, E>.Observer) -> Disposable? in return trickOrTreat.observe(observer) }
Bugfix
- Workaround an unexpected EGAGIN error being returned by pthread in 32-bit ARM debug builds. (#508)
Changes
-
ReactiveSwift has been migrated to Swift 4.0. (#422, kudos to @andersio)
-
SignalProducer.startWithSignal
now returns the value of the setup closure. (#533, kudos to @Burgestrand) -
Disabled code coverage data to allow app submissions with Xcode 9.0 (see Carthage/Carthage#2056, kudos to @NachoSoto)
-
The
SignalProducer
internals have undergone a significant refactoring, which bootstraps the effort to reduce the overhead of constant producers and producer compositions. (#487, kudos to @andersio)
Deprecation
Signal.Observer.action
has been deprecated. UseSignal.Observer.send
instead. (#515)