rand v0.9.1
- Revise "not a crypto library" policy again (#1565)
- Remove
zerocopydependency fromrand(#1579)
- Fix feature
simd_supportfor recent nightly rust (#1586)
- Allow
fn rand::seq::index::sample_weightedandfn IndexedRandom::choose_multiple_weightedto return fewer thanamountresults (#1623), reverting an undocumented change (#1382) to the previous release.
- Add
rand::distr::Alphabeticdistribution. (#1587) - Re-export
rand_core(#1604)
- @yttersian made their first contribution in https://github.com/rust-random/rand/pull/1567
- @sorairolake made their first contribution in https://github.com/rust-random/rand/pull/1583
- @1Git2Clone made their first contribution in https://github.com/rust-random/rand/pull/1587
- @baloo made their first contribution in https://github.com/rust-random/rand/pull/1589
- @fjarri made their first contribution in https://github.com/rust-random/rand/pull/1593
- @Raymi306 made their first contribution in https://github.com/rust-random/rand/pull/1616
- @hashcatHitman made their first contribution in https://github.com/rust-random/rand/pull/1627
Full Changelog: https://github.com/rust-random/rand/compare/0.9.0...0.9.1
0.9.0
See https://rust-random.github.io/book/update-0.9.html
- Policy: "rand is not a crypto library" (#1514)
- Remove fork-protection from
ReseedingRngandThreadRng. Instead, it is recommended to callThreadRng::reseedon fork. (#1379) - Use
zerocopyto replace someunsafecode (#1349, #1393, #1446, #1502)
- Bump the MSRV to 1.63.0 (#1207, #1246, #1269, #1341, #1416, #1536); note that 1.60.0 may work for dependents when using
--ignore-rust-version - Update to
rand_corev0.9.0 (#1558)
- Support
stdfeature withoutgetrandomorrand_chacha(#1354) - Enable feature
small_rngby default (#1455) - Remove implicit feature
rand_chacha; usestd_rnginstead. (#1473) - Rename feature
serde1toserde(#1477) - Rename feature
getrandomtoos_rng(#1537) - Add feature
thread_rng(#1547)
- Add fn
RngCore::read_adapterimplementingstd::io::Read(#1267) - Add trait
CryptoBlockRng: BlockRngCore; maketrait CryptoRng: RngCore(#1273) - Add traits
TryRngCore,TryCryptoRng(#1424, #1499) - Rename
fn SeedableRng::from_rng->try_from_rngand add infallible variantfn from_rng(#1424) - Rename
fn SeedableRng::from_entropy->from_os_rngand add fallible variantfn try_from_os_rng(#1424) - Add bounds
CloneandAsRefto associated typeSeedableRng::Seed(#1491)
- Rename fn
rand::thread_rng()torand::rng()and remove from the prelude (#1506) - Remove fn
rand::random()from the prelude (#1506) - Add top-level fns
random_iter,random_range,random_bool,random_ratio,fill(#1488) - Re-introduce fn
Rng::gen_iterasrandom_iter(#1305, #1500) - Rename fn
Rng::gentorandomto avoid conflict with the newgenkeyword in Rust 2024 (#1438) - Rename fns
Rng::gen_rangetorandom_range,gen_booltorandom_bool,gen_ratiotorandom_ratio(#1505) - Annotate panicking methods with
#[track_caller](#1442, #1447)
- Fix
<SmallRng as SeedableRng>::Seedsize to 256 bits (#1455) - Remove first parameter (
rng) ofReseedingRng::new(#1533)
- Split trait
SliceRandomintoIndexedRandom,IndexedMutRandom,SliceRandom(#1382) - Add
IndexedRandom::choose_multiple_array,index::sample_array(#1453, #1469)
- Rename module
rand::distributionstorand::distr(#1470) - Rename distribution
StandardtoStandardUniform(#1526) - Move
distr::Slice->distr::slice::Choose,distr::EmptySlice->distr::slice::Empty(#1548) - Rename trait
distr::DistString->distr::SampleString(#1548) - Rename
distr::DistIter->distr::Iter,distr::DistMap->distr::Map(#1548)
- Relax
Sizedbound onDistribution<T> for &D(#1278) - Remove impl of
Distribution<Option<T>>forStandardUniform(#1526) - Let distribution
StandardUniformsupport allNonZero*types (#1332) - Fns
{Uniform, UniformSampler}::{new, new_inclusive}return aResult(instead of potentially panicking) (#1229) - Distribution
UniformimplementsTryFrominstead ofFromfor ranges (#1229) - Add
UniformUsize(#1487) - Remove support for generating
isizeandusizevalues withStandardUniform,Uniform(except viaUniformUsize) andFilland usage as aWeightedAliasIndexweight (#1487) - Add impl
DistStringfor distributionsSlice<char>andUniform<char>(#1315) - Add fn
Slice::num_choices(#1402) - Add fn
p()for distributionBernoullito access probability (#1481)
- Add
pubmodulerand::distr::weighted, movingWeightedIndexthere (#1548) - Add trait
weighted::Weight, allowingWeightedIndexto trap overflow (#1353) - Add fns
weight, weights, total_weightto distributionWeightedIndex(#1420) - Rename enum
WeightedErrortoweighted::Error, revising variants (#1382) and mark as#[non_exhaustive](#1480)
- Switch to
std::simd, expand SIMD & docs (#1239)
- Make
ReseedingRng::reseeddiscard remaining data from the last block generated (#1379) - Change fn
SmallRng::seed_from_u64implementation (#1203) - Allow
UniformFloat::newsamples andUniformFloat::sample_singleto yieldhigh(#1462) - Fix portability of distribution
Slice(#1469) - Make
Uniformforusizeportable viaUniformUsize(#1487) - Fix
IndexdRandom::choose_multiple_weightedfor very small seeds and optimize for large input length / low memory (#1530)
- Optimize fn
sample_floyd, affecting output ofrand::seq::index::sampleandrand::seq::SliceRandom::choose_multiple(#1277) - New, faster algorithms for
IteratorRandom::chooseandchoose_stable(#1268) - New, faster algorithms for
SliceRandom::shuffleandpartial_shuffle(#1272) - Optimize distribution
Uniform: use Canon's method (single sampling) / Lemire's method (distribution sampling) for faster sampling (breaks value stability; #1287) - Optimize fn
sample_single_inclusivefor floats (+~20% perf) (#1289)
- Improve
SmallRnginitialization performance (#1482) - Optimise SIMD widening multiply (#1247)
- Add
Cargo.lock.msrvfile (#1275) - Reformat with
rustfmtand enforce (#1448) - Apply Clippy suggestions and enforce (#1448, #1474)
- Move all benchmarks to new
benchescrate (#1329, #1439) and migrate to Criterion (#1490)
- Improve
ThreadRngrelated docs (#1257) - Docs: enable experimental
--generate-link-to-definitionfeature (#1327) - Better doc of crate features, use
doc_auto_cfg(#1411, #1450)
- update Miri CI config by @RalfJung in https://github.com/rust-random/rand/pull/1223
- fix typo by @cuishuang in https://github.com/rust-random/rand/pull/1228
- Remove unused fields by @vks in https://github.com/rust-random/rand/pull/1184
- Make
CryptoRngCoretrait implyCryptoRngas well by @cbeck88 in https://github.com/rust-random/rand/pull/1230 - Deterministic Rayon monte carlo example by @masonk in https://github.com/rust-random/rand/pull/1236
- small deterministic example update by @TheIronBorn in https://github.com/rust-random/rand/pull/1240
- switch to std::simd, expand SIMD & docs by @TheIronBorn in https://github.com/rust-random/rand/pull/1239
- optimize simd widening mul by @TheIronBorn in https://github.com/rust-random/rand/pull/1247
- Mention disabling getrandom for wasm32-unknown-unknown in README by @golddranks in https://github.com/rust-random/rand/pull/1250
- Bump MSRV to 1.51.0 by @dhardy in https://github.com/rust-random/rand/pull/1246
- rand_core: update CHANGELOG for 0.6.4 by @dhardy in https://github.com/rust-random/rand/pull/1253
- Update listed rand_core version number by @atouchet in https://github.com/rust-random/rand/pull/1254
- Doc: improve random, thread_rng, ThreadRng docs by @dhardy in https://github.com/rust-random/rand/pull/1257
- Clarify documentation of
choose_weighted(_mut)mentioning accurate behavior with floats by @ISibboI in https://github.com/rust-random/rand/pull/1245 - clarify shuffle docs by @RalfJung in https://github.com/rust-random/rand/pull/1259
- fix outdated choose_multiple_weighted docs by @TheIronBorn in https://github.com/rust-random/rand/pull/1237
- Update GitHub Actions by @dhardy in https://github.com/rust-random/rand/pull/1263
- Fix typo by @yaronf in https://github.com/rust-random/rand/pull/1264
- Remove redundant bounds by @steffahn in https://github.com/rust-random/rand/pull/1207
- SmallRng uses wrong seed_from_u64 implementation by @ironhaven in https://github.com/rust-random/rand/pull/1203
- gh-pages action: add id-token write permission by @dhardy in https://github.com/rust-random/rand/pull/1265
- Bump MSRV to 1.56 (Edition 2021) by @dhardy in https://github.com/rust-random/rand/pull/1269
- fill_via_chunks: mutate src on BE (small optimisation) by @dhardy in https://github.com/rust-random/rand/pull/1182
- Add read_adapter to avoid dynamic dispatch by @SUPERCILEX in https://github.com/rust-random/rand/pull/1267
- GitHub Workflows security hardening by @sashashura in https://github.com/rust-random/rand/pull/1274
- Add Criterion as dev-dependency, fix CI for MSRV and minimal-versions by @dhardy in https://github.com/rust-random/rand/pull/1275
- use partition_point in WeightedIndex by @TheIronBorn in https://github.com/rust-random/rand/pull/1276
- Simpler and faster implementation of Floyd's F2 by @ciphergoth in https://github.com/rust-random/rand/pull/1277
- Relax
Sizedbound onDistribution<T> for &Dby @ChayimFriedman2 in https://github.com/rust-random/rand/pull/1278 - Added new versions of choose and choose_stable by @wainwrightmark in https://github.com/rust-random/rand/pull/1268
- Performance improvements for
shuffleandpartial_shuffleby @wainwrightmark in https://github.com/rust-random/rand/pull/1272 - Add note about floating point weights in update_weights docs by @arya2 in https://github.com/rust-random/rand/pull/1280
- Make
Uniformconstructors return a result by @vks in https://github.com/rust-random/rand/pull/1229 - Poisson returns -1 for small lambda by @tearne in https://github.com/rust-random/rand/pull/1284
- Rework CryptoRng by @newpavlov in https://github.com/rust-random/rand/pull/1273
- Don't run the random write test by @SUPERCILEX in https://github.com/rust-random/rand/pull/1294
- Poisson distribution falls into an infinite loop for parameter λ=∞ by @Thopic in https://github.com/rust-random/rand/pull/1291
- Use const generics in Dirichlet by @Armavica in https://github.com/rust-random/rand/pull/1292
- Uniform sampling: use Canon's method by @dhardy in https://github.com/rust-random/rand/pull/1287
- StepRng: better documentation of outputs for other types by @dhardy in https://github.com/rust-random/rand/pull/1304
- Simplify slice size calcuation by @schubart in https://github.com/rust-random/rand/pull/1308
- rand_distr: Fix dirichlet sample method for small alpha. by @WarrenWeckesser in https://github.com/rust-random/rand/pull/1209
- Uniform float improvements by @dhardy in https://github.com/rust-random/rand/pull/1289
- Re-introduce Rng::gen_iter by @dhardy in https://github.com/rust-random/rand/pull/1305
- fix feature typo by @ihciah in https://github.com/rust-random/rand/pull/1316
- ReseedingRng: fix doc comment on reseeding behavior after UNIX fork by @LiosK in https://github.com/rust-random/rand/pull/1317
- impl TrustedLen is unsafe by @dhardy in https://github.com/rust-random/rand/pull/1318
- Replace tab character with spaces in poisson.rs. by @WarrenWeckesser in https://github.com/rust-random/rand/pull/1320
- Fix infinite loop in Binomial distribution by @benjamin-lieser in https://github.com/rust-random/rand/pull/1325
- Add
DistStringimpl toUniformandSliceby @aobatact in https://github.com/rust-random/rand/pull/1315 - Add
--generate-link-to-definitionoption when building on docs.rs by @GuillaumeGomez in https://github.com/rust-random/rand/pull/1327 - Add tests for
Uniform::try_fromwith invalid ranges by @vks in https://github.com/rust-random/rand/pull/1331 - Implement Standard support for signed NonZero* types by @elichai in https://github.com/rust-random/rand/pull/1332
- fix partial_shuffle documentation by @TheIronBorn in https://github.com/rust-random/rand/pull/1335
- Improve doc of slice and iterator "choose" methods by @dhardy in https://github.com/rust-random/rand/pull/1343
- Use cfg(panic = unwind) instead of a check for wasm32 to see if unwinding is supported by @bjorn3 in https://github.com/rust-random/rand/pull/1341
- Simplify macro implementation for tuples by @Lucretiel in https://github.com/rust-random/rand/pull/1340
- Correcting method name in comment by @OldEnglishSheepdog in https://github.com/rust-random/rand/pull/1350
- Mention that
gen_rangemay overflow for floats by @vks in https://github.com/rust-random/rand/pull/1351 - Use zerocopy to replace some unsafe code by @joshlf in https://github.com/rust-random/rand/pull/1349
- Support using std without getrandom or rand_chacha by @SUPERCILEX in https://github.com/rust-random/rand/pull/1354
- Fix clippy warnings by @vks in https://github.com/rust-random/rand/pull/1363
- Add example for initializing a PCG RNG by @vks in https://github.com/rust-random/rand/pull/1352
- Trap weighted index overflow by @dhardy in https://github.com/rust-random/rand/pull/1353
- Replace SeedableRng impl for SmallRng with inherent fns by @dhardy in https://github.com/rust-random/rand/pull/1368
- Allow new warning on recent nightly versions by @bjorn3 in https://github.com/rust-random/rand/pull/1376
- Add WeightedIndexTree to rand_distr by @xmakro in https://github.com/rust-random/rand/pull/1372
- Add dependabot by @oriontvv in https://github.com/rust-random/rand/pull/1383
- Bump actions/configure-pages from 2 to 4 by @dependabot in https://github.com/rust-random/rand/pull/1389
- Bump actions/checkout from 3 to 4 by @dependabot in https://github.com/rust-random/rand/pull/1386
- Update zerocopy; trim unused methods by @dhardy in https://github.com/rust-random/rand/pull/1393
- Bump actions/cache from 3 to 4 by @dependabot in https://github.com/rust-random/rand/pull/1385
- Update special requirement from 0.8.1 to 0.10.3 by @dependabot in https://github.com/rust-random/rand/pull/1384
- Rename WeightedError → WeightError; add IndexedRandom, IndexedMutRandom by @dhardy in https://github.com/rust-random/rand/pull/1382
- Update serde_with requirement from 1.14.0 to 3.6.1 by @dependabot in https://github.com/rust-random/rand/pull/1392
- Bump actions upload-pages-artifact, deploy-pages by @dhardy in https://github.com/rust-random/rand/pull/1396
- Prepare rand 0.9.0-alpha.0 by @dhardy in https://github.com/rust-random/rand/pull/1395
- Disable rand_pcg's dev dependency on rand by @dhardy in https://github.com/rust-random/rand/pull/1397
- Add path for benchmark by @dhardy in https://github.com/rust-random/rand/pull/1398
- Fix redundant import warnings by @MichaelOwenDyer in https://github.com/rust-random/rand/pull/1405
- Add .choices() method to the Slice distribution by @JustusFluegel in https://github.com/rust-random/rand/pull/1402
- chore: fix typos by @acceptacross in https://github.com/rust-random/rand/pull/1407
- document more crate features by @TheIronBorn in https://github.com/rust-random/rand/pull/1411
- Update zerocopy requirement from =0.8.0-alpha.5 to =0.8.0-alpha.6 by @dependabot in https://github.com/rust-random/rand/pull/1401
- Update average requirement from 0.13 to 0.14 by @dependabot in https://github.com/rust-random/rand/pull/1388
- Remove automatic (delayed) reseed-on-fork by @dhardy in https://github.com/rust-random/rand/pull/1379
- Prepare 0.9.0-alpha.1 by @dhardy in https://github.com/rust-random/rand/pull/1413
- Use Simd::wrapping_neg by @dhardy in https://github.com/rust-random/rand/pull/1414
- Bump the MSRV to 1.61.0 by @dhardy in https://github.com/rust-random/rand/pull/1416
- Cleaner README, remove MSRV shields by @dhardy in https://github.com/rust-random/rand/pull/1417
- Update average requirement from 0.14 to 0.15 by @dependabot in https://github.com/rust-random/rand/pull/1426
- Add methods weight, weights, and total_weight to weighted_index.rs by @MichaelOwenDyer in https://github.com/rust-random/rand/pull/1420
- Bump actions/configure-pages from 4 to 5 by @dependabot in https://github.com/rust-random/rand/pull/1427
- Put macro
x86_intrinsic_implbehind x86 configuration by @MichaelOwenDyer in https://github.com/rust-random/rand/pull/1431 - Optimize imports by @MichaelOwenDyer in https://github.com/rust-random/rand/pull/1430
- rand_distr/std_math: add note regarding other dependents by @dhardy in https://github.com/rust-random/rand/pull/1421
- Add "bug report" issue template by @dhardy in https://github.com/rust-random/rand/pull/1436
- Upgrade criterion by @dhardy in https://github.com/rust-random/rand/pull/1439
- Upgrade criterion by @vks in https://github.com/rust-random/rand/pull/1329
- Rename
Rng::gentoRng::randomby @vks in https://github.com/rust-random/rand/pull/1438 - Add #[track_caller] to methods which panic by @josephlr in https://github.com/rust-random/rand/pull/1442
- Make WeightedTree::try_sample public by @xmakro in https://github.com/rust-random/rand/pull/1444
- Use zerocopy 0.7.33, not 0.8.0-alpha by @joshlf in https://github.com/rust-random/rand/pull/1446
- Add
TryRngCoreandTryCryptoRngtraits by @newpavlov in https://github.com/rust-random/rand/pull/1424 - Update Panic documentation and #[track_caller] by @josephlr in https://github.com/rust-random/rand/pull/1447
- Apply rustfmt and fix Clippy warnings by @newpavlov in https://github.com/rust-random/rand/pull/1448
- Rename
doc_cfgtodocsrsand usedoc_auto_cfgby @newpavlov in https://github.com/rust-random/rand/pull/1450 - Tweak docs CI job by @newpavlov in https://github.com/rust-random/rand/pull/1451
- Revise crate doc for rand_pcg, rand_chacha by @dhardy in https://github.com/rust-random/rand/pull/1454
- Revise RNG docs; enable small_rng by default by @dhardy in https://github.com/rust-random/rand/pull/1455
- Fix benches CI job by @newpavlov in https://github.com/rust-random/rand/pull/1456
- Fix Nightly Clippy lints by @newpavlov in https://github.com/rust-random/rand/pull/1457
- Add IndexedRandom::choose_multiple_array, index::sample_array by @dhardy in https://github.com/rust-random/rand/pull/1453
- Add distribution plots to
rand_distrdocumentation by @MichaelOwenDyer in https://github.com/rust-random/rand/pull/1434 rand_distr: Rename Zeta parameter fromatosby @MichaelOwenDyer in https://github.com/rust-random/rand/pull/1466- rand_distr: split gamma module by @dhardy in https://github.com/rust-random/rand/pull/1464
- Revise pert by @dhardy in https://github.com/rust-random/rand/pull/1452
- UniformFloat: allow inclusion of high in all cases by @dhardy in https://github.com/rust-random/rand/pull/1462
- Fix some typos. by @waywardmonkeys in https://github.com/rust-random/rand/pull/1472
- Fix
clippy::doc_markdownwarnings. by @waywardmonkeys in https://github.com/rust-random/rand/pull/1474 - Portability fixes by @dhardy in https://github.com/rust-random/rand/pull/1469
- rand::distributions -> distr; split uniform module by @dhardy in https://github.com/rust-random/rand/pull/1470
- Rename
serde1feature toserde. by @waywardmonkeys in https://github.com/rust-random/rand/pull/1477 - Document small issues by @dhardy in https://github.com/rust-random/rand/pull/1479
- Doc issues by @dhardy in https://github.com/rust-random/rand/pull/1480
- Migrate remaining benchmarks to Criterion by @dhardy in https://github.com/rust-random/rand/pull/1490
- Require SeedableRng::Seed to impl Clone by @clarfonthey in https://github.com/rust-random/rand/pull/1491
- No usize except uniform by @dhardy in https://github.com/rust-random/rand/pull/1487
- Poisson: split Knuth/Rejection methods by @dhardy in https://github.com/rust-random/rand/pull/1493
- Poisson u64 sampling by @benjamin-lieser in https://github.com/rust-random/rand/pull/1498
- Rename gen_iter → random_iter, misc.. by @dhardy in https://github.com/rust-random/rand/pull/1500
- Make sure BTPE is not entered when np < 10 by @benjamin-lieser in https://github.com/rust-random/rand/pull/1484
- Remove some unsafe, update to zerocopy 0.8.0 by @joshlf in https://github.com/rust-random/rand/pull/1502
- Improve SmallRng initialization performance by @arthurprs in https://github.com/rust-random/rand/pull/1482
- Cdf testing with Kolmogorov Smirnov by @benjamin-lieser in https://github.com/rust-random/rand/pull/1494
- rand_core: add blanket impl of TryRngCore for RngCore by @newpavlov in https://github.com/rust-random/rand/pull/1499
- thread_rng() → rand::rng() by @dhardy in https://github.com/rust-random/rand/pull/1506
- Fix new Clippy lints by @newpavlov in https://github.com/rust-random/rand/pull/1511
- Weibull doc numerics warning by @benjamin-lieser in https://github.com/rust-random/rand/pull/1509
- Rng renames: gen_ → random_ by @dhardy in https://github.com/rust-random/rand/pull/1505
- Add
p()forBernoulliby @marcpabst in https://github.com/rust-random/rand/pull/1481 - Use explicit features rather than implicit. by @waywardmonkeys in https://github.com/rust-random/rand/pull/1473
- Add more Kolmogorov–Smirnov test by @JamboChen in https://github.com/rust-random/rand/pull/1504
- Remove u64 support for Poisson by @dhardy in https://github.com/rust-random/rand/pull/1517
- README: rand is not a crypto library by @dhardy in https://github.com/rust-random/rand/pull/1514
- add
rand::range, random_bool, random_iter, random_ratio, fill as top-level helper functions by @oconnor663 in https://github.com/rust-random/rand/pull/1488 - Zipf: let n have type F by @dhardy in https://github.com/rust-random/rand/pull/1518
- Hypergeo fix by @benjamin-lieser in https://github.com/rust-random/rand/pull/1510
- Move ks by @benjamin-lieser in https://github.com/rust-random/rand/pull/1525
- Rename
Standard→StandardUniformby @dhardy in https://github.com/rust-random/rand/pull/1526 - Remove rng parameter of ReseedingRng::new by @dhardy in https://github.com/rust-random/rand/pull/1533
- remove conditional compilation around using core by @ComputerDruid in https://github.com/rust-random/rand/pull/1534
- Remove SmallRng::from_thread_rng by @dhardy in https://github.com/rust-random/rand/pull/1532
- Bump the MSRV to 1.63.0 by @dhardy in https://github.com/rust-random/rand/pull/1536
- Make getrandom a non-pub dep; rename feature to os_rng by @dhardy in https://github.com/rust-random/rand/pull/1537
- Add KS tests for weighted sampling by @dhardy in https://github.com/rust-random/rand/pull/1530
- Prepare 0.9.0-beta.0 by @dhardy in https://github.com/rust-random/rand/pull/1535
- Adjust GH Actions by @dhardy in https://github.com/rust-random/rand/pull/1538
- Fix docs.rs build options by @dhardy in https://github.com/rust-random/rand/pull/1539
- Update: getrandom v0.3.0 rc.0 by @dhardy in https://github.com/rust-random/rand/pull/1541
- Fix test status badges by @atouchet in https://github.com/rust-random/rand/pull/1544
- Thread rng by @dhardy in https://github.com/rust-random/rand/pull/1547
- Re-org with distr::slice, distr::weighted modules by @dhardy in https://github.com/rust-random/rand/pull/1548
- Enable
stdarch_x86_avx512for cpu hasavx512bwby @serendipity-crypto in https://github.com/rust-random/rand/pull/1551 - Prepare 0.9.0 release by @dhardy in https://github.com/rust-random/rand/pull/1558
- @cuishuang made their first contribution in https://github.com/rust-random/rand/pull/1228
- @cbeck88 made their first contribution in https://github.com/rust-random/rand/pull/1230
- @masonk made their first contribution in https://github.com/rust-random/rand/pull/1236
- @golddranks made their first contribution in https://github.com/rust-random/rand/pull/1250
- @atouchet made their first contribution in https://github.com/rust-random/rand/pull/1254
- @ISibboI made their first contribution in https://github.com/rust-random/rand/pull/1245
- @yaronf made their first contribution in https://github.com/rust-random/rand/pull/1264
- @steffahn made their first contribution in https://github.com/rust-random/rand/pull/1207
- @ironhaven made their first contribution in https://github.com/rust-random/rand/pull/1203
- @SUPERCILEX made their first contribution in https://github.com/rust-random/rand/pull/1267
- @sashashura made their first contribution in https://github.com/rust-random/rand/pull/1274
- @ciphergoth made their first contribution in https://github.com/rust-random/rand/pull/1277
- @ChayimFriedman2 made their first contribution in https://github.com/rust-random/rand/pull/1278
- @wainwrightmark made their first contribution in https://github.com/rust-random/rand/pull/1268
- @arya2 made their first contribution in https://github.com/rust-random/rand/pull/1280
- @tearne made their first contribution in https://github.com/rust-random/rand/pull/1284
- @Thopic made their first contribution in https://github.com/rust-random/rand/pull/1291
- @schubart made their first contribution in https://github.com/rust-random/rand/pull/1308
- @WarrenWeckesser made their first contribution in https://github.com/rust-random/rand/pull/1209
- @ihciah made their first contribution in https://github.com/rust-random/rand/pull/1316
- @LiosK made their first contribution in https://github.com/rust-random/rand/pull/1317
- @benjamin-lieser made their first contribution in https://github.com/rust-random/rand/pull/1325
- @aobatact made their first contribution in https://github.com/rust-random/rand/pull/1315
- @elichai made their first contribution in https://github.com/rust-random/rand/pull/1332
- @bjorn3 made their first contribution in https://github.com/rust-random/rand/pull/1341
- @OldEnglishSheepdog made their first contribution in https://github.com/rust-random/rand/pull/1350
- @joshlf made their first contribution in https://github.com/rust-random/rand/pull/1349
- @xmakro made their first contribution in https://github.com/rust-random/rand/pull/1372
- @oriontvv made their first contribution in https://github.com/rust-random/rand/pull/1383
- @dependabot made their first contribution in https://github.com/rust-random/rand/pull/1389
- @MichaelOwenDyer made their first contribution in https://github.com/rust-random/rand/pull/1405
- @JustusFluegel made their first contribution in https://github.com/rust-random/rand/pull/1402
- @acceptacross made their first contribution in https://github.com/rust-random/rand/pull/1407
- @waywardmonkeys made their first contribution in https://github.com/rust-random/rand/pull/1472
- @clarfonthey made their first contribution in https://github.com/rust-random/rand/pull/1491
- @arthurprs made their first contribution in https://github.com/rust-random/rand/pull/1482
- @marcpabst made their first contribution in https://github.com/rust-random/rand/pull/1481
- @JamboChen made their first contribution in https://github.com/rust-random/rand/pull/1504
- @oconnor663 made their first contribution in https://github.com/rust-random/rand/pull/1488
- @ComputerDruid made their first contribution in https://github.com/rust-random/rand/pull/1534
- @serendipity-crypto made their first contribution in https://github.com/rust-random/rand/pull/1551
Full Changelog: https://github.com/rust-random/rand/compare/0.8.5...0.9.0
0.9.0-beta.3
- Add feature
thread_rng(#1547) - Move
distr::Slice->distr::slice::Choose,distr::EmptySlice->distr::slice::Empty(#1548) - Rename trait
distr::DistString->distr::SampleString(#1548) - Rename
distr::DistIter->distr::Iter,distr::DistMap->distr::Map(#1548) - Move
distr::{Weight, WeightError, WeightedIndex}->distr::weighted::{Weight, Error, WeightedIndex}(#1548)
- Move
Slice->slice::Choose,EmptySlice->slice::Empty(#1548) - Rename trait
DistString->SampleString(#1548) - Rename
DistIter->Iter,DistMap->Map(#1548) - Move
{Weight, WeightError, WeightedIndex}->weighted::{Weight, Error, WeightedIndex}(#1548) - Move
weighted_alias::{AliasableWeight, WeightedAliasIndex}->weighted::{..}(#1548) - Move
weighted_tree::WeightedTreeIndex->weighted::WeightedTreeIndex(#1548)
- @serendipity-crypto made their first contribution in https://github.com/rust-random/rand/pull/1551
Full Changelog: https://github.com/rust-random/rand/compare/0.9.0-beta.1...0.9.0-beta.3
0.9.0-beta.0
This is a pre-release. To depend on this version, use rand = "=0.9.0-beta.0" to prevent automatic updates (which can be expected to include breaking changes).
- Policy: "rand is not a crypto library" (#1514)
- Remove fork-protection from
ReseedingRngandThreadRng. Instead, it is recommended to callThreadRng::reseedon fork. (#1379) - Use
zerocopyto replace someunsafecode (#1349, #1393, #1446, #1502)
- Bump the MSRV to 1.63.0 (#1207, #1246, #1269, #1341, #1416, #1536); note that 1.60.0 may work for dependents when using
--ignore-rust-version - Support
stdfeature withoutgetrandomorrand_chacha(#1354) - Improve
thread_rngrelated docs (#1257) - The
serde1feature has been renamedserde(#1477) - The implicit feature
rand_chachahas been removed. This is enabled bystd_rng. (#1473) - Enable feature
small_rngby default (#1455) - Rename feature
getrandomtoos_rng(#1537)
- Add fn
RngCore::read_adapterimplementingstd::io::Read(#1267) - Add trait
CryptoBlockRng: BlockRngCore; maketrait CryptoRng: RngCore(#1273) - Add traits
TryRngCore,TryCryptoRng(#1424, #1499) - Add bounds
CloneandAsRefto associated typeSeedableRng::Seed(#1491)
- Rename fn
rand::thread_rng()torand::rng(), and remove from the prelude (#1506) - Add top-level fns
random_iter,random_range,random_bool,random_ratio,fill(#1488) - Remove fn
rand::random()from the prelude (#1506) - Re-introduce fn
Rng::gen_iterasrandom_iter(#1305, #1500) - Rename fn
Rng::gentorandomto avoid conflict with the newgenkeyword in Rust 2024 (#1438) - Rename fns
Rng::gen_rangetorandom_range,gen_booltorandom_bool,gen_ratiotorandom_ratio(#1505) - Annotate panicking methods with
#[track_caller](#1442, #1447)
- Make
ReseedingRng::reseeddiscard remaining data from the last block generated (#1379) - Change fn
SmallRng::seed_from_u64implementation (#1203) - Fix
<SmallRng as SeedableRng>::Seedsize to 256 bits (#1455) - Remove first parameter (
rng) ofReseedingRng::new(#1533) - Improve SmallRng initialization performance (#1482)
- Optimize fn
sample_floyd, affecting output ofrand::seq::index::sampleandrand::seq::SliceRandom::choose_multiple(#1277) - New, faster algorithms for
IteratorRandom::chooseandchoose_stable(#1268) - New, faster algorithms for
SliceRandom::shuffleandpartial_shuffle(#1272) - Split trait
SliceRandomintoIndexedRandom,IndexedMutRandom,SliceRandom(#1382) - Add
IndexedRandom::choose_multiple_array,index::sample_array(#1453, #1469) - Fix
IndexdRandom::choose_multiple_weightedfor very small seeds and optimize for large input length / low memory (#1530)
- Rename module
rand::distributionstorand::distr(#1470) - Relax
Sizedbound onDistribution<T> for &D(#1278) - Rename distribution
StandardtoStandardUniform(#1526) - Remove impl of
Distribution<Option<T>>forStandardUniform(#1526) - Let distribution
StandardUniformsupport allNonZero*types (#1332) - Fns
{Uniform, UniformSampler}::{new, new_inclusive}return aResult(instead of potentially panicking) (#1229) - Distribution
UniformimplementsTryFrominstead ofFromfor ranges (#1229) - Optimize distribution
Uniform: use Canon's method (single sampling) / Lemire's method (distribution sampling) for faster sampling (breaks value stability; #1287) - Add
UniformUsizeand use to makeUniformforusizeportable (#1487) - Optimize fn
sample_single_inclusivefor floats (+~20% perf) (#1289) - Allow
UniformFloat::newsamples andUniformFloat::sample_singleto yieldhigh(#1462) - Add impl
DistStringfor distributionsSlice<char>andUniform<char>(#1315) - Add fn
Slice::num_choices(#1402) - Fix portability of distribution
Slice(#1469) - Add trait
Weight, allowingWeightedIndexto trap overflow (#1353) - Add fns
weight, weights, total_weightto distributionWeightedIndex(#1420) - Rename enum
WeightedErrortoWeightError, revising variants (#1382) and mark as#[non_exhaustive](#1480) - Add fn
p()for distributionBernoullito access probability (#1481)
- Switch to
std::simd, expand SIMD & docs (#1239) - Optimise SIMD widening multiply (#1247)
- Add
Cargo.lock.msrvfile (#1275) - Docs: enable experimental
--generate-link-to-definitionfeature (#1327) - Better doc of crate features, use
doc_auto_cfg(#1411, #1450)
- Reformat with
rustfmtand enforce (#1448) - Apply Clippy suggestions and enforce (#1448, #1474)
- Move all benchmarks to new
benchescrate (#1329, #1439) and migrate to Criterion (#1490)
- @MichaelOwenDyer made their first contribution in https://github.com/rust-random/rand/pull/1405
- @JustusFluegel made their first contribution in https://github.com/rust-random/rand/pull/1402
- @acceptacross made their first contribution in https://github.com/rust-random/rand/pull/1407
- @waywardmonkeys made their first contribution in https://github.com/rust-random/rand/pull/1472
- @clarfonthey made their first contribution in https://github.com/rust-random/rand/pull/1491
- @arthurprs made their first contribution in https://github.com/rust-random/rand/pull/1482
- @marcpabst made their first contribution in https://github.com/rust-random/rand/pull/1481
- @JamboChen made their first contribution in https://github.com/rust-random/rand/pull/1504
- @oconnor663 made their first contribution in https://github.com/rust-random/rand/pull/1488
- @ComputerDruid made their first contribution in https://github.com/rust-random/rand/pull/1534
Full Changelog: https://github.com/rust-random/rand/compare/0.9.0-alpha.0...0.9.0-beta.0
rand* 0.9.0-alpha.0
This is a pre-release. To depend on this version, use rand = "=0.9.0-alpha.0" to prevent automatic updates (which can be expected to include breaking changes).
- Change
SmallRng::seed_from_u64implementation (#1203) - Replace
SeedableRngimpl forSmallRngwith inherent methods, excludingfn from_seed(#1368)
- Simpler and faster implementation of Floyd's F2 (#1277). This changes some outputs from
rand::seq::index::sampleandrand::seq::SliceRandom::choose_multiple. - New, faster algorithms for
IteratorRandom::chooseandchoose_stable(#1268) - New, faster algorithms for
SliceRandom::shuffleandpartial_shuffle(#1272) - Re-introduce
Rng::gen_iter(#1305) - Split trait
SliceRandomintoIndexedRandom,IndexedMutRandom,SliceRandom(#1382)
{Uniform, UniformSampler}::{new, new_inclusive}return aResult(instead of potentially panicking) (#1229)UniformimplementsTryFrominstead ofFromfor ranges (#1229)Uniformnow uses Canon's method (single sampling) / Lemire's method (distribution sampling) for faster sampling (breaks value stability; #1287)- Relax
Sizedbound onDistribution<T> for &D(#1278) - Explicit impl of
sample_single_inclusive(+~20% perf) (#1289) - Impl
DistStringforSlice<char>andUniform<char>(#1315) - Let
Standardsupport allNonZero*types (#1332) - Add
trait Weight, allowingWeightedIndexto trap overflow (#1353) - Rename
WeightedErrortoWeightError, revising variants (#1382)
- Switch to
std::simd, expand SIMD & docs (#1239) - Optimise SIMD widening multipy (#1247)
- Bump MSRV to 1.60.0 (#1207, #1246, #1269, #1341)
- Improve
thread_rngrelated docs (#1257) - Add
Cargo.lock.msrvfile (#1275) - Docs: enable experimental
--generate-link-to-definitionfeature (#1327) - Use
zerocopyto replace someunsafecode (#1349) - Support
stdfeature withoutgetrandomorrand_chacha(#1354)
rand_distr-0.5.0-alpha.0
This is a pre-release. To depend on this version, use rand_distr = "=0.5.0-alpha.0" to prevent automatic updates (which can be expected to include breaking changes).
- Make distributions comparable with
PartialEq(#1218) - Add
WeightedIndexTree(#1372)
- Target
randversion0.9.0-alpha.0 - Remove unused fields from
Gamma,NormalInverseGaussianandZipfdistributions (#1184) This breaks serialization compatibility with older versions. Dirichletnow usesconstgenerics, which means that its size is required at compile time (#1292)- The
Dirichlet::new_with_sizeconstructor was removed (#1292)
- Fix Knuth's method so
Poissondoesn't return -1.0 for small lambda (#1284) - Fix
Poissondistribution instantiation so it return an error if lambda is infinite (#1291) - Fix Dirichlet sample for small alpha values to avoid NaN samples (#1209)
- Fix infinite loop in
Binomialdistribution (#1325)