Skip to content

kvspace-c: v0.3.23 ABI contract fixes, List traversal cache, Watch(None), and bindings sync - #67

Open
carsontung666 wants to merge 4 commits into
array2d:mainfrom
carsontung666:fix/review-v0.3.23
Open

carsontung666 wants to merge 4 commits into
array2d:mainfrom
carsontung666:fix/review-v0.3.23

Conversation

@carsontung666

@carsontung666 carsontung666 commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Sync xvalue_head bounded langtype reader and constructor failure semantics with kvspace.
  • Harden shm write/directory/delete ABI validation, atomic art_bump block count updates, DelTree subtree deletion (including ‥ control keys), ListLen/ListAt per-handle cache, and immediate kvspaceWatch wakeup on missing keys when target=None.
  • Align Python and Rust bindings with the #571 wire format and C signatures; run test suites in CI and pin kvspace ABI headers via deps.json.

Verification

  • ctest --test-dir build --output-on-failure: 11/11 passed.
  • python3 py/tests/test_wire.py: 21/21 passed; cargo test in rust/: passed.

…tract

- Sync xvalue_head.{h,c} with kvspace: clear *out on failure, validate storetype in Reserve
- Add kvspaceXvalueHeadLangtypeBounded for bounds-checked inline langtype parsing
- Add unit tests covering constructor failure cases and truncated/missing attr values
- Rename header guard to KVSPACE_SHM_H and bump store format to version 6 with rebuild hint
- Validate inline attr bounds on write, reject >=1024-byte keys without truncation, and guard u32 SetPart wraparound
- Honor ref in WriteNewPlace, reserve physical body_cap, and restrict ViewWrite to equal-length updates
- Add per-handle ListLen/ListAt cache invalidated via shared list_gen across processes
- Delete full subtrees (including hidden U+2025 keys) in DelTree without following pointer targets
- Update malloc_blocks atomically via whole-word store and populate err buffers across directory/delete ABIs
- Wake kvspaceWatch immediately on missing/deleted keys when target is None (target_len == 0)
- Add test_abi_contract and expand test_art_alignment for format-5 header truncation
- Pass langtype to New* constructors and match current ShmMkindex/ShmExtindex C signatures
- Validate 8 + len + attr_len wire bounds, parse inline langtype, and free ShmList name arrays
- Update Python and Rust wire tests for inline langtype, malformed attr rejection, and SHM roundtrips
@carsontung666 carsontung666 changed the title fix(kvspace-c): C 接口、shm 共享内存与多后端契约审查修复 kvspace-c: v0.3.23 ABI contract fixes, List traversal cache, Watch(None), and bindings sync Nov 1, 2026
- Add make test target and run CTest plus Python wire tests in CI workflows
- Pin kvspace ABI header checkout to deps.json tag in macOS CI and release workflows
- Update README for format version 6, inline attr wire layout, and current test commands
miaobyte added a commit that referenced this pull request Nov 1, 2026
feat: v0.3.23 ABI 契约修复与绑定同步(review #67,冲突取 PR 方)
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