Commit Graph

401 Commits

Author SHA1 Message Date
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)
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)
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)
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)
953e3a062c
Fix build failure on GCC 5 2017-04-12 11:36:37 +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)
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)
0b332aea8a
Fix overstrict valueless constructor 2017-04-06 14:14:13 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cb349111da
Stupid typo 2017-04-06 11:16:58 +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)
1772bbfbc8
Clarify empty braced init semantics 2017-04-04 21:54:30 +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)
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)
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)
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)
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)
dabe866b17
Put the GCC test disable in the wrong location :) 2017-01-22 17:06:44 +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)
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)
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)
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)
ba74a697eb
Disable debug info generation for the clang 3.5 compile, it bombs out :( 2017-01-07 12:42:38 +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)
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)
f78ec744d1
Finished tutorial copy edit 2016-11-11 14:38:22 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ef2eb6a97b
Fixed bad unit test which always fails 2016-11-07 18:59:37 +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)
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)
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)
553fb67352
Travis and Appveyor fixes 2016-07-19 17:06:08 +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)
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)
118b549801
Replace WIN32 with _WIN32 2016-07-09 14:44:41 +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)
364ada2d92
Added monad visualiser for VS2015 2016-06-29 09:21:33 +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)
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)
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)
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)
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)
2ffa7a84c7
travis 2016-06-23 13:45:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
403e1291c4
Broke travis :) 2016-06-23 09:39: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)
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)
0ae2a51b1f
Merge branch 'master' of github.com:ned14/boost.spinlock 2016-06-22 07:47:01 +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 (s [underscore] sourceforge {at} nedprod [dot] com)
c5e832c3ee
travis 2016-06-21 16:55:42 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
591e6ace44
travis 2016-06-21 16:23:54 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e592db760b
travis 2016-06-21 14:48:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4f4fe42313
travis 2016-06-21 14:35:47 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c6528dc757
Added winclang processing, and indeed made it the default for testing constexpr on Windows as MSVC suffers from generating too much code bloat. 2016-06-21 11:16:40 +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)
64e92c3308
upd 2016-06-20 01:49:22 +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)
7e835fcdae
Reworked to fit latest boost-lite 2016-06-03 17:32:03 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7a045419a9
Add some more static assertions to the unit test suite. 2016-06-03 09:09:31 +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)
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)
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)
e13dfe72bb
Try again Travis 2016-04-21 18:57:13 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a9202c138d
Try again with Travis, and update Readme to point at Travis + Appveyor 2016-04-21 18:32:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6d1c714d99
Disable unit testing the future implementation for now. 2016-04-20 17:33:53 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4b5c5d164b
Fixed failing unit tests. 2016-04-20 17:17:16 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
27ae32b3f4 Fix for small unit test build breakage. 2016-01-27 10:22:59 +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)
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)
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)
145f12b537 Restore coverage testing 2015-09-08 14:04:22 +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)
9d7f2bfc26 More outcome rename caused fixes. 2015-08-29 19:11:51 +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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
6c852498f6 Fixed failing constexpr tests. 2015-07-02 13:39:45 +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)
43b2b7df49 Added test of make_ready_XXX. 2015-07-02 02:59:27 +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)
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)
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)
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)
b031a4e3db Updated for MSVC. 2015-06-26 04:10:06 +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)
a1799b7082 Disable renamed constexpr test 2015-06-25 16:55:49 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
321c35a7f3 Fix parse failure in count_opcodes.py 2015-06-25 16:50:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b94b1f6aeb Redisable renamed test. 2015-06-25 16:29:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2e430e3ff2 Forgot to enable monadic operators for MSVC constexpr 2015-06-25 16:24:05 +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)
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)
36586c6555 Make tribool nature of monad very explicit with an actual tribool. 2015-06-23 14:23:44 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1bdef95a0f Add tribool 2015-06-23 14:08:55 +01:00
Niall Douglas
71a6954ade Add definitive assembler for all remaining tests. 2015-06-19 02:18:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b3b4f95ee4 Added max and min constexpr tests for then and bind 2015-06-19 02:11:32 +01:00
Niall Douglas
d9f858384f min_monad_then for clang and gcc. 2015-06-19 01:35:15 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5ddd2dcbdd Add min_monad_then constexpr test. 2015-06-19 01:26:56 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c57472adbc try again 2015-06-16 18:04:34 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
388cab042d Disable failing constexpr test in VS2015. 2015-06-16 18:01:10 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9e6020714d Disable tests for VS2015 where the compiler is clearly suffering memory corruption internally. 2015-06-16 17:57:47 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
853b5fb128 Have withmsvc generate single and multithreaded test executables 2015-06-16 17:51:08 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0d1a435eef map() and bind() fully working and passing all tests. Finally. 2015-06-16 17:33:14 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0d241ff17f bind() is nearly working. Currently it fails to detect an auto lambda which returns a monad, a problem I shall have to ponder how to solve as it isn't entirely straightforward. 2015-06-16 04:23:55 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
921dcb101d wip 2015-06-15 19:00:30 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a655ca7f7d more tidy 2015-06-15 04:44:27 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8f58896bac minor tidy 2015-06-15 04:43:15 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
01d0b3150d Figured out the problem. Now working very well indeed. Next step tomorrow is to add the detection of callables taking not value_type, and in theory we are then feature complete. 2015-06-15 04:36:59 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0b2e91fe6e Added in rvalue detection traits. Working now, except that I am stuck on how to best detect when an implicit conversion is being done when calling the callable. 2015-06-15 04:23:48 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6a653f3d1f Broke coverage. 2015-06-13 18:03:43 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
af81789eb2 Disabled failing tests for now. 2015-06-13 18:01:24 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3dffba1beb then(), bind() and map() all now working perfectly except that automatic move semantics isn't. Asked stackoverflow on that one. 2015-06-12 12:59:05 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f6ec99c0a1 Added then() and bind() monadic operations. 2015-06-12 04:08:39 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0c8d3347ab Workaround GCC failure 2015-06-12 02:16:54 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5b35f714a2 More minor warnings. 2015-06-12 01:59:33 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
995293467c More clang warnings. 2015-06-12 01:55:28 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1c9c063b83 Remove clang warnings. 2015-06-12 01:53:17 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0d867577ba Add unwrap(). 2015-06-12 01:34:12 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
dbd850034a Added complexity guarantees. 2015-06-11 14:39:48 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6789930fee Fix POSIX build breakage 2015-06-11 13:26:57 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
943c26da03 upd msvc. 2015-06-11 13:14:54 +01:00
Niall Douglas
37c7361a70 Regen for gcc and clang 2015-06-11 10:35:13 +01:00
Niall Douglas
ca34db3e7f Rename all constexpr tests to min_* 2015-06-11 10:25:03 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6a2b65715c Use doxygen snippets 2015-06-11 04:01:12 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
84c058b1c8 Fixed broken vcproj file 2015-06-11 03:35:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f538c990a3 Missing header fix 2015-06-11 03:20:58 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
43ff504d66 Added test of monad as an optional. 2015-06-11 03:11:53 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
86060e14d8 Added test that swap() works. 2015-06-11 02:45:00 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
00c341d218 Added test for whether monad can hold a STL container and itself be inside a STL container. 2015-06-11 02:33:30 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
297c7013d1 Added noexcept and weird udt unit tests. 2015-06-11 02:19:23 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
330c9cc5ba More doc fixes 2015-06-11 00:46:48 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8d1d58e6bb Increase opcount counter loop timeout to 1000 2015-06-10 14:57:48 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
944139beca Bad logic for detecting failing gcc test. 2015-06-10 12:58:51 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
11c6377810 count_opcodes.py now works using offsets instead of names for call inlining. 2015-06-10 12:51:38 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d7dcab1dd0 monad, promise and future all now take their error and exception types as template parameters.
monad now throws monad_error with monad_category by default.
2015-06-07 03:13:26 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f14ece6b4b Actually change limit instead 2015-06-05 03:30:03 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1241e2c500 Disabled another failing test on gcc/clang. 2015-06-05 03:26:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e5a5a15f92 Added unit test for monad. 2015-06-05 03:14:24 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
208cdd85b3 Stop count_opcodes.py from counting anything but test1() 2015-06-05 01:11:30 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
01e6a82f61 More constexpr monad tests 2015-06-05 00:45:24 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2243b0ceaa Fixed excessive constexpr 2015-06-04 23:34:14 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a6e4203bea Fleshed out the monad class 2015-06-04 19:04:14 +01:00