Skip to content

Remove Clone for StdRng, new bound for ReseedingRng#1677

Merged
dhardy merged 3 commits into
masterfrom
push-xtrmvonsppmw
Oct 30, 2025
Merged

Remove Clone for StdRng, new bound for ReseedingRng#1677
dhardy merged 3 commits into
masterfrom
push-xtrmvonsppmw

Conversation

@dhardy

@dhardy dhardy commented Oct 30, 2025

Copy link
Copy Markdown
Member
  • Added a CHANGELOG.md entry

Since Clone support was removed for chacha20 (RustCrypto/stream-ciphers#462) we must remove Clone for StdRng.

For ReseedingRng, we could:

  1. Make no changes. Effectively it would still lose Clone support with ChaCha*Core.
  2. Add a restriction Rsdr: RngCore (i.e. that the reseeder is infallible) to allow seeding a new inner RNG on clone.
  3. Try to reseed on clone, panic on failure. (I dislike this option.)
  4. Remove Clone support entirely.

I opted for (4) since I suspect this feature has very little usage anyway. If users request that Clone support be restored we can re-evaluate based on the reported use-case and implement it in a patch release.

@dhardy
dhardy requested a review from newpavlov October 30, 2025 10:18
@dhardy
dhardy merged commit 5fce5ec into master Oct 30, 2025
15 checks passed
@dhardy
dhardy deleted the push-xtrmvonsppmw branch October 30, 2025 13:44
kodiakhq Bot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.

Changelog
Sourced from rand's changelog.

[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes

Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)

#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
Changes

The dependency on rand_chacha has been replaced with a dependency on chacha20. This changes the implementation behind StdRng, but the output remains the same. There may be some API breakage when using the ChaCha-types directly as these are now the ones in chacha20 instead of rand_chacha (#1642).
Rename fns IndexedRandom::choose_multiple -> sample, choose_multiple_array -> sample_array, choose_multiple_weighted -> sample_weighted, struct SliceChooseIter -> IndexedSamples and fns IteratorRandom::choose_multiple -> sample, choose_multiple_fill -> sample_fill (#1632)
Use Edition 2024 and MSRV 1.85 (#1653)
Let Fill be implemented for element types, not sliceable types (#1652)
Fix OsError::raw_os_error on UEFI targets by returning Option<usize> (#1665)
Replace fn TryRngCore::read_adapter(..) -> RngReadAdapter with simpler struct RngReader (#1669)
Remove fns SeedableRng::from_os_rng, try_from_os_rng (#1674)
Remove Clone support for StdRng, ReseedingRng (#1677)
Use postcard instead of bincode to test the serde feature (#1693)
Avoid excessive allocation in IteratorRandom::sample when amount is much larger than iterator size (#1695)
Rename os_rng -> sys_rng, OsRng -> SysRng, OsError -> SysError (#1697)
Rename Rng -> RngExt as upstream rand_core has renamed RngCore -> Rng (#1717)

Additions

Add fns IndexedRandom::choose_iter, choose_weighted_iter (#1632)
Pub export Xoshiro128PlusPlus, Xoshiro256PlusPlus prngs (#1649)
Pub export ChaCha8Rng, ChaCha12Rng, ChaCha20Rng behind chacha feature (#1659)
Fn rand::make_rng() -> R where R: SeedableRng (#1734)

Removals

Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)

#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697


... (truncated)


Commits

27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
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