Commit Graph

979 Commits

Author SHA1 Message Date
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
832e98a684
Fix bug where default construction of T was not occurring when it should. 2017-07-20 12:17:33 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0441fe3ee5
Added a test for issue #59 (result<NonMovable> supported?) 2017-07-20 01:11:33 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
df81e462f2
Added success/failure type sugar to outcome which should complete issue #60 2017-07-20 00:26:18 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c403a43a1b
Added success/failure type sugar to result (issue #60) 2017-07-19 19:14:59 +01:00
Andrzej Krzemienski
5e89881caf docs: described inspection of result<> 2017-07-17 22:11:17 +02:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8119d445d6
Significantly improve support for LLVM-vs2014 toolset 2017-07-15 18:11:06 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5994e62e26
Some refinements which popped out during the AFIO upgrade. 2017-07-14 12:20:44 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ebf7157de3
Restore missing timing.h for Emil. 2017-07-14 10:48:51 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3ba908da3c
Try out the latest VS2017.3 beta 2017-07-13 18:14:41 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e7f487c3f6
Fix issue #57 (Single-header implementation doe not compile) 2017-07-13 15:35:17 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
837a96773a
Implement issue #56 (Consider multi-argument converting parameters rather than single argument) for outcome as well. 2017-07-11 23:05:30 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
39c0e7c7bd
Implement issue #56 (Consider multi-argument converting parameters rather than single argument) for result. 2017-07-11 22:04:49 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
aa06ab8d8b
Add auto generated single header edition of outcome (issue #55) 2017-07-11 01:28:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ac2d9496a9
Added a synopsis 2017-07-10 02:51:40 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9d2989fd26
Finished replacing all SFINAE with Concepts 2017-07-09 20:56:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
738babc8c6
Implemented issue #50 (Add set_error_from_exception(std::exception const& e, std::error_code_extended not_matched = std::errc::resource_unavailable_try_again)) 2017-07-08 03:19:37 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0f8b003aa1
Replaced all the SFINAE with Concepts TS, at least everywhere except for outcome.hpp. 2017-07-08 02:43:16 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
47b17f27c4
Last of the v1 test suite ported over to v2. 2017-07-07 02:36:52 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1737b49b57
Optimised swap is implemented. 2017-07-07 00:08:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
00f2c2a614
All but two of the v1 tests converted to v2 2017-07-06 21:42:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9b98e949f9
Added Andrzej's customisation point for TRY 2017-07-06 20:48:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1e5876f0fa
Turns out copy and move simply weren't implemented for non-trivial types. Fixed. 2017-07-06 02:25:38 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d3ab675514
Substantially improved the error_code_extended example. Hopefully fixed OS X compilation failure. Various other small fixes. 2017-07-06 01:57:13 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8ae74f9daa
travis 2017-07-06 01:08:52 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a5213771d7
Get travis using much newer compilers 2017-07-06 00:13:17 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c9e8c1da15
upd 2017-07-05 22:48:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cd09c527f6
Fix deleted header 2017-07-05 22:24:28 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ffd7172558
Wrote up a code example of how to implement extended error code info. 2017-07-05 22:15:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5880ba44d1
Reenable Travis per commit testing. 2017-07-05 22:01:52 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
15bd6f262e
Implemented hooks. Working well. Yay. 2017-07-05 18:33:26 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7b803c4607
Relocated detail into detail/value_storage.hpp 2017-07-05 11:54:03 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8ef842bc80
Implemented the try operations from Outcome v1. 2017-07-05 02:52:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8769b8b884
containers unit test is passing. 2017-07-05 01:14:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7c8be75127
Merged the prototype test suite into the v1 ported test suite.
constexpr unit tests are now working.
2017-07-05 01:08:35 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
05a0085738
Comparison unit tests are passing now. 2017-07-05 00:44:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
156a315631
Added compile-fail test support to quickcpplib, and thence a few compile fail tests. 2017-07-04 23:23:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
fcfab41660
Basic unit test is now passing with Outcome v2 2017-07-04 03:35:06 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e1e0e10bf7
Upgraded Outcome to use quickcpplib's new cached scan file framework. Long overdue, should stop the spamming of the source directory with temp directories by Visual Studio. 2017-07-03 01:45:41 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7f351d7db8
Moved v1 headers into attic 2017-06-30 20:19:06 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8b30972033
Reorged test and includes for v2 2017-06-30 20:16:43 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5530bc3300
Outcome v2's converting constructors appear to be essentially done, so time to strip out the old implementation and put in this one. 2017-06-26 18:41:49 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8ea33262b8
Just the converting constructors for outcome v2 to go, and I think the prototype is ready to replace the v1 implementation. 2017-06-26 02:35:25 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
aaf5d23667
Disable positive status by default 2017-06-25 22:42:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
afe3341d53
Got started on v2 outcome 2017-06-23 19:02:12 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
26b1db557b
Cleaned up and made still clearer the status_type vs error_type interplay. 2017-06-22 23:19:28 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3261d09c3a
Added trait::enable_errored_result_creation<EC> to flip result between success|failure and success+status modes. 2017-06-22 18:41:47 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
38058fd1b4
Added converting constructor from compatible result<> 2017-06-22 03:03:44 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c5dd1b04d4
Got result v2 working in GCC 6. Added in status support. 2017-06-22 02:09:22 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
dd339c8197
Finished off the standardeseisation of Outcome v2 mocked up result<T, EC> 2017-06-21 18:29:31 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
dca014b2f7
Hefty reorg of v2 result<T> to try to make Standardese grok it. 2017-06-21 02:58:19 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c6b38e0eb7
Redid benchmarks for mocked up Outcome v2 result<T> 2017-06-21 00:10:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0c4a808062
Added constexpr testing of Outcome v2 result mockup 2017-06-20 19:50:42 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1728499cc6
Fix bug in wide value check 2017-06-17 17:41:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4f8eb8d46e
Filled in lots and lots of Outcome v2 result<T> implementation detail. 2017-06-17 01:08:04 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8e5f09d586
Did more work on v2 outcome::outcome<>, but it's late, need to go to bed. 2017-06-16 01:39:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8fd6ac8c57
Added mini test suite for Outcome v2 mockup 2017-06-16 00:39:06 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3c768053be
Latest Outcome v2 thoughts 2017-06-15 19:32:21 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f756bd4e30
Began mock up of post-peer-review Outcome 2017-06-15 00:31:22 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
523ab525f1
Fix failure to find ctest scripting. 2017-06-14 19:54:57 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7d6625fbc8
Mostly fully ported over to quickcpplib 2017-06-14 16:09:10 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b5a69414ee
Build system ported over to use quickcpplib 2017-06-14 15:28:37 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f3b54fae4d
boost-lite is no more, it is now quickcpplib and lots of its internals have changed. develop branch will be broken for some days until Outcome catches up. 2017-06-14 00:02:50 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
127812aee9
Updated compiler-platform requirements. 2017-05-27 15:24:22 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
62d9bed841
Fix issue #36 mingw-w64 build support 2017-05-24 00:34:55 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e8c262fa47
Fixed build failure with older clangs with LEWG Expected test suite 2017-05-20 11:34:10 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
28b3f8269e
Issue #11 Changing state should never cause an empty state if avoidable. Outcomes and Expected will now
not lose previous state during assignment or emplacement if the existing state's type has a nothrow
move or copy constructor. It does this by moving the existing state onto the stack before trying to
set the new state, and if that throws it restores the previous state. This new code path only activates
if any of the types stored have throwing move constructors.
2017-05-20 02:11:12 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
51d08d35ca
Issue #23 Get Outcome working on VS2017 Update 1. Thanks to Vinnie Falco for reporting this. 2017-05-19 19:21:28 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ee7a952a8d
All the recent changes had broken docs generation fairly badly, so did the minimum to get everything passing again. Will at some stage need to rejig the tutorial to match the new changes properly in prose. 2017-05-19 01:16:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0c73108cf6
Issue #20 Rename:
- `monad_error` to `bad_outcome`
  - `monad_errc` to `bad_outcome_errc`
  - `monad_category` to `bad_outcome_category`
  - `BOOST_OUTCOME_THROW_MONAD_ERROR` to `BOOST_OUTCOME_THROW_BAD_OUTCOME`
 Thanks to Peter Dimov, Andrzej Krzemienski and Paul Bristow for suggesting this.
2017-05-19 00:47:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e1963be23e
Rename monad_error.hpp to bad_outcome.hpp 2017-05-19 00:41:09 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
22bd10cbd4
Issue #19 Remove observers .is_ready(), .get_error_or(), .get_exception_or(). 2017-05-19 00:27:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
966d321caa
Issue #18 result<T> had a .set_exception() which it should not have had. Thanks to Peter Dimov
for reporting this.
2017-05-19 00:20:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
dbcde5de08
Issue #14 Removed all the static asserts in the Expected implementation apart from the nothrow
move constructor check, which is now correct unlike the incorrect assert from before. Thanks to
Vicente J. Botet Escriba for explaining Expected's semantics.
2017-05-14 01:28:42 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bc3c0bbfeb
Issue #15 Move outcome::expected<T, E> into outcome::experimental::expected<T, E>. Thanks to
Vicente J. Botet Escriba for persuading me to do this.

unittests.cpp had become clang-tidy unclean, fixed.
2017-05-14 00:57:13 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4d9e404fb0
Did another pass of the docs. Very close to peer review ready now. 2017-05-11 01:09:02 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9274c0d423
Fix issue #10 Expected's operator->(), operator*() and .error() throw exceptions when they should not 2017-05-10 20:35:33 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1f15abd510
Work around bug in older clangs triggered by last commit 2017-05-09 16:07:55 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
daa5d0f4f3
Implement expected<T, E>::get_unexpected(), which had been missing. 2017-05-09 15:31:38 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
202fba16fb
Converted enable_single_byte_value_storage to be a template variable.
Replaced the global BOOST_OUTCOME_ALLOW_THROWING_MOVE_TYPES macro disable with per type disable via enable_move_throwing_type<T>.

Fix an ambiguous resolution of make_expected_from_error.
2017-05-09 13:03:58 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
baedd98e5c
Clarify the message given when you try using types without nothrow move construction. 2017-05-08 16:47:14 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
665323b7f6
Add static checks for using a value_type, error_type or exception_type which throws during move 2017-05-07 23:50:15 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bfab416f18
Fix mistake in tutorial A 2017-05-05 13:07:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e61950908c
Update docs to reflect discussions with Vicente about Expected, and reconciliations of the defect list I sent him. 2017-05-05 12:56:55 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
82ed820d0a
Added ACCU conference video to tutorial 2017-05-03 01:02:22 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
48864a7c88
Relicenced all code to be dual Apache 2.0 or Boost licence 2017-05-03 00:46:32 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d391aee432
Use cmake namespaced target aliases for indicating dependencies between libraries 2017-04-28 14:29:10 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
fab3eead1b
Merge branch 'develop' of github.com:ned14/boost.outcome into develop
# Conflicts:
#	include/boost/outcome/revision.hpp
2017-04-27 16:29:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
78115184bb
Work around lack of dependency tracking with Makefiles and Ninja 2017-04-27 16:27:23 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2a82d14fb2
Have an attempt at a BOOST_OUTCOME_TRYX(expr) expression behaving try operation, implementing issue #9. 2017-04-18 10:48:47 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
76042598dc
upd 2017-04-16 00:50:38 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f1fab55299
upd 2017-04-15 13:10:21 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f0de9b1da5
upd 2017-04-14 22:20:29 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ee6f2df804
Update todo list 2017-04-14 08:35:22 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1841848797
Merge branch 'develop' of github.com:ned14/boost.outcome into develop
# Conflicts:
#	include/boost/outcome/revision.hpp
2017-04-12 23:45:29 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b120ecef17
upd 2017-04-12 23:44:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
953e3a062c
Fix build failure on GCC 5 2017-04-12 11:36:37 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e28beaa7af
upd 2017-04-10 23:05:50 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
df4468529a
upd 2017-04-09 23:09:59 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e437da0d76
Merge branch 'develop' of github.com:ned14/boost.spinlock into develop 2017-04-09 14:55:36 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0dc8cc8216
Add a note to the docs for make_errored_*(ErrCondEnum). 2017-04-09 14:54:18 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
90b397d29a
upd 2017-04-08 23:53:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2018274cde
Forgot to regen the preprocessed edition 2017-04-08 22:43:44 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1ef1c6804d
Stop showing permuted boost-lite SHA in doxygen 2017-04-08 22:42:51 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ad136750f6
Add make_errored_*() overloads for error conditions 2017-04-08 11:01:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
25e89e4c45
regen pp header 2017-04-06 14:46:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c9eb55a474
BOOST_OUTCOME_CATCH_EXCEPTION_TO_RESULT wasn't tagging with valueless either 2017-04-06 14:41:02 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0b332aea8a
Fix overstrict valueless constructor 2017-04-06 14:14:13 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
91c8eb0814
valueless_t tagging now working and issue #7 should be fixed 2017-04-06 10:57:52 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
430d9c10dc
wip for issue #7 2017-04-06 09:49:54 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
748e7bab1a
upd 2017-04-04 23:03:06 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
008026f921
upd 2017-04-04 22:55:50 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1a95acaef5
Add BOOST_OUTCOME_TRYV() macro 2017-04-04 22:23:37 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1772bbfbc8
Clarify empty braced init semantics 2017-04-04 21:54:30 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
dfdbe1f091
Docs fix 2017-03-30 15:26:09 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
dea2c55e07
Rename all make_ready_* to make_valued_*. Thanks to Andrzej Krzemienski for spotting the problem. 2017-03-30 12:53:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
27cb8b799a
Implement more of Andrzej's feedback 2017-03-29 08:07:47 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9599e0fed5 Remove the hard dependency on python ply for build. 2017-03-23 14:34:01 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
95eb507b7c
Fix missing images in FAQ on web based docs 2017-03-23 11:09:58 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f370bd6473
Fix failure to regenerate preprocessed edition as needed 2017-03-21 00:15:38 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f291beed5f
Upgraded the MSVC workarounds to understand VS2017 RTM.
Fixed all breakage and warnings in all examples etc for VS2017 RTM.
2017-03-20 23:51:29 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8f7c9ae7e6
Use a pre-processed edition of Outcome for the most common build config. 2017-03-20 16:53:00 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
63eb074214
upd 2017-03-20 00:41:19 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9a4bc9fca7
Add FAQ entry on ABI stability promises. 2017-03-15 16:54:36 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e3bc60d429
Resurrected my old very custom clang format plugin for visual studio, forced it into vs2017 against its will and did a clang-format pass on all the source files. 2017-03-14 19:51:23 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
520b8af6f3
Fix build breakage 2017-03-13 15:57:49 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7525b18392
Restamp the SHA of the docs to latest. 2017-03-13 15:50:30 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
594da2d2b3
Disabled the ability to include Outcome in multiple configs in the same translation unit. pcpp can't grok that use pattern snd so was reincluding the config many times over, thus causing doxygen to generate duplicates of the same docs. Thanks to Andrzej Krzemienski for reporting this. 2017-03-13 15:19:00 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
32435fb60e
Have cmake rebuild the preprocessed doxygen input every build
Fix the terrible looking doxygen page for the boilerplate macros. Thanks to Andrzej Krzemienski for reporting this.
2017-03-13 14:59:43 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
96421f5e3a
travis 2017-03-13 01:58:55 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0b5fe1ab84
travis 2017-03-13 01:54:24 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
93787ade0a
Revert bad merge 2017-03-13 01:48:37 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4f9816b580
Add missing docs for the policy classes 2017-03-13 01:41:17 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5b9713b28a
upd 2017-03-13 01:07:46 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a97cd62c79
Fixed the problem of lack of constructors in the faked outcome/result/option/expected. 2017-03-13 00:26:09 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2ecd192e1e
Use pcpp to preprocess Outcome into a form which doxygen can cope with. 2017-03-12 23:57:33 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0219b4ff67
Added more help for doxygen to generate actually usable docs 2017-03-11 00:44:56 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
554ab592b3
Relocated the policy classes out of namespace detail into a new namespace policy in preparation for getting doxygen to generate some actually useful reference docs. 2017-03-10 22:53:45 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
eade949002
Fix failure to compile doc examples on clang 3.5 and 4.0 2017-03-01 22:48:44 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
01320023d0
I think I've finished the tutorial! 2017-03-01 17:47:24 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d903e1f174
Fixed a bug where a less representative void transport was not implicitly converting into a more representative transport. 2017-03-01 16:40:14 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f222d4ee28
Docs should build properly now. 2017-02-27 23:32:12 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4e1a096735
Added side by side use example of Expected vs Outcome 2017-02-27 23:09:10 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a24c020561
Rewrote part B of the tutorial to match feedback from Reddit 2017-02-03 15:46:48 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2e727393e0
Broke monad.hpp into separate include files, did a fair bit of purging legacy and unused code whilst I was at it. 2017-02-03 11:02:02 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
71efed5698
Fix broken code bloat tests 2017-02-02 19:37:29 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
47ee7ea693
Lots more tutorial part C 2017-01-28 18:22:38 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
98522e4154
Hopefully finished tutorial part B. 2017-01-27 14:18:34 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bca11ff64c
More third attempt at tutorial 2017-01-25 13:27:10 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ef412a2a54
Get the expected example compiling. 2017-01-24 12:13:33 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
39b41d1d9b
Third time writing this blasted tutorial for Outcome. Part A at least. 2017-01-23 18:33:27 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e0286392cf
Work around libstdc++'s broken std::string move assignment implementation 2017-01-22 16:36:10 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6114009b1b
Hopefully finally building clean on all of GCC, clang and MSVC now. 2017-01-22 02:17:40 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7314cd743f
Restore clang 3.5 to working with the MSVC workarounds 2017-01-22 02:00:39 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
296e37d664
Fix memory corruption caused by new swap() implementation. All tests passing again yay! 2017-01-21 17:46:45 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8426c22efe
Relocate emplacement implementation into .ipp file 2017-01-21 16:18:55 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
42ee0cd0a0
Rolled back the templatisation of basic_monad's constructors and operators 2017-01-21 15:04:50 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b917d0ee13
Restored single byte storage packing support.
Now passes both Outcome and Expected test suites, though we are seeing memory corruption in the swap() implementation (TODO).
2017-01-20 18:18:23 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c4e545ffed
Substantially reworked how the constexpr variant storage is implemented. Compiling on all platforms, though failing its unit tests quite badly. 2017-01-20 16:43:58 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ebed2b62bb
Added the reference Expected implementation's unit test suite, adjusted only to match the current WG21 proposal text. 2017-01-19 15:43:25 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a0888453c1
Add an implementation of LEWG's expected<T, E> refining basic_monad. 2017-01-17 17:18:35 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e96b5b320b
Break out new policy for a LEWG expected<T> implementation. 2017-01-17 14:22:00 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
69886c5ff0
upd 2017-01-13 16:47:59 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5a5dcf761e
Make submodules shallow cloned 2017-01-13 15:51:42 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
10c30bac35
vcpkg for boost.outcome looks to be working. Woo hoo. 2017-01-11 17:51:50 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
67b19a06a0
Rejig BOOST_OUTCOME_ENABLE_OPERATORS into BOOST_OUTCOME_ENABLE_ADVANCED 2017-01-11 12:09:19 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
46b5fdd470
Yet more tutorial 2017-01-11 11:55:29 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4c5e8293eb
Tutorial update for today 2017-01-10 18:16:26 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1c3154bab8
Today's work on the tutorial 2017-01-09 16:24:16 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
86c0ec19da
upd 2017-01-07 13:43:39 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0a665e6337
Outcome had stopped working with LLVM clang :). Now tested per commit on Travis. Had to disable GCC 6 testing until launchpad fix their broken GCC 6. 2017-01-07 12:24:48 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f09382b820
Try again fix build breakage 2017-01-06 09:39:09 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d524ab553f
Fix build breakage 2017-01-06 09:28:37 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
30065d70ea
VS2017's C++ 14 constexpr is actually really good and finally let me dispense with the BOOST_OUTCOME_CONVINCE_MSVC forceinline hack. 2017-01-06 08:27:37 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
fa4f9de7ae
Turn on use of C++ 14 constexpr on VS2017. Haven't tested it yet, it may work, it may not :) 2017-01-05 17:57:04 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
db86dcb390
Replace use of all BOOST_ macros with BOOSTLITE_ macros, this prevents Outcome colliding with Boost if included before Boost. 2017-01-05 17:50:25 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5739ef9a34
Use new, clean, warning free method of poking cmake to make code with exceptions disabled. 2017-01-04 16:22:05 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
68b52bd9f3
Worked around the new ICE in VS2017 RC 1 2017-01-03 08:35:58 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com
950eeac84f
Fix various build failures when compiling with Xcode 8 2016-12-31 01:23:04 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
db3b34e765
Theoretically at midnight from now on a script will check if all unit tests on develop are passing and if so will merge develop into master and put a tarball at dedi3. We shall see if it fires tonight! 2016-12-23 16:51:15 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
fe751faa0a
tutorial 2016-11-09 13:46:15 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9257a1bf8e
tutorial 2016-11-09 09:18:12 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c33ab1afe0
tutorial 2016-11-08 10:16:00 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
def15cb54d
More tutorial 2016-11-07 22:22:57 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2af6ab6f52
Added operators * and -> plus error() and exception() and inplace_t implicit construction to much more closely match Expected and Optional.
Replaced the BOOST_OUTCOME_FILTER_xxx macros with a new, much more simple BOOST_OUTCOME_TRY()
2016-11-07 18:01:51 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
05a02dc499
tutorial 2016-11-05 00:59:13 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f18d40b6d6
Tutorial cleanup 2016-11-04 19:31:02 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
099a689aef
More tutorial 2016-11-04 17:51:30 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8ed4cf5385
upd 2016-11-03 11:10:17 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0cb8835c71
Disable win32 error code mapping in prep for new custom error code categories 2016-11-02 19:50:02 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8a4f35b14b
Added a .clang-tidy config, and delinted the unit tests. Interestingly no lint found in the headers at all which was a surprise. 2016-10-30 01:41:57 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f35c849adc
Made a start on proper documentation for Outcome. 2016-10-29 19:17:36 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b2f160eec4
Full unit test suite now passing on GCC 6.2 with exceptions disabled. 2016-10-28 23:31:25 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0757aa9766
Make entire outcome unit test suite now run with RTTI and exceptions disabled using the new boost-lite very lightweight Boost.Test emulation (it worked first time, I am very proud).
Split out all the throws of exceptions into individual macros so each can be customised.

When exceptions are disabled and outcome is about to throw, dump a stacktrace just before terminating the process.
2016-10-28 17:51:04 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ccafdb74a8
Move Outcome to using new boost-lite very lightweight unit test framework 2016-10-28 14:38:18 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7db1d3368a
upd 2016-10-08 00:52:31 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
03272598be
Outcome now works well with C++ exceptions and RTTI disabled. It actually always did, but now there is a unit test and its documentation says it works. 2016-10-08 00:47:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e95fe0eb13
upd 2016-09-21 17:26:03 -07:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bd8560354c
upd 2016-09-21 15:37:17 -07:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bbf2bbafa5
upd 2016-09-21 11:28:42 -07:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
33b8449a8d
Made Outcome C++ Modularisable 2016-09-20 11:16:06 -07:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e89ef89a0a
upd 2016-09-06 17:46:28 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d1a43e5e86
upd 2016-09-06 09:30:53 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b925ad5004
upd 2016-09-05 09:17:55 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
92c9863a28
upd 2016-09-04 20:13:34 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
857a0118f5
upd 2016-08-28 19:58:50 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f3a3c667b1
upd 2016-08-26 23:22:28 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7838f3fd5b
Fix bad pickup of sibling boost-lite. Fix spurious warnings on MSVC. 2016-08-26 20:59:40 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1f859b64fe
upd 2016-08-25 22:01:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5a79437433
upd 2016-08-24 23:34:23 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9b7793111e
Workaround cmake failure in cmake 3.2 due to a bug in cmake 2016-08-24 14:45:23 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
96815a8e3a
upd 2016-08-23 21:34:06 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cc0555b91c
Fixed the VS2015 outcome debug visualisers which had become stale. 2016-08-22 21:08:27 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2723fb5262
Relocate valgrind instrumentation into boost-lite. 2016-08-21 21:22:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9d814df7a0
Prevent monad.set_exception(E &&) being available if monad has no exception type. 2016-08-19 20:54:08 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
876acd5d1d
upd 2016-08-18 20:35:26 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
058f256343
upd 2016-08-17 20:36:12 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
300de74f0e
upd 2016-08-17 11:32:22 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e928c35655
upd 2016-08-14 19:04:55 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b561f3d05f
Fixed bug where outcome<void> did not have a noexcept copy and move constructor. Moved .natvis next to its header file. 2016-08-14 16:19:48 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1c7feef5d4
Enable MSVC workarounds for latest MSVC 2016-08-13 18:59:43 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
39b9e6384b
upd 2016-08-11 10:10:41 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7fb9617c21
upd 2016-08-10 07:57:04 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
abffb1eea1
upd 2016-08-10 07:52:10 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b525832007
upd 2016-08-07 17:03:40 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
943b23722a
Updated docs 2016-08-07 17:02:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2165872a8b
Began merging the latest tooling improvements from AFIO into Outcome 2016-08-06 20:10:53 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
adaf1a6255
upd 2016-08-04 09:28:00 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
782dfbe81a
upd 2016-07-27 08:55:44 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
02a8730835
upd 2016-07-27 07:30:44 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d96e8c5af7
upd 2016-07-26 09:24:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
06e2a332f3
upd 2016-07-22 09:34:00 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7b24d1bb5c
upd 2016-07-21 15:09:23 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3fb115b3b0
upd 2016-07-20 13:41:02 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f724e3c296
upd 2016-07-20 09:13:57 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cff6e8a160
upd 2016-07-20 08:47:09 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0402563a9a
Now working on GCC with precompiled headers, both embedded and sibling configurations. 2016-07-19 13:38:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
db07076ec1
upd 2016-07-19 13:04:14 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
69f2aec785
Moved Outcome over to fully use the new boost-lite cmake infrastructure, adding per-commit namespace permutation, C++ Modules support, embedded or sibling pickup of the boost-lite dependency. 2016-07-19 08:40:12 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5e0a09d077
Merge branch 'master' of github.com:ned14/boost.spinlock 2016-07-18 09:33:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
40d724c6e8
upd 2016-07-18 09:32:47 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c6ed263e02
upd 2016-07-17 23:21:10 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2dbbf7c492
wip find_boostish_library() 2016-07-17 23:18:43 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b5fc6ac6ef
upd 2016-07-16 15:49:19 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f0036bd7a4
upd 2016-07-14 16:43:31 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8d2b6c2968
Travis and appveyor now use cmake 2016-07-14 16:36:06 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2b5a4a1937
Got Outcome working with precompiled headers on GCC 2016-07-14 16:15:09 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3c53e3818e
Outcome now working very well on Windows and Linux with boost lite cmake tooling 2016-07-14 12:20:27 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
680648945d
wip 2016-07-12 09:11:23 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d9a2d5f95f
Brought in the new cmake tooling from afio 2016-07-12 08:48:08 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3a3cc0321e
upd 2016-07-09 21:31:04 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
44310e2608
upd 2016-07-09 14:48:02 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
09be3104ba
upd 2016-07-02 19:01:49 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b5e0f6b2c0
Fix incorrect printing of error_code_extended. 2016-06-29 19:03:29 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
759632fdf5
Fix unit test failures on GCC 6 2016-06-29 13:16:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
34a0c9881b
updated docs. 2016-06-29 09:44:30 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b9ae79472c
Regened constexpr for VS2015 Update 3 RTM 2016-06-28 12:30:23 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
155817d18d
result<T> now has a trivial destructor if T has a trivial destructor. A big gain for the compiler optimiser. 2016-06-28 11:31:38 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
281ef69c22
wip on making result<int> be trivially destructible 2016-06-28 09:59:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
40352cb0e4
Try again with travis 2016-06-28 09:04:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
61eea9c3c9
Currently fails on clang for unknown reasons, so pushing to Travis to see what gives on GCC. 2016-06-28 08:49:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
70c4c14835
Got single byte value storage constexpr happy 2016-06-28 08:13:07 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c27d9c8906
wip on finishing constexpr support for monad 2016-06-27 09:30:34 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
90e1bfc033
upd 2016-06-24 14:20:12 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2507ea3f44
Finished monad comparison operators 2016-06-24 14:12:51 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
016695e277
Lots more work on comparison operators. Still lacking the associative property, but otherwise looking strong. 2016-06-24 09:14:53 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b6583410f7
Fix regression from adding proper comparison operators. 2016-06-23 20:46:54 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7bfbba6355
wip comparison operators for monad. This implementation is wrong, but a good basis for more work on it tomorrow. 2016-06-23 17:52:37 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b2f8e7e37d
Added content comparison to value_storage in preparation for adding it to monad later today or tomorrow. 2016-06-23 08:59:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1ca0a10981
Require variable template support in the compiler 2016-06-23 08:31:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f57405be68
Broke out value storage compatibility testing into template variables 2016-06-23 08:24:23 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6eb4cbdba4
Tied up some legacy macros for dealing with C++ 14 constexpr 2016-06-23 08:07:53 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4bde3fbb52
Add constexpr results for winclang 2016-06-22 07:46:35 +01:00
Niall Douglas
f096bbb929 Freshen constexpr results for GCC 5.4 and clang 3.8 2016-06-20 02:08:14 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
caa319d82c
Freshen constexpr tests for VS2015 Update 3 RC 2016-06-19 23:40:46 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
236f87789e
upd 2016-06-18 12:24:47 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8c88d252a6
Fix how system_error is converted into an error_code 2016-06-15 08:21:40 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b34f4fc0fc
Modernised ringbuffer_log 2016-06-07 21:58:40 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0285cbf9ad
upd 2016-06-07 09:36:59 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
08242a3b11
upd 2016-06-06 13:03:07 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7e835fcdae
Reworked to fit latest boost-lite 2016-06-03 17:32:03 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4e80325d61
Fix clang parse error with last commit 2016-06-03 08:51:53 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
17620fa643
Fixed the upconverting constructors which were horribly broken. Added a unit test to ensure this never happens again. 2016-06-03 08:36:00 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
eee25c669f
upd 2016-05-24 06:50:40 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
29eb90ed5e
Rename Boost.BindLib to boost-lite 2016-05-23 21:51:29 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f75d55d1d1
Purge last remaining vestiges of monadic future promise. It's now only Outcome baby! 2016-05-23 00:24:32 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ada62eff0f
Relocated spinlock and tribool into Boost.BindLib 2016-05-22 20:44:51 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cb2898b135
Moved the non-allocating future promise into attic. 2016-05-22 20:40:14 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
262ee7ac35
Add make_empty_*() free functions. These document the code using them :) 2016-05-17 09:12:15 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2fb5b0edf4
doxygen comment fix 2016-05-13 09:19:07 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d33bc1eb4e
ostream operator<< didn't compile when fed an option<T> or result<T>. 2016-05-12 18:44:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
41659e9540
make_XXX() didn't permit parameter implicit conversion, fixed.
Added family of as_XXX() up-conversion free functions plus basic_monad can now explicitly construct from a less variant into a more variant configuration.
2016-05-12 18:43:25 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
17e69e7275
More clang fixes. 2016-04-21 21:42:31 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bf8a4ef99b
Fix GCC compatibility. 2016-04-21 20:05:48 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5442d3efa6
More GCC fixes. 2016-04-21 19:50:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5956143aa2
More fixes for Linux and GCC support. 2016-04-21 19:34:24 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e13dfe72bb
Try again Travis 2016-04-21 18:57:13 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
02e3bafb84
Mount docs into doc/html 2016-04-21 18:31:25 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8204ac77ab
Fixed up very sloppy handling of error_code_extended. 2016-04-21 15:00:38 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2740d969ee
Add explicit converting constructor from error_code to error_code_extended. 2016-04-20 17:16:48 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c28a464050
upd 2016-04-10 18:21:54 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8e19e65eec
upd 2016-04-09 19:02:26 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cec3de4938
Add missing win32 error code to map. 2016-04-09 11:41:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e08a2c87a1
Added a nasty but quick macro for hooking the creation of error_code_extended. 2016-04-01 17:13:27 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b24b10b855
Reconfigured monad to use a new error_code_extended implementation which can retain the original win32 error code and message after mapping to a POSIX error code. 2016-04-01 01:14:39 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2ff58fa0d7
Update bindlib to include ringbuffer_log. Add a few missing win32 error codes to map to POSIX. 2016-03-31 17:31:34 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
58989f5295
Add mapping of appropriate win32 error codes to POSIX ones. 2016-03-28 02:03:12 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
00599016a9
Fixed up missing inlines on all the make_* functions. 2016-03-28 00:22:44 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
538f9e9ecc Fixed all remaining Level 4 warnings on MSVC. 2016-03-21 10:02:49 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
163cda5a60 Suppress warnings. 2016-03-21 01:04:25 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
977e786200 Restore ability to use multiple BOOST_OUTCOME_FILTER_* in a single context. 2016-03-19 15:13:30 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4861ea5e3f Added BOOST_OUTCOME_CATCH_EXCEPTION_TO_RESULT() helper macro. 2016-03-12 21:29:15 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0198516c70 Add [[nodiscard]] attribute to all basic_monad implementations. 2016-03-12 18:35:54 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bdd623cf2e upd 2016-02-02 14:26:09 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9c3610595e Added BOOST_OUTCOME_THROW_* boilerplate macros. 2016-01-27 08:35:43 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
20a054d664 Fix warning about redefining BOOST_OUTCOME_GLUE 2016-01-19 09:49:59 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
62db0957fd make_ready_outcome<void>() was not working. 2016-01-08 12:30:18 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
744126065e Still having weird problems getting unique names to expand out of BOOST_OUTCOME_FILTER_*, so bypassed temporarily. 2016-01-08 09:02:34 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
359896a5ae Sigh, more fixes to BOOST_OUTCOME_FILTER_*. 2016-01-07 09:14:32 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2e613ebe2a Reworked BOOST_OUTCOME_PROPAGATE_* and BOOST_OUTCOME_FILTER_* once again. 2016-01-05 09:27:08 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
51bc762732 Remove direct usage of DWORD. 2015-12-18 09:14:54 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
79596c06be Replace BOOST_OUTCOME_PROPAGATE and BOOST_OUTCOME_AUTO with actually useful macro helpers. 2015-12-13 00:40:16 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
281f39e4b2 Add extra make_errored_XXX() overload for DWORD (i.e. GetLastError()) 2015-11-28 18:49:19 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f9eea01e2e Fixed bug where returning a not ready future from a continuation did not correctly propagate the not ready future into the returned future. Added unit test for the above. 2015-11-21 18:10:04 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c3041122cb typo 2015-11-03 17:48:33 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bb76a6401d Add make_errored_future(int) overloads for directly constructing an errored future from a POSIX error code. 2015-10-03 17:05:16 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4cc2961acc Default to not throwing no_state if promise set after future dead. Fixes issue #4. 2015-09-12 13:59:00 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
591d7666a7 Fix issue #4 where setting a promise after a future destruction with continuations was incorrectly throwing no_state. 2015-09-10 19:23:54 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e8f37d66e6 Fix initialising multiple members of union. 2015-09-09 12:46:08 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d7f9fdb678 make_ready_future() now correctly makes a ready future<void>. Fixes issue #3. 2015-09-09 12:35:50 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d6bf651c21 Very substantially improved support for monad<void>. 2015-09-09 12:19:47 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
33d037c468 fix wrong include 2015-09-08 13:53:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
26928d0ab1 Fix taking address of bitfield error. 2015-09-07 19:35:54 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c1523921e1 Fixed instantiation dependency failure in previous commit. 2015-09-07 19:15:02 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
05762ce477 Fix issue #2 where future<void>::get() was not returning a void type. 2015-09-07 19:04:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
30eb27cbe6 Fix compile error on GCC 5 2015-09-07 18:08:39 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
111e8263cf Renamed the directories to outcome. 2015-08-29 18:47:16 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
97e5c6135f Lots of renaming Monad to Outcome. 2015-08-29 18:40:55 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b7486938c5 Added BOOST_MONAD_PROPAGATE() and BOOST_MONAD_AUTO(). 2015-08-19 20:11:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ce2dea37a0 Fixed bug where future<void>.get() was not compiling. This fixes issue #1. 2015-08-17 21:07:38 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e493fa839f Made much more rigorous the construction of shared_future_ptr.
Fixed a memory corruption bug where if a shared_future was destructed before its promise's continuations fired, it blatted all over memory. Sorry.
2015-08-16 23:05:42 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
98b931c37c Fixed bug where if a future was destroyed after being used to add continuations, the continuations were not being executed.
Did some work on shared_future, but I really need to sit down and make rigorous when it should be make_shared and when it should be enable_from_this.
2015-08-15 23:06:04 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8ac31ba8e1 Fixed bad semantics in future promise where if a future died before a promise and then you tried to set state, it was throwing promise_already_set instead of no_state. 2015-08-15 22:02:21 +01:00
Niall Douglas
62c6408dd4 GCC 5 was complaining about out of order make_error_code declaration on Boost. It's actually a Boost bug, but worked around it. 2015-08-15 20:12:49 +01:00
Niall Douglas
b8a9e0959f shared_future was still using wrong promise type :( 2015-08-15 19:13:59 +01:00
Niall Douglas
f85a9f6f30 shared_future had the wrong promise_type :( 2015-08-15 18:44:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6c6178a523 Added basic_future::get_state().
Added basic_future::get_monad().
2015-08-15 18:24:52 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
84c211992a Fix misplaced constexpr 2015-08-15 17:11:43 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a30933ffea fix boost thread path for older boost. 2015-08-09 14:04:09 +01:00
Niall Douglas
dc9db20476 Actually fix boost error code support. 2015-08-09 02:43:19 +01:00
Niall Douglas
f03a405088 typo 2015-08-09 01:54:18 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7e3df10fed future_category and future_errc were mismapped. 2015-08-08 20:49:17 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
013309f8d4 Typo 2015-08-08 19:43:35 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a83a36fb7e Added BOOST_MONAD_USE_BOOST_ERROR_CODE support. 2015-08-08 19:38:04 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d78e496fd4 Minor fixes. 2015-08-08 19:15:57 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a0aacbcf23 upd 2015-08-07 02:48:21 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
84cf53b555 Boost.Monad is ported to use Boost.Thread, Chrono instead of the STL. Multi-abi unit test to test both ABIs coexist in the same translation unit added and verified as working on MSVC. 2015-08-04 19:40:04 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5dbe5eb4c9 Boost.Monad is now fully Boost.APIBinded 2015-08-04 18:11:30 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b6a10e553a Relocated monads into boost::monad namespace, leaving futures alone in the boost::monad::lightweight_futures namespace. 2015-08-03 19:19:07 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d7fcda449b Boost.Monad rename part 5 2015-08-03 18:51:38 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c1164c5828 Boost.Monad rename part 4 2015-08-03 18:22:30 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ee0a0f0c11 Boost.Monad rename part 3 2015-08-03 18:13:14 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5f33a65e9e Rename to Boost.Monad part 2 2015-08-03 18:00:34 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
01aebc0b94 Rename to Boost.Monad part 1 2015-08-03 17:55:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0640e842b8 Got value_storage_type and therefore basic_monad and basic_promise and basic_future default constructor working with constexpr on VS2015. 2015-07-23 00:54:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7d6ef51f8b Switched on constexpr for VS2015. With a few workarounds, seems to work. 2015-07-22 03:01:14 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c86127ee8d typo 2015-07-19 06:07:53 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9801062c37 Added global constexpr variable empty.
Added missing make_result, make_option functions.
2015-07-19 05:59:00 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f702ec203c Fix thread sanitiser warning. 2015-07-16 03:51:18 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
494d4ed7fb - [x] Implement wait_for()/wait_until().
- [x] when_all composure.
2015-07-16 03:29:47 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ac0ce8b4ed wip 2015-07-15 05:00:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0ee099b19a Theoretically wait composure is implemented. Really must remember to test exception safety. 2015-07-13 03:02:38 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
19e794f459 Fix overuse of constexpr in C++ 11 2015-07-12 18:20:02 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e43439e470 typo 2015-07-12 18:14:49 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5224a0a5c9 - [x] Implement N4399 continuations for shared_future.
Also now compiling on VS2015 again.
2015-07-12 17:49:41 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
faeb93b6a0 shared_future continuations compiling, but not working. 2015-07-12 16:10:10 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
86ae0f8c82 Reenabled future continuations. All passing green. 2015-07-12 15:12:03 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8c9fe0bb21 Fixed all remaining benchmarks and performance regressions on GCC. Well, shared_ptr is a lot slower than before, the new design seems to not optimise as well if memory synchronisation is happening (the simple loop is also much slower, but the producer consumer test is actually slightly improved) 2015-07-12 05:43:51 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
465bacb78f Many bug fixes. Nearly passes test suite, there is some problem remaining in the threaded test. 2015-07-12 03:18:02 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1e55bc80eb Worked around ICE in VS2015 2015-07-11 17:14:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
af50ecd711 Removed accidentally still present vptr from future-promise. 2015-07-11 15:57:15 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cb4e62d9d2 Fully refactored, compiling clean, constexpr tests are nearly all green. Hangs during unit tests though (tomorrow!). 2015-07-10 04:24:34 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5687d98d5b wip refactor 2015-07-10 02:20:18 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
990b2b67fe wip in refactoring. Note that only monad is currently enabled and working, all future promise stuff fails to compile.
- [x] Split implementation policy for value_storage into separate policy (allows value_storage
to convert without considering future-promise type).
 - [x] Get value_storage<bool> and value_storage<void> to consume 1 byte, not 2 bytes.
2015-07-09 03:31:43 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7b5a78d8ab wip removed any knowledge of the future type from promise, thus permanently closing the door to ever type slicing the future. 2015-07-08 04:56:21 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ebb1573bbf wip refactoring basic_future to match the earlier refactoring of basic_monad 2015-07-07 20:40:57 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
de13b706f3 wip ground up refactor to eliminate all reinterpret_cast completely 2015-07-07 19:42:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a29167061a Refactored to eliminate use of reinterpret_cast entirely and now uses abstract base classes instead. 2015-07-07 01:18:44 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
abfbb7c357 Should now compile perfectly on clang and GCC again. We are pushed the boundaries of these compilers!!! 2015-07-06 19:27:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
018a82fd3f again 2015-07-06 16:08:58 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5a6db70202 again 2015-07-06 16:01:41 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3238e51a78 again 2015-07-06 15:54:06 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
89dfa359a5 again 2015-07-06 15:50:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cebb8f4d65 again 2015-07-06 15:38:33 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1f2b4f63d1 typos 2015-07-06 15:28:26 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7f190808d0 Allow monads to explicitly convert when compatible. 2015-07-06 15:21:48 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7d1affd42e wip making continuations race free, also implemented sleeping waits. Compiles on MSVC, I strongly doubt anywhere else. 2015-07-06 03:51:34 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
83bbcdf864 upd 2015-07-04 04:39:03 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
af6014049b Should work now on all compilers. 2015-07-04 04:23:36 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2b9298ce22 More tightening of then() callable constraints. 2015-07-04 03:55:37 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d1ce67aec2 Improved the static asserting, compiles on GCC now but MSVC is failing. 2015-07-04 03:39:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
120a8cda34 Fixed broken C++ 11 support. 2015-07-04 03:08:47 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4fecca10b6 try again with clang. 2015-07-04 01:51:28 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0dde08e428 Fix clang problems. 2015-07-03 18:05:53 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
207143f1eb Try disabling gcc 4.8 2015-07-03 17:56:09 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
dad2b2cef5 try again 2015-07-03 17:51:36 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b7ea196017 Hopefully clang will be happy now. 2015-07-03 17:45:10 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
aca45c537d Small clang fix. 2015-07-03 17:12:41 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d64f4c20c5 First working future continuations. Lots more testing to be added later, but this actually seems to work. 2015-07-03 17:09:59 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2ab25936fb Added future.then(), but it is not compiling. 2015-07-03 14:34:21 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1153088b6a - [x] Refactor the tribool logic mapping such that empty => unknown. 2015-07-03 11:26:54 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
840f3470da monad.next() now has build time optimised do_next implemented, and therefore is now available without BOOST_SPINLOCK_MONAD_ENABLE_OPERATORS. 2015-07-02 13:13:44 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6803e9d8ba Added missing typenames. 2015-07-02 03:51:54 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a31d67b258 Added ability to store an optional std::function continuation which is called when the state is set by promise. 2015-07-02 03:49:40 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
43b2b7df49 Added test of make_ready_XXX. 2015-07-02 02:59:27 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1a689653b8 Fixed GCC and clang breakage. 2015-07-02 01:34:28 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3d331df79a Broke monad into own doxygen group. 2015-07-02 01:25:55 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1f361f9bb6 Improved docs for future promise substantially. 2015-07-01 15:24:40 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
975bcde6b6 Fixed two standard conformance failures.
Updated benchmarks for VS2015.

Added unit testing for alignment and size multiple of promise future.
2015-07-01 13:54:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2c719ac954 Updated todo list. 2015-07-01 12:43:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
46fa713841 Made optional the future constexpr folding. 2015-07-01 04:30:23 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2cfbd8cc54 Added future_option, future_result plus tests for them. 2015-07-01 03:17:34 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
68847ff62f Put back forceinline on MSVC 2015-07-01 01:36:35 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ac7f60959d Improve future docs.
Try pragma inline depth on MSVC just to see what happens.
2015-07-01 01:13:34 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f680c76236 - [x] Implement shared_future_ptr which thunks a shared_future API through a shared_ptr to
basic_future<shared_future_policy>.
2015-06-30 14:45:58 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8a491994a6 Fixes for GCC 4.8 2015-06-30 13:08:55 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2d55d44998 Hopefully now fully passing on all platforms. 2015-06-30 12:42:27 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
863853fa99 Fixed rebind_cast and added conformance test for it. 2015-06-30 12:20:44 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bcd2e99bc0 - [x] Implement shared_future_policy and a conformance suite for shared_future. 2015-06-30 04:00:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
046860e78b - [x] Return monad_errc::exception_present error code for when get_error() sees an excepted state. 2015-06-30 01:55:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5a8313adbc - [x] Add iostream overloads for basic_monad 2015-06-30 01:32:59 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ad994b7868 Now thread sanitiser and valgrind drd problem free and totally green across the board. 2015-06-29 15:09:26 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
fcb5e645b7 Fixed bug in spinlock where is_lockable_locked was taking slow path.
Fixed compile errors on MSVC.
2015-06-29 13:26:41 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c1c3ae2592 Added unit test for testing performance of lightweight future promise 2015-06-29 04:22:37 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
97ac5bc4c8 - [x] Have future-promise conformance suite also run for std::future.
Fixed a number of conformance failures illustrated by the above.
2015-06-29 01:31:02 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
23a0906ec0 Added some benchmarks for future-promise. 2015-06-28 03:47:24 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
597a603af2 VS2015 *actually* spotted bad C++ that neither clang nor GCC did. I am astonished! 2015-06-27 02:46:44 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0da3919fea All unit tests passing again 2015-06-27 02:38:34 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
278749235e Lots of work on getting next gen promise-future into shape. Compiles but fails its unit tests quite badly. 2015-06-26 17:52:32 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d228607e43 Fixed missing option min result. 2015-06-26 04:18:18 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
44a89e0533 Try getting constexpr msvc test to use finished executables. 2015-06-26 03:49:38 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
964ce2d756 Added constexpr testing for result<T>, option<T>. 2015-06-25 16:20:10 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c39c2d61d5 Fixed up docs 2015-06-25 14:53:02 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
657fac5d37 Added &, | and >> operators. 2015-06-25 14:42:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bb24f6aa27 - [x] Add match() function which visits a callable on the contents. 2015-06-25 13:50:53 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ca766c4894 - [x] If monad type is a callable, let the monad be callable.
- [x] Rename .then() to .next().
2015-06-25 10:56:17 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
fee843dd2e Fixed option<bool> being silly large, and added unit testing to ensure it remains so. 2015-06-25 03:24:13 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
58b807469a Finished porting code over to new policy based design. 2015-06-25 02:37:27 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a6494320bd Reenable unwrap() 2015-06-24 14:54:07 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bdf09d6e01 Still need to restore unwrap(), then(), bind() and map() but ...
- [x] In addition to value_or(), error_or() etc add value_and(), error_and() etc.
 - [x] Expose detail::value_storage such that it can be specialised for optimal space e.g. for bool.
 - [x] Add null_exception_ptr, null_error_code.
 - [x] Make how error_type is converted into exception_type configurable.
 - [x] Add monad<void>.
 - [x] Add template aliases for different configurations of monad<T> (one of maybe, result, holder, value, retval, potential, likely). Add two additional aliases, one for a monad without exception_ptr, and another for a monad with neither error_code nor exception_ptr (option<T>?).
2015-06-24 14:36:18 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
497ecc7757 Minor docs fix 2015-06-23 15:10:53 +01:00