Commit Graph

195 Commits

Author SHA1 Message Date
Louis Dionne
daaba5dfd8 [Map] Provide model of Foldable, improve docs and add insert method.
Fixes #41
2015-04-11 12:09:01 -04:00
Louis Dionne
0246c59c6c [Sandbox] Remove the hana/sandbox folder and put everything in test/sandbox 2015-04-07 16:52:20 -04:00
Louis Dionne
1d7f28f941 [CMake] Improve the build system
- Simplify the compiler flag logic
- Use WARNING instead of STATUS to report caveats
- Allow specifying a custom libc++ root directory
2015-04-02 00:50:58 -04:00
Louis Dionne
ab1d294cec [Tests] Remove obsolete automatic tests in test/auto. 2015-03-26 02:08:44 -04:00
Louis Dionne
f92be805d0 [fusion::vector] Split the tests for Sequence 2015-03-25 16:19:11 -04:00
Louis Dionne
8f999feae2 [CMake] Disable additional broken Fusion tests. 2015-03-25 11:02:22 -04:00
Louis Dionne
eb42d3c673 [CMake] Disable fusion::tuple test for Monad because of a Fusion bug 2015-03-24 17:01:39 -04:00
Louis Dionne
8238bc4c38 [Tests] Re-enable unbroken Fusion tests 2015-03-24 16:21:07 -04:00
Louis Dionne
224bc2cf9a [Tests] Split the unit tests for mpl::integral_c 2015-03-22 21:06:37 -04:00
Louis Dionne
2d1edb14ff [CMake] Disable some failing Fusion unit tests 2015-03-20 00:44:23 -04:00
Louis Dionne
41914809a2 [Travis/Test] Clean up and modularization
- Properly setup build matrix
- Clean up .travis.yml
- Try building with Boost 1.57 and Boost 1.58
- Install dependencies to the deps/ subdirectory
- Reduce memory usage of test/type.cpp
- Re-enable some Fusion tests
2015-03-19 12:45:26 -04:00
Louis Dionne
52afb17a43 [Tests] Split unit tests in a much more clever way using CMake 2015-03-18 19:28:21 -04:00
Louis Dionne
356a1991b3 [Travis] Remove some MCD tests on Travis because we timeout/OOM 2015-03-13 12:16:34 -04:00
Louis Dionne
56484a3ac9 [CMake] Improve the build system and the targets
- Split targets to compile and run tests
- Add run.* targets to run each target
2015-03-12 14:44:14 -04:00
Louis Dionne
9cc9ca4b0e [Travis] Add support for Travis CI 2015-03-12 14:42:50 -04:00
Louis Dionne
d10f8ec2ca [CMake] Fix failing CMake when Boost is not found 2015-03-08 15:08:13 -04:00
Louis Dionne
6c076555a5 [ext/] Fix std::integer_sequence and mpl::vector failing tests 2015-03-08 11:56:27 -04:00
Louis Dionne
815a897ac2 [CMake] Create header inclusion test files only when they don't exist 2015-03-05 10:43:16 -05:00
Louis Dionne
479f5ef991 [Tests] Split more unit tests 2015-03-05 10:34:15 -05:00
Louis Dionne
b229a60e25 Refactor the automatic law checking to make it more modular 2015-03-05 09:35:06 -05:00
Louis Dionne
9388fe52eb [CMake + Config] Successfully compile on Clang 3.5 and improve diagnostics
Also disable fusion's adapters tests, which are currently broken
2015-03-05 09:35:06 -05:00
Louis Dionne
065b910128 Update copyright year. 2015-03-03 14:16:50 -05:00
Louis Dionne
0323eb185d [Test] Move record_macros.cpp and remove unused builtin.hpp 2015-02-22 14:55:35 -05:00
Louis Dionne
8e744413be [Record] Refactor documentation and split methods 2015-02-13 12:00:14 -05:00
Louis Dionne
c0690e3747 [CMake] Do not generate header-inclusion tests for ext/boost/* when Boost is not found 2015-02-10 18:03:19 -05:00
Louis Dionne
9dd3391130 [CMake] Fix typo: CMAKE_CURRENT_LIST_DIRECTORY => CMAKE_CURRENT_LIST_DIR 2015-02-06 18:01:40 -05:00
Louis Dionne
d042abda97 Automatically test including individual headers. 2014-11-12 11:22:53 -05:00
Louis Dionne
647ad436b0 Reorganize the unit tests and increase the overall coverage. 2014-11-04 08:54:58 -05:00
Louis Dionne
0c1dd29224 Improve some conversion operators.
- Add perfect forwarding
- Allow Maps and Sets to be created from Foldables instead of Lists
2014-10-04 22:58:39 -04:00
Louis Dionne
a7525b71e3 Fixes #8 2014-09-16 19:41:06 -04:00
Louis Dionne
1b021fcd89 Record: Allow instantiating with macros. 2014-09-09 10:32:04 -07:00
Louis Dionne
943c59c0a1 Refactor benchmarks. 2014-09-02 13:21:51 -04:00
Louis Dionne
307d3d0ec8 Huge reorganization and refactoring.
- Split type class instances into separate files
- Instances provided automatically by a type class are actually MCDs
- Test each instance in a single file, not one file per method
- Refactor the operator system to fix the ADL-related bug.
2014-08-18 19:26:29 -04:00
Louis Dionne
89a9a110e7 CMake: Handle dependencies on Boost properly 2014-07-23 07:22:49 -04:00
Louis Dionne
9f94924134 Plug the benchmarks with CMake. 2014-07-06 14:59:59 -04:00
Louis Dionne
65796aeb6e CMake: Automatically discover unit tests and examples. 2014-06-25 23:36:14 -04:00
Louis Dionne
52eead977e Adapt std::pair and instantiate Pair with it. 2014-06-24 21:33:08 -04:00
Louis Dionne
16d4ea0930 Add the Pair type class and data type. 2014-06-24 21:28:20 -04:00
Louis Dionne
229b3422eb sandbox: add tuple experiment 2014-06-24 17:15:03 -04:00
Louis Dionne
ea37adf66b Core: rethink type classes 2014-06-23 15:37:29 -04:00
Louis Dionne
159dbaecf6 Type: improve support for different metafunctions and rename lift 2014-06-22 10:31:10 -04:00
Louis Dionne
7440fd0c5e Applicative: add Maybe and StdTuple instances 2014-06-21 18:56:33 -04:00
Louis Dionne
585c0b8e76 Add the Applicative type class. 2014-06-21 18:16:56 -04:00
Louis Dionne
09fc489963 sandbox: add an implementation of repeat 2014-06-21 15:10:06 -04:00
Louis Dionne
dfed9d39e7 Type: add lift and remove trait.hpp header 2014-06-21 14:09:08 -04:00
Louis Dionne
86a2c7e888 sandbox: remove obsolete dispatch experiment 2014-06-21 12:41:22 -04:00
Louis Dionne
7b7bbd2290 Logical: add not_ 2014-06-21 12:39:19 -04:00
Louis Dionne
13e3bf02f6 Core: fix bug with datatype and inheritance 2014-06-21 11:28:15 -04:00
Louis Dionne
56f74519fe Functor: add replace and adjust 2014-06-20 22:54:46 -04:00
Louis Dionne
0a09ddaa97 Foldable: add the elem method 2014-06-20 21:35:58 -04:00
Louis Dionne
2c1bb3a607 sandbox: add a naive and incomplete map implementation 2014-06-20 20:53:33 -04:00
Louis Dionne
3f8198601c Adapt std::list. 2014-06-20 15:02:50 -04:00
Louis Dionne
09b2fff78e Make StdTuple a Monad. 2014-06-19 16:13:18 -04:00
Louis Dionne
56a8a50de2 sandbox: add lazy 2014-06-19 15:33:00 -04:00
Louis Dionne
c7a7aa4c89 Core: add is_a and instantiates 2014-06-19 12:19:51 -04:00
Louis Dionne
7e32f59837 core: Add conversion between data types 2014-06-18 20:23:53 -04:00
Louis Dionne
9e06246a67 Comparable: add unit tests for the mcds 2014-06-18 16:51:48 -04:00
Louis Dionne
42bb091e71 Foldable: reduce the mcd, steal find from Iterable and improve tests 2014-06-18 13:37:34 -04:00
Louis Dionne
db9a37c6e4 Monad: test the minimal complete definitions 2014-06-18 10:36:55 -04:00
Louis Dionne
874c28eade Functional: refactor to reduce coupling 2014-06-18 10:06:19 -04:00
Louis Dionne
199248bda1 sandbox: add a naive Matrix 2014-06-15 18:03:51 -04:00
Louis Dionne
a75d73cd90 sandbox: add is_valid 2014-06-15 15:48:49 -04:00
Louis Dionne
10a050c854 Logical: add conservative eval_if 2014-06-15 15:13:57 -04:00
Louis Dionne
56baf71826 sandbox: remove TODOs in array 2014-06-15 10:18:14 -04:00
Louis Dionne
2496259cb6 sandbox: ongoing attempt to improve if_ 2014-06-14 17:21:10 -04:00
Louis Dionne
8e1d12171a Make Logical a type class 2014-06-14 12:49:06 -04:00
Louis Dionne
92342e0402 Integral: harmonize with std::integral_constant 2014-06-13 23:30:04 -04:00
Louis Dionne
77c925d239 Add examples in Foldable and add the sizeof_ method 2014-06-13 22:16:12 -04:00
Louis Dionne
28e54f6ee9 List: reimplement partition, document sort_by and add permutations 2014-06-13 20:24:14 -04:00
Louis Dionne
2d0f6014e6 sandbox: add old constexpr rational code 2014-06-12 22:32:25 -04:00
Louis Dionne
5a74795687 sandbox: add experiment with sfinae -> Maybe 2014-06-12 14:37:11 -04:00
Louis Dionne
d951c3b594 core: document and test the type class instantiation system 2014-06-12 13:33:38 -04:00
Louis Dionne
ec10170b57 Use the new dispatching system with Foldable and Functor. 2014-06-12 07:02:24 -04:00
Louis Dionne
9b1cdd81b9 Comparable: update the dispatching system 2014-06-11 16:43:10 -04:00
Louis Dionne
809101956b Type: add construction capabilities 2014-06-09 18:22:33 -04:00
Louis Dionne
293b066ea4 TypeList: fix the ADL-related bug 2014-06-09 13:19:20 -04:00
Louis Dionne
2567066828 Type: documentation and decoupling 2014-06-08 16:41:52 -04:00
Louis Dionne
4a013fa8cf sandbox: Another attempt to dispatching for Comparable 2014-06-08 13:52:50 -04:00
Louis Dionne
71a70764e8 maybe: documentation and API improvements 2014-06-07 17:32:34 -04:00
Louis Dionne
d5368c05b4 sandbox: prototype a more flexible dispatching system 2014-06-07 16:36:46 -04:00
Louis Dionne
8984517166 Sandbox: add a (maybe) more clever assert 2014-06-06 11:32:45 -04:00
Louis Dionne
d4d82639f5 List: documentation and examples 2014-06-05 22:47:39 -04:00
Louis Dionne
80d115e017 Sandbox: add a linked list, std::array and std::string 2014-06-05 16:24:14 -04:00
Louis Dionne
b35531430b Sandbox: add operator_ 2014-06-05 03:34:19 -04:00
Louis Dionne
e86b9d3f4a Sandbox: add a possible infix operator implementation 2014-06-05 03:34:12 -04:00
Louis Dionne
b1f9527f83 Add a sandbox directory to test stuff. 2014-06-05 00:05:45 -04:00
Louis Dionne
8cd1863896 Move length from Iterable to Foldable. 2014-06-04 22:19:42 -04:00
Louis Dionne
a902435c76 CMake: put enable_testing() in the top level CMakeLists 2014-06-04 21:24:31 -04:00
Louis Dionne
61f0770b44 Integral: refactoring, documentation and decoupling 2014-06-04 21:24:31 -04:00
Louis Dionne
5b4d569962 Type: Add decltype_ and remove coupling. 2014-06-04 21:24:19 -04:00
Louis Dionne
a1ab4fab6b Functional: add fbind 2014-06-04 11:54:09 -04:00
Louis Dionne
178b25476d Functional: add arg<n> 2014-06-04 11:29:08 -04:00
Louis Dionne
806981bbcf Functional: remove argwise, add on and lockstep 2014-06-04 11:29:00 -04:00
Louis Dionne
c0b7a91e31 Move any, all and none to Foldable. 2014-06-03 12:28:05 -04:00
Louis Dionne
4b61774472 Add lazy_foldr to Foldable. 2014-06-03 11:38:54 -04:00
Louis Dionne
b090b57ee4 Use CTest for examples as well as unit tests. 2014-06-02 21:52:27 -04:00
Louis Dionne
1cebe9821d Document the Functional module. 2014-06-02 21:49:35 -04:00
Louis Dionne
7b70a24d2b Add user-defined literal for integral constants. 2014-05-31 15:36:02 -04:00
Louis Dionne
cec5d4edf8 Add unpack and remove Functor from Range. 2014-05-31 14:55:11 -04:00
Louis Dionne
7562f8cecf Add argwise to functional. 2014-05-31 14:41:34 -04:00