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