Skip to content

Releases: ned14/outcome

All tests passed 33bbceb7e655cb937d426e38fdbd6a43388039d7

Update status-code to latest.

Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:

All tests passed ad1823420c3de4e6aa28e6817c39e62f58b3917a

18 Aug 14:35
ad18234
Compare
Choose a tag to compare
Merge pull request #269 from BurningEnlightenment/dev/system-status-code-fixes

Fix inclusion of system provided status code

Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:

All tests passed c3dfcf4a6473e6a7770045ef41b3d82a95ce31da

Fix bad version in GA in last commit.

Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:

v2.2.4 Boost 1.80 release

16 Jun 23:42
Compare
Choose a tag to compare

v2.2.4 11th August 2022 (Boost 1.80) [release]

Enhancements:

  • Update to latest status-code in Experimental.Outcome, which has some breaking changes and important
    bug fixes.

  • Add {{<api "generator<T, Executor = void>" >}} to coroutine awaitables.

  • Add optional Executor template parameter to all Outcome awaitable types for improved compatibility
    with third party software such as ASIO.

  • To Experimental.Outcome add clone() for basic_result and basic_outcome types whose EC is
    a status_code. Erased status codes are move-only which makes the Result/Outcome type move-only, but
    they provide a cloning function, so this convenience function both clones the status code and propagates
    the spare storage so stack backtraces etc are also cloned.

  • Add type constraints to success() and failure() to disable them if they aren't available.

  • Work around a bug in GCC's C++ Coroutines implementation whereby one gets an ICE from gimplify_expr
    in any OUTCOME_CO_TRY taking even a mildly complex expression, which obviously is a showstopper.
    The work around assigns the failure type to a stack temporary before co_return-ing that
    temporary. Thanks to RVO pre-17 and copy elision since, this should add no runtime overhead.

Bug fixes:

#261
: Move assignable with move constructible not available did not work with void.


Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:

All tests passed f41376a02f315030ecd00d41a24854bda567faab

Work around a bug in GCC's C++ Coroutines implementation whereby one gets an ICE from `gimplify_expr`
in any `OUTCOME_CO_TRY` taking even a mildly complex expression, which obviously is a showstopper.
The work around assigns the failure type to a stack temporary before `co_return`-ing that
temporary. Thanks to RVO pre-17 and copy elision since, this should add no runtime overhead.

Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:

All tests passed f0089908d8e36223c981cd888c4d74222aef1dd5

- To Experimental.Outcome add `clone()` for `basic_result` and `basic_outcome` types whose `EC` is
a `status_code`. Erased status codes are move-only which makes the Result/Outcome type move-only, but
they provide a cloning function, so this convenience function both clones the status code and propagates
the spare storage so stack backtraces etc are also cloned.

- Add type constraints to `success()` and `failure()` to disable them if they aren't available.

Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:

All tests passed 2d2c444e36c2e8dfacfa758d3f3ffb180d9d27b2

Merge branch 'develop'

Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:

All tests passed 6fc57091e67ee075bd67ce1a7831eb6a914009a9

07 Apr 15:52
6fc5709
Compare
Choose a tag to compare

Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:

All tests passed 30340e17c63b7bacc23c24666cf5e1648477fd85


Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:

All tests passed 8aa81ac8d98c4b5fa2fc4a67fab1e7895dcead4d

Merge branch 'issue0261' into develop

Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies: