Skip to content

Releases: dotnet/reactive

Rx.NET v4.1.3

18 Feb 22:37
Compare
Choose a tag to compare

Changes:

See more
  • 44ef422 bump to 4.1.1
  • c4030c3 Remove old files
  • 38b55f4 Update and rename .azure-pipelines.ix.yml to azure-pipelines.ix.yml
  • 5a22d4d Update and rename .azure-pipelines.rx.yml to azure-pipelines.rx.yml
  • 57bcb6e Merge pull request #818 from danielcweber/rel/v4.1.1 [ #806, #807, #809, #816 ]
  • 2baca57 4.x: Fix accidental behavior change with Task-based Create methods completing when the body ends
  • 8de749f Added debugger display information to TestScheduler and HistoricalScheduler
  • 1a5abeb Emit a warning if the half-serializer ignores a value in ForwardOnNext.
  • 1990de7 Fix Zip(IEnumerable) NullReferenceException if a source completes immediately
  • 1888ca8 remove preview tag

This list of changes was auto generated.

Rx.NET v4.2.0-preview.63

12 Dec 18:22
9f8c209
Compare
Choose a tag to compare

Changes:

See more
  • cce7279 Add build number conditionals back
  • 35df133 Add PR triggers
  • 16b9b3a Merge pull request #837 from dotnet/ghuntley-patch-1
  • 8f08e20 housekeeping: recognise David Karnok and Daniel C. Weber
  • dd12663 Merge pull request #835 from dotnet/add-bolt
  • 0b06f10 add bolt
  • 6030249 add bolt
  • 617508a Merge pull request #832 from quinmars/using-finally-dispose-order
  • a54b724 Test disposal order of Finally
  • cb42def Save two allocations in the finally operator
  • df7763e Fix order of observer and resource disposal of the Using and Finally operator, reported in #829
  • 338741d Merge pull request #831 from olevett/patch-1
  • ed66e24 fix packageUrl property
  • b7ea7a2 Merge pull request #830 from shiftkey/patch-1
  • 95ec212 and this package too
  • a306e75 also update this URL
  • 1b2bc3f update project URL to be the GitHub repository
  • f7d668d Merge pull request #828 from akarnokd/Zip3Fix
  • 8dd6b3d Add comment to changes
  • bf2a314 4.x: Fix 3+ arg Zip not working with immediate sources
  • 418a037 Merge pull request #826 from dotnet/ixcleanup
  • 99a4697 add ps1 to editorconfig
  • 48e2cd8 Allow one line code bocks
  • 8e5fc3f Update package versions
  • 6ba99a7 Update filter
  • 18b9ea4 Update solution files
  • 1a0e09c Add define
  • 715df35 Update extras
  • 2bf683c Merge pull request #822 from danielcweber/ChangeExtensionsOfApiApprovalFiles
  • 4d72bb1 Merge pull request #820 from danielcweber/ReviewEventPatternSourceBase
  • 3862556 Exclude *.approved.cs-files from license header check.
  • 4ac22ea Change the extensions of approved ApprovalTest files for a better editing experience in the failure case.
  • 33c85e0 Use a dedicated implementation of IObserver instead of passing three delegates to Subscribe.
  • ab2e319 Remove unused allocation/assignment.
  • 9a6e8b2 Merge pull request #816 from akarnokd/FixCreateTaskInvalidCompletion
  • b2a449f 4.x: Fix accidental behavior change with Task-based Create methods completing when the body ends
  • 65be066 Merge pull request #809 from paulomorgado/scheduler-debugger-display
  • 72c3b7d Added debugger display information to TestScheduler and HistoricalScheduler
  • 5f9df73 Merge pull request #813 from dotnet/onovotny-patch-1
  • 4a495e0 Update README.md
  • 6095f0e Update and rename .azure-pipelines.rx.yml to azure-pipelines.rx.yml
  • 297fcda Update azure-pipelines.ix.yml
  • 12f30a7 Update and rename .azure-pipelines.ix.yml to azure-pipelines.ix.yml
  • a6a2b06 Update README.md
  • 47896dd Merge pull request #811 from dotnet/build-update
  • 94c57b4 fix paths
  • 30faa52 Consolidate pipelines
  • 4ed23b8 Merge pull request #807 from danielcweber/EmitWarningInHalfserializer
  • 7d2d4c4 Emit a warning if the half-serializer ignores a value in ForwardOnNext.
  • 1c4a708 Merge pull request #806 from akarnokd/ZipNull
  • 1b19cb6 Fix Zip(IEnumerable) NullReferenceException if a source completes immediately
  • 73b809e Merge pull request #805 from dotnet/update-build-yaml
  • a4613a3 switch to stable 2.1.400 sdk
  • 8432339 Merge pull request #804 from dotnet/add-drafter
  • 325a1b0 add drafter config
  • 0cb6612 bump ver

