- [improved] support of Swift 5.0
- [changed]
Fallibletype is a typedef toResultfor Swift 5.0 - [added]
Channelconvenience constructors - [added] a few reactive properties for AppKit
- [fixed]
DynamicPropertystorage synchronization - [fixed] bindings memory issue
- [changed] default Swift version has been updated to 4.2. 4.0-4.1 is dropped due to changes in UIKit enums naming
- [improvement] tested against latest Swift 5.0 build. No errors, no warnings, tests are passing
- [improvement] annoying warnings fixed
- [improvement] minor improvements of documentation
- [fixes] nested executes using the same executor
Executorcould be optimized into on-stack execution instead of dispatch_async call. That is a direct cause of stack overflow. Avoiding that by limiting amount of nested on-stack executions.
- [changes] Swift 3.0 dropped
- [gardening] fixed multiple warnings
- [performance]
FutureandPromiseperformance degradation detected. Performance fixed and improved
- [improved] internal implementation of linked list
- [fixed] compatibility issue SR-5998 revealed by improvement of type checker
- [changed]
DispatchSemaphore-based fair locking replaced withpthread_mutex_t-based locking - [improved] code style improved with SwiftLint (once again)
- [changed] lock-free implementation of
FutureandCancellationTokenchanged to regular locking-based - [fixed] multiple Xcode 9.0 beta 5 compile time issues
- [added] documentation generation infrastructure
- [added] primitive subscription chaining (
future.onSuccess { /* handle success */ }.onFailure { /* handle failure */ }) - [improved] parallel CI jobs
- [improved]
Promiseinternals updated - [fixed] warnings and erros introduced by Swift 4 toolchain
- [improved] compile time
- [improved] code style improved with SwiftLint
- [added] network reachability
- [improved] travis-ci config
- [fixed] potential leak of handlers in
Promise - [fixed] EventSource.first
- [fixed] EventSource.last
- [fixed] multiple flaky unit tests
- try execute methods added. They provide an ability to retry async execution multiple times
- convenience initializers for
Executoradded alongside with constructors to reduce confusion in some cases - EventSource.skip implemented
- EventSource.take implemented
- EventSource.contains implemented
- EventSource.suspendable implemented
- better test coverage
CancellationTokenfixed and improved
staticCastforFutureandChanneladded- future to channel and channel to future transformations added
CacheandCachableValueconvenience initializers improved- fixing major issue with
asyncMap(),asyncFlatMap(),asyncReduce(),joined() - fixing issue with inconsistent lifetime of the
Futurereturned from contextual transformation ofCompleting - adding ability to denote transformation as impure an apply different lifetime management for transformations
- documentation improved
TimerChannelrefactored to improve quality of implementation and to add flexibility
- documentation updated
CacheandCachedValueimprovedURLSessionextensions updatedFuture.flatMapimprovedChannel.extractAll()refactored to provideFuture<(updates: [Update], completion: Fallible<Success>)>Channel.waitForAll()refactored and extended- Major fixes of
CacheandCachableValue - Carthage support
- adding ability to nest synchronously calls on the same executor instead of making async dispatches all the time
- naming improved
- infrastructure build up on protocols has been build
- major reactive programming improvements:
ReactiveProperties, convenience extensions added to most popular iOS controls, bindings added Sink,DynamicProperty,ProducerProxyadded- fixing and improving memory management/lifetime management of
Channel
- x32 targets fixed
ProducerProxyadded- binding
ChanneltoProducerProxyadded - more generic
Channel.distinct()added
- improvements using
OptionalAdaptor - fixed locking within
CachableValue - fixes of
ObjCInjectedRetainer - adding unwrapping methods to
FutureandChannel - making more obvious behavior of Channel.flatMap a default one
- introducing
ObservationSessionthat helps to enable and disable multiple observations in a convenient way. This is very useful for enabling and disabling observation withinviewWillAppearandviewDidDisappear
- continue renaming
- adding convenience methods for making completed futures and channels
- adding convenience
typealias Updating<T> = Channel<T, Void>,typealias Updatable<>T = Producer<T, Void> - adding OptionalAdaptor that helps to add methods for primitives parametrized with optionals
- major renaming has been done. Using more consistent names
- adding 5 various behaviors to flatMap that transforms update to future
- adding descriptions (
CustomStringConvertible,CustomDebugStringConvertible) forChannel,Future,Fallible,Either - introducing multirun tests in order to fix flaky tests
Channelis nowSequence- fixes of
Channel
- fixing issues in
ReleasePoolandChannel - improving performace
- fixing code style
- adding
reduce(::)method to channel - convenience method for leaving group
- fixing
asyncMaps and improving tests - fixing compatibility with current swift master
- taking advantage of ability to make derived serial executor in order to avoid using locks
- operations on channels added: first(where:), last(where:), zip(_:, _:)
- fixing rare issue that could cause early releases of instances that depend on futures and channels
- putting back xcodeproj
- fixing documentation references
- documentation improved
- zip of fallibles added
- operation on channels: merge, sample, debounce
- better tests
- improving unit tests
- fixing edge cases of memory management
- documentation improvements
- ActionChannels to NSControl and UIControl that catch actions and treat them as update values
- turning down performance tests
- fixing critical issues of lifetime of
Futures andChannels
- AsyncNinja was turned back to a single module structure: no need for objc any more
- AsyncNinja was split into multiple modules
- previously deprecated
Pipewas removed: useChannelwith iterators instead - making key-value observing channel added
- fix: cancellation check in convenience methods of
URLSession - a bit of documentation about
Cacheadded - more convincing readme
- fix:
Channelcan callback ononUpdatetwo times for first update - fix: non-contextual
on<Event>assertion failure
- better readme and documentation
- default buffer size of
Producerchanged to 1
- better documentation
- adding implicit documentation
- fixes of flaky tests
- deprecating
Pipe: useChannelwith iterators instead
- support of CocoaPods added
- travis integration
- better documentation
- fixes of flaky tests
- fixing poorly named methods
- better documentation
- improving methods that defer
- improving methods that flatten
- non-contextual
on<Event>methods added toFutureandChannel
ConstantChannel(implementation ofChannelwith predefined values) disabled- more convenience methods
- more tests
Channel- non-draft
- buffering (our solution for hot/cold channels)
- synchronous iteration
InfiniteChannelremovedCache(draft)- performance improvements
- more tests
Pipe[draft] primitive added- renamed primitives
Channel->InfiniteChannelFiniteChannel->Channel
- pore transformers
- performance improvements
- primitives lifetime fixes
- more tests
- Available primitives:
FutureChannel(draft)FiniteChannel(draft)FallibleExecutorExecutionContext
- Initial implementation