Changelog History
Page 3
-
v3.0.0-rc.1 Changes
๐ 1. Fixed integer overflow for
DispatchTimeInterval
in FoundationExtensions.swift (#506) -
v3.0.0-alpha.1 Changes
๐ฆ 1.
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) }
๐ฆ 1.
SignalProducer.startWithSignal
now returns the value of the setup closure. (#533, kudos to @Burgestrand) -
v2.1.0-alpha.2 Changes
๐ 1. Disabled code coverage data to allow app submissions with Xcode 9.0 (see https://github.com/Carthage/Carthage/issues/2056, kudos to @NachoSoto)
-
v2.1.0-alpha.1 Changes
๐ฆ 1.
Signal.Observer.action
has been deprecated. UseSignal.Observer.send
instead. (#515)๐ 1. Workaround an unexpected EGAGIN error being returned by pthread in 32-bit ARM debug builds. (#508)
๐จ 1. 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) -
v2.0.1 Changes
๐ 1. Addressed the exceptionally high build time. (#495)
- New method
retry(upTo:interval:on:)
. This delays retrying on failure byinterval
until hitting theupTo
limitation.
- New method
-
v2.0.0-rc.3 Changes
๐ 1.
Lifetime.+=
which ties aDisposable
to aLifetime
, is now part of the public API and is no longer deprecated.- Feedbacks from
isEnabled
to the state of the sameAction
no longer deadlocks if it does not constitute an infinite feedback loop. (#481, kudos to @andersio)
Note that
isExecuting
already supportsAction
state feedback, and legitimate feedback loops would still deadlock. - Feedbacks from
-
v2.0.0-rc.2 Changes
โ 1. Fixed a deadlock upon disposal when combining operators, i.e.
zip
andcombineLatest
, are used. (#471, kudos to @stevebrambilla for catching the bug) -
v2.0.0-rc.1 Changes
๐ฆ 1. If the input observer of a
Signal
deinitializes while theSignal
has not yet terminated, aninterrupted
event would now be automatically sent. (#463, kudos to @andersio)ValidationResult
andValidatorOutput
have been renamed toValidatingProperty.Result
andValidatingProperty.Decision
, respectively. (#443)
๐ฆ 1. Mitigated a race condition related to ARC in the
Signal
internal. (#456, kudos to @andersio)- Added new convenience initialisers to
Action
that make creating actions with state input properties easier. When creating anAction
that is conditionally enabled based on an optional property, use the renamedAction.init(unwrapping:execute:)
initialisers. (#455, kudos to @sharplet)
-
v2.0.0-alpha.3 Changes
๐ฆ 1.
combinePrevious
forSignal
andSignalProducer
no longer requires an initial value. The first tuple would be emitted as soon as the second value is received by the operator if no initial value is given. (#445, kudos to @andersio)๐ฆ 1. Fixed an impedance mismatch in the
Signal
internals that caused heap corruptions. (#449, kudos to @gparker42)- In Swift 3.2 or later, you may create
BindingTarget
for a key path of a specific object. (#440, kudos to @andersio)
- In Swift 3.2 or later, you may create
-
v2.0.0-alpha.2 Changes
- In Swift 3.2 or later, you can use
map()
with the new Smart Key Paths. (#435, kudos to @sharplet)
๐ฆ 1. When composing
Signal
andSignalProducer
of inhabitable types, e.g.Never
orNoError
, ReactiveSwift now warns about operators that are illogical to use, and traps at runtime when such operators attempt to instantiate an instance. (#429, kudos to @andersio)๐ฆ 1. N-ary
SignalProducer
operators are now generic and accept any type that can be expressed asSignalProducer
. (#410, kudos to @andersio) Types may conform toSignalProducerConvertible
to be an eligible operand.๐ 1. The performance of
SignalProducer
has been improved significantly. (#140, kudos to @andersio)All lifted
SignalProducer
operators no longer yield an extraSignal
. As a result, the calling overhead of event delivery is generally reduced proportionally to the level of chaining of lifted operators.interrupted
now respectsobserve(on:)
. (#140)
When a produced
Signal
is interrupted, ifobserve(on:)
is the last applied operator,interrupted
would now be delivered on theScheduler
passed toobserve(on:)
just like other events.Feedbacks from
isExecuting
to the state of the sameAction
, including allenabledIf
convenience initializers, no longer deadlocks. (#400, kudos to @andersio)MutableProperty
now enforces exclusivity of access. (#419, kudos to @andersio)
In other words, nested modification in
MutableProperty.modify
is now prohibited. Generally speaking, it should have extremely limited impact as in most cases theMutableProperty
would have been deadlocked already.promoteError
can now infer the new error type from the context. (#413, kudos to @andersio)
- In Swift 3.2 or later, you can use