This list of changes was auto generated.

Rx.NET v4.1.2

10 Oct 15:50
Compare
Choose a tag to compare

NuGet: 4.1.2

>PM Install-Package System.Reactive -Version 4.1.2

Version 4.1.2 is a bugfix release for version 4.1.1.

Bugfixes

  • Pull 828: Fix 3+ arg Zip not working with immediate sources

Rx.NET v4.1.1

01 Oct 12:55
aeaf0e8
Compare
Choose a tag to compare

NuGet: 4.1.1

>PM Install-Package System.Reactive -Version 4.1.1

Version 4.1.1 is a bugfix release for version 4.1.0 with some minor enhancements for debugging and tracing.

Bugfixes

  • Pull 806: Fix Zip(IEnumerable) NullReferenceException if a source completes immediately
  • Pull 816: Fix accidental behavior change with Task-based Create methods completing when the body ends

Features

  • Pull 809: Added debugger display information to TestScheduler and HistoricalScheduler

Other notable (internal) changes

  • Pull 807: Emit a warning if the half-serializer ignores a value in ForwardOnNext.

Rx.NET v4.1.0

13 Aug 15:14
Compare
Choose a tag to compare

NuGet: 4.1.0

>PM Install-Package System.Reactive -Version 4.1.0

Version 4.1.0 is an enhancement version over 4.0.0 by keeping the public API and extending it additively as well as having significant internal changes for better performance via less allocation, less indirection and less locking on the existing components. Note that the codebase now always uses the latest C# language features.

API enhancements

  • Pull 486: Add the RetryWhen operator.
  • Pull 497: Add the IConnectableObservable.AutoConnect() operator.
  • Pull 536: Add the RepeatWhen operator.
  • Pull 133: Add a RefCount overload supporting a grace period before disconnecting.
  • Pull 567: Add the Append and Prepend operators.
  • Pull 612: Add the TakeUntil(Func<T, bool>) operator.

