Skip to content

kvspace: harden XValue ABI, ELF destructor cleanup, CLI formatting, and v0.3.23 tutorials - #50

Merged
miaobyte merged 5 commits into
array2d:mainfrom
carsontung666:fix/review-v0.3.23
Nov 1, 2026
Merged

miaobyte merged 5 commits into
array2d:mainfrom
carsontung666:fix/review-v0.3.23

Conversation

@carsontung666

@carsontung666 carsontung666 commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Add bounded kvspaceXvalueWireLangtypeView reader, clear *out on constructor failure, validate storetype in Reserve, and switch frontend exit cleanup from atexit to an ELF destructor.
  • Parse tensor dims from langtype in CLI head/value output, format fixed-width tensor elements, and honor --showext=false.
  • Set CLI RUNPATH for both tarball and cmake --install layouts, enable ctest in CI, and align tutorial-c / tutorial-durable with the v0.3.23 #571 ABI.

Verification

  • ctest --test-dir build --output-on-failure: 2/2 passed.
  • cargo test --manifest-path cli/Cargo.toml: passed.
  • tutorial-c/test.py: 11/11 passed; tutorial-durable/test.py: 19/19 passed.

- Embed relative RUNPATH entries for both release tarballs and cmake --install
- Verify CLI RUNPATH in release workflow instead of rebuilding with cargo
- Point kvspace.pc libdir to lib/kvspace and run ctest in CI
- Align README backend search order with frontend.c
…ctor

- Add kvspaceXvalueHeadLangtypeBounded to validate attr bounds against wire_len
- Clear *out on constructor failure and validate storetype in Reserve via build()
- Clarify leaf Ptr resolution and wire-level untyped traversal contracts in kvspace.h
- Treat kvspaceXvalueBodyView as optional in frontend (-2 when absent)
- Use __attribute__((destructor)) instead of atexit for exit handle cleanup to avoid UAF
- Add unit tests covering bounded langtype parsing and constructor failure contracts
…false

- Parse leading [dims] from langtype for head output and format numeric tensors element-wise
- Detect extindex mounts via head.ptr=2 and skip mounted expansion when showext=false
- Propagate deletion errors on 'set <key> nil' and remove dead FFI helpers
- Pass langtype to New* and WriteNewPlace across C, C++, Python, and Rust examples
- Read body length from fixed 8-byte header and parse inline langtype with bounded helper
- Default test.py library lookup to /usr/lib/kvspace with KVSPACE_LIB override
… #571 ABI

- Remove deprecated index:/map[]:/ro/vid syntax and isolate per-script prefix cleanup
- Update test.py ctypes bindings for current HeadV, New*, and WriteNewPlace signatures
@carsontung666 carsontung666 changed the title fix(kvspace): XValue 视图、索引边界及 CLI/核心路径审查修复 kvspace: harden XValue ABI, ELF destructor cleanup, CLI formatting, and v0.3.23 tutorials Nov 1, 2026
@miaobyte
miaobyte merged commit 1ebcbda into array2d:main Nov 1, 2026
2 checks passed
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.

2 participants