mirror of
https://github.com/metabarcoding/obitools4.git
synced 2026-03-25 13:30:52 +00:00
### Memory-Aware Batching - Introduced configurable min/max batch size bounds and memory limits for precise resource control. - Added `--batch-mem` CLI option to enable adaptive batching based on estimated sequence memory footprint (e.g., 128K, 64M, 1G). - Implemented `RebatchBySize()` to handle both byte and count limits, flushing when either threshold is exceeded. - Added conservative memory estimation via `BioSequence.MemorySize()` and enhanced garbage collection for explicit cleanup after large batch discards. - Updated internal batching logic across core modules to consistently apply default memory (128 MB) and size (min: 1, max: 2000) bounds. ### Linux Build Enhancements - Enabled static linking for Linux binaries using musl, producing portable, self-contained executables without external dependencies. ### Build System & Toolchain Improvements - Updated Go toolchain to 1.26.1 with corresponding dependency bumps (e.g., go-getoptions, gval, regexp2, go-json, progressbar, logrus, testify). - Fixed Makefile to safely quote LDFLAGS for paths with spaces. - Improved build error handling: on failure, logs are displayed before cleanup and exit. - Updated install script to correctly set GOROOT, GOPATH, and GOTOOLCHAIN, ensuring GOPATH directory creation. - Added progress bar to curl downloads in the install script for visual feedback during Go and OBITools4 downloads. All batching behavior remains non-breaking, with consistent constraints improving predictability during large dataset processing.