0.7.0
Summary: we now support LLVM/clang as a compiler; CIGARs have been much improved and there is a new container.
Added
- 🐉 Full support for Clang-16 as a compiler. This is a big milestone for 1.0.0!
- A new associative container:
bio::ranges::dictionary. It has features ofstd::vectorandstd::unordered_mapat the cost of extra size. - New implementation for
bio::alphabet::cigar. This is now 32bits in size (instead of 64bit) and ABI-compatible to BAM/htslib. bio::views::to_char,bio::views::char_to<>andbio::views::char_strictly_to<>now work forbio::alphabet::cigar(even though CIGARs are not full alphabets).
Fixed
bio::views::to_char,bio::views::char_to<>andbio::views::char_strictly_to<>are now "no-op" views if no transformation needs to happen (e.g. when input and output alphabet would bechar).- When using
find_package(biocpp COMPONENTS core io), the version strings were not set correctly.
Maintained
bio::ranges::small_stringnow satisfies the std::ranges::view-concept for capacities <= 30.bio::views::interleavehas been redefined in terms ofbio::views::transform_by_pos(much less code); should also be a bit faster now.- Clang-tidy is automatically run as part of the CI.
- Concepts are now properly supported and integrated into the documentation; doxygen-1.9.6 is recommended.
Renamed
bio::alphabet::nucleotide_alphabet→bio::alphabet::nucleotide(same foraminoacid_alphabet,quality_alphabetandwritable_quality_alphabet).
Removed
bio::views::as_consthas been removed, use C++23'sstd::views::as_constinstead.bio::views::movehas been removed, use C++23'sstd::views::as_rvalueinstead.
API
- This release is not yet API-stable.
- This release is mostly backwards compatible with 0.6.0 (see changes above).