Skip to content

Update Rust crate iddqd to 0.4#741

Open
oxide-renovate[bot] wants to merge 1 commit into
mainfrom
renovate/iddqd-0.x
Open

Update Rust crate iddqd to 0.4#741
oxide-renovate[bot] wants to merge 1 commit into
mainfrom
renovate/iddqd-0.x

Conversation

@oxide-renovate
Copy link
Copy Markdown
Contributor

@oxide-renovate oxide-renovate Bot commented May 20, 2026

This PR contains the following updates:

Package Type Update Change
iddqd workspace.dependencies minor 0.30.4

Release Notes

oxidecomputer/iddqd (iddqd)

v0.4.2

Compare Source

Fixed
  • The retain callbacks no longer permit the RefMut to be stashed outside them. This is technically a breaking change, but is being treated as a soundness bugfix.
  • A number of soundness and resilience fixes for pathological implementations. These were found through a combination of human-driven analysis, example-based tests with Miri, chaos testing using fault injection with proptest, and adversarial code review from Claude Opus 4.7 and GPT-5.5. In particular, iddqd now more consistently preserves internal map state across panics in user code by using patterns like prepare-then-commit, index-based cleanup, cached hashes, and careful ordering of user-code execution relative to internal mutations.
Changed
  • MSRV updated to Rust 1.85.

v0.4.1

Compare Source

Fixed
  • Fixed a logic bug in TriHashMap::remove_unique, when key1 matches, and one of key2 and key3 matches, but not the other.

v0.4.0

Compare Source

Changed
  • The internal implementation for item storage has been changed to use a linear slot-based buffer, resulting in 2-3x performance improvements for most workloads.
  • The maps now have a limit of u32::MAX (4 294 967 295) elements at any given time. This limit is very unlikely to be reached in practice.
Fixed
  • All mutation methods for IdHashMap and IdOrdMap are now panic-safe, in the sense that a panic in user code will not corrupt the map. This does not currently extend to BiHashMap and TriHashMap
Added
  • Many more unit and property-based tests covering various kinds of pathological user implementations. We now have high confidence that arbitraily buggy user implementations (as long as they're in safe Rust) will not result in undefined behavior.

Configuration

📅 Schedule: (in timezone America/Los_Angeles)

  • Branch creation
    • "after 8pm,before 6am"
  • Automerge
    • "after 8pm,before 6am"

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants