From 78e7933c6f848f2d9c31c12ec4a6927c1e1b08c7 Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Fri, 13 Mar 2026 19:30:37 +0100 Subject: [PATCH] 4.4.26: Static Linux Builds, Memory-Aware Batching & Cross-Compilation Fixes 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. --- 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 b681e24..88d8fe8 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.25" +var _Version = "Release 4.4.26" // Version returns the version of the obitools package. // diff --git a/version.txt b/version.txt index a9f8645..c92e911 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -4.4.25 +4.4.26