mirror of
https://github.com/metabarcoding/obitools4.git
synced 2026-03-25 05:20:52 +00:00
This release includes critical build system improvements and enhanced batching capabilities for more predictable resource usage. ### Cross-Compilation & Static Builds - Fixed cross-compilation for Linux by introducing architecture-specific `CGO_CFLAGS` (x86_64-linux-gnu and aarch64-linux-gnu), ensuring correct header resolution during static linking. - Enabled fully static Linux binaries using musl, producing self-contained executables with no external runtime dependencies. ### Memory-Aware Batching (New Feature) - Added `--batch-mem` CLI option to control batching based on estimated memory usage (e.g., 128K, 64M, 1G), in addition to size-based limits. - Introduced configurable min/max batch sizes and memory thresholds, with conservative memory estimation per sequence to avoid over-allocation. - Implemented intelligent flushing logic that triggers when *either* byte or record count limits are exceeded, ensuring predictable memory behavior. - Improved garbage collection after large batch discards to reduce memory pressure during large-scale processing. ### Build & Toolchain Improvements - Updated Go toolchain to 1.26.1 and bumped key dependencies (e.g., golang.org/x/net v0.38.0). - Enhanced build error reporting: logs are now displayed before cleanup on failure. - Fixed Makefile quoting for `LDFLAGS` containing spaces. - Updated install script to properly configure GOROOT, GOPATH, and GOTOOLCHAIN, with added progress feedback for downloads. All batching behavior is backward-compatible and uses sensible defaults (128 MB memory, min: 1 record, max: 2000 records) to ensure smooth upgrades.