From af213ab4467d2054d4befaf0fbf20791277ed3c3 Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Sat, 14 Mar 2026 11:59:15 +0100 Subject: [PATCH] 4.4.28: Static Linux Builds, Memory-Aware Batching, and Build Stability This release focuses on improving build reliability, memory efficiency for large datasets, and portability of Linux binaries. ### Static Linux Binaries - Linux binaries are now built with static linking using musl, eliminating external runtime dependencies and ensuring portability across distributions. ### Memory-Aware Batching - Users can now control memory usage during processing with the new `--batch-mem` option, specifying limits such as 128K, 64M, or 1G. - Batching logic now respects both size and memory constraints: batches are flushed when either threshold is exceeded. - Conservative memory estimation for sequences helps avoid over-allocation, and explicit garbage collection after large batch discards reduces memory spikes. ### Build System Improvements - Upgraded to Go 1.26 for improved performance and toolchain stability. - Fixed cross-compilation issues by replacing generic include paths with architecture-specific ones (x86_64-linux-gnu and aarch64-linux-gnu). - Streamlined macOS builds by removing special flags, using standard `make` targets. - Enhanced error reporting during build failures: logs are now shown before cleanup and exit. - Updated install script to correctly configure GOROOT, GOPATH, and GOTOOLCHAIN, with visual progress feedback for downloads. All batching behavior is non-breaking and maintains backward compatibility while offering more predictable resource usage on large datasets. --- pkg/obioptions/version.go | 2 +- version.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/obioptions/version.go b/pkg/obioptions/version.go index e4ef0cd..98ffb57 100644 --- a/pkg/obioptions/version.go +++ b/pkg/obioptions/version.go @@ -3,7 +3,7 @@ package obioptions // Version is automatically updated by the Makefile from version.txt // The patch number (third digit) is incremented on each push to the repository -var _Version = "Release 4.4.27" +var _Version = "Release 4.4.28" // Version returns the version of the obitools package. // diff --git a/version.txt b/version.txt index 2e97d0a..01d272b 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -4.4.27 +4.4.28