Skip to content

chacha feature, pub use ChaCha*Rng in rand/rngs - #1659

Merged
dhardy merged 2 commits into
masterfrom
push-wuyykrkwkkwl
Sep 10, 2025
Merged

dhardy merged 2 commits into
masterfrom
push-wuyykrkwkkwl

Conversation

@dhardy

@dhardy dhardy commented Sep 10, 2025 •

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

Summary

Pub export ChaCha RNGs in rand. Closes #1588.

@dhardy dhardy mentioned this pull request Sep 10, 2025
Comment thread CHANGELOG.md Outdated
@dhardy
dhardy merged commit da946be into master Sep 10, 2025
16 checks passed
@dhardy
dhardy deleted the push-wuyykrkwkkwl branch September 10, 2025 09:07
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
renovate Bot added a commit to gwennlbh/shapemaker that referenced this pull request Sep 27, 2026
##### [v0.10.3](https://github.com/rust-random/rand/blob/HEAD/CHANGELOG.md#0103--2026-09-20)

##### Fixes

- Fix `WeightedIndex` panic when the sum of float weights is infinite; return `Error::Overflow` instead ([#1808])
- Fix spurious `Error::NonFinite` from `Uniform::new_inclusive` on large finite float ranges such as `0.0..=f64::MAX` ([#1821])
- Fix possible panic due to sampling a deserialized `Uniform<char>` ([#1831])

##### Changes

- Report exact remaining lengths from `WeightedIndex::weights()` and reduce overhead when reading weights ([#1838])

[#1808]: rust-random/rand#1808

[#1821]: rust-random/rand#1821

[#1831]: rust-random/rand#1831

[#1838]: rust-random/rand#1838
##### [v0.10.2](https://github.com/rust-random/rand/blob/HEAD/CHANGELOG.md#0102--2026-07-02)

##### Fixes

- Fix possible memory safety violation due to deserialization of `UniformChar` from bad source ([#1790])

##### Changes

- Document required output order of fn `partial_shuffle` and apply `#[must_use]` ([#1769])
- Avoid usage of `unsafe` in contexts where non-local memory corruption could invalidate contract ([#1791])

[#1769]: rust-random/rand#1769

[#1790]: rust-random/rand#1790

[#1791]: rust-random/rand#1791
##### [v0.10.1](https://github.com/rust-random/rand/blob/HEAD/CHANGELOG.md#0101--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
##### [v0.10.0](https://github.com/rust-random/rand/blob/HEAD/CHANGELOG.md#0100---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

[#1717]: rust-random/rand#1717

[#1722]: rust-random/rand#1722

[#1732]: rust-random/rand#1732

[#1734]: rust-random/rand#1734
##### [v0.9.5](https://github.com/rust-random/rand/releases/tag/0.9.5)

#### What's Changed

- rand v0.9.5: backport [#1790](rust-random/rand#1790) by [@dhardy](https://github.com/dhardy) in [#1803](rust-random/rand#1803)

**Full Changelog**: <rust-random/rand@0.9.4...0.9.5>
##### [v0.9.4](https://github.com/rust-random/rand/releases/tag/0.9.4)

##### Fixes

- Fix doc build ([#1766])

[#1766]: rust-random/rand#1766

**Full Changelog**: <rust-random/rand@0.9.3...0.9.4>
##### [v0.9.3](rust-random/rand@0.9.2...0.9.3)
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.

Add guaranteed-reproducible PRNGs to rand?

2 participants