Performance enhancements

  • Pull 504: Improve the logic of AsyncLock.
  • Pull 505: Improve and fix CompositeDisposable.
  • Pull 491: Optimize Concat(IObservable<IObservable<T>>).
  • Pull 499: Make TailRecursiveSink lock-free and have less allocations.
  • Pull 506: Improve AutoDetachObserver memory footprint.
  • Pull 508: Replace ObserveOn(IScheduler) internals with a lock-free algorithm.
  • Pull 510: Improve AsyncSubject by using lock-free methods.
  • Pull 511: Improve Subject observer tracking.
  • Pull 512: Improve Amb with lock-free algorithm.
  • Pull 513: Make Never<TResult> singleton.
  • Pull 535: SerialDisposable to use lock free methods.
  • Pull 544: Make plain Empty<T>() a singleton.
  • Pull 545: Dedicated Amb implementation for arrays and enumerables.
  • Pull 550: Rework TakeUntil with lock-free methods.
  • Pull 500: Avoid some closure allocations and enable delegate caching in the System.Reactive.Concurrency namespace.
  • Pull 549: Deanonymize operators.
  • Pull 556: Use the helper methods for IDisposable-fields, avoid repeating code patterns.
  • Pull 551: Rework SkipUntil with lock-free methods.
  • Pull 546: Reimplement Timeout(TimeSpan) with lock-free methods.
  • Pull 566: BasicProducer/Producer: Save the allocation of a closure and allow delegate caching in case scheduling on CurrentThreadScheduler is required.
  • Pull 558: Use Schedule calls with state.
  • Pull 568: Use Disposable helper methods were applicable.
  • Pull 574: Make RefCountDisposable lock-free.
  • Pull 575: Rework subscription in Producer such that all Sinks set the upstream disposable by themselves.
  • Pull 561: Inline disposability into ScheduledItem.
  • Pull 578: Inline StableCompositeDisposable.Create into the Sinks.
  • Pull 580: Inline Disposable.Create.
  • Pull 583: Use the stateful overload of AsyncLock in some places to save allocation of closures and allow delegate caching.
  • Pull 586: Save more allocations of closures and enable more delegate caching.
  • Pull 592: Inline AnonymousObserver use at places.
  • Pull 591: Save even more allocations.
  • Pull 590: Improve blocking First & Last operators.
  • Pull 593: Inline SerialDisposable usages.
  • Pull 599: CurrentThreadScheduler fast path Schedule.
  • Pull : Add dedicated class based implementations for Append and Prepend.
  • Pull 602: An allocation in BasicProducer.SubscribeRaw can be saved in most cases.
  • Pull 603: Align safe observers.
  • Pull 604: Rework SelectMany.
  • Pull 610: Have Timeout(Absolute|Selector) use lock-free methods.
  • Pull 611: Have TakeUntil(time) use lock-free methods.
  • Pull 617: Make Scheduler.Recursive more uniform and allocate less.
  • Pull 619: Save an allocation during inner observer creation in Switch.
  • Pull 620: Improve TailRecursiveSink with less allocations.
  • Pull 632: Save an allocation in ThreadPoolScheduler.PeriodicTimer.
  • Pull 635: Save allocations in Zip.
  • Pull 637: Less allocations in CombineLatest.
  • Pull 638: Review Throttle, save some allocations.
  • Pull 639: Review Merge, save some allocations.
  • Pull 640: Save some more allocations in SelectMany.
  • Pull 641: Save allocations of SingleAssignmentDisposables in Join.
  • Pull 642: Less allocations in SubscribeOnCtxObservable.
  • Pull 643: Save some allocations in ToTaskObserver.
  • Pull 644: Save some allocations in ToObservable.
  • Pull 647: Review JoinObserver.
  • Pull 648: Review GroupJoin.
  • Pull 650: Use UserWorkItem in ThreadPoolScheduler.Windows and save some allocations.
  • Pull 651: Use stateful AnonymousDisposable where appropriate.
  • Pull 653: Review Window operator.
  • Pull 654: Review Buffer operator.
  • Pull 655: Review Delay operator.
  • Pull 656: Review GroupByUntil operator.
  • Pull 657: Save the allocation of a SingleAssignmentDisposable in GetEnumerator.
  • Pull 658: Save some closure allocations and allow delegate caching in Generate.
  • Pull 664: Save allocations of closures and allow delegate caching in Windows code that schedules async work.
  • Pull 665: Improve Buffer via dedicated exact/skip implementations.
  • Pull 674: Improve Generate() internals.
  • Pull 676 : Improve PushPullAdapter+Sink dispose management.
  • Pull 684: Improve the performance of Range().
  • Pull 688: Improve the performance of Repeat().
  • Pull 697: Improve the structure and recursive scheduling of TakeLast().
  • Pull 700: Improve Timer() scheduler handling.
  • Pull 705: Improve the performance of ToObservable().
  • Pull 722: Save some allocations and allow delegate caching in ScheduleAsync.
  • Pull 744: Review QueryLanguage.Creation.
  • Pull 758: Save one static per-generic-class field.
  • Pull 760: Review and improve TaskObservableExtensions.
  • Pull 762: Improve Return/Throw/Append/Prepend overhead with ImmediateScheduler.
  • Pull 763: Reduce N-ary StableCompositeDisposable.Create overhead via dedicated implementation.
  • Pull 764 : Append/Prepend some more optimizations.
  • [Pull 767](#767...
Read more

Rx.NET v4.1.0-preview.330

03 Aug 19:14
39ca675
Compare
Choose a tag to compare
Pre-release

NuGet: 4.1.0-preview.330

>PM Install-Package System.Reactive -Version 4.1.0-preview.330

Version 4.1.0-preview.330 is an enhancement version over 4.0.0 by keeping the public API and extending it additively as well as having significant internal changes for better performance via less allocation, less indirection and less locking on the existing components. Note that the codebase now always uses the latest C# language features.

API enhancements

  • Pull 486: Add the RetryWhen operator.
  • Pull 497: Add the IConnectableObservable.AutoConnect() operator.
  • Pull 536: Add the RepeatWhen operator.
  • Pull 133: Add a RefCount overload supporting a grace period before disconnecting.
  • Pull 567: Add the Append and Prepend operators.
  • Pull 612: Add the TakeUntil(Func<T, bool>) operator.

Performance enhancements

  • Pull 504: Improve the logic of AsyncLock.
  • Pull 505: Improve and fix CompositeDisposable.
  • Pull 491: Optimize Concat(IObservable<IObservable<T>>).
  • Pull 499: Make TailRecursiveSink lock-free and have less allocations.
  • Pull 506: Improve AutoDetachObserver memory footprint.
  • Pull 508: Replace ObserveOn(IScheduler) internals with a lock-free algorithm.
  • Pull 510: Improve AsyncSubject by using lock-free methods.
  • Pull 511: Improve Subject observer tracking.
  • Pull 512: Improve Amb with lock-free algorithm.
  • Pull 513: Make Never<TResult> singleton.
  • Pull 535: SerialDisposable to use lock free methods.
  • Pull 544: Make plain Empty<T>() a singleton.
  • Pull 545: Dedicated Amb implementation for arrays and enumerables.
  • Pull 550: Rework TakeUntil with lock-free methods.
  • Pull 500: Avoid some closure allocations and enable delegate caching in the System.Reactive.Concurrency namespace.
  • Pull 549: Deanonymize operators.
  • Pull 556: Use the helper methods for IDisposable-fields, avoid repeating code patterns.
  • Pull 551: Rework SkipUntil with lock-free methods.
  • Pull 546: Reimplement Timeout(TimeSpan) with lock-free methods.
  • Pull 566: BasicProducer/Producer: Save the allocation of a closure and allow delegate caching in case scheduling on CurrentThreadScheduler is required.
  • Pull 558: Use Schedule calls with state.
  • Pull 568: Use Disposable helper methods were applicable.
  • Pull 574: Make RefCountDisposable lock-free.
  • Pull 575: Rework subscription in Producer such that all Sinks set the upstream disposable by themselves.
  • Pull 561: Inline disposability into ScheduledItem.
  • Pull 578: Inline StableCompositeDisposable.Create into the Sinks.
  • Pull 580: Inline Disposable.Create.
  • Pull 583: Use the stateful overload of AsyncLock in some places to save allocation of closures and allow delegate caching.
  • Pull 586: Save more allocations of closures and enable more delegate caching.
  • Pull 592: Inline AnonymousObserver use at places.
  • Pull 591: Save even more allocations.
  • Pull 590: Improve blocking First & Last operators.
  • Pull 593: Inline SerialDisposable usages.
  • Pull 599: CurrentThreadScheduler fast path Schedule.
  • Pull : Add dedicated class based implementations for Append and Prepend.
  • Pull 602: An allocation in BasicProducer.SubscribeRaw can be saved in most cases.
  • Pull 603: Align safe observers.
  • Pull 604: Rework SelectMany.
  • Pull 610: Have Timeout(Absolute|Selector) use lock-free methods.
  • Pull 611: Have TakeUntil(time) use lock-free methods.
  • Pull 617: Make Scheduler.Recursive more uniform and allocate less.
  • Pull 619: Save an allocation during inner observer creation in Switch.
  • Pull 620: Improve TailRecursiveSink with less allocations.
  • Pull 632: Save an allocation in ThreadPoolScheduler.PeriodicTimer.
  • Pull 635: Save allocations in Zip.
  • Pull 637: Less allocations in CombineLatest.
  • Pull 638: Review Throttle, save some allocations.
  • Pull 639: Review Merge, save some allocations.
  • Pull 640: Save some more allocations in SelectMany.
  • Pull 641: Save allocations of SingleAssignmentDisposables in Join.
  • Pull 642: Less allocations in SubscribeOnCtxObservable.
  • Pull 643: Save some allocations in ToTaskObserver.
  • Pull 644: Save some allocations in ToObservable.
  • Pull 647: Review JoinObserver.
  • Pull 648: Review GroupJoin.
  • Pull 650: Use UserWorkItem in ThreadPoolScheduler.Windows and save some allocations.
  • Pull 651: Use stateful AnonymousDisposable where appropriate.
  • Pull 653: Review Window operator.
  • Pull 654: Review Buffer operator.
  • Pull 655: Review Delay operator.
  • Pull 656: Review GroupByUntil operator.
  • Pull 657: Save the allocation of a SingleAssignmentDisposable in GetEnumerator.
  • Pull 658: Save some closure allocations and allow delegate caching in Generate.
  • Pull 664: Save allocations of closures and allow delegate caching in Windows code that schedules async work.
  • Pull 665: Improve Buffer via dedicated exact/skip implementations.
  • Pull 674: Improve Generate() internals.
  • Pull 676 : Improve PushPullAdapter+Sink dispose management.
  • Pull 684: Improve the performance of Range().
  • Pull 688: Improve the performance of Repeat().
  • Pull 697: Improve the structure and recursive scheduling of TakeLast().
  • Pull 700: Improve Timer() scheduler handling.
  • Pull 705: Improve the performance of ToObservable().
  • Pull 722: Save some allocations and allow delegate caching in ScheduleAsync.
  • Pull 744: Review QueryLanguage.Creation.
  • Pull 758: Save one static per-generic-class field.
  • Pull 760: Review and improve TaskObservableExtensions.
  • Pull 762: Improve Return/Throw/Append/Prepend overhead with ImmediateScheduler.
  • Pull 763: Reduce N-ary StableCompositeDisposable.Create overhead via dedicated implementation.
  • Pull 764 : Append/Prepend some more optimizations.
  • [Pull ...
Read more

Ix.NET v3.2.0

11 Jul 14:10
Compare
Choose a tag to compare

Main enhancement is adding a .NET Standard 2.0 version, to minimize the dependency graph and improve build times.

System.Interactive fixes a bug with .NET Core 2.0 due to TakeLast and SkipLast being added to the BCL on that platform.

Ix.NET v3.2.0-preview.635

03 Jul 15:30
Compare
Choose a tag to compare
ixnet-v3.2.0-preview.635

Fix code coverage

Ix.NET v3.2.0-preview.620

03 Jul 02:55
ee70f99
Compare
Choose a tag to compare
Merge pull request #734 from dotnet/ix-refs

Ix Reference Assemblies

Rx.NET v4.1.0-preview.84

18 Jun 23:46
Compare
Choose a tag to compare

NuGet: 4.1.0-preview.84

>PM Install-Package System.Reactive -Version 4.1.0-preview.84

Version 4.1.0 is an enhancement version over 4.0.0 by keeping the public API and extending it additively as well as having significant internal changes for better performance via less allocation, less indirection and less locking on the existing components. Note that the codebase now uses C# 7.1 language features.

API enhancements

  • Pull 486: Add the RetryWhen operator.
  • Pull 497: Add the IConnectableObservable.AutoConnect() operator.
  • Pull 536: Add the RepeatWhen operator.
  • Pull 133: Add a RefCount overload supporting a grace period before disconnecting.
  • Pull 567: Add the Append and Prepend operators.

Performance enhancements

  • Pull 504: Improve the logic of AsyncLock.
  • Pull 505: Improve and fix CompositeDisposable.
  • Pull 491: Optimize Concat(IObservable<IObservable<T>>).
  • Pull 499: Make TailRecursiveSink lock-free and have less allocations.
  • Pull 506: Improve AutoDetachObserver memory footprint.
  • Pull 508: Replace ObserveOn(IScheduler) internals with a lock-free algorithm.
  • Pull 510: Improve AsyncSubject by using lock-free methods.
  • Pull 511: Improve Subject observer tracking.
  • Pull 512: Improve Amb with lock-free algorithm.
  • Pull 513: Make Never<TResult> singleton.
  • Pull 535: SerialDisposable to use lock free methods.
  • Pull 544: Make plain Empty<T>() a singleton.
  • Pull 545: Dedicated Amb implementation for arrays and enumerables.
  • Pull 550: Rework TakeUntil with lock-free methods.
  • Pull 500: Avoid some closure allocations and enable delegate caching in the System.Reactive.Concurrency namespace.
  • Pull 549: Deanonymize operators.
  • Pull 556: Use the helper methods for IDisposable-fields, avoid repeating code patterns.
  • Pull 551: Rework SkipUntil with lock-free methods.
  • Pull 546: Reimplement Timeout(TimeSpan) with lock-free methods.
  • Pull 566: BasicProducer/Producer: Save the allocation of a closure and allow delegate caching in case scheduling on CurrentThreadScheduler is required.
  • Pull 558: Use Schedule calls with state.
  • Pull 568: Use Disposable helper methods were applicable.
  • Pull 574: Make RefCountDisposable lock-free.
  • Pull 575: Rework subscription in Producer such that all Sinks set the upstream disposable by themselves.
  • Pull 561: Inline disposability into ScheduledItem.
  • Pull 578: Inline StableCompositeDisposable.Create into the Sinks.
  • Pull 580: Inline Disposable.Create.
  • Pull 583: Use the stateful overload of AsyncLock in some places to save allocation of closures and allow delegate caching.
  • Pull 586: Save more allocations of closures and enable more delegate caching.
  • Pull 592: Inline AnonymousObserver use at places.
  • Pull 591: Save even more allocations.
  • Pull 590: Improve blocking First & Last operators.
  • Pull 593: Inline SerialDisposable usages.

Bugfixes

  • Pull 569: Fix PriorityQueue non-first element removal.
  • Pull 579: Fix timed delay hangs with dotCover and the DefaultScheduler.
  • Pull 528: Fix PeriodicTimerSystemClockMonitor concurrency & failure behavior.
  • Pull 560: Fix Delay hanging due to wrong disposable-chain management.
  • Pull 421: EventLoopScheduler set _nextItem to null on Tick to avoid leaks.
  • Pull 514: Fix ActivePlan crashing with self-joins.
  • Pull 529: Have the ControlScheduler do more eager disposed checks.
  • Pull 507: Fix PriorityQueue to not share a item ordering helper index.
  • Pull 505: Fix CompositeDisposable concurrency.

Documentation changes

  • Pull 480: Update RxJS reference.
  • Pull 538: Fix CS1711: The type parameter comes from the outer class, where it is already documented. No need to document it here again.
  • Pull 543: Fix XML document spelling errors.
  • Pull 519: Updated links in README.md.
  • Pull 589: Add missing state XML comment to the new AsyncLock methods.

Other notable (internal) changes

  • Pull 527: Refactor Linq operator unit tests into separate files/classes.
  • Pull 523: Fix CombineLatest and Zip code generator templates. (#)
  • Pull 515: Reference System.ValueTuple for further reduction of allocations, use C# 7.1 to use value tuples without the need for explicit tuple component naming.
  • Pull 554: Enhance AsyncLock to support passing state.
  • Pull 493: Strengthen the concept of the Sink class.
  • Pull 482: Add public API approval tests for Rx.NET.
  • Pull 548: Avoid repeating code patterns in the System.Reactive.Disposables-namespace.
  • Pull 518: Add a new extension method for IScheduler that allows to schedule an Action<TState> and pass a corresponding state object.
  • Pull 555: Resolve the source of confusion that is DefaultDisposable.
  • Pull 564: Rename and reorder the signature of the extension for schedule that takes an Action<TState> and a state.
  • Pull 537: Update the HomoIcon tool to reflect new repository structure and manual code changes.
  • Pull 563: Add internal ExceptionHelper & HalfSerializer lock-free tools.
  • Pull 572: Use HalfSerializer extensions.
  • Pull 588: Check for license header and add them if missing.
  • Pull 595: Add reflection-based Argument-Null validation test.
  • Pull 601: Use LastIndexOf instead of IndexOf in LicenseHeaderTest.
  • Pull 597: Capture the concept of a "safe observer".
  • Pull 603: Align safe observers.