Louis Dionne
79db7e90df
[range] Rename Range to range_tag
2015-09-02 21:59:05 -04:00
Louis Dionne
5cec8b3e2e
[tuple] Rename Tuple to tuple_tag
2015-09-02 21:59:04 -04:00
Louis Dionne
9168cc4ce8
[map] Rename Map to map_tag
2015-09-02 21:59:04 -04:00
Louis Dionne
c52c6d88d4
[Doc] Adjust the documentation to use "tag" instead of "data type" when it makes sense
2015-09-02 21:59:03 -04:00
Louis Dionne
4e3d17bd3b
[Core] Do not use a nested ::hana struct to hold the tag.
...
This was annoying because
(1) We couldn't use the name hana:: from within the struct
(2) It requires one more instantiation unless you use the
`using hana = self` trick. But that trick makes something
that should be trivial to do slightly harder, and that is stupid.
2015-09-02 21:59:03 -04:00
Louis Dionne
f3d9df96d0
[Core] Rename datatype<> to tag_of<>
...
Also, rename the nested hana::datatype alias to hana::tag.
2015-09-02 21:59:03 -04:00
Louis Dionne
08f66d47c1
[IntegralConstant] Suffix variable templates with _c, and clean up type names
...
Along with PR #166 , this closes #122 because names have now been
cleaned up and are now consistent basically everywhere.
2015-09-01 16:34:04 -04:00
Louis Dionne
0e8913fa3c
[Doc] Use implementation-defined instead of unspecified-type
...
Also, update the tutorial to reflect the fact that container types
are now sometimes specified.
2015-08-31 13:42:15 -04:00
Louis Dionne
d8b08aa43c
[Doc] Promote Metafunction from data type to concept, and document as such
2015-08-31 12:59:22 -04:00
Louis Dionne
98e76512a1
[Doc] Document hana::lazy instead of hana::Lazy
2015-08-31 11:42:57 -04:00
Louis Dionne
c2ed70ddf9
[Doc] Document hana::type instead of hana::Type
...
Precisely,
1. Rename hana::_type to hana::basic_type, and document it
2. Rename hana::type<> to hana::type_c<>
3. Create and document the hana::type<> type
2015-08-30 17:08:06 -04:00
Louis Dionne
e1d08aa277
[Doc] Document hana::basic_tuple instead of hana::BasicTuple
2015-08-30 17:07:19 -04:00
Louis Dionne
d0492da082
[Doc] Document hana::integral_constant instead of hana::IntegralConstant
2015-08-30 17:07:19 -04:00
Louis Dionne
ed2eca2ddb
[Doc] Document hana::string instead of hana::String
2015-08-30 17:07:19 -04:00
Louis Dionne
3738a4c662
[Doc] Document hana::range instead of hana::Range
2015-08-30 17:07:18 -04:00
Louis Dionne
7f933490ad
[Doc] Document hana::optional instead of hana::Optional
2015-08-30 17:07:18 -04:00
Louis Dionne
4bd3c6bd0e
[Doc] Document hana::map instead of hana::Map
2015-08-30 17:07:18 -04:00
Louis Dionne
22d75503ed
[Doc] Document hana::pair instead of hana::Pair
2015-08-30 17:07:18 -04:00
Louis Dionne
e4c1b44f8e
[Doc] Document hana::set instead of hana::Set
2015-08-30 17:07:18 -04:00
Louis Dionne
6d80a308da
[Doc] Document hana::tuple instead of hana::Tuple
...
Also, document the member functions of `hana::tuple` and add an example.
Fixes #163
2015-08-30 17:07:18 -04:00
Louis Dionne
97c86a064b
[Doc] Remove references to tuple_t from the benchmarks
2015-08-30 17:04:57 -04:00
Louis Dionne
307f0d8c50
Add the lexicographical_compare algorithm
2015-08-26 13:40:11 -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
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
e2c4c1f36e
[Sequence] Add the remove_range algorithm
...
Closes #52
2015-08-23 13:49:16 -04: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
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
78f056a25c
[example.switchAny] Update the tutorial to use hana::pair and default_t instead of _default
2015-07-28 20:23:21 +02:00
Louis Dionne
2027593022
[Tutorial] Remove misplaced comma
2015-07-26 12:42:20 +02:00
Louis Dionne
9d74084996
Remove take_until and some xxx_exactly variants
...
Of the xxx_exactly variants, only drop_front_exactly is kept for now,
because it actually allows an optimization. The other ones did not
really provide a compile-time improvement, so they are removed.
2015-07-26 12:42:20 +02:00
Louis Dionne
cecaf823f6
[Iterable] Replace front
by at
in the MCD to allow more efficient algorithm implementations
...
Related to #158
2015-07-25 16:20:48 +02:00
Louis Dionne
d3b7cb2c85
Modularize the headers
...
This (large) commit introduces the following changes:
- Each algorithm lives in its own header
- The concepts are defined in the concept/ subdirectory. They define the
`models` metafunction, some explicit default implementations (like
Applicative::transform_impl), and they include all the algorithms
related to that concept.
- Removed the `until` method from Logical
- Removed the `drop_until` method from Iterable
- [minor] Added the detail::nested_to utility
Closes #160
2015-07-25 16:20:47 +02:00
Louis Dionne
83c3b4781e
[Doc] Move the tutorial out of hana.hpp
...
Fixes #161
2015-07-07 21:26:11 +02:00
Louis Dionne
3db57c6bca
[README, Doc] Update the logo and mention that it's now officially in Boost
2015-07-07 19:47:12 +02:00
Louis Dionne
bd50d5f651
[Doc] Methods -> Functions in the reference
...
Fixes #98
2015-06-13 09:47:22 -04:00
Louis Dionne
35cdf3b83a
[Struct] Implement macros using ERB templates instead of Boost.Preprocessor
...
This is done because the resulting macros are much more straightforward
to debug when a user makes a mistake. Also, it avoids pulling yet another
dependency.
Also added some general purpose macros in detail/preprocessor.hpp.
2015-06-10 15:50:35 -04:00
Louis Dionne
f3cff75480
[Benchmarks] Disable std::tuple benchmarks on Clang 3.5.0 due to ICE
2015-06-05 10:17:30 -04:00
Louis Dionne
35f25cbc35
[Doc] Implement improvements suggested by @tzlaine (part 1)
...
- Remove the preface entirely
- Move the current introduction to a "Description" section
- Move the "Quadrants of computation" to the "Introduction"
- Move the current "Motivation" section to the start of the "Introduction"
- Move the section on "Introspection" higher up in the docs
- Remove the "Concept" column in the Cheatsheet, and add links to each
individual algorithm instead.
- Add a rationale for unpack's name and parameter order
- Add `fold` and `reverse_fold` to the cheatsheet
- Mention the list of all headers in the tutorial
- Add an alphabetical index with everything in the library
- Precise that smaller is better in chart subtitles
- Add benchmarks for std::make_tuple and std::get
2015-06-04 21:13:45 -04:00
Louis Dionne
8fd8129258
[Doc] Daily tutorial improvements
...
- Finish the section on "Introspection"
- Use a Boost "proposed" logo instead of the proper Boost logo
2015-06-02 23:52:57 -04:00
Louis Dionne
2d7ffed101
[Doc] Daily documentation improvements
...
- Add an "Acknowledgements" section
- Rename Boost.Hana to Hana for now (not officially a Boost library)
- Partially write the section on "Introspection"
Fixes #46
I feel like the documentation now provides enough real world examples:
- switchAny
- Euclidean distance
- JSON generation (to be written)
- MPL reimplementation
2015-06-01 18:06:28 -04:00
Louis Dionne
ac04435b60
[Doc] Daily improvement of the tutorial
...
- Merge section on Amphibian Algorithms with section on Algorithms
- Replace the `decayed` pseudo-code by `std::decay_t`.
- Rewrite and move section on type computations
- Add Appendix on the MPL implementation
2015-05-31 18:57:05 -04:00
Louis Dionne
cd38e0238a
[Doc] Italicize words from the pseudo-code glossary.
...
Fixes #74 , thanks @alexk7 for the initial suggestion at C++Now.
2015-05-28 19:26:00 -04:00
Louis Dionne
4d3d71aae3
[Doc] Add a Boost logo
2015-05-13 14:10:03 -06:00
Louis Dionne
5ad2e3092d
[Doc] Remove old Gnuplot-based benchmarks
...
[ci skip]
2015-05-05 19:14:56 -04:00
Louis Dionne
434fe06298
[Doc] Fix broken include of GitHub.js
2015-04-29 17:03:59 -04:00
Louis Dionne
a32ea99003
[Tutorial] Charts were pointing to the wrong datasets
2015-04-29 12:08:02 -04:00
Louis Dionne
a85be42014
[Doc] Get JSON data for the charts with the proper headers
2015-04-26 09:03:10 -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
1538677829
[Travis] Run the benchmarks in Debug and Release configurations
...
Fixes #49
2015-04-22 22:58:29 -04:00
Louis Dionne
9a0e356421
[Travis] Run the benchmarks on each compiler and other minor enhancements
2015-04-18 12:51:26 -04:00
Louis Dionne
36a3e22429
[CMake] Add targets to update the benchmarks on the 'datasets' branch
2015-04-18 12:51:26 -04:00
Louis Dionne
fd14741747
[Benchmarks] Simplify the benchmark framework and generate JSON instead of CSV
2015-04-18 12:51:25 -04:00
Louis Dionne
6a08495ab7
[CMake] Use git commit --allow-empty when committing on gh-pages
2015-04-04 13:00:43 -04:00
Louis Dionne
7021c2dd3c
[Travis] Move to the container-based infrastructure
...
- Build libc++ properly on Travis (with CMake)
- Test against Boost trunk
- Build the documentation and push to gh-pages when on master
2015-04-03 13:42:15 -04:00
Louis Dionne
bad068b15f
[CMake] Remove the doc/gh-pages submodule and use a clone instead
2015-04-02 02:14:16 -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
2d1edb14ff
[CMake] Disable some failing Fusion unit tests
2015-03-20 00:44:23 -04:00
Louis Dionne
065b910128
Update copyright year.
2015-03-03 14:16:50 -05:00
Louis Dionne
640f682b36
[Doxygen] Enable MathJax
2015-02-25 12:39:05 -05:00
Louis Dionne
a25e84cf3b
[Doc] Refactor the tutorial
2015-02-22 16:50:00 -05:00
Louis Dionne
efd5aa9624
[Documentation] Rename group-typeclasses to group-concepts
2015-02-15 11:42:42 -05:00
Louis Dionne
14e3c34815
Add missing copyright in doc/CMakeLists.txt
2014-12-01 14:20:06 -05:00
Louis Dionne
943c59c0a1
Refactor benchmarks.
2014-09-02 13:21:51 -04:00
Louis Dionne
963cc1bf6e
Documentation: make the default tree view larger so we can see everything
2014-07-31 18:19:40 -04:00
Louis Dionne
d6571e7681
Documentation: add indexes to the doxygen output
2014-07-31 18:15:27 -04:00
Louis Dionne
71dd6fc08b
CMake: clarify message when Doxygen/Git is missing.
2014-07-31 17:04:38 -04:00
Louis Dionne
8a8ff797ab
Split Core into subdirectories to reduce dependencies.
2014-07-30 11:15:26 -04:00
Louis Dionne
2cf2718597
CMake: more flexibility to generate the documentation
2014-07-29 11:07:15 -04:00
Louis Dionne
a0e357e632
Update the documentation submodule
2014-07-28 20:13:46 -04:00
Louis Dionne
74654d6159
Tutorial: Polishing and explain the reference
2014-07-28 12:52:27 -04:00
Louis Dionne
03792c90d5
Documentation: improve output with a custom layout
2014-07-27 16:57:36 -04:00
Louis Dionne
bda17bc352
Clean up Doxyfile
2014-07-25 22:59:54 -04:00
Louis Dionne
9a56dac2cf
CMake: allow putting benchmark plots in the documentation
2014-07-25 08:53:57 -04:00
Louis Dionne
cfcf7eaee6
CMake: add a target to update the gh-pages branch
2014-07-23 13:51:12 -04:00
Louis Dionne
9e8928e299
Remove internal documentation from Doxygen output.
2014-07-15 10:49:20 -04:00
Louis Dionne
d5e215d672
Documentation: refactor and regenerate
2014-06-26 11:23:00 -04:00
Louis Dionne
fd96f88f0d
Remove obsolete Doxygen aliases
2014-06-18 16:51:48 -04:00
Louis Dionne
3fffc0365d
Remove now useless Doxygen aliases.
2014-06-12 20:41:51 -04:00
Louis Dionne
c1d9ff5529
doc: document instances
2014-06-12 20:36:21 -04:00
Louis Dionne
c531903254
Add link to reference documentation in readme.
2014-06-07 17:39:05 -04:00
Louis Dionne
ac30caf7dc
Comparable: improve documentation
2014-06-04 15:35:46 -04:00
Louis Dionne
ce602dd4b4
Document a couple more components.
2014-06-02 21:52:26 -04:00
Louis Dionne
1cebe9821d
Document the Functional module.
2014-06-02 21:49:35 -04:00
Louis Dionne
236b0691fe
Add gh-pages branch as a submodule.
2014-06-01 12:36:22 -04:00
Louis Dionne
61f73d4687
Add Range and List.
2014-05-16 07:56:09 -06:00
Louis Dionne
ae803c667b
Basic setup.
2014-05-15 16:09:22 -06:00