Phase v5-1: SmallObject v5 C6-only route stub 接続

- tiny_route_env_box.h: TINY_ROUTE_SMALL_HEAP_V5 enum 追加、route snapshot で C6→v5 分岐
- malloc_tiny_fast.h: alloc/free switch に v5 case 追加(v1/pool fallback)
- smallobject_hotbox_v5.c: stub 実装(alloc は NULL 返却、free は no-op)
- smallobject_hotbox_v5_box.h: 関数 signature に ctx パラメータ追加
- Makefile: core/smallobject_hotbox_v5.o をリンクリストに追加
- ENV_PROFILE_PRESETS.md: v5-1 プリセット追記
- CURRENT_TASK.md: Phase v5-1 完了記録

**特性**:
- ENV: HAKMEM_SMALL_HEAP_V5_ENABLED=1 / HAKMEM_SMALL_HEAP_V5_CLASSES=0x40 で opt-in
- テスト結果: C6-heavy (v5 OFF 15.5M → v5 ON 16.4M ops/s, 正常), Mixed 47.2M ops/s, SEGV/assert なし
- 挙動は v1/pool fallback と同じ(実装は v5-2)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Moe Charm (CI)
2025-12-11 03:25:37 +09:00
parent dedfea27d5
commit 9c24bebf08
7 changed files with 100 additions and 16 deletions

View File

@ -1,6 +1,7 @@
// smallobject_hotbox_v5.c - SmallObject HotBox v5 実装 stubPhase v5-0
// smallobject_hotbox_v5.c - SmallObject HotBox v5 実装 stubPhase v5-0/v5-1
//
// この段階では完全な fallback stub。v5 route は呼ばれないENV default OFF
// v5-1: C6-only route stubv1/pool fallback via malloc_tiny_fast.h fallthrough
// 実装部分は v5-2 以降で追加される
#include <stdlib.h>
#include <stdbool.h>
@ -16,21 +17,25 @@ SmallHeapCtxV5* small_heap_ctx_v5(void) {
return &g_small_heap_ctx_v5;
}
// Phase v5-0: Fast allocstub
void* small_alloc_fast_v5(size_t size, uint32_t class_idx) {
// Phase v5-1: Fast allocC6-only route stub, fallthrough to v1/pool
// malloc_tiny_fast.h の route switch で NULL が返されると fallthrough する設計
void* small_alloc_fast_v5(size_t size, uint32_t class_idx, SmallHeapCtxV5* ctx) {
(void)size;
(void)ctx;
(void)class_idx;
// v5-0: completely disabled, fallback to existing path
// actual implementation in v5-2
// v5-1: C6-only route stub - return NULL to fallthrough to v1/pool
// actual hot-path implementation in v5-2
return NULL;
}
// Phase v5-0: Fast freestub
void small_free_fast_v5(void* ptr, uint32_t class_idx) {
// Phase v5-1: Fast freeC6-only route stub, fallthrough to v1/pool
// malloc_tiny_fast.h で route switch 内で呼ばれ、値を返さない
void small_free_fast_v5(void* ptr, uint32_t class_idx, SmallHeapCtxV5* ctx) {
(void)ptr;
(void)ctx;
(void)class_idx;
// v5-0: no-op
// actual implementation in v5-2
// v5-1: C6-only route stub - no-op (fallthrough handled by caller)
// actual hot-path implementation in v5-2
}
// Segment stubv5-2 で実装)