release: silence runtime logs and stabilize benches
- Fix HAKMEM_LOG gating to use (numeric) so release builds compile out logs. - Switch remaining prints to HAKMEM_LOG or guard with : - core/box/hak_core_init.inc.h (EVO sample warning, shutdown banner) - core/hakmem_config.c (config/feature prints) - core/hakmem.c (BigCache eviction prints) - core/hakmem_tiny_superslab.c (OOM, head init/expand, C7 init diagnostics) - core/hakmem_elo.c (init/evolution) - core/hakmem_batch.c (init/flush/stats) - core/hakmem_ace.c (33KB route diagnostics) - core/hakmem_ace_controller.c (ACE logs macro → no-op in release) - core/hakmem_site_rules.c (init banner) - core/box/hak_free_api.inc.h (unknown method error → release-gated) - Rebuilt benches and verified quiet output for release: - bench_fixed_size_hakmem/system - bench_random_mixed_hakmem/system - bench_mid_large_mt_hakmem/system - bench_comprehensive_hakmem/system Note: Kept debug logs available in debug builds and when explicitly toggled via env.
This commit is contained in:
@ -263,7 +263,7 @@ static void bigcache_free_callback(void* ptr, size_t size) {
|
||||
|
||||
// Verify magic before accessing method field
|
||||
if (hdr->magic != HAKMEM_MAGIC) {
|
||||
fprintf(stderr, "[hakmem] BigCache eviction: invalid magic, fallback to free()\n");
|
||||
HAKMEM_LOG("BigCache eviction: invalid magic, fallback to free()\n");
|
||||
// CRITICAL FIX: When magic is invalid, allocation came from LIBC (NO header)
|
||||
// Therefore ptr IS the allocated address, not raw (ptr - HEADER_SIZE)
|
||||
// MUST use __libc_free to avoid infinite recursion through free() wrapper
|
||||
@ -302,7 +302,7 @@ static void bigcache_free_callback(void* ptr, size_t size) {
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "[hakmem] BigCache eviction: unknown method %d\n", hdr->method);
|
||||
HAKMEM_LOG("BigCache eviction: unknown method %d\n", hdr->method);
|
||||
free(raw); // Fallback
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user