docs: editor coverage — version-2 B-trees, shrinking, dense attributes, reuse

CHANGELOG (Unreleased): the new FileEditor operations, space reuse, and
the two reader fixes (implicit index grid, object-header continuation
chains). known-issues: the editor's remaining refusals (skipped heap
blocks, heaps with filters or child indirect blocks, freeing a heap
block, implicit-index insertions, ...) and the append-waste sizes before
and after reuse (measure_append_waste, tank 2026-09-26; file sizes are
deterministic). range-reads design: status note on the reader changes.
README and CLAUDE.md: what the editor covers and how to test it.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
osobh
2026-09-26 17:13:31 -05:00
co-authored by Claude Opus 5.5
parent 955fdb660d
commit 0aca0eb724
5 changed files with 124 additions and 32 deletions
+5 -1
View File
@@ -444,9 +444,13 @@ ed.resize("x", &[1100])?; // h5py: ds.resize((1100,))
let sel = Selection::Hyperslab { start: vec![1000], stride: vec![1], count: vec![100], block: vec![1] };
ed.write_values("x", &sel, &[0.5f64; 100])?; // ds[1000:1100] = 0.5
ed.set_attr("x", "units", &AttrValue::String("m/s".into()))?;
ed.resize("x", &[900])?; // shrinking prunes chunks, like h5py
```
Each call changes the file in place (no rewrite) and syncs it. What it
Each call changes the file in place (no rewrite) and syncs it. Any chunk
index (version-2 B-trees for several unlimited dimensions included) and
attributes in compact or dense storage are handled as libhdf5 handles
them; space an edit frees is reused by later edits of the same editor. What it
cannot change safely is refused before anything is written; see
[known issues](docs/known-issues.md) for the limits.