Commit Graph

1973 Commits

Author SHA1 Message Date
Louis Dionne
5b530824fe [GCC] Workaround bugs and warnings
- Fix ambiguous overload of `concat` for Optionals
- Fix compilation error in std::vector unit test
- Fix false positives related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66543
- Fix compilation error caused by variable template initialized by a lambda
2015-08-28 10:21:04 -04:00
Louis Dionne
8482d25b2e [Sandbox] Use is_a instead of hand-rolled predicate 2015-08-28 10:17:52 -04:00
Louis Dionne
307f0d8c50 Add the lexicographical_compare algorithm 2015-08-26 13:40:11 -04:00
Louis Dionne
9fb555fc4a [zip_shortest_with] Use a constexpr min_element instead of minimum(tuple(...)) 2015-08-26 11:27:28 -04:00
Louis Dionne
f373b421f9 [Headers] Minimize the #includes in headers
- Allow specializing models_impl with a forward declaration only
- Modularize remaining concept headers
- Include <boost/hana.hpp> in unit tests to ease the transition
- Add the core/dispatch.hpp header to reduce the number of boilerplate includes
2015-08-26 11:27:28 -04:00
Louis Dionne
a62ab5cb29 [at_c] Use a function instead of a variable template, and optimize
Using a function instead of a variable template allows us to provide an
optimized version for hana::tuple more easily. It also fixes some issues
on GCC.
2015-08-26 11:27:27 -04:00
Louis Dionne
cb94d18440 [Travis] Clean up and simplify .travis.yml
- Remove useless allowed failure for Boost trunk, which does not work anyway
- Remove Clang 3.7, which is broken now. Will re-enable when Clang 3.7 is released
- Use JSON-style YAML lists to reduce vertical whitespace pollution
- Rename stdc++ to libstdc++
- Improve the locality of setting CXXFLAGS & related flags
- Specify the DEPS_DIR explicitly when exporting PATH
- Remove useless `if` guard over LLVM urls
- Use multiline strings to simplify if statements
- Remove now obsolete calls to `free`, `vmstat` & al
2015-08-25 18:36:15 -04:00
Louis Dionne
31c08e11b5 [Travis] Add testing on Boost 1.59.0
Also update Doxygen, CMake and libc++ versions
2015-08-25 18:35:10 -04:00
Louis Dionne
32627e2463 [Doc] Properly document the boost::hana::literals namespace 2015-08-25 17:51:39 -04:00
Louis Dionne
a02a62b652 [Sequence] Modularize some provided models 2015-08-24 21:37:11 -04:00
Louis Dionne
92edd1c98f [Orderable] Remove Orderable::equal_impl 2015-08-24 21:35:34 -04:00
Louis Dionne
40a687bbcc [Monad] Remove Monad::ap_impl
We still document the implementation of `ap` for Monads, but we do not
provide it.
2015-08-24 21:35:34 -04:00
Louis Dionne
13d1247acf [Iterable] Automatically provide the model of Searchable for infinite Iterables 2015-08-24 18:51:31 -04:00
Louis Dionne
b8fecf3cad [Applicative] Remove Applicative::transform_impl
The possibility to define transform(xs, f) = ap(lift(f), xs)
is still documented, but no implementation is provided by Hana.
2015-08-24 18:51:31 -04:00
Louis Dionne
6adefb627d [std::array] Use operators instead of Hana's implementations for equal and less 2015-08-24 18:51:31 -04:00
Louis Dionne
f25212ae0c Fix #includes of the wrong forward declaration header 2015-08-24 16:52:22 -04:00
Louis Dionne
99275d5cc3 Simplify specializations for Sequences, and use fast_and instead of hana::all 2015-08-24 16:52:22 -04:00
Louis Dionne
bf0670e814 [second] Remove useless #include 2015-08-24 13:47:07 -04:00
Louis Dionne
529f1cd459 [Either] Remove entirely
I had been unsatisfied with Either for a while now, thinking it might
be useless. I am now convinced that it is useless, and I hence remove
it from the library altogether.
2015-08-24 13:21:25 -04:00
Louis Dionne
b7d478fb39 [Concepts] Strip down some headers and reimplement models without _integral_constant 2015-08-24 13:21:25 -04:00
Louis Dionne
54171139bc [Benchmarks, Doc] Update version of the Github.js lib and improve chart.html 2015-08-24 11:47:40 -04:00
Louis Dionne
e67b14bd96 [Doc] Use typewritter font where needed in the cheatsheet 2015-08-23 13:49:17 -04:00
Louis Dionne
55dfe66fe8 [cartesian_product] Benchmark on larger datasets 2015-08-23 13:49:17 -04:00
Louis Dionne
e2c4c1f36e [Sequence] Add the remove_range algorithm
Closes #52
2015-08-23 13:49:16 -04:00
Louis Dionne
e42ce66d26 [Set,Map] Optimize several methods
Fixes #63
2015-08-23 12:00:59 -04:00
Louis Dionne
279e4bb4b8 [Benchmarks] Fix broken benchmarks for set theoretic operations 2015-08-23 09:33:27 -04:00
Louis Dionne
96f90f6956 [Set] Refactor the unit test of equal 2015-08-23 09:26:45 -04:00
Louis Dionne
d6a435dd24 [Example] Use std::plus instead of hana::_ in Wandbox example 2015-08-23 09:03:00 -04:00
Louis Dionne
12c4deeece [Set] Add missing set theoretic operations
Closes #119
2015-08-23 08:36:21 -04:00
Louis Dionne
2661a89dd4 [Example] Add a miscellaneous example of adding a Printable concept
This allows me to get rid of an old local branch. In the future, this
should be turned into a proper example of creating a concept in the
tutorial.
2015-08-23 07:52:15 -04:00
Louis Dionne
fd491ef9fb [Map] Fix broken benchmark of is_disjoint 2015-08-23 07:52:15 -04:00
Louis Dionne
4191151935 [Set] Optimize equal for sets with different lengths 2015-08-23 07:52:15 -04:00
Louis Dionne
89c61aec67 Use ::value instead of {}() everywhere 2015-08-23 07:52:14 -04:00
Louis Dionne
c3fdac36e2 [concat] Remove unused implementation for non-Foldable Sequences
Since a42544d, all Sequences are finite, and hence they are also Foldable
because finite Iterables must be Foldable. Hence, the implementation of
concat for non-Foldable Sequences is useless.
2015-08-22 11:28:33 +01:00
Louis Dionne
f9ff1d59c6 [Metafunction] Use @snippet instead of @include where it makes more sense 2015-08-20 18:17:24 +01:00
Louis Dionne
dcd930fa55 [Metafunction] Add rationale for the lack of Comparable model 2015-08-20 18:14:54 +01:00
Louis Dionne
9c9d938c7d [Travis] Build examples and tests in two separate commands to avoid timeouts 2015-08-19 09:42:46 +01:00
Louis Dionne
cfb83c3394 [Doc] Fix broken example paths 2015-08-18 18:27:35 +01:00
Louis Dionne
08b3db1708 [Examples] Modularize and use qualified names
This patch modularizes the examples, makes them self-contained and
also uses qualified hana:: names.

