Commit Graph

160 Commits

Author SHA1 Message Date
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)
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)
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)
8c3a27eda3
try again fix CI 2017-06-14 19:41:34 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e1d6ebef8a
More renaming 2017-06-14 16:24:22 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7d67fcec12
Add errata for ACCU talk 2017-05-11 16:38:45 +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)
f661ee8303
Add todo items before the peer review 2017-05-10 12:02:31 +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)
6d01ab8546
Add usage from cmake to docs 2017-04-14 09:44:00 +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)
90b397d29a
upd 2017-04-08 23:53:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b9640b2cf2
Remove coverage badge as we haven't been calculating coverage in a long time 2017-03-30 09:35:51 +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)
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)
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)
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)
9439f32725
Wide ranging edits to docs 2017-02-02 18:12:15 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7ace97f75a
Finished side by side comparison of Outcome's Expected to LEWG Expected 2017-01-24 15:12:45 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
5e7e1fc9c4
Added a code example using expected<T, E> 2017-01-24 11:55:22 +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)
a94bbdfc54
Updated quick start with improved info on monadic operators 2017-01-11 13:12:23 +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)
1c3154bab8
Today's work on the tutorial 2017-01-09 16:24:16 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3c5a91a45f
Experimentally tried splitting off a section from the docs page into s separate page to see how that might work. 2017-01-06 09:24:07 +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)
12397b41f2
Update the docs with the newly fully functional clever source tarballing 2017-01-05 07:49:28 +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)
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)
3cf56d98c1
Add JSON returned by cdash for later work on a parsing script 2016-12-23 12:29:55 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1d4f56a693
Add develop branch CI badges to Readme.md 2016-12-23 10:26:58 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a845ffb8b0
upd 2016-12-07 16:00:15 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4856e1abf1
Add todos before I forget them 2016-11-11 22:14:06 +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)
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)
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)
12a92e59ba
More tutorial 2016-10-31 01:06:47 +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)
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)
c2c9494b21
upd 2016-10-18 19:09:09 +01:00
Niall Douglas
1658d93325 Other todos I thought of 2016-10-17 15:00:20 +01:00
Niall Douglas
2efc236293 Merge todos from the AFIO list 2016-10-17 14:53:31 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f3c8cc7559
upd 2016-08-13 18:36:04 +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)
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)
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)
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)
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)
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)
ef5848f0f9 Update todo items 2016-01-27 19:33:41 +00: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)
7e6f05ffdf Fix bad readme badge links. 2015-08-07 03:11:06 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3694a2c616 Docs now live on github. 2015-08-07 03:07:47 +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)
e582acc116 upd 2015-08-03 17:41:09 +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)
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)
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)
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)
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)
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)
83bbcdf864 upd 2015-07-04 04:39:03 +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)
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)
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)
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)
05fa315cba Added VS2015 benchmarks for future promise. 2015-06-28 04:12:27 +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)
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)
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)
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 (s [underscore] sourceforge {at} nedprod [dot] com)
4dbaad6738 More work items. 2015-06-22 01:43:38 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
fd786656bf Fixed bugs mentioned in boost-dev review. Added task list. 2015-06-22 01:08:08 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7a65330a1c Now ready for Boost review. 2015-06-19 17:35:25 +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