Commit Graph

979 Commits

Author SHA1 Message Date
Jenkins nedprod CI
0ba8ce6ba7 Merging commit ned14/outcome@7b24d3dd96:
Merged from develop branch as CDash reports all green
2019-12-01 13:32:18 +00:00
Jenkins nedprod CI
75145a9300 Merging commit ned14/outcome@fabd0e1b79:
Merged from develop branch as CDash reports all green
2019-11-30 16:58:23 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d2fb8cb661
Fix issue #211 where trunk GCC does not like how Outcome uses Concepts. 2019-11-30 16:49:38 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a15b08b391
Dewhitelist various Boost.Outcome test failures which no longer occur. 2019-11-19 11:56:48 +00:00
Jenkins nedprod CI
4d06e51836 Merging commit ned14/outcome@1aae1b5b81:
Merged from develop branch as CDash reports all green
2019-11-19 11:37:32 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8a8431ee03
Work around latest MSVC puking on our non-<windows.h> win32 API declarations. 2019-11-15 16:28:58 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2771f423c1
Do the best we can on VS2019 16.3 with its very buggy Concepts implementation. 2019-11-15 15:44:04 +00:00
Jenkins nedprod CI
53ba0e5f46 Merging commit ned14/outcome@8a36a29e5c:
Merged from develop branch as CDash reports all green
2019-10-17 10:16:12 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2103b7887f
Suppress even more warnings on GCCs 8 and after. 2019-10-16 14:39:48 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
82624e0421
Suppress more irritating warnings on GCCs 8 and later. 2019-10-16 14:31:19 +01:00
Jenkins nedprod CI
a21cd71c05 Merging commit ned14/outcome@ae3b8de8b2:
Merged from develop branch as CDash reports all green
2019-10-16 10:45:28 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6303846bb8
OUTCOME_TRY operation now hints to the compiler that operation will be successful
: [P1886 *Error speed benchmarking*](https://wg21.link/P1886) showed that there is
considerable gain in very small functions by hinting to the compiler whether the expression
is expected to be successful or not. `OUTCOME_TRY` previously did not hint to the compiler
at all, but now it does. A new suite of macros `OUTCOME_TRY_FAILURE_LIKELY` hint to the
compiler that failure is expected. If you wish to return to the previously unhinted
behaviour, define `OUTCOME_TRY_LIKELY(expr)` to `(!!expr)`.
2019-10-16 10:26:35 +01:00
Jenkins nedprod CI
a4b402088d Merging commit ned14/outcome@93017d8fdc:
Merged from develop branch as CDash reports all green
2019-10-12 15:55:44 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9202a62515
Move traits setting in Experimental Outcome up to before first use. 2019-10-12 16:47:27 +01:00
Jenkins nedprod CI
b13840fb38 Merging commit ned14/outcome@23a1077036:
Merged from develop branch as CDash reports all green
2019-10-11 16:10:48 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7d00633e23
Fix mistake in the trait requirements in yesterday's commit. 2019-10-11 17:03:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
086ef6d04b
#210 make_error_code() and make_exception_ptr() are now additionally considered for
compatible copy and move conversions for `basic_result<>`. This lets you construct
a `basic_result<T, E>` into a `basic_result<T, error_code>`, where `E` is a
custom type which has implemented the ADL discovered free function
`error_code make_error_code(E)`, but is otherwise unrelated to `error_code`.
The same availability applies for `exception_ptr` with `make_exception_ptr()` being
the ADL discovered free function. `basic_outcome<>` has less support for this than
`basic_result<>` in order to keep constructor count down, but it will accept via
this mechanism conversions from `basic_result<>` and `failure_type<>`.
2019-10-10 18:14:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
63c74ef62c
Add basic_result predicates to detect when a compatible conversion is available via make_error_code() or make_exception_ptr(). 2019-10-10 16:28:31 +01:00
Jenkins nedprod CI
0bf16d2034 Merging commit ned14/outcome@e66bbb07f4:
Merged from develop branch as CDash reports all green
2019-10-10 12:43:37 +00:00
Jenkins nedprod CI
2f5075303a Merging commit ned14/outcome@4d056c8831:
Merged from develop branch as CDash reports all green
2019-10-10 12:43:36 +00:00
Jenkins nedprod CI
ebfff75212 Merging commit ned14/outcome@7fbbd01d56:
Merged from develop branch as CDash reports all green
2019-10-10 12:43:35 +00:00
Jenkins nedprod CI
b67c4fa3c4 Merging commit ned14/outcome@f98eb4f1e6:
Merged from develop branch as CDash reports all green
2019-10-10 12:43:34 +00:00
Jenkins nedprod CI
c97d4b4e43 Merging commit ned14/outcome@a856c4cf2f:
Merged from develop branch as CDash reports all green
2019-10-10 12:43:33 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
337a88678c
Fix small bug in experimental coroutine support. 2019-10-08 18:24:23 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7f9bd9385a
Make superbuild of dependencies much faster. Fix annoying warning on Mac OS. 2019-10-07 18:17:43 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4fff003571
Implement coroutine support for Experimental Outcome. 2019-10-07 15:34:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
12e8625938
Fix build breakage on Mac OS. 2019-10-04 22:12:13 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f6ecc0d6a8
Disable move assignment in awaitables, as per P1056 2019-10-04 18:31:07 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e8e275143a
Rename awaitable to eager, and task to lazy to meet most recent WG21 naming. 2019-10-04 15:58:37 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
566a77473a
Add missing coroutine support files, sorry. 2019-10-04 10:00:09 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
89811697af
#199 Support for C++ Coroutines has been added. This comes in two parts, firstly there is
now an `OUTCOME_CO_TRY()` operation suitable for performing the `TRY` operation from
within a C++ Coroutine. Secondly, in the header `outcome/coroutine_support.hpp` there are
implementations of `awaitable<OutcomeType>` and `task<OutcomeType>` which let you more
naturally and efficiently use `basic_result` or `basic_outcome` from within C++
Coroutines -- specifically, if the result or outcome will construct from an exception
pointer, exceptions thrown in the coroutine return an errored or excepted result with
the thrown exception instead of throwing the exception through the coroutine machinery
(which in current compilers, has a high likelihood of blowing up the program). Both
`awaitable<T>` and `task<T>` can accept any `T` as well. Both have been tested and found
working on VS2019 and clang 9.
2019-10-03 18:35:31 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3e6aee14ce
Breaking change!
The git submodule mechanism used by standalone Outcome of specifying dependent libraries
has been replaced with a cmake superbuild of dependencies mechanism instead. Upon cmake
configure, an internal copy of quickcpplib will be git cloned, built and installed into the
build directory from where an internal `find_package()` uses it. This breaks the use of
the unconfigured Outcome repo as an implementation of Outcome, one must now do one of:

 1. Add Outcome as subdirectory to cmake build
 2. Use cmake superbuild (i.e. `ExternalProject_Add()`) to build and install Outcome into
 a local installation.
 3. Use one of the single header editions.
2019-10-02 17:52:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cd434736b7
Patch in cmake detection of Concepts and Coroutines. 2019-10-02 10:27:49 +01:00
Jenkins nedprod CI
17b378d03c Merging commit ned14/outcome@de7a715d3b:
Merged from develop branch as CDash reports all green
2019-10-02 08:41:57 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4044ad4c02
Fix #207 nodiscard detection logic, but not like how the PR does it.
Use latest status-code, which in theory causes less binary bloat, fixing #186.
2019-09-30 11:38:32 +01:00
Jenkins nedprod CI
57ac79bc9e Merging commit ned14/outcome@38b9d4f4ab:
Merged from develop branch as CDash reports all green
2019-09-30 09:45:02 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d50803be3e
upd 2019-09-25 18:12:33 +01:00
Jenkins nedprod CI
be17de5379 Merging commit ned14/outcome@aa81442811:
Merged from develop branch as CDash reports all green
2019-09-25 15:15:54 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
90769c82ee
upd 2019-09-25 16:08:34 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a6733b289b
upd 2019-09-24 18:27:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
20917c3cb0
Outcome is now make install-able, and cmake find_package() can find it. Note that
you must separately install and `find_package()` Outcome's dependency, quickcpplib, else
`find_package()` of Outcome will fail.
2019-09-24 17:42:51 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2954530fd4
upd 2019-09-16 20:43:49 +01:00
Jenkins nedprod CI
f090ba1dfa Merging commit ned14/outcome@35222ca2fa:
Merged from develop branch as CDash reports all green
2019-09-11 20:46:47 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
eddefe0fd4
upd 2019-09-11 21:39:04 +01:00
Jenkins nedprod CI
88746d7c86 Merging commit ned14/outcome@a6065b5a33:
Merged from develop branch as CDash reports all green
2019-09-06 22:38:43 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
caa46678eb
Update GCC workarounds for GCCs 8 and 9. 2019-09-06 23:31:09 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
be4d662241
upd 2019-09-05 18:36:28 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b06634cdb4
upd 2019-09-05 15:01:07 +01:00
Jenkins nedprod CI
87e77d18db Merging commit ned14/outcome@0e966c8cd8:
Merged from develop branch as CDash reports all green
2019-08-14 11:29:16 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1c1aad1083
Some versions of GCC 7 appear to require old syntax concepts too. 2019-08-14 11:07:16 +01:00