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.14.0 #215
Merged
Release 1.14.0 #215
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Somewhat in the perimeter of issue #211 though it does not fix it.
slab_sort had a bug where it partitioned the collection stably around the median, then recursed in each *half* of the collection instead of recursing in the two partitions created by the partitioning algorithm. It made no difference with unique elements since the partitions would always correspond to both halves of the collection. However the story was different when several elements compared equivalent to the median, leading to the error encountered in #211.
Typically some flavours of MinGW produce around 13k lines of -Winline warnings even though the library only uses inline sparringly and for ODR reasons. There is no explicit "force inline" anywhere, so the warning is just noise that clutters the compiler results and makes it impossible to find other warnings in the logs.
The SVG for the library's logo used text as-is but it referenced a font that's not available on most computers. It happened to work on mine but looked weird anymore else. The new SVG uses shape objects directly instead of rendered text, and as such doesn't rely on the availability on the font anymore. I also took the opportunity to reduce it to the minimal required components for it to display correctly, roughly halving its size.
Those tests roughly tested the same things, leading to needless duplication. This commit merges them both in distributions/shuffled.cpp, keeping enough to cover what both tests used to cover. One notable exception is default_sorter: the sorter has been deprecated for a while and mostly influences overload resolution but doesn't lead to algorithmic code paths that aren't otherwise tested. As such, it has no place in distributions tests and thus wasn't included.
I thought those calls were made on possibly non-random-access iterators while they are actually always made on contiguous iterators. I decided to drop the std::distance calls and replace them with a simple subtraction to make the possible complexity difference more obvious. I consequently removed the note in the documentation about probe::max being potentially super slower when used on forward or bidirectional iterators, which wasn't actually true.
Also introduce spcializations of indirect_t for std::identity when available and utility::identity that simply return the dereferenced indirect value passed to operator().
Improve documentation, allow to have utility::identity on both sides, don't needlessly use as_function on operands.
Currently the iter_swap calls in string_spread_sort were all unqualified and I fear they only worked by virtue of always being called either on standard iterator types, or on iterators templated on std::string, and therefore looking for iter_swap in the std:: namespace too. I tried to create a regression test but didn't manage to trigger an error. Nonetheless, adding these using declarations makes the code more robust.
The follow notable changes are included: * Plot the median of cycles instead of the mean * Generate results for merge_exchange_network_sorter * Don't generate results for size == 0
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.