Skip to content

Releases: Morwenn/cpp-sort

1.1.1 — Japan

29 Mar 21:44
3761f85
Compare
Choose a tag to compare

I will be away in Japan for a few weeks, which means that it is probably a good time for a bugfix release. No new exciting feature in this release, but several small improvements here and there.

Bug fixes

  • Work around a Clang bug to fix the implicit deduction guide of counting_adapter in C++17
  • Add missing constructor to stable_adapter<self_sort_adapter> to make implicit deduction guides work in C++17
  • Fix warning about class/struct difference between declaration and definition of hybrid_adapter

Tiny improvements

  • Make the constructors of sorter adapters taking one or more sorters explicit
  • probe::rem now performs a single pass over the sequence even when passed non-random-access iterators, which might make it slightly more performant in this case
  • Code using std::result_of now uses std::invoke_result when available, making it more robust against type system subtleties
  • More noexcept here and there
  • Tiny attempts to improve the build times and produced binary size here and there, but it unfortunately shouldn't make any noticeable difference

1.1.0 — New job

18 Feb 16:07
bf016b8
Compare
Choose a tag to compare

This release doesn't bring many new things into cpp-sort, but has a few worthwhile bug & consistency fixes. I got a new job, hence the release name, and wanted to push everything that was ready because I might not be as active on the project for some time.

There were a few global efforts to reduce unneeded template instantiations, reduce the produced binary size and improve compile times a bit, but these changes are anecdotal at best, and probably don't make a noticeable difference.

New features

  • New measure of presortedness: probe::mono, after the equivalent Mono described in Sort Race by Zhang, Meng and Liang

Bug fixes

  • Fix compiler error in hybrid_adapter when too many sorters of the same category are passed
  • Make sure all adapted sorters can also be converted to function pointers
  • Fix probe::runs: it only took increasing sequences into account and didn't behave properly with non-increasing ones (where several elements in an increasing sequence compare equivalent)
  • Properly perfect-forward iterable parameters in hybrid_adapter
  • Actually provide container_aware_adapter when including <cpp-sort/adapters.h>
  • Apply utility::as_function to the comparison and projection functions passed to self_sort_adapter, fixing a few errors when it is used with pointers to class members

Tiny improvements

  • Don't copy instances of locale in case_insensitive_less
  • Actually create a minimal number of poplars in poplar_sorter, even in corner cases
  • Tiny optimization in indirect_adapter
  • Don't wrap adapters in sorter_facade when they don't need to, slightly reducing the template "stack traces" when there are errors
  • Small changes here and there to reduce the binary size a bit

Tooling

  • Set up code coverage via codecov.io (#120)
  • Globally document exception guarantees for the library (#105)
  • Enable ccache for clang++ with the Linux CI
  • Simpler and more consistent .travis.yml where possible

1.0.0

20 Jan 18:12
4c7ef49
Compare
Choose a tag to compare

This release is merely a point in time where the project starts being versioned. A changelog would be meaningless since there is nothing to compare it against.