Skip to content

Releases: danvratil/qcoro

v0.10.0

05 Dec 20:25
v0.10.0
fa5bc42
Compare
Choose a tag to compare

What's Changed

  • Rethrow exceptions from QCoro::waitFor() (fixes #172) by @danvratil in #173
  • qcorowebsocket replace QWebSocket::error with QWebSocket::errorOccurred by @nmariusp in #174
  • Add Qt 6.5 to the CI matrix by @danvratil in #176
  • QCoro::connect: Fix bug in concept requirements by @jbbgameich in #179
  • Avoid deprecated QVERIFY_EXCEPTION_THROWN by @danvratil in #180
  • Make QCoroTask header contain only declarations by @danvratil in #183
  • QCoroAsyncGenerator test: workaround compiler optimizations that breaks tests by @danvratil in #189
  • Update pygments requirement from ~=2.15 to ~=2.16 by @dependabot in #184
  • Update pymdown-extensions requirement from ~=9.11 to ~=10.3 by @dependabot in #190
  • Append postfix for qmake compatibility by @shaan7 in #192
  • Add support for connecting signals with QPrivateSignal by @danvratil in #193
  • QCoroSignalListener: support connecting to private signals by @danvratil in #194
  • fix error: std::coroutine_traits isn't a class template by @sizeofvoid in #196
  • Update pymdown-extensions requirement from ~=10.3 to ~=10.4 by @dependabot in #195
  • Update pygments requirement from ~=2.16 to ~=2.17 by @dependabot in #197
  • Update pymdown-extensions requirement from ~=10.4 to ~=10.5 by @dependabot in #198

New Contributors

Full Changelog: v0.9.0...v0.10.0

v0.9.0

27 Apr 08:14
v0.9.0
e66e888
Compare
Choose a tag to compare

Release announcement

What's Changed

New Contributors

Full Changelog: v0.8.0...v0.9.0

v0.8.0

31 Jan 19:52
v0.8.0
8c0d2bb
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.7.0...v0.8.0

v0.7.0

19 Nov 23:03
Compare
Choose a tag to compare

Release Announcement

What's Changed

New Contributors

Full Changelog: v0.6.0...v0.7.0

v0.6.0

09 Jul 13:41
v0.6.0
f2ba28e
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.5.1...v0.6.0

QCoro 0.5.1

27 Apr 14:53
v0.5.1
5ada702
Compare
Choose a tag to compare
  • Fix build with GCC>=11.3 (#57, #58)
  • Fix ODR violation when building with GCC and LTO enabled (#59)

QCoro 0.5.0

25 Apr 21:22
v0.5.0
a873f35
Compare
Choose a tag to compare
  • .then() continuation for Task<T> (#39)
  • Fixed namespace scoping (#45)
  • Fixed QCoro::waitFor() getting stuck when coroutine returns synchronously (#46)
  • Fixed -pthread usage in CMake (#47)
  • Produce QMake config files (.pri) for each module (commit e215616)
  • Fix build on platforms where -latomic must be linked explicitly (#52)
  • Return Task<T> from all operations (#54)
  • Add QCoro wrapper for QThread (commit 832d931)
  • Many documentation updates

QCoro 0.4.0

06 Jan 19:31
v0.4.0
3f74afd
Compare
Choose a tag to compare
  • QCoro can now be built with Clang against libstdc++ (#38, #22)
  • Qt5 and Qt6 builds of QCoro are now co-installable (#36, #37)
  • Fixed early co_return not resuming the caller (#24, #35)
  • Fixed QProcess example (#34)
  • Test suite has been improved and extended (#29, #31)
  • Task move assignment operator checks for self-assignment (#27)
  • QCoro can now be built as a subdirectory inside another CMake project (#25)
  • Fixed QCoroCore/qcorocore.h header (#23)
  • DBus is disabled by default on Windows, Mac and Android (#21)

QCoro 0.3.0

11 Oct 07:05
v0.3.0
Compare
Choose a tag to compare
  • Added SOVERSION to shared libraries (#17)
  • Fixed building tests when not building examples (#19)
  • Fixed CI

QCoro 0.2.0

08 Sep 14:19
v0.2.0
c5b77f5
Compare
Choose a tag to compare

QCoro 0.2.0 contains brings major reorganization of the code. While there are no API-incompatible changes, users updating
from 0.1.0 will have to adjust #include statements for QCoro headers in their projects.

Library modularity

The code has been reorganized into three modules (and thus three standalone libraries): QCoroCore, QCoroDBus and
QCoroNetwork. QCoroCore contains the elementary QCoro tools (QCoro::Task, qCoro() wrapper etc.) and coroutine
support for some QtCore types. The QCoroDBus module contains coroutine support for types from the QtDBus module
and equally the QCoroNetwork module contains coroutine support for types from the QtNetwork module. The latter two
modules are also optional, the library can be built without them. It also means that an application that only uses
let's say QtNetwork and has no DBus dependency will no longer get QtDBus pulled in through QCoro, as long as it
only links against libQCoroCore and libQCoroNetwork. The reorganization will also allow for future
support of additional Qt modules.

Headers clean up

The include headers in QCoro we a bit of a mess and in 0.2.0 they all got a unified form. All public header files
now start with qcoro (e.g. qcorotimer.h, qcoronetworkreply.h etc.), and QCoro also provides CamelCase headers
now. Thus users should simply do #include <QCoroTimer> if they want coroutine support for QTimer.

The reorganization of headers makes QCoro 0.2.0 incompatible with previous versions and any users of QCoro will
have to update their #include statements. I'm sorry about this extra hassle, but with this brings much needed
sanity into the header organization and naming scheme.

Docs update

The documentation has been updated to reflect the reorganization as well as some internal changes. It should be
easier to understand now and hopefully will make it easier for users to start with QCoro now.

Internal API cleanup and code de-duplication

Historically, certain types types which can be directly co_awaited with QCoro, for instance QTimer has their
coroutine support implemented differently than types that have multiple asynchronous operations and thus have
a coroutine-friendly wrapper classes (like QIODevice and it's QCoroIODevice wrapper). In 0.2.0 I have unified
the code so that even the coroutine support for simple types like QTimer are implemented through wrapper classes
(so there's QCoroTimer now)