-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release 1.9.0 #181
Release 1.9.0 #181
Commits on Oct 29, 2020
-
Configuration menu - View commit details
-
Copy full SHA for ae7f166 - Browse repository at this point
Copy the full SHA ae7f166View commit details
Commits on Nov 1, 2020
-
Configuration menu - View commit details
-
Copy full SHA for b445ec4 - Browse repository at this point
Copy the full SHA b445ec4View commit details -
Reduce use of cppsort::[stable_]sort even more
This also fixes an issue in the "writing a sorter" tutorial that used the pre-1.0.0 arguments order for cppsort::sort.
Configuration menu - View commit details
-
Copy full SHA for 65d43bc - Browse repository at this point
Copy the full SHA 65d43bcView commit details
Commits on Nov 7, 2020
-
std::identity support when available (#130)
Wherever the library implements special handling of utility::identity, provide the same level of support for std::identity when it is available.
Configuration menu - View commit details
-
Copy full SHA for 6b00048 - Browse repository at this point
Copy the full SHA 6b00048View commit details
Commits on Nov 9, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 3428fb4 - Browse repository at this point
Copy the full SHA 3428fb4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 25c361a - Browse repository at this point
Copy the full SHA 25c361aView commit details -
Add new C++20 category to describe the new support for std::identity, std::ranges::less and std::ranges::greater. Remove the section about how bitmap_allocator might be used and the text about the relevance of the page across old versions. The embedding of the documentation into the main repository made that text useless (issue #157). [ci skip]
Configuration menu - View commit details
-
Copy full SHA for f60a70c - Browse repository at this point
Copy the full SHA f60a70cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 24ad404 - Browse repository at this point
Copy the full SHA 24ad404View commit details
Commits on Nov 10, 2020
-
Mostly small things that I noticed one working on the 2.0.0 branch, which will undoubtly result in merge issues later, but these ought to be fixed in 1.x.y anyway.
Configuration menu - View commit details
-
Copy full SHA for 7926130 - Browse repository at this point
Copy the full SHA 7926130View commit details -
Configuration menu - View commit details
-
Copy full SHA for 478909f - Browse repository at this point
Copy the full SHA 478909fView commit details
Commits on Nov 22, 2020
-
Revamp the bidirectional version of vergesort
The bidirectional version of vergesort was modified as follows: - It now uses the same k-way merge as the random-access version. - It creates fewer partitions with one element, generally being smarter about which run an element should belong to. - It spends less time recomputing runs sizes, leading to a lower impact on the running time overall. The k-way merge algorithm is now shared between both versions and has been tweaked to handle 1-element runs better. The in-code documentation was also reworked to be more comprehensible and comprehensive. Some variable names were changed to make the logic more obvious.
Configuration menu - View commit details
-
Copy full SHA for 8a71b8d - Browse repository at this point
Copy the full SHA 8a71b8dView commit details
Commits on Nov 23, 2020
-
Improvements to inplace_merge overloads that don't take the sizes
- The forward iterator version used utility::as_function without properly qualifying it, which was a bug. - The bidirectional version was updated with the "shrink on the left" trick, which can both decrease the cost of the size computation and reduce the number of elements to allocate.
Configuration menu - View commit details
-
Copy full SHA for 0b634cc - Browse repository at this point
Copy the full SHA 0b634ccView commit details -
Configuration menu - View commit details
-
Copy full SHA for a9c55e9 - Browse repository at this point
Copy the full SHA a9c55e9View commit details -
Move code coverage to GitHub Actions (#176)
First step to move the build to GitHub Actions: move the coverage generation from Travis to Actions. It doesn't generate additional information with lcov anymore, and now always runs on the latest available Ubuntu. [ci skip]
Configuration menu - View commit details
-
Copy full SHA for a030e31 - Browse repository at this point
Copy the full SHA a030e31View commit details
Commits on Nov 24, 2020
-
Configuration menu - View commit details
-
Copy full SHA for f1f34de - Browse repository at this point
Copy the full SHA f1f34deView commit details -
It is totally possible for nested wrapping of stable_adapter to happen, this commit makes stable_adapter<stable_adapter<Sorter>> equivalent to stable_adapter<Sorter>.
Configuration menu - View commit details
-
Copy full SHA for fdcd231 - Browse repository at this point
Copy the full SHA fdcd231View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9970afe - Browse repository at this point
Copy the full SHA 9970afeView commit details
Commits on Nov 26, 2020
-
Specialize is_probably_branchless_projection for std::mem_fn (#177)
Declare that the result of std::mem_fn is branchless when it wraps a pointer to data member. This is part of a wide library audit to make pdqsort use its branchless partitioning algorithm more often. This specific change uses standard library implementation-specific class names, but it is quite important since as_function currently uses std::mem_fn where it makes sense.
Configuration menu - View commit details
-
Copy full SHA for 33be439 - Browse repository at this point
Copy the full SHA 33be439View commit details -
Get the new Codecov GitHub Actions workflow to work (#176)
The following modifications were needed: - Use the GitHub Action codecov/codecov-action - Rename the workflow from codecov.yml to code-coverage.yml, otherwise the Codecov Action things it is the Codecov configuration file - Change codecov.yml to ensure that the test files are not covered [ci skip]
Configuration menu - View commit details
-
Copy full SHA for 286ac28 - Browse repository at this point
Copy the full SHA 286ac28View commit details
Commits on Nov 28, 2020
-
Configuration menu - View commit details
-
Copy full SHA for b3522dd - Browse repository at this point
Copy the full SHA b3522ddView commit details
Commits on Nov 30, 2020
-
Configuration menu - View commit details
-
Copy full SHA for c4dace8 - Browse repository at this point
Copy the full SHA c4dace8View commit details
Commits on Dec 3, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 307ad96 - Browse repository at this point
Copy the full SHA 307ad96View commit details -
Update the documentation's changelog page
Cleanup the links and add information: - Mention the 128-bit integers support for counting_sorter - Mention the conditional std::mem_fn extended support - Mention the condition improvements brought by assumptions [ci skip]
Configuration menu - View commit details
-
Copy full SHA for 983e081 - Browse repository at this point
Copy the full SHA 983e081View commit details
Commits on Dec 5, 2020
-
New feature: cppsort::stable_t
The type alias stable_t is kind of a better equivalent to stable_adapter: it aliases either a sorter directly if it is always stable, otherwise stable_adapter<Sorter>::type if it exists, otherwise stable_adapter<Sorter> itself. The goal is to alias the "least nested" type that is always stable to decrease template instantiation, template depth, and somehow bonary size. It also improves the error messages is some cases. Bundled with this feature: stable_adapter specializations now expose a member type named 'type' to implement the mechanism described above. The documentation page about sorters adapters was slightly cleaned up and reworked as part of this change.
Configuration menu - View commit details
-
Copy full SHA for 8c4c913 - Browse repository at this point
Copy the full SHA 8c4c913View commit details
Commits on Dec 6, 2020
-
Make test suite wrappers back_inserter-compatible
This change allows to use them with distributions. This commit also takes advantage of this to change several parts of the test suite to use distribution, and applies some drive-by cleanups.
Configuration menu - View commit details
-
Copy full SHA for ef81d41 - Browse repository at this point
Copy the full SHA ef81d41View commit details
Commits on Dec 11, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 682692d - Browse repository at this point
Copy the full SHA 682692dView commit details
Commits on Dec 15, 2020
-
Fix link to swappable concept in doc introduction
Link to cppreference to make the doc more amenable. Also use the lowercase concept name, and remove the duplicate "concept" word. [ci skip]
Configuration menu - View commit details
-
Copy full SHA for b40c626 - Browse repository at this point
Copy the full SHA b40c626View commit details
Commits on Dec 18, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 92593b8 - Browse repository at this point
Copy the full SHA 92593b8View commit details
Commits on Dec 21, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 8b3bfb6 - Browse repository at this point
Copy the full SHA 8b3bfb6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 237936f - Browse repository at this point
Copy the full SHA 237936fView commit details -
Improvements to benchmarks and tools
Mostly quality-of-life changes that allow me to change them faster when I need to prototype, debug and test components more easily. [ci skip]
Configuration menu - View commit details
-
Copy full SHA for 6f9738d - Browse repository at this point
Copy the full SHA 6f9738dView commit details -
Add an explicit stable_adapter<verge_sorter> specializations
An likewise for stable_adapter<verge_adapter>. Instead of simply relying on make_stable, the new specializations use a variant of vergesort that detects strictly descending runs instead of non-ascending ones, and wraps the fallback sorter in stable_t. The technique of detecting non-descending and strictly descending runs is a trick borrowed from timsort in order to preserve stability in natural mergesort algorithms: descending runs are reversed in-place, so equivalent elements wouldn't retain their original order when reversed in such runs. While verge_adapter does not handle bidirectional iterators, the underlying code was changed so that it will be easier to do in the future, but currently this involves some dirty tricks with a stripped down implementation of a sized iterator. This will make the transition to C++20 ranges and standard sized iterators and sentinels easier in the long term. Meanwhile it is just an implementation detail. This commit addresses external issue Morwenn/vergesort#11 and somehow Morwenn/vergesort#7 too. cpp-sort is a better recipient for those variations on vergesort than the standalone project, but some cross-project documentation will be needed anyway.
Configuration menu - View commit details
-
Copy full SHA for affe28b - Browse repository at this point
Copy the full SHA affe28bView commit details
Commits on Dec 22, 2020
-
Renanme Codecov GitHub workflow to code-coverage.yml
The previous named caused the file to be found by the Codecov bash uploader, which isn't exactly what we want... [ci skip]
Configuration menu - View commit details
-
Copy full SHA for 23672d1 - Browse repository at this point
Copy the full SHA 23672d1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1eea82d - Browse repository at this point
Copy the full SHA 1eea82dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 49ffe76 - Browse repository at this point
Copy the full SHA 49ffe76View commit details -
Fix stable_adapter(verge_adapter(...)) constructor
Also add a test, which doesn't actually test that the failing constructor works, but will do in the 2.0.0-develop branch.
Configuration menu - View commit details
-
Copy full SHA for bd0ca58 - Browse repository at this point
Copy the full SHA bd0ca58View commit details
Commits on Dec 23, 2020
-
Add a median_of_3_killer distribution to the test suite
This specific distribution is implement after the paper A Killer Adversary for Quicksort, by M. D. McIlroy. The goal is to force some pivot-based algorithms to use their fallback algorithm that ensure that they won't turn quadratic.
Configuration menu - View commit details
-
Copy full SHA for 5278270 - Browse repository at this point
Copy the full SHA 5278270View commit details
Commits on Dec 24, 2020
-
Configuration menu - View commit details
-
Copy full SHA for eb5874d - Browse repository at this point
Copy the full SHA eb5874dView commit details
Commits on Jan 2, 2021
-
Add a GitHub Action workflow for MacOS builds (#176)
This commit also comments the Travis CI MacOS configurations, because they there too slow to run to completion anyway. [ci skip]
Configuration menu - View commit details
-
Copy full SHA for d38cb80 - Browse repository at this point
Copy the full SHA d38cb80View commit details -
Configuration menu - View commit details
-
Copy full SHA for cca02f7 - Browse repository at this point
Copy the full SHA cca02f7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6d2976e - Browse repository at this point
Copy the full SHA 6d2976eView commit details -
Configuration menu - View commit details
-
Copy full SHA for a4de2d0 - Browse repository at this point
Copy the full SHA a4de2d0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e69cdd - Browse repository at this point
Copy the full SHA 4e69cddView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8446c70 - Browse repository at this point
Copy the full SHA 8446c70View commit details -
Configuration menu - View commit details
-
Copy full SHA for acd4bb6 - Browse repository at this point
Copy the full SHA acd4bb6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8f3f5d3 - Browse repository at this point
Copy the full SHA 8f3f5d3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 40ebd2e - Browse repository at this point
Copy the full SHA 40ebd2eView commit details
Commits on Jan 3, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 9e25366 - Browse repository at this point
Copy the full SHA 9e25366View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8a34ca5 - Browse repository at this point
Copy the full SHA 8a34ca5View commit details -
Configuration menu - View commit details
-
Copy full SHA for f45a90a - Browse repository at this point
Copy the full SHA f45a90aView commit details -
Fix MacOS builds in GitHub Actions once more (#176)
This commit is hopefully the last to get things to work with MacOS builds. Compared to the old Travis CI builds, we don't have Valgrind builds, but we have g++, ubsan and asan ones, which is more coverage than what we used to have. [ci skip]
Configuration menu - View commit details
-
Copy full SHA for f28431e - Browse repository at this point
Copy the full SHA f28431eView commit details
Commits on Jan 4, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 81bde27 - Browse repository at this point
Copy the full SHA 81bde27View commit details -
Add a GitHub Action for Ubuntu builds
The actions tests both g++ 5.5 and clang++ 6, with ubsan, asan and Valgrind memcheck. [ci skip]
Configuration menu - View commit details
-
Copy full SHA for 1de7526 - Browse repository at this point
Copy the full SHA 1de7526View commit details -
Configuration menu - View commit details
-
Copy full SHA for 57545cb - Browse repository at this point
Copy the full SHA 57545cbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 86a86cc - Browse repository at this point
Copy the full SHA 86a86ccView commit details
Commits on Jan 5, 2021
-
Configuration menu - View commit details
-
Copy full SHA for c863ccf - Browse repository at this point
Copy the full SHA c863ccfView commit details -
Configuration menu - View commit details
-
Copy full SHA for f3ec0a5 - Browse repository at this point
Copy the full SHA f3ec0a5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 829cd03 - Browse repository at this point
Copy the full SHA 829cd03View commit details -
Cleanup README and its badges (#176)
- Remove the license badge, redudant with GitHub UI - Better text for release and Conan badges - Remove the Travis CI badge - Add build badges to the compiler support section - Update the information about supported compilers
Configuration menu - View commit details
-
Copy full SHA for 0ad187d - Browse repository at this point
Copy the full SHA 0ad187dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2cc9016 - Browse repository at this point
Copy the full SHA 2cc9016View commit details -
Configuration menu - View commit details
-
Copy full SHA for 13157e2 - Browse repository at this point
Copy the full SHA 13157e2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 385d8b9 - Browse repository at this point
Copy the full SHA 385d8b9View commit details
Commits on Jan 6, 2021
-
Make comparison_counter conditionally branchless (#177)
Drive-by fixes: - Remove useless default template parameters - std::move a projection in counting_adapter
Configuration menu - View commit details
-
Copy full SHA for 2721ec7 - Browse repository at this point
Copy the full SHA 2721ec7View commit details -
Mark mountain sort internal projection as likely branchless (#177)
indirect_adaper is implemented with mountain sort for random-access iterator. This commits turns internal lambdas used for projections into a proper named function object, and marks it as likely branchless when the projection it wraps is likely branchless itself.
Configuration menu - View commit details
-
Copy full SHA for 78a93e9 - Browse repository at this point
Copy the full SHA 78a93e9View commit details
Commits on Jan 10, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 3b4dad0 - Browse repository at this point
Copy the full SHA 3b4dad0View commit details -
ska_sort: don't feed a lambda to the pdqsort fallback (#177)
The lambda was a leftover from when ska_sort still relied on std::sort as a fallback. Replacing it with std::less<> + the passed projection means that pdqsort might use its branchless partition algorithm when it makes sense.
Configuration menu - View commit details
-
Copy full SHA for b37bfbc - Browse repository at this point
Copy the full SHA b37bfbcView commit details -
ska_sort: fix a bug when sorting signed __int128_t
Due to a copy-paste error, ska_sort did not work properly with signed 128-bit integers: it probably sorted signed and unsigned values correctly, but not a mix of both. This commit also uses std::uintptr_t when available instead of std::size_t when sorting pointers, making it generally more correct.
Configuration menu - View commit details
-
Copy full SHA for dedda21 - Browse repository at this point
Copy the full SHA dedda21View commit details -
Configuration menu - View commit details
-
Copy full SHA for b7c207b - Browse repository at this point
Copy the full SHA b7c207bView commit details
Commits on Jan 12, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 1f71831 - Browse repository at this point
Copy the full SHA 1f71831View commit details -
Change originally proposed by @vedgy in timsort/cpp-TimSort#35
Configuration menu - View commit details
-
Copy full SHA for f57d819 - Browse repository at this point
Copy the full SHA f57d819View commit details
Commits on Jan 17, 2021
-
Configuration menu - View commit details
-
Copy full SHA for ce4d60e - Browse repository at this point
Copy the full SHA ce4d60eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5f1d25c - Browse repository at this point
Copy the full SHA 5f1d25cView commit details
Commits on Jan 19, 2021
-
Configuration menu - View commit details
-
Copy full SHA for bc1cb99 - Browse repository at this point
Copy the full SHA bc1cb99View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0e8c906 - Browse repository at this point
Copy the full SHA 0e8c906View commit details -
Configuration menu - View commit details
-
Copy full SHA for d050b2d - Browse repository at this point
Copy the full SHA d050b2dView commit details
Commits on Jan 24, 2021
-
Change the random-access version to nth_element to QuickSelect (#179)
This makes quick_merge_sort O(n log n) instead of O(n²) like it used to be (the libc++ implementation of std::nth_element used until then was quadratic). The new implementation was taken from Danila Kutenin's miniselect library.
Configuration menu - View commit details
-
Copy full SHA for bc76f82 - Browse repository at this point
Copy the full SHA bc76f82View commit details
Commits on Jan 25, 2021
-
Categorize swap_ranges invocations (#180)
Split swap_ranges calls into swap_ranges_inner and swap_ranges_overlap, where the first has the "no overlap" guarantee and checks to ensure that said guarantee holds. This commit also adds an audit mechanism to cpp-sort for checks that are too expensive for CPPSORT_ASSERT, and starts using it in swap_ranges_inner to ensure that the "no overlap" guarantee holds.
Configuration menu - View commit details
-
Copy full SHA for 64a140d - Browse repository at this point
Copy the full SHA 64a140dView commit details -
Configuration menu - View commit details
-
Copy full SHA for dc15d5b - Browse repository at this point
Copy the full SHA dc15d5bView commit details -
Make projection_compare public
This includes the following changes: - Move it out of detail and in cpp-sort/comparators - Get rid of its unused getters - Make it conditionally branchless (#177) - Make it a transparent comparator - Document it This commit includes a little cleanup of the corresponding documentation page.
Configuration menu - View commit details
-
Copy full SHA for 17f8f00 - Browse repository at this point
Copy the full SHA 17f8f00View commit details -
Revert "Document library decisions wrt LWG3031 (#136)"
This reverts commit 0e8c906.
Configuration menu - View commit details
-
Copy full SHA for b00c645 - Browse repository at this point
Copy the full SHA b00c645View commit details -
Configuration menu - View commit details
-
Copy full SHA for 803787c - Browse repository at this point
Copy the full SHA 803787cView commit details
Commits on Jan 27, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 9beca15 - Browse repository at this point
Copy the full SHA 9beca15View commit details -
Configuration menu - View commit details
-
Copy full SHA for 938676f - Browse repository at this point
Copy the full SHA 938676fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 876cae8 - Browse repository at this point
Copy the full SHA 876cae8View commit details
Commits on Jan 28, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 57124c9 - Browse repository at this point
Copy the full SHA 57124c9View commit details
Commits on Jan 29, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 5a6a2e6 - Browse repository at this point
Copy the full SHA 5a6a2e6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 279456c - Browse repository at this point
Copy the full SHA 279456cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9c4220e - Browse repository at this point
Copy the full SHA 9c4220eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0a7feaf - Browse repository at this point
Copy the full SHA 0a7feafView commit details -
Configuration menu - View commit details
-
Copy full SHA for ca633a8 - Browse repository at this point
Copy the full SHA ca633a8View commit details