Skip to content

windows-ioring-sys: v0.5.0

Latest

Choose a tag to compare

@MikeGrier MikeGrier released this 25 Sep 23:31
e4ba9d1

0.5.0 (2026-09-25)

⚠ BREAKING CHANGES

  • ioring: IoRing will become generic over the token payload, so every consumer names the type. Not in this commit -- this records the decision and the plan; M28.3 makes the change.
  • NumaBuffer::new takes Option rather than Option. windows_ioring_sys::NumaBuffer still resolves -- the type is re-exported, so a path binding is unaffected -- but a call site passing a bare integer must wrap it. That is the newtype doing its job at the one boundary where a wrong u32 silently allocates on the wrong node, which windows-placement-probe documents as a real defect it had.
  • ioring: ask which cache level partitions the machine, never filter on L3

Features

  • create win-numa-sys and move NumaBuffer into it (947b252)
  • ioring: add a bounded pop, generic over the wait the caller supplies (c6703f3)
  • ioring: build the seeded resolver over the kernel response space (6e53bbe)
  • ioring: D-54 -- this crate owns one flush, not durability groups (4319688)
  • ioring: D-55 -- the ring owns the pending inventory (fdc3f7f)
  • ioring: decide RS-P-8, a completion may report fewer bytes than requested (f4d4f0e)
  • ioring: give epoch-log records a sector stride, both ends (a8a2a3e)
  • ioring: hand rundown's retry policy to the caller, and fix an expired wait reported as a failed submit (2585180)
  • ioring: measure a commit as submit / blocking / deferral (2b2e75c)
  • ioring: open the epoch log NO_BUFFERING | OVERLAPPED over a written extent (e75a9d7)
  • ioring: provide NumaBuffer, and place the epoch-log arena deliberately (896252e)
  • ioring: route the submission-path kernel calls through a seam (73b60c9)
  • ioring: spike Pending<T, X> for M23.3, and report what it cannot do (bc856bd)
  • ioring: state that the ring, not the log, is the durability unit (d845bb2)
  • ioring: state the epoch log's handle requirements and enforce the checkable one (1b975af)
  • ioring: trace the delivery path, and prove the pool is alive when it stalls (ef3ada4)

Bug Fixes

  • ioring: address PR #108 review, and record what one finding uncovered (04c329b)
  • ioring: address the two findings Copilot raised without a thread (95fc3e3)
  • ioring: an expired wait is a result, not an error (9c9c5ff)
  • ioring: arm the delivery wait before signalling the completion event (6d6956d)
  • ioring: ask which cache level partitions the machine, never filter on L3 (3433fe0)
  • ioring: bound every wait that could hang, not the two that were named (665edab)
  • ioring: count a strategy's preparation as part of its commit, and re-run M20.6 (6c012e6)
  • ioring: derive the epoch-log sample's free slots instead of tracking them (834c7af)
  • ioring: keep Drop guards silent while already panicking (74022a3)
  • ioring: make bounded_pop wait on a pipe, not on a fast enough device (8f079ca)
  • ioring: resolve the intra-doc links this branch broke (02bb88f)
  • ioring: separate the barrier's scope from the flush's in the contract (4adea67)

Performance Improvements

  • ioring: batch an epoch's appends into one submission, and measure the claim (7c12708)
  • ioring: size the zero-fill chunk from measurement, not habit (c7bf651)