Skip to content

Releases: ReactiveX/RxCpp

Prep for breaking change in #562

23 Nov 15:30
Compare
Choose a tag to compare

purpose

This release is going to seed a branch to track this state for those that do not wish to adopt the breaking changes in #562

What's Changed

  • Remove static from observe_on_run_loop by @lebdron in #449
  • group_by support DurationSelector by @diorcety in #447
  • adding test for nocompare observe_on by @kirkshoop in #448
  • fix blocking_observable::subscribe by @kirkshoop in #453
  • fix #390 by @yatli in #454
  • Fix doc target missing declarations errors by @gsauthof in #464
  • Update ide build to Visual Studio 2017 by @zwcloud in #466
  • Add support for compiling rxcpp with -fno-exceptions by @iam in #456
  • fixes for replay and moved-from container not being empty by @kirkshoop in #467
  • Small fixes. by @besser82 in #476
  • README: fix cmake generation snippet for clang/linux by @iam in #479
  • cmake: Fix 'make' generator targets by @iam in #480
  • rxcpp: Fix data race in composite_subscription by @iam in #481
  • removing a pedantic compile warning by @thorstink in #488
  • operators: Add ref_count(other) operator overload. by @iam in #485
  • Fix data race in run loop usage by @lebdron in #486
  • Fix synchronize lock and recursion data race by @lebdron in #493
  • dox: fix dead rxmarbles link by @NeroBurner in #495
  • Fix address sanitizer issue in new_worker (rx-newthread.hpp) by @luckychess in #497
  • removed constexpr to support older VC compilers. by @joe2018Outlookcom in #504
  • make find_package(rxcpp CONFIG) work through exporting TARGETS by @Exctues in #509
  • Add instructions to install RxCpp using vcpkg by @vicroms in #510
  • Observable forward declaration header by @lebdron in #511
  • Changed values_from template parameter to not cast. by @tinkerbeast in #521
  • add this to captures due to c++20 deprecation by @kirkshoop in #527
  • Corrected rare deadlock condition on observable.as_blocking().subscribe() by @quetzalcoatl in #543
  • Fixed build interface include directories for CMake projects by @spreagtha in #536
  • Fix std::result_of removed in C++20 by @Asaaj in #551
  • Include in rx-includes.hpp by @kamleshbhalui in #547
  • [FixCrash][Perfomance]Remove unnecessary "this" capture for subjects to prevent crashes for stack subjects variables. by @victimsnino in #561

Full Changelog: v4.1.0...v4.1.1

A New Home

28 May 03:52
Compare
Choose a tag to compare

the move

The major change this release is that the RxCpp repo moved to the ReactiveX org on Github

changes

Thank you to the generous contributors who reported issues and submitted PR's

Replace commented out noexcept with macro
Replace shared_ptr with move ctor
Fix exit_recursed_scope_type dtor cleaning requestor early
Remove unused variable and captures in doxygen/buffer.cpp
@lebdron

Update README.md
@kirkshoop

Fix '-Wignored-qualifiers'
@besser82

