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