Commit Graph

15 Commits

Author SHA1 Message Date
Louis Dionne
9895803ede Bump copyright year to 2017 2017-01-07 14:14:18 -08:00
Louis Dionne
357aeea527 [experimental] Add types<>, a Sequence specialized for holding types 2016-02-15 10:14:03 -05:00
Louis Dionne
23c3edc93b [NFC] Un-Doxygenize comments in non-header files 2016-02-04 11:07:41 -05:00
Louis Dionne
c41a5cb6be Update copyright notices for 2016 2016-01-01 14:54:06 -05:00
Louis Dionne
33f2b4cf2f [Benchmarks] Improve transparency w.r.t Fusion algorithms
Specifically,

(1) We now benchmark with fusion::list too
(2) We now document our methodology for forcing the evaluation of algorithms

Note that we still use `as_list` and `as_vector` to force the evaluation
of algorithms instead of using e.g. `for_each`. This is because we want
to compare apples with apples, and for this we need to get a sequence of
computed values, not only for_each over the view. The disclaimer in the
tutorial saying "Fusion might encourage a different design" takes care
of warning people about the fact that we're not necessarily using
idiomatic Fusion, but not need to benchmark unfairly to try to
account for that.
2015-10-22 18:21:13 -04:00
Louis Dionne
97c86a064b [Doc] Remove references to tuple_t from the benchmarks 2015-08-30 17:04:57 -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
32d4c973e9 [Doc] Write new tutorial sections and reorder other sections
- Write sections on containers, algorithms, and runtime performance
- Make sure examples consistently use 2 space tabs
- Disable -Wunused-parameter for examples
- Resolves #70
  The requirement of pure functions is now documented.
- Resolves #14
  It turns out that the benefits of specifying the type of containers
  seems to be essentially limited to pattern matching. This is not
  enough to justify all the bad things it brings, especially
  considering the fact that recursion (currently the only use
  case for pattern matching) forces the creation of a new tuple
  at each step, which is disastrous. The unspecified-ness of the
  container's type is now documented.
2015-05-28 17:03:46 -04:00
Louis Dionne
98a3c6658c [Benchmarks] Improve support for MPL11 and remove most homogeneous benchmarks 2015-05-05 18:46:00 -04:00
Louis Dionne
e6d0fa9487 [CMake] Use Find modules to find optional external libraries 2015-04-28 10:46:44 -04:00
Louis Dionne
62804fe7e3 [Benchmarks] Add support for Meta in the benchmarks 2015-04-28 09:51:12 -04:00
Louis Dionne
f0ca4df2da [Benchmarks] Fix benchmarks broken by ca37fdf
Also check the benchmarks when we're on develop, to make sure they're
not broken.
2015-04-25 19:52:06 -04:00
Louis Dionne
ca37fdfa4c [Doc] Add a section on performance in the tutorial
Also:
- Introduce the .js charts we have in the reference
- Remove the ugly "Generated by Doxygen" footer
- Refactor the benchmarks
2015-04-25 16:31:56 -04:00
Louis Dionne
52c10011dc [Benchmarks] Refactoring
- Modularize the directory structure
- Add code bloat benchmarks
- Benchmark larger MPL vectors
- Improve the chart display

Fixes #45
2015-04-23 13:07:39 -04:00
Louis Dionne
fd14741747 [Benchmarks] Simplify the benchmark framework and generate JSON instead of CSV 2015-04-18 12:51:25 -04:00