Fixes #139
Fixes #126
2015-08-15 17:50:40 +02:00
Louis Dionne
02242e38b4 [Sequence] Remove unused implementation of equal for infinite sequences 2015-08-15 10:13:01 +02:00
Louis Dionne
e5e1f761f9 [Searchable] Add the is_disjoint algorithm
Partially addresses #119
2015-08-12 22:00:32 +02:00
Louis Dionne
f6fbd028ba [Struct] Move the BOOST_HANA_{ADAPT,DEFINE}_STRUCT macros to their own headers 2015-08-09 10:55:15 +02:00
Louis Dionne
c63950a25c [drop_front] Add missing include 2015-08-09 10:09:54 +02:00
Louis Dionne
9771a2f0ed [Doc] Re-document the Functional module. 2015-08-09 09:00:31 +02:00
Louis Dionne
d8f3b8775e [Doc] Transition to benchmarks on Clang 3.6.2 from 3.6.1 2015-08-08 16:56:35 +02:00
Louis Dionne
d6c4befe10 [Doxygen] Remove spurious warnings. Common Doxy... 2015-08-08 16:56:05 +02:00
Louis Dionne
fd63f651d0 Add basic_tuple, a minimal version of the tuple 2015-08-08 13:16:02 +02:00
Louis Dionne
0ccc0fb342 [Benchmarks] Depend on all the .cpp benchmark files instead of just the .erb.json
This way, the benchmarks will be re-generated when we modify one of the
.cpp files.
2015-08-08 13:16:02 +02:00
Louis Dionne
6b94de8ed3 [Either] Remove leading underscores forgotten in a5e5ee9 2015-08-08 11:37:59 +02:00
Louis Dionne
a5e5ee90bd Remove most leading underscores from names in the hana:: namespace
Fixes #130
2015-08-08 11:24:17 +02:00