Commit Graph

2221 Commits

Author SHA1 Message Date
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)
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)
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)
e49e78ff00 Added benchmarks for VS2015 2015-06-30 15:22:36 +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