Commit graph

657 commits

Author SHA1 Message Date
q66 8391b03b37 support for positional and mutually exclusive args in groups 2017-05-25 19:17:42 +02:00
q66 32197f600c remove iter() in groups 2017-05-25 19:01:52 +02:00
q66 3b9a1b3384 add for_each on each type that will recursively iterate into groups 2017-05-25 18:44:33 +02:00
q66 c704813423 help fix 2017-05-24 22:10:20 +02:00
q66 0e9deab322 initial support for mutually exclusive argument groups 2017-05-23 18:07:34 +02:00
q66 b0fa895a49 better handling of arg_value::REST 2017-05-22 18:32:18 +02:00
q66 d8aee86526 use positional arg to specify build target 2017-05-21 19:35:32 +02:00
q66 f3e367aff8 implement mandatory positional arguments 2017-05-21 19:10:14 +02:00
q66 15d057b226 help printing for optional argument groups 2017-05-21 16:04:40 +02:00
q66 bf72ba0542 initial support for optional argument groups 2017-05-21 15:52:53 +02:00
q66 42edcf1e94 more flexible arg finding mechanism 2017-05-21 15:40:52 +02:00
q66 61fcdd4144 find_arg cleanup 2017-05-21 15:08:23 +02:00
q66 d1fbf02c42 add positional arg parsing 2017-05-21 02:55:25 +02:00
q66 94605330fc support for several values passed to optional args 2017-05-20 16:32:50 +02:00
q66 708aee4c44 do not return out of cb 2017-05-20 01:39:54 +02:00
q66 a84c1e5d84 add option to use posixly correct argument ordering 2017-05-20 01:38:04 +02:00
q66 bff30e3eb2 better handling of optional values for optional args 2017-05-20 01:32:53 +02:00
q66 e09caf37c8 simplify argparsing logic a bit 2017-05-20 01:22:19 +02:00
q66 7fee6b7b05 add arg_store_format 2017-05-19 01:38:34 +02:00
q66 f35ebe6122 add argument usage limit feature 2017-05-18 03:54:27 +02:00
q66 117a34b855 make sure the value requirement is always correct for optionals 2017-05-18 03:45:41 +02:00
q66 c8a22ab3a0 more helpful help formatting 2017-05-17 20:56:01 +02:00
q66 4ac173901a remove unnecessary friend decls in argparse 2017-05-17 20:07:25 +02:00
q66 43a0422786 make used a counter, not a bool 2017-05-17 00:38:12 +02:00
q66 66e6f9d146 separate help formatting into its own structure 2017-05-16 19:49:18 +02:00
q66 d1ad559461 argparse parsing cleanup and nicer api 2017-05-16 19:25:20 +02:00
q66 ff4620d3f5 move the arg storage into its own container 2017-05-16 01:37:29 +02:00
q66 65087c8e36 more reliable add_optional/positional/category (allow narrowing etc) 2017-05-16 01:32:18 +02:00
q66 0ee5404612 always store values externally 2017-05-16 00:22:46 +02:00
q66 061d988ef2 expand argparse storage options, add defaults, add outside storage 2017-05-16 00:06:16 +02:00
q66 8ba1c83609 predefined funcs for common argparse actions 2017-05-15 21:10:41 +02:00
q66 ec426a30a1 argparse: action callback support, help string support 2017-05-15 19:55:26 +02:00
q66 5373e3405c support for argparse action callbacks and value retrieval 2017-05-15 19:18:25 +02:00
q66 922da4a808 split up arg classes better 2017-05-15 18:49:59 +02:00
q66 d1b69963cb basic help printing for argparse and other improvements 2017-05-14 16:24:19 +02:00
q66 c19d45b21a add initial skeleton for argument parser 2017-05-13 22:24:26 +02:00
q66 45c8450209 envvar support in subprocess 2017-05-13 18:36:40 +02:00
q66 2fc506d1bb fewer temporary allocations in subprocess 2017-05-13 17:02:39 +02:00
q66 06687881c1 implement subprocess detach and validity checks 2017-05-13 00:00:44 +02:00
q66 0925ff3350 clean up platform checks 2017-05-12 00:05:18 +02:00
q66 005485f6a6 rename to subprocess_stream/error 2017-05-11 23:57:04 +02:00
q66 5fc674e4d3 allow split_args to take a lambda 2017-05-11 23:49:51 +02:00
q66 d4edafa350 ref-qualified appender get() method 2017-05-11 23:31:15 +02:00
q66 cc18d2b736 add subprocess constructors that open as part of the construction 2017-05-11 19:36:17 +02:00
q66 10caf39244 split win32 and posix code of context_stack and process into separate files 2017-05-10 00:30:23 +02:00
q66 469c85639a some more platform checks 2017-05-10 00:02:37 +02:00
q66 9e429189d7 more foolproof subprocess interface 2017-05-09 23:58:20 +02:00
q66 af951a243c use strings for subprocess errors 2017-05-09 20:33:45 +02:00
q66 6b228ee6a8 documentation for subprocess 2017-05-08 21:23:15 +02:00
q66 ea7f4062b7 hide platform-specific data from subprocess 2017-05-08 20:32:36 +02:00
q66 4966830d33 rename process_info to subprocess 2017-05-08 18:42:30 +02:00
q66 4022897195 make sure process exec never leaks file descriptors 2017-05-08 17:10:09 +02:00
q66 ce1b94624a rename process_pipe 2017-05-08 04:13:07 +02:00
q66 61fcfeee2e slight process api cleanup 2017-05-08 04:09:47 +02:00
q66 1ecf921f1a initial impl of process calling api (posix only atm) 2017-05-08 03:51:45 +02:00
q66 44d370183c custom close func support for filestreams 2017-05-08 01:07:32 +02:00
q66 f01992c952 add command line splitting api (posix, windows) and use it from build 2017-05-07 21:17:13 +02:00
q66 a191164700 make global constexpr variables inline 2017-05-06 15:09:44 +02:00
q66 fc6935151d more build cleanups and emplace for channels 2017-05-05 02:00:47 +02:00
q66 9be0ad2a0e simplify example a bit more 2017-05-03 02:31:26 +02:00
q66 d6a2a3f07c include all examples in generated docs 2017-05-03 02:14:27 +02:00
q66 0ae9838b83 doc fix 2017-05-03 01:52:28 +02:00
q66 9f593eebd1 tids are non-copyable, only movable 2017-05-02 23:49:56 +02:00
q66 2c62b82ec4 future-like objects representing tasks in concurrency 2017-05-02 21:42:31 +02:00
q66 94814dc61e remove internal/win32.hh and put environ stuff into a source file 2017-05-02 00:15:01 +02:00
q66 19badf6140 threaded build.cc 2017-04-30 20:16:49 +02:00
q66 c1e79a4c75 unit tester fixes 2017-04-28 01:54:28 +02:00
q66 69890906fd move test module to the beginning of the file 2017-04-27 19:06:57 +02:00
q66 37def859e5 catch all exceptions in unit tester 2017-04-26 23:12:59 +02:00
q66 27bc7be245 cleanup and document unit test header 2017-04-25 18:48:10 +02:00
q66 b885e57fdb improved threaded test runner 2017-04-24 18:18:10 +02:00
q66 d359e46818 add some basic unit test infra to allow testing together with impl 2017-04-23 17:57:01 +02:00
q66 cc8452e265 remove make_ range helpers for containers (use iter_begin/end) 2017-04-23 15:30:51 +02:00
q66 ef147c538c add complete input iterator type for any range 2017-04-22 17:12:20 +02:00
q66 b1f207bd3b hide appender_range definition 2017-04-17 17:07:24 +02:00
q66 c0421b721b no need to create generator iterator from generator ranges 2017-04-17 16:17:18 +02:00
q66 a743f7b755 no reference/size_type for output ranges 2017-04-16 17:41:50 +02:00
q66 1619dac782 remove range difference type (unused) 2017-04-16 17:23:09 +02:00
q66 71aa6ff70b better template arg names for algorithm documentation 2017-04-15 16:14:50 +02:00
q66 cd3ccba757 more elaborate range element swap tests 2017-04-15 14:20:01 +02:00
q66 45b5eb2c0e Fully document algorithm.hh 2017-04-14 19:10:38 +02:00
q66 6cdf31d42b doc cleanups 2017-04-14 18:04:17 +02:00
q66 dd0c747488 more algorithm.hh documentation 2017-04-14 17:30:21 +02:00
q66 3de75431dd more algorithm docs 2017-04-14 16:57:02 +02:00
q66 dbbef8c7ac add a range trait to check swappability for range elements 2017-04-14 15:54:15 +02:00
q66 c6697c9ff4 document part of algorithm.hh 2017-04-14 15:03:54 +02:00
q66 c1e17617cb hide generator range too 2017-04-14 03:45:06 +02:00
q66 313f637e9b hide most wrapper ranges in detail namespace 2017-04-14 03:35:30 +02:00
q66 09c3c02c33 doc cleanups 2017-04-12 19:12:09 +02:00
q66 220f9ee374 remove explicit copy/move ctors 2017-04-12 00:45:02 +02:00
q66 ce5c20a973 simplify chainable range algos 2017-04-12 00:07:21 +02:00
q66 9d1c739956 document range.hh 2017-04-11 21:32:53 +02:00
q66 fb02bd2cb9 string.hh documentation + noexcept 2017-04-10 19:43:44 +02:00
q66 1525edf3d7 type/include cleanup 2017-04-09 16:44:45 +02:00
q66 a913f7beca document io.hh 2017-04-09 16:09:54 +02:00
q66 2b74cd170f document stream.hh 2017-04-08 18:03:02 +02:00
q66 572620b10f channel api improvements 2017-04-07 19:28:19 +02:00
q66 62676f4222 rename octastd to libostd 2017-04-06 20:14:52 +02:00
q66 36332dff40 document environ and filesystem 2017-04-05 20:53:14 +02:00
q66 480b7a56a4 more documentation 2017-04-04 19:29:15 +02:00
q66 9f35909660 fixes in streams 2017-04-04 01:06:55 +02:00
q66 4a7baa40a0 remove types.hh 2017-04-04 00:30:07 +02:00
q66 3b7f54e64c virtual destructor for scheduler 2017-04-03 18:20:43 +02:00
q66 b1c9a0d196 more doc fixes 2017-04-03 18:17:47 +02:00
q66 08bd63d773 doc cleanups 2017-04-03 18:11:24 +02:00
q66 a4523027c2 format doc fixes 2017-04-03 17:53:41 +02:00
q66 d4edd42596 detailed docs for format module 2017-04-02 18:24:30 +02:00
q66 6d0c0a91f4 document context_stack.hh 2017-04-02 15:11:22 +02:00
q66 f2a78ad589 guaranteed single-argument slice 2017-04-01 16:49:38 +02:00
q66 fe4d7a553a remove pop_front_n/pop_back_n from direct definition 2017-04-01 01:07:30 +02:00
q66 d99768de96 remove equals_ stuff 2017-03-31 03:39:28 +02:00
q66 dc7c124069 remove distance_ stuff 2017-03-31 03:36:40 +02:00
q66 8f70b60484 remove range push_ stuff 2017-03-31 03:34:35 +02:00
q66 6ddb0f1b17 remove the range half stuff for now 2017-03-31 03:28:18 +02:00
q66 1bd12fda04 use @brief 2017-03-30 00:38:43 +02:00
q66 d5f2f7f6b7 document generic_condvar 2017-03-30 00:36:51 +02:00
q66 90af651f24 document thread pool 2017-03-29 20:41:53 +02:00
q66 32110bcb9f simplify range-for-only iterators using relaxed c++17 rules 2017-03-28 23:58:44 +02:00
q66 049c4b8c47 document coroutines 2017-03-28 22:21:38 +02:00
q66 94915ee5fc merge coroutine context into coroutine.hh 2017-03-28 18:59:16 +02:00
q66 ca40fb1e0c document concurrency 2017-03-27 21:49:55 +02:00
q66 cca5a12755 some initial documentation 2017-03-27 18:51:50 +02:00
q66 b86b7f9b29 allow setting the thread count for coroutine scheduler 2017-03-26 14:38:57 +02:00
q66 cdf3875b81 custom stack allocator support for start where available 2017-03-25 17:52:11 +01:00
q66 b02521ac19 only lock for stack manipulation with potentially unsafe allocators 2017-03-25 15:13:21 +01:00
q66 9fc3d70fe3 lock when allocating/deallocating/reserving stacks in a threaded env 2017-03-25 15:09:53 +01:00
q66 ed9f7c8949 add wrapper methods to reserve more stacks to existing schedulers 2017-03-25 15:04:28 +01:00
q66 b1d95faa41 make it possible to provide custom stack allocator types to schedulers 2017-03-25 15:01:14 +01:00
q66 f93b08a924 implement stack pool's interface on regular stack allocators 2017-03-25 14:50:16 +01:00
q66 1826511187 make it possible to allocate coroutines/generators with scheduler 2017-03-25 14:22:52 +01:00
q66 73c4dd6cbf yields are noexcept 2017-03-24 15:56:16 +01:00
q66 c1e0ae56ac prevent starting of another scheduler if one is already running 2017-03-24 15:52:40 +01:00
q66 f79236e94f make full spawn/make_channel methods on base scheduler 2017-03-24 15:31:41 +01:00
q66 a1974ddf45 clean up the helper funcs 2017-03-24 15:24:07 +01:00
q66 c96d64e5ba remove the scheduler iface nonsense (just make a virtual base) 2017-03-24 15:18:41 +01:00
q66 a4a524b29d remove the _in suffixes (not actually necessary) 2017-03-24 14:25:13 +01:00
q66 9ab5f03612 remove template arg 2017-03-23 17:52:14 +01:00
q66 a04db12d49 dispatch directly from start when using bscs 2017-03-23 15:25:23 +01:00
q66 023af03361 spawn/make_channel/yield without explicitly specifying scheduler 2017-03-23 11:35:23 +01:00
q66 147b8d8042 non-template spawn 2017-03-23 10:56:21 +01:00
q66 d73ad08e87 make channels outside of scheduler 2017-03-23 10:41:13 +01:00
q66 47145f0431 make the generic condvar public 2017-03-23 10:25:24 +01:00
q66 45e65d7ec7 unified single-type interface for channels 2017-03-23 03:17:09 +01:00
q66 0e24dcd1c4 nested coroutine example + use stackpool for dispatcher in bscs 2017-03-23 00:40:42 +01:00
q66 422a65cade actually free coroutine stacks in dtor (more predictable and safer) 2017-03-22 22:38:48 +01:00
q66 1351ac14f6 fix lockups when a condvar signals while a task is being blocked 2017-03-22 20:01:37 +01:00
q66 66758fa1df only put task to the waitlist after it's yielded 2017-03-22 19:00:36 +01:00
q66 cd5bc965bd use csched_task for both coroutine schedulers 2017-03-22 18:44:06 +01:00
q66 18cfe5119f track current task for coroutine scheduler separately 2017-03-22 18:23:29 +01:00
q66 bffc917f46 use a custom coroutine type for tasks 2017-03-22 17:58:34 +01:00