Add: Skip_while operator (#418) …
Add rx-merge-delay-error operator (#417) …
@nitrram

Fix rxcpp::observable<>::range() when T is unsigned type
Fix rxcpp::observable<>::from() when T is non-default constructable
@lebdron

remove unused local
@kirkshoop

Fix clang-trunk -Wunused-lambda-capture warnings
Correct prefix for test executables (#398)
@ericniebler

shutdown event loop threads (#394) …
@kirkshoop

Add 'include' to the install path of the headers
@petoknm

Typo in rx-never documentation …
Daniel Rees

std::unexpected has been deprecated
@kirkshoop

fix timeout when no items are emitted (#387)
@gchudnov

disambiguate onerror from onnext (#383)
@kirkshoop

Add get_subscription() for subject (#381)
@wutiantong

Update DeveloperManual.md (#380) …
@thepont

subscribe in reverse order to observables (#375)
@maiermic

fix async lifetime in window_toggle (#372)
filterimprovement (#371) …
@kirkshoop

reversed subscription order
@anatoly-spb

appveyor vs2017 image update (#365) …
@gchudnov

ready to roar!

23 Mar 02:44
Compare
Choose a tag to compare

This release of rxcpp is ready to use in production. please try it out and report issues!

rx lite complete!

All the decoupling of existing operators has been completed, thanks almost entirely to @gchudnov. This has also improved the doxygen output by sharing the docs across the observable methods and free function options for each operator.

bug fixes

breaking changes

repeat(0) and retry(0) erroneously resulted in infinite subscriptions.
@elelel contributed fixes and a refactor that makes repeat(0) and retry(0) result in no subscription and repeat() and retry() result in infinite subscriptions.

new stuff

Rx Lite!

25 Nov 20:54
Compare
Choose a tag to compare

A bug fix in group_by changed the way that groups end. see #249 for the explanation. code using group_by might have to add a take or take_until to get the same behavior that it had before.

A bug fix in zip changed the way that it ends. see #236 for the explanation.

Rx Lite!

@gchudnov and @kirkshoop embarked on a journey to change how operators are structured.

The new structure supports Rx Lite. Rx Lite does not include all operators by default. Each cpp file will include just the operators that it needs. There are static asserts to report missing includes.

To opt into Rx Lite

#include <rxcpp/rx-lite.hpp>
#include <rxcpp/operators/rx-filter.hpp>
#include <rxcpp/operators/rx-group_by.hpp>

In clang missing includes look like this

[ 44%] Building CXX object build/test/CMakeFiles/rxcpp_test_window.dir/operators/window.cpp.o
In file included from /Users/kirk/source/rxcpp/Rx/v2/test/operators/window.cpp:1:
In file included from /Users/kirk/source/rxcpp/Rx/v2/test/operators/../test.h:10:
In file included from /Users/kirk/source/rxcpp/Rx/v2/src/rxcpp/rx-lite.hpp:9:
In file included from /Users/kirk/source/rxcpp/Rx/v2/src/rxcpp/operators/../rx-includes.hpp:179:
/Users/kirk/source/rxcpp/Rx/v2/src/rxcpp/rx-operators.hpp:234:9: error: static_assert failed "missing include: please
      #include <rxcpp/operators/rx-reduce.hpp>"
        static_assert(Included::value, "missing include: please #include <rxcpp/operators/rx-reduce.hpp>");
        ^             ~~~~~~~~~~~~~~~

The new structure improves documentation by keeping all the code and documentation for the operator in the file for that operator and referring to the docs from observable<>

The new structure ensures that the observable<>. and operator| overloads for each operator are identical.

Not all operators have been moved to Rx Lite. This means that using Rx Lite in this release might cause build breaks (static asserts for missing includes) when moving to subsequent releases of Rx that have moved more operators to Rx Lite. This can be manually averted by including the needed headers now, but without the static asserts it will be hard to prove that the used operators are included.

thanks to all the contributors!

@gchudnov
@alexandrebourlon
@marcobusemann
@wutiantong
@diorcety
@xunilrj

@d-led
@maiermic
@thedillonb
@frankinshtein
@VorpalBlade
@ildarsharafutdinov
@helgoboss
@srdjantot
@sthekepat
@hoffis
@martinfinke

new operators!

debounce
exists
contains
any
timeout
with_latest_from
all
timestamp
window_toggle
take_last
skip_last
time_interval
switch_if_empty
default_if_empty
sequence_equal

Refinment

11 Mar 03:45
Compare
Choose a tag to compare

This release fixes many bugs and adds more operators.

There were many contributors to this release.

Thanks to:

Operators added:

  • delay
  • distinct
  • element_at
  • ignore_elements
  • on_error_resume_next
  • sample_time
  • tap

Time!

24 Jun 05:31
Compare
Choose a tag to compare

Many new time related operators and fixes.

iOS support- uses pthread for thread-local storage when required.
doxygen docs
run_loop scheduler
timer source
amb, buffer, replay, window, zip, pairwise operators

Thanks to all these fine contributors! @ValeryKopylov, @shivashankarp, @BenPope, @cirla, @igor-mikushkin, @arBmind