Commit Graph

1973 Commits

Author SHA1 Message Date
Louis Dionne
160a713f0a [Doc] Document the boost::hana::literals namespace 2015-06-06 11:07:17 -04:00
Louis Dionne
0b2f32e01b [Benchmarks] Disable fold_right benchmarks on Boost 1.58.0 due to Fusion bug 2015-06-06 10:38:12 -04:00
Louis Dionne
482177ac3e [Travis] Always install Doxygen and Ruby + gems
This caused the benchmarks not to be run because Ruby + gems were not
being installed unless BENCHMARKS=true.
2015-06-05 22:28:30 -04:00
Louis Dionne
7b1de7fe43 [Travis] Speed up the travis build
- Make sure the check.benchmarks are serialized
- Run Doxygen with Clang 3.6 instead of Clang trunk
- Download prebuilt Doxygen instead of building from source
- Run unit tests on two cores
2015-06-05 19:38:27 -04:00
Louis Dionne
898e9aa07f [Doc] Improve the documentation as suggested by @tzlaine (Part 2)
- Extend the Quick Start with more small examples, and then the large
  switchAny example.
- Add clarifying remarks right in front of the CheatSheet for skimmers.
  Damn skimmers.
- Benchmark the compile-time of creating std::array
2015-06-05 18:47:41 -04:00
Louis Dionne
b81108cfa7 Use BOOST_HANA_DISPATCH_IF to shorten tag-dispatching errors 2015-06-05 17:27:17 -04:00
Louis Dionne
52b8083e53 [Benchmarks] Disable line markers by default 2015-06-05 17:27:17 -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
90437a8a6d [Range] Merge the unit tests into a single file with parts 2015-06-04 23:14:21 -04:00
Louis Dionne
07f15e171f Normalize the parameter order of take, suffix, remove_at, cycle and repeat
Closes #83
2015-06-04 22:29:13 -04:00
Louis Dionne
077dc7b6c9 [Iterable] Normalize parameter order for at and drop
Partially addresses #83
2015-06-04 21:13:51 -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
555f252451 [Iterable] Rewrite any_of so it works with infinite iterables
Fixes #31
2015-06-03 14:41:42 -04:00
Louis Dionne
c832df8b1e [Sequence] Add the unique{.by} algorithm
Partially addresses #52
2015-06-03 14:06:56 -04:00
Louis Dionne
0ff9572382 Create the detail::by helper to provide a .by static member.
Also improve the documentation of the algorithms with a .by version.
2015-06-03 12:17:29 -04:00
Louis Dionne
686c5c4e11 [Benchmarks] Fix missing <%# in ERB template, which caused invalid JSON output 2015-06-03 12:11:03 -04:00
Louis Dionne
4ce522ec20 [Set, Map] Add the erase_key function
Partially addresses #52
2015-06-03 10:11:13 -04:00
Louis Dionne
254954cace [Travis] Properly build libc++ with libc++abi 2015-06-02 23:58:15 -04:00
Louis Dionne
8c1e68f107 [CMake] Remove old -Xclang -fdefine-sized-deallocation flag 2015-06-02 23:53:03 -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
efdd5c46ed [CMake] Remove unused warning flags 2015-06-02 14:45:40 -04:00
Louis Dionne
53343021b8 [Config] Refactor the config.hpp
- Remove unused BOOST_HANA_CONFIG_DISABLE_PRECONDITIONS macro.
- Simplify BOOST_HANA_CONFIG_CHECK_DATA_TYPES by using a negated
  BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS instead.
2015-06-02 14:45:40 -04:00
Louis Dionne
a32de51bfa [String] Add an optional _s user-defined literal to create Strings
Fixes #79
2015-06-02 14:45:38 -04:00
Louis Dionne
535bc937b6 [Type] Do not treat Types and values differently in is_valid
Fixes #58
2015-06-01 18:06:38 -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
a04696007d [Benchmarks] Fix legend for fusion::vector's find_if 2015-05-30 19:55:10 -04:00
Louis Dionne
cf3908622b [Doc] Write a section on compile-time numbers
Also
- move tricky content about constexpr to an appendix
- reorganize tutorial sections
2015-05-30 19:55:10 -04:00
Louis Dionne
f6c95581cc [CMake] Provide a FindHana.cmake module
Closes #78
2015-05-30 12:23:01 -04:00
Louis Dionne
647e695951 [CMake] Add the check target and fix minor annoyances 2015-05-30 12:23:01 -04:00
Louis Dionne
2a7447e990 [Benchmarks] Fix unused variable warnings 2015-05-29 11:26:32 -04:00
Louis Dionne
37161c8f49 [Travis] Properly compile with -Werror
Fixes 933b7d, which did not do its job properly.
2015-05-28 19:33:07 -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
a9cf8862aa [Foldable] Swap examples for fuse and unpack 2015-05-28 18:38:37 -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
10888b2623 [Sublime] Verbose output for tests ran through the sublime build system 2015-05-28 13:27:27 -04:00
Louis Dionne
5accb6db5a [CONTRIBUTING] Fix formatting of code block
[ci skip]
2015-05-26 18:20:59 -04:00
Louis Dionne
45345cf867 [README] Add a table of the supported compilers
[ci skip]
2015-05-26 15:35:02 -04:00
Louis Dionne
a5245c0a72 [Core] Fix weird compilation error with is_an on Clang 3.5 2015-05-26 15:12:44 -04:00
Louis Dionne
7f0a5f20a9 Add a CONTRIBUTING.md file to the root of the project 2015-05-26 14:59:04 -04:00
Alexander Kondratskiy
66c0b705e9 [Config] Define BOOST_HANA_CONFIG_CLANG for apple clang
See https://gist.github.com/yamaya/2924292 for version reference

[ldionne:
I reorganized how the checks for Apple's Clang are made to make them
stand on their own, and I generate a #warning whenever the Apple Clang
version is not supported.]

Closes #77
2015-05-26 13:37:39 -04:00
Louis Dionne
68dfc99b11 [Doc] Improve the section on tag-dispatching 2015-05-26 11:51:53 -04:00
Louis Dionne
6159007c15 [IntegralConstant] Write proper unit tests for .times and .times.with_index 2015-05-26 11:20:03 -04:00
Louis Dionne
f81f732390 Convert some RUNTIME_ASSERTs into RUNTIME_CHECKs 2015-05-26 10:52:38 -04:00
Louis Dionne
7f98ff0edd [Doc] Write a section about the different kinds of C++ computations 2015-05-25 16:27:16 -04:00
Louis Dionne
933b7d73ea [Travis] Compile with -Werror 2015-05-25 11:24:25 -04:00
Louis Dionne
6718adbf5e [Doc] Rewrite the 'quick start' section of the tutorial 2015-05-25 10:16:48 -04:00
Louis Dionne
6ee5137604 [GCC] Workaround GCC ICEs and bugs 2015-05-24 21:00:27 -04:00
Louis Dionne
cc8080e041 [Struct] Enforce a trailing semicolon after BOOST_HANA_ADAPT_STRUCT 2015-05-24 21:00:26 -04:00
Louis Dionne
dc909f8900 [GCC] Remove unused parameter warnings and disambiguate use of size_t 2015-05-24 21:00:26 -04:00