mirror of
https://github.com/nushell/nushell.git
synced 2025-05-05 23:42:56 +00:00
Update rand and rand_chacha to 0.9 (#15463)
# Description As description, I think it's worth to move forward to update rand and rand_chacha to 0.9. # User-Facing Changes Hopefully none # Tests + Formatting NaN # After Submitting NaN
This commit is contained in:
parent
6c0b65b570
commit
f39e5b3f37
4
Cargo.lock
generated
4
Cargo.lock
generated
@ -3702,8 +3702,8 @@ dependencies = [
|
|||||||
"print-positions",
|
"print-positions",
|
||||||
"procfs",
|
"procfs",
|
||||||
"quick-xml 0.37.1",
|
"quick-xml 0.37.1",
|
||||||
"rand 0.8.5",
|
"rand 0.9.0",
|
||||||
"rand_chacha 0.3.1",
|
"rand_chacha 0.9.0",
|
||||||
"rayon",
|
"rayon",
|
||||||
"rmp",
|
"rmp",
|
||||||
"roxmltree",
|
"roxmltree",
|
||||||
|
@ -135,9 +135,9 @@ quick-xml = "0.37.0"
|
|||||||
quickcheck = "1.0"
|
quickcheck = "1.0"
|
||||||
quickcheck_macros = "1.0"
|
quickcheck_macros = "1.0"
|
||||||
quote = "1.0"
|
quote = "1.0"
|
||||||
rand = "0.8"
|
rand = "0.9"
|
||||||
getrandom = "0.2" # pick same version that rand requires
|
getrandom = "0.2" # pick same version that rand requires
|
||||||
rand_chacha = "0.3.1"
|
rand_chacha = "0.9"
|
||||||
ratatui = "0.29"
|
ratatui = "0.29"
|
||||||
rayon = "1.10"
|
rayon = "1.10"
|
||||||
reedline = "0.39.0"
|
reedline = "0.39.0"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
use nu_engine::command_prelude::*;
|
use nu_engine::command_prelude::*;
|
||||||
use rand::{prelude::SliceRandom, thread_rng};
|
use rand::{prelude::SliceRandom, rng};
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct Shuffle;
|
pub struct Shuffle;
|
||||||
@ -31,7 +31,7 @@ impl Command for Shuffle {
|
|||||||
) -> Result<PipelineData, ShellError> {
|
) -> Result<PipelineData, ShellError> {
|
||||||
let metadata = input.metadata();
|
let metadata = input.metadata();
|
||||||
let mut values = input.into_iter_strict(call.head)?.collect::<Vec<_>>();
|
let mut values = input.into_iter_strict(call.head)?.collect::<Vec<_>>();
|
||||||
values.shuffle(&mut thread_rng());
|
values.shuffle(&mut rng());
|
||||||
let iter = values.into_iter();
|
let iter = values.into_iter();
|
||||||
Ok(iter.into_pipeline_data_with_metadata(
|
Ok(iter.into_pipeline_data_with_metadata(
|
||||||
call.head,
|
call.head,
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
use nu_engine::command_prelude::*;
|
use nu_engine::command_prelude::*;
|
||||||
|
use rand::random_bool;
|
||||||
use rand::prelude::{thread_rng, Rng};
|
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct RandomBool;
|
pub struct RandomBool;
|
||||||
@ -77,8 +76,7 @@ fn bool(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut rng = thread_rng();
|
let bool_result: bool = random_bool(probability);
|
||||||
let bool_result: bool = rng.gen_bool(probability);
|
|
||||||
|
|
||||||
Ok(PipelineData::Value(Value::bool(bool_result, span), None))
|
Ok(PipelineData::Value(Value::bool(bool_result, span), None))
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use nu_engine::command_prelude::*;
|
use nu_engine::command_prelude::*;
|
||||||
use nu_protocol::Signals;
|
use nu_protocol::Signals;
|
||||||
use rand::{
|
use rand::{
|
||||||
distributions::{Alphanumeric, Standard},
|
distr::{Alphanumeric, StandardUniform},
|
||||||
thread_rng, Rng,
|
rng, Rng,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub(super) enum RandomDistribution {
|
pub(super) enum RandomDistribution {
|
||||||
@ -31,9 +31,9 @@ pub(super) fn random_byte_stream(
|
|||||||
|
|
||||||
let bytes_to_write = std::cmp::min(remaining_bytes, OUTPUT_CHUNK_SIZE);
|
let bytes_to_write = std::cmp::min(remaining_bytes, OUTPUT_CHUNK_SIZE);
|
||||||
|
|
||||||
let rng = thread_rng();
|
let rng = rng();
|
||||||
let byte_iter: Box<dyn Iterator<Item = u8>> = match distribution {
|
let byte_iter: Box<dyn Iterator<Item = u8>> = match distribution {
|
||||||
RandomDistribution::Binary => Box::new(rng.sample_iter(Standard)),
|
RandomDistribution::Binary => Box::new(rng.sample_iter(StandardUniform)),
|
||||||
RandomDistribution::Alphanumeric => Box::new(rng.sample_iter(Alphanumeric)),
|
RandomDistribution::Alphanumeric => Box::new(rng.sample_iter(Alphanumeric)),
|
||||||
};
|
};
|
||||||
out.extend(byte_iter.take(bytes_to_write));
|
out.extend(byte_iter.take(bytes_to_write));
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use nu_engine::command_prelude::*;
|
use nu_engine::command_prelude::*;
|
||||||
use nu_protocol::ListStream;
|
use nu_protocol::ListStream;
|
||||||
use rand::prelude::{thread_rng, Rng};
|
use rand::random_range;
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct RandomDice;
|
pub struct RandomDice;
|
||||||
@ -73,10 +73,7 @@ fn dice(
|
|||||||
let dice: usize = call.get_flag(engine_state, stack, "dice")?.unwrap_or(1);
|
let dice: usize = call.get_flag(engine_state, stack, "dice")?.unwrap_or(1);
|
||||||
let sides: usize = call.get_flag(engine_state, stack, "sides")?.unwrap_or(6);
|
let sides: usize = call.get_flag(engine_state, stack, "sides")?.unwrap_or(6);
|
||||||
|
|
||||||
let iter = (0..dice).map(move |_| {
|
let iter = (0..dice).map(move |_| Value::int(random_range(1..sides + 1) as i64, span));
|
||||||
let mut thread_rng = thread_rng();
|
|
||||||
Value::int(thread_rng.gen_range(1..sides + 1) as i64, span)
|
|
||||||
});
|
|
||||||
|
|
||||||
Ok(ListStream::new(iter, span, engine_state.signals().clone()).into())
|
Ok(ListStream::new(iter, span, engine_state.signals().clone()).into())
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use nu_engine::command_prelude::*;
|
use nu_engine::command_prelude::*;
|
||||||
use nu_protocol::{FloatRange, Range};
|
use nu_protocol::{FloatRange, Range};
|
||||||
use rand::prelude::{thread_rng, Rng};
|
use rand::random_range;
|
||||||
use std::ops::Bound;
|
use std::ops::Bound;
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
@ -71,8 +71,6 @@ fn float(
|
|||||||
let span = call.head;
|
let span = call.head;
|
||||||
let range: Option<Spanned<Range>> = call.opt(engine_state, stack, 0)?;
|
let range: Option<Spanned<Range>> = call.opt(engine_state, stack, 0)?;
|
||||||
|
|
||||||
let mut thread_rng = thread_rng();
|
|
||||||
|
|
||||||
match range {
|
match range {
|
||||||
Some(range) => {
|
Some(range) => {
|
||||||
let range_span = range.span;
|
let range_span = range.span;
|
||||||
@ -90,15 +88,15 @@ fn float(
|
|||||||
}
|
}
|
||||||
|
|
||||||
let value = match range.end() {
|
let value = match range.end() {
|
||||||
Bound::Included(end) => thread_rng.gen_range(range.start()..=end),
|
Bound::Included(end) => random_range(range.start()..=end),
|
||||||
Bound::Excluded(end) => thread_rng.gen_range(range.start()..end),
|
Bound::Excluded(end) => random_range(range.start()..end),
|
||||||
Bound::Unbounded => thread_rng.gen_range(range.start()..f64::INFINITY),
|
Bound::Unbounded => random_range(range.start()..f64::INFINITY),
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(PipelineData::Value(Value::float(value, span), None))
|
Ok(PipelineData::Value(Value::float(value, span), None))
|
||||||
}
|
}
|
||||||
None => Ok(PipelineData::Value(
|
None => Ok(PipelineData::Value(
|
||||||
Value::float(thread_rng.gen_range(0.0..1.0), span),
|
Value::float(random_range(0.0..1.0), span),
|
||||||
None,
|
None,
|
||||||
)),
|
)),
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use nu_engine::command_prelude::*;
|
use nu_engine::command_prelude::*;
|
||||||
use nu_protocol::Range;
|
use nu_protocol::Range;
|
||||||
use rand::prelude::{thread_rng, Rng};
|
use rand::random_range;
|
||||||
use std::ops::Bound;
|
use std::ops::Bound;
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
@ -75,8 +75,6 @@ fn integer(
|
|||||||
let span = call.head;
|
let span = call.head;
|
||||||
let range: Option<Spanned<Range>> = call.opt(engine_state, stack, 0)?;
|
let range: Option<Spanned<Range>> = call.opt(engine_state, stack, 0)?;
|
||||||
|
|
||||||
let mut thread_rng = thread_rng();
|
|
||||||
|
|
||||||
match range {
|
match range {
|
||||||
Some(range) => {
|
Some(range) => {
|
||||||
let range_span = range.span;
|
let range_span = range.span;
|
||||||
@ -94,9 +92,9 @@ fn integer(
|
|||||||
}
|
}
|
||||||
|
|
||||||
let value = match range.end() {
|
let value = match range.end() {
|
||||||
Bound::Included(end) => thread_rng.gen_range(range.start()..=end),
|
Bound::Included(end) => random_range(range.start()..=end),
|
||||||
Bound::Excluded(end) => thread_rng.gen_range(range.start()..end),
|
Bound::Excluded(end) => random_range(range.start()..end),
|
||||||
Bound::Unbounded => thread_rng.gen_range(range.start()..=i64::MAX),
|
Bound::Unbounded => random_range(range.start()..=i64::MAX),
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(PipelineData::Value(Value::int(value, span), None))
|
Ok(PipelineData::Value(Value::int(value, span), None))
|
||||||
@ -110,7 +108,7 @@ fn integer(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
None => Ok(PipelineData::Value(
|
None => Ok(PipelineData::Value(
|
||||||
Value::int(thread_rng.gen_range(0..=i64::MAX), span),
|
Value::int(random_range(0..=i64::MAX), span),
|
||||||
None,
|
None,
|
||||||
)),
|
)),
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
use data_encoding::HEXUPPER;
|
use data_encoding::HEXUPPER;
|
||||||
use rand::prelude::*;
|
use rand::prelude::*;
|
||||||
|
use rand::random_range;
|
||||||
use rand_chacha::ChaCha8Rng;
|
use rand_chacha::ChaCha8Rng;
|
||||||
|
|
||||||
use nu_test_support::nu;
|
use nu_test_support::nu;
|
||||||
@ -16,7 +17,7 @@ fn random_bytes() -> Vec<String> {
|
|||||||
|
|
||||||
(0..NUM)
|
(0..NUM)
|
||||||
.map(|_| {
|
.map(|_| {
|
||||||
let length = rng.gen_range(0..512);
|
let length = random_range(0..512);
|
||||||
let mut bytes = vec![0u8; length];
|
let mut bytes = vec![0u8; length];
|
||||||
rng.fill_bytes(&mut bytes);
|
rng.fill_bytes(&mut bytes);
|
||||||
HEXUPPER.encode(&bytes)
|
HEXUPPER.encode(&bytes)
|
||||||
|
@ -7,8 +7,9 @@ use nu_test_support::{
|
|||||||
playground::{Dirs, Playground},
|
playground::{Dirs, Playground},
|
||||||
};
|
};
|
||||||
use rand::{
|
use rand::{
|
||||||
distributions::{Alphanumeric, DistString, Standard},
|
distr::{Alphanumeric, SampleString, StandardUniform},
|
||||||
prelude::Distribution,
|
prelude::Distribution,
|
||||||
|
random_range,
|
||||||
rngs::StdRng,
|
rngs::StdRng,
|
||||||
Rng, SeedableRng,
|
Rng, SeedableRng,
|
||||||
};
|
};
|
||||||
@ -382,7 +383,7 @@ struct TestRow(
|
|||||||
|
|
||||||
impl TestRow {
|
impl TestRow {
|
||||||
pub fn random() -> Self {
|
pub fn random() -> Self {
|
||||||
StdRng::from_entropy().sample(Standard)
|
StdRng::from_os_rng().sample(StandardUniform)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -433,12 +434,12 @@ impl TryFrom<&rusqlite::Row<'_>> for TestRow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Distribution<TestRow> for Standard {
|
impl Distribution<TestRow> for StandardUniform {
|
||||||
fn sample<R>(&self, rng: &mut R) -> TestRow
|
fn sample<R>(&self, rng: &mut R) -> TestRow
|
||||||
where
|
where
|
||||||
R: rand::Rng + ?Sized,
|
R: rand::Rng + ?Sized,
|
||||||
{
|
{
|
||||||
let dt = DateTime::from_timestamp_millis(rng.gen_range(0..2324252554000))
|
let dt = DateTime::from_timestamp_millis(random_range(0..2324252554000))
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.fixed_offset();
|
.fixed_offset();
|
||||||
|
|
||||||
@ -446,18 +447,18 @@ impl Distribution<TestRow> for Standard {
|
|||||||
|
|
||||||
// limit the size of the numbers to work around
|
// limit the size of the numbers to work around
|
||||||
// https://github.com/nushell/nushell/issues/10612
|
// https://github.com/nushell/nushell/issues/10612
|
||||||
let filesize = rng.gen_range(-1024..=1024);
|
let filesize = random_range(-1024..=1024);
|
||||||
let duration = rng.gen_range(-1024..=1024);
|
let duration = random_range(-1024..=1024);
|
||||||
|
|
||||||
TestRow(
|
TestRow(
|
||||||
rng.gen(),
|
rng.random(),
|
||||||
rng.gen(),
|
rng.random(),
|
||||||
rng.gen(),
|
rng.random(),
|
||||||
filesize,
|
filesize,
|
||||||
duration,
|
duration,
|
||||||
dt,
|
dt,
|
||||||
rand_string,
|
rand_string,
|
||||||
rng.gen::<u64>().to_be_bytes().to_vec(),
|
rng.random::<u64>().to_be_bytes().to_vec(),
|
||||||
rusqlite::types::Value::Null,
|
rusqlite::types::Value::Null,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user