Releases: victimsnino/ReactivePlusPlus
v2.1.1 - Minor release to fix v2.1.0 issue
What's Changed
- fix TSAN by @victimsnino in #544
- fix dynamic copy/move by @victimsnino in #547
Full Changelog: v2.1.0...v2.1.1
v2.1.0
What's Changed
v2 branch is feature comparative with v1 for now according to #324!
This release brings a lot of new operators, resolves performance issues and resolves important issue related to current_thread vs new_thread usage (for now it is pretty safe to use current_thread scheduler inside new_thread scheduler in all possible cases). Also documentation was improved a bit, error messages should be a bit more clear for now in case of unsatisfied constraints.
New parts:
- Add serialized subject by @victimsnino in #502
- Add window_toggle operator by @victimsnino in #506
- Add replay_subject by @CorentinBT in #508
- Timer source by @CorentinBT in #513
- Time point timer by @CorentinBT in #514
- Distinct by @CorentinBT in #520
- Add tap operator by @CorentinBT in #521
- Add zip operator by @CorentinBT in #523
- Add on_error_resume_next operator by @CorentinBT in #528
- Finally operator by @CorentinBT in #531
Thanks to @CorentinBT for PRs with new operators.
Rest commits:
- minor concepts fixes by @victimsnino in #492
- Extend doc with examples by @victimsnino in #497
- Fix clang compilation by @victimsnino in #498
- Fix subscribe by @victimsnino in #500
- Minor cleanup by @victimsnino in #501
- Proper forwarding for subjects by @victimsnino in #503
- fix dynamic observer/observable by @victimsnino in #504
- reduce get_observer() calls by @victimsnino in #505
- Fix incorrect usage of subject_state by @victimsnino in #509
- Make static container without array by @victimsnino in #510
- simplify disposables in subjects by @victimsnino in #511
- Remove unclear
with_disposable
typetrait by @victimsnino in #512 - Hide disposables inside disposable_wrapper by @victimsnino in #515
- Auto dispose disposable in case of destruction if needed by @victimsnino in #518
- Extend window_toggle tests by @victimsnino in #507
- Improve error messages by @victimsnino in #522
- Add auto clang-format by @victimsnino in #524
- extend clang-tidy by @victimsnino in #525
- Update subjects by @victimsnino in #526
- Simpify disposables tests by @victimsnino in #527
- Add missing operators and sources fwd by @CorentinBT in #529
- Optionally use defer_for/defer_to by @victimsnino in #530
- Document dynamic_ versions by @victimsnino in #534
- Update doxy by @victimsnino in #535
- Fix classic race with atomics + mutex by @victimsnino in #536
- timeout operator by @victimsnino in #537
- Fix timeout type by @victimsnino in #540
- Own queue if needed by @victimsnino in #541
- Correctly share current_thread with new_thread by @victimsnino in #542
Full Changelog: v2.0.0...v2.1.0
v2.0.0 - First release for v2
What's Changed
First release for v2 - updated implementation of RPP with new zero-overhead principle and improved performance.
Main changes from v1 version:
- observer is not copyable by default -> allows to remove extra unused heap allocations for internal states
- subscription changed to disposable + extend disposable customization logic -> now observable forward disposable to observer IF NEEDED instead of forking subscription inside each operator without exact knowledge if it is actually needed
- operators now is freestanding functions to be used via pipe operator -> reduced amount of code inside observable and decoupled different parts of RPP
- most of the code can be totally optimized away or processed a much more faster. v2 benchmarks vs v1 benchmarks
- extended documentation and examples
Currently main goal is to implement rest missing operators to be fully feature-compatible with RxCpp.
Checkout readme.md and documentation for more details =)
v2 is still under active development
New Contributors
- @CorentinBT made their first contribution in #374
Full Changelog: v0.2.2...v2.0.0
v0.2.3 - last v1 release
Overview
Currently full focus transfered to v2 so releasing it as last stable version for v1 to be able better fecthing/downloading it
What's Changed
- Simplify a bit by @victimsnino in #321
- Bump actions/upload-artifact from 2 to 3 by @dependabot in #322
- Bump peter-evans/create-or-update-comment from 2 to 3 by @dependabot in #333
Full Changelog: v0.2.2...v0.2.3
v0.2.2
Overview:
- A few new operators added:
- timeout
- debounce
- reduce/average/min/max/sum/count
- Fixed issue related to usage of Trampoline scheduler (#277 #304) Same issue found in RxCpp but not fixed (ReactiveX/RxCpp#593)
- New behavior subject
- Dramatically improved documentation for operators
What's Changed
- Add timeout with fallback observable by @victimsnino in #302
- Add behavior subject by @victimsnino in #303
- Use queue based scheduling in Delay by @victimsnino in #305
- Add debounce operator by @victimsnino in #308
- Trampoline scheduler as default by @victimsnino in #314
- Make lift more readable by @victimsnino in #315
- Add combining operators (reduce, average, min, max, sum, count) by @victimsnino in #316
- Improve doxygen docs and make it much more detailed No1 by @victimsnino in #317
- Improve doxygen by @victimsnino in #318
Full Changelog: v0.2.1...v0.2.2
v0.2.1 - MacOS support!
Now RPP supports Apple Clang compiler!
v0.2.0 - Major release with QT support!
Changes since v0.1.0:
- Native support for QT!
- new module
rppqt
added - new source
from_signal
added to make observable which would emit items from provided QObject's signal - new
main_thread_scheduler
which would schedule actions to the main QApplication's thread to update GUI objects properly from the main thread! - Examples
- API Reference
- Article on medium - QT + ReactiveProgramming = ❤
- new module
- A lot of new operators were added since v0.1.0:
- take_last
- take_until
- last
- delay
- sample_with_time
- one_error_resume_next
- timeout
- Performance of some operators was improved again!
- Fixed some issues preventing Intellisense to show correct hints/tips
What's Changed
- nit: Remove some redundant empty lines by @tcw165 in #244
- Fix memory leaks by @victimsnino in #245
- Minor improvements by @victimsnino in #246
- Split CI to multiple jobs by @victimsnino in #247
- try to fix sonar by @victimsnino in #250
- Collect coverage on debug by @victimsnino in #251
- Speedup trampoline by @victimsnino in #252
- Add "take_last" by @victimsnino in #249
- nit: Give better name for on_subscribe functor. by @tcw165 in #254
- Simplify subscription by @victimsnino in #256
- Fix race condition by @victimsnino in #257
- nit: Name better for "lift" 's on_subscribe functor. by @tcw165 in #259
- Early unsubscribe by @victimsnino in #258
- Bump actions/checkout from 2 to 3 by @dependabot in #263
- Add "take_until" operator. by @tcw165 in #235
- Add more tests for trampoline scheduler by @tcw165 in #264
- Polish readability of code by @tcw165 in #262
- nit: Fix typos, line spacers, check items in doc by @tcw165 in #270
- Add "last" operator by @tcw165 in #223
- Fix take until by @victimsnino in #271
- Serialized subscriber by @victimsnino in #273
- Use spinlock in "partly-multithreaded" operators instead of heavy-mutex by @victimsnino in #274
- Add "delay" operator by @tcw165 in #269
- Polish "delay" by @victimsnino in #275
- Petri net executor example by @thorstink in #276
- Make test_scheduler more smart by @victimsnino in #278
- Add "sample_with_time" operator by @victimsnino in #280
- Add "on_error_resume_next" operator. by @tcw165 in #279
- Split lift by @victimsnino in #281
- Add sample with package by @victimsnino in #284
- Simplify templates for current_thread a bit by @victimsnino in #285
- Add timeout operator by @victimsnino in #287
- Fix intellisense by @victimsnino in #289
- RPPQT: QT support for RPP. Part 1: from_signal by @victimsnino in #291
- Fix issue with execution after unsubscribe by @victimsnino in #293
- Qt scheduler by @victimsnino in #292
- Qt release by @victimsnino in #294
- Qt example by @victimsnino in #296
New Contributors
- @thorstink made their first contribution in #276
Full Changelog: v0.1.0...v0.2.0
v0.1.4 - Minor fix for Intellisense
Fix VS Code intellisense for some operators
v0.1.3
What's Changed
- Add sample with package by @victimsnino in #284
- Simplify templates for current_thread a bit by @victimsnino in #285
- Add timeout operator by @victimsnino in #287
Full Changelog: v0.1.2...v0.1.3
v0.1.2
Overview:
This minor release adds a bunch of new operators:
- take_last
- take_until
- last
- delay
- sample_with_time
- on_error_resume_next
Some of the operators now use spinlock instead of mutex which should improve performance
Also it has a lot of internal changes to improve performance and overall quality of the code
What's Changed
- Minor improvements by @victimsnino in #246
- Split CI to multiple jobs by @victimsnino in #247
- try to fix sonar by @victimsnino in #250
- Collect coverage on debug by @victimsnino in #251
- Speedup trampoline by @victimsnino in #252
- Add "take_last" by @victimsnino in #249
- nit: Give better name for on_subscribe functor. by @tcw165 in #254
- Simplify subscription by @victimsnino in #256
- Fix race condition by @victimsnino in #257
- nit: Name better for "lift" 's on_subscribe functor. by @tcw165 in #259
- Early unsubscribe by @victimsnino in #258
- Bump actions/checkout from 2 to 3 by @dependabot in #263
- Add "take_until" operator. by @tcw165 in #235
- Add more tests for trampoline scheduler by @tcw165 in #264
- Polish readability of code by @tcw165 in #262
- nit: Fix typos, line spacers, check items in doc by @tcw165 in #270
- Add "last" operator by @tcw165 in #223
- Fix take until by @victimsnino in #271
- Serialized subscriber by @victimsnino in #273
- Use spinlock in "partly-multithreaded" operators instead of heavy-mutex by @victimsnino in #274
- Add "delay" operator by @tcw165 in #269
- Polish "delay" by @victimsnino in #275
- Petri net executor example by @thorstink in #276
- Make test_scheduler more smart by @victimsnino in #278
- Add "sample_with_time" operator by @victimsnino in #280
- Add "on_error_resume_next" operator. by @tcw165 in #279
- Split lift by @victimsnino in #281
New Contributors
- @thorstink made their first contribution in #276
Full Changelog: v0.1.1...v0.1.2