Skip to content

6.7.0

Compare
Choose a tag to compare
@andersio andersio released this 03 Sep 12:07
· 55 commits to master since this release

This is the seventh minor release of ReactiveSwift 6.

Additions

  1. Signal offers two special variants for advanced users: unserialized and reentrant-unserialized. (#797)

    The input observer of these variants assume that mutual exclusion has been enforced by its callers.

    You can create these variants through four Signal static methods: unserialized(_:), unserializedPipe(_:), reentrantUnserialized(_:) and reentrantUnserializedPipe(_:). These would be adopted by ReactiveCocoa UIKit bindings to improve interoperability with Loop, to tackle some legitimate recursive delivery scenarios (e.g. around first responder management), and also to reduce fine-grained locking in ReactiveCocoa.

    Note that the default behavior of Signal has not been changed — event serialization remains the default behavior.

  2. SignalProducer offers an unserialized variant via SignalProducer.unserialized(_:). (#797)

  3. TestScheduler can now advanced its clock by TimeInterval. (#828, kudos to @carsten-wenderdel)

Changes

  1. Signal and Properties now use fewer locks, which should translate into minor performance improvements. (#797)

  2. Fixed spelling error in Lifetime.Token class documentation. (#835, kudos to @ansonj)

  3. As a continued refactoring effort since ReactiveSwift 6.6.0, all unary Signal and SignalProducer operators have been migrated to a new internal representation.

    When debugging your application, the call stacks involving ReactiveSwift may now look cleaner, without the clutter of compiler-generated reabstraction thunks. See #799 for an example.