Releases: torognes/swarm
swarm 3.1.6
swarm 3.1.6 is a maintenance release (206 commits). It improves code quality and documentation, and eliminates compilation warnings and static analysis warnings:
changes:
- add: official support for GCC 14,
- add: experimental support for GCC 15,
- add: official support for clang 20 and clang 21,
- add: experimental support for clang 22,
- add: more checks for debug builds (memory alignment sanitizer, see commit f26cb2d),
- fix: memory alignment issues (final commit: a88adec),
- fix: 1,677 clang-tidy warnings (from 2,629 warnings, down to 952),
- performance: speedup when using d = 0. However, a 15% slowdown was observed when using d >= 2 in certain conditions (18SV9 dataset, x86-64 CPU, GCC 11.5),
- improve: users can now change the target directory when installing swarm with the
make installcommand (39b961c), - improve: document swarm's dependencies (34e981c),
- improve: code modernization (C++11) for long-term maintenance
swarm 3.1.5
swarm 3.1.5 fixes four minor bugs, improves code and documentation, and eliminates compilation warnings and static analysis warnings:
- change: when using the fastidious and the ceiling options, minimal ceiling value is now 40 megabytes (instead of 8 megabytes),
- add: more compilation checks (
shadow,useless-cast,conversion,sign-conversion), - add: 42 new black-box tests,
- fix: two minor bugs introduced in version 3.1.1 (
alloc-dealloc-mismatch, and allocating too much memory; bugs had no impact on clustering results), - fix: a minor bug introduced in version 3.1.4 (misaligned memory under certain conditions; bug had no impact on clustering results),
- fix: minor bug in the way available memory is estimated (buffer underflow; bug had no impact on clustering results),
- fix: 50 warnings triggered by newly added compilation checks,
- fix: 1,677 clang-tidy warnings (from 2,629 warnings, down to 952),
- performance: generally stable but compiler-dependent, with the exception of a 5 to 10% increase in total memory footprint when d >= 2 (we expect these performance regressions to be temporary and to be fixed with further refactoring),
- improve: documentation for output option
--network_file(advanced users), - improve: build target platform detection,
- improve: code-coverage of our test-suite,
- improve: code modernization for long-term maintenance,
- revert: due to inconsistent test results, reading from named pipes (fifo) is marked as experimental for now
swarm 3.1.4
swarm version 3.1.4 fixes a minor bug, eliminates compilation warnings and static analysis warnings, and improves code:
- fix: add checks to prevent silent overflow of short unsigned integers,
- fix: compilation warnings with GCC 13 and clang 18,
- fix: 1,040 clang-tidy warnings (from 3,669 warnings, down to 2,629),
- improve: code modernization for long-term maintenance,
- improve: double the maximal number of threads (from 256 threads to 512),
- improve: make
-DNDEBUGthe default compilation behavior, - performance: stable for all modes, except a 6 to 10% increase in memory footprint when d > 1. Note that overall memory allocations remain unchanged, but peak RSS memory increased due to a change in the timing of memory deallocations. Peak RSS memory is expected to regress to its prior levels as refactoring continues.
swarm 3.1.3
Version 3.1.3 fixes a few minor bugs, removes warnings, and improves code and documentation:
- fix: bug introduced in version 3.1.1, that caused swarm to allocate way too
much memory when d > 1 (bug had no impact on clustering results), - fix: off-by-one error when allocating memory for a Bloom filter (bug had no
impact on clustering results), - fix: compilation warning with GCC 12 (and more recent) when using link-time
optimization, - fix: compilation warning with clang 13 (and more recent): unused set
variable, - fix: five clang-tidy warnings (readability-braces-around-statements),
- fix: minor code refactoring,
- improve: more uniform vocabulary throughout swarm's documentation (code,
help, manpage, README, companion scripts and wiki), - improve: code coverage of our test suite (swarm-tests).
swarm 3.1.2
Fix a bug with fastidious mode introduced in version 3.1.1, that could cause Swarm to crash. Probably due to allocating too much memory.
swarm 3.1.1
Version 3.1.1 eliminates a risk of segmentation fault with extremely long sequence headers. Documentation and error messages have been improved, and code cleaning continued.
v3.1.0
swarm 3.0.0
Version 3.0.0 introduces a faster algorithm for d = 1, and a reduced memory footprint. Swarm has been ported to Windows x86-64, GNU/Linux ARM64, and GNU/Linux POWER8. Internal code has been modernized, hardened, and thoroughly tested. Strict dereplication of input sequences is now mandatory. The --seeds option (-w) now outputs results sorted by decreasing abundance, and then by alphabetical order of sequence labels.
Swarm 2.2.2
Swarm 2.2.2 fixes a bug with an endless wait in rare cases with multiple threads.
Swarm 2.2.1
Swarm 2.2.1 fixes a memory allocation bug for d=1 that should only affect cases where the input sequences have not ben fully dereplicated.