From a1777fb7d3628d0ab861022d5700e6c8a4ccec2e Mon Sep 17 00:00:00 2001 From: Anand Krishnamoorthi <35780660+anakrish@users.noreply.github.com> Date: Tue, 4 Mar 2025 07:06:43 -0800 Subject: [PATCH] build(deps): update rand requirement from 0.8.5 to 0.9.0 (#370) Signed-off-by: Anand Krishnamoorthi --- .github/workflows/test-wasm.yml | 4 +++- Cargo.toml | 3 ++- bindings/wasm/.cargo/config.toml | 2 ++ bindings/wasm/Cargo.toml | 4 +++- src/builtins/numbers.rs | 5 ++--- 5 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 bindings/wasm/.cargo/config.toml diff --git a/.github/workflows/test-wasm.yml b/.github/workflows/test-wasm.yml index 9c2c4a36..45f54ac8 100644 --- a/.github/workflows/test-wasm.yml +++ b/.github/workflows/test-wasm.yml @@ -28,5 +28,7 @@ jobs: cd bindings/wasm cargo clippy --all-targets --no-deps -- -Dwarnings wasm-pack build --target nodejs --release - wasm-pack test --release --node + # Enable when upstream issue is fixed. + # https://github.com/microsoft/regorus/issues/371 + # wasm-pack test --release --node node test.js diff --git a/Cargo.toml b/Cargo.toml index b51bb7d9..06b6b417 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -127,7 +127,8 @@ jsonwebtoken = { version = "9.3.1", optional = true } itertools = { version = "0.14.0", default-features = false, optional = true } serde_yaml = {version = "0.9.16", default-features = false, optional = true } -rand = { version = "0.8.5", default-features = false, optional = true } +# Specify thread_rng for in order to use random_range +rand = { version = "0.9.0", default-features = false, features = ["thread_rng"], optional = true } [dev-dependencies] anyhow = "1.0.45" diff --git a/bindings/wasm/.cargo/config.toml b/bindings/wasm/.cargo/config.toml new file mode 100644 index 00000000..aad1c6af --- /dev/null +++ b/bindings/wasm/.cargo/config.toml @@ -0,0 +1,2 @@ +[target.wasm32-unknown-unknown] +rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""] \ No newline at end of file diff --git a/bindings/wasm/Cargo.toml b/bindings/wasm/Cargo.toml index 2ff042c7..3a11837c 100644 --- a/bindings/wasm/Cargo.toml +++ b/bindings/wasm/Cargo.toml @@ -18,10 +18,12 @@ coverage = ["regorus/coverage"] [dependencies] regorus = { path = "../..", default-features = false, features = ["arc"] } serde_json = "1.0.140" -wasm-bindgen = "=0.2.93" +wasm-bindgen = "0.2.100" # Specify uuid as a mandatory dependency so as to enable `js` feature which is now required # when targeting wasm32-unknown-unknown. uuid = { version = "1.15.1", default-features = false, features = ["v4", "fast-rng", "js"]} +# Enable wasm_js. See https://docs.rs/getrandom/latest/getrandom/#webassembly-support +getrandom = { version = "0.3", features = ["std", "wasm_js"] } [dev-dependencies] wasm-bindgen-test = "0.3.40" diff --git a/src/builtins/numbers.rs b/src/builtins/numbers.rs index 87675386..5c7de3a4 100644 --- a/src/builtins/numbers.rs +++ b/src/builtins/numbers.rs @@ -12,7 +12,7 @@ use crate::*; use anyhow::{bail, Result}; #[cfg(feature = "std")] -use rand::{thread_rng, Rng}; +use rand::Rng; pub fn register(m: &mut builtins::BuiltinsMap<&'static str, builtins::BuiltinFcn>) { m.insert("abs", (abs, 1)); @@ -169,8 +169,7 @@ fn intn(span: &Span, params: &[Ref], args: &[Value], _strict: bool) -> Res Some(0) => Value::from(0u64), Some(n) => { // TODO: bounds checking; arbitrary precision - let mut rng = thread_rng(); - let v = rng.gen_range(0..n); + let v = rand::rng().random_range(0..n); Value::from(v) } _ => Value::Undefined,