- Add
#[no_std]
support, now that it's supported in Stable Rust. - Use the pivot-selection-sorting-network to detect already-sorted sublists, and use a capped insertion sort when they're truly that easy to handle. This technique is credited to the LLVM project's libc++.
- Use
no_drop
to reduce the number of swaps in the dual-pivot partitioning algorithm.
- Fix documentation typos.
- Add the
sort_by_key
function.
- Update unreachable.
- Use the new standalone
num_traits
crate. Because it's a part of the external API, this is a breaking change. - Prevent broken comparators from forcing the sorting algorithm to index out-of-bounds.
- Switch to a four-heap instead of a two-heap, to improve the cache locality on large lists.
- Fix soundness problems in the heapsort, if the comparison function panics while sorting.
- Forked from veddan/rust-introsort, because it didn't run on stable Rust.