Skip to content

header-only:blockmalloc / slotsboxmalloc 走单头文件模式 - #32

Merged
miaobyte merged 2 commits into
mainfrom
feat/header-only
Sep 14, 2026
Merged

miaobyte merged 2 commits into
mainfrom
feat/header-only

Conversation

@miaobyte

Copy link
Copy Markdown
Contributor

变更

两库都支持单头文件(#define *_IMPLEMENTATION),改为把实现体编进本仓 TU,不再链接它们的 .so

  • src/kvspace.c:定义 BLOCKMALLOC_IMPLEMENTATION / SLOTSBOXMALLOC_IMPLEMENTATION 后再 include(blockmalloc 必须先于 slotsboxmalloc,后者实现体调用前者)
  • CMakeLists:去掉 target_link_libraries(kvspace-c PUBLIC blockmalloc slotsboxmalloc)
  • ci/deps.sh:依赖包无 lib/ 时跳过(两库现在只发头)

验证

  • libkvspace-c.so 不再依赖 libblockmalloc/libslotsboxmallocldd 确认)
  • 体积 92.5 KB → 101 KB(实现体内联)
  • ctest 3/3 通过(shm_split / shm_resize / art_scan)

依赖顺序:本 PR 需与 blockmalloc 的 #pragma once 一起生效。

🤖 Generated with Claude Code

miaobyte and others added 2 commits September 14, 2026 12:56
两库都支持单头文件(#define *_IMPLEMENTATION),改为把实现体编进本仓
TU,不再链接它们的 .so:

- src/kvspace.c:定义 BLOCKMALLOC_IMPLEMENTATION /
  SLOTSBOXMALLOC_IMPLEMENTATION 后再 include(blockmalloc 必须先于
  slotsboxmalloc,后者实现体调用前者)
- CMakeLists:去掉 target_link_libraries(kvspace-c PUBLIC
  blockmalloc slotsboxmalloc)
- ci/deps.sh:依赖包无 lib/ 时跳过(两库现在只发头)

验证:libkvspace-c.so 不再依赖 libblockmalloc/libslotsboxmalloc;
ctest 3/3 通过。

Co-Authored-By: Claude Code <noreply@anthropic.com>
@miaobyte
miaobyte merged commit 97c2ef1 into main Sep 14, 2026
4 checks passed
@miaobyte
miaobyte deleted the feat/header-only branch September 15, 2026 06:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant