diff --git a/Cargo.toml b/Cargo.toml index 761c03ce1..d8c496831 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -35,5 +35,5 @@ default-features = false web_spin_lock = ["dep:wasm_sync", "rayon-core/web_spin_lock"] [dev-dependencies] -rand = "0.8" -rand_xorshift = "0.3" +rand = "0.9" +rand_xorshift = "0.4" diff --git a/ci/compat-Cargo.lock b/ci/compat-Cargo.lock index c4127f008..e9331a8af 100644 --- a/ci/compat-Cargo.lock +++ b/ci/compat-Cargo.lock @@ -40,10 +40,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom", + "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -62,7 +62,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" dependencies = [ "android-properties", - "bitflags 2.6.0", + "bitflags 2.9.0", "cc", "cesu8", "jni", @@ -144,9 +144,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "block2" @@ -159,27 +159,21 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "bytemuck" -version = "1.19.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" [[package]] name = "bytes" -version = "1.8.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "calloop" @@ -187,7 +181,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "log", "polling", "rustix", @@ -209,9 +203,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.31" +version = "1.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +checksum = "525046617d8376e3db1deffb079e91cef90a89fc3ca5c185bbf8c9ecdd15cd5c" dependencies = [ "jobserver", "libc", @@ -316,9 +310,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -335,9 +329,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "cursor-icon" @@ -392,24 +386,24 @@ checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" [[package]] name = "either" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -469,7 +463,19 @@ checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", ] [[package]] @@ -508,11 +514,11 @@ dependencies = [ [[package]] name = "glutin" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec69412a0bf07ea7607e638b415447857a808846c2b685a43c8aa18bc6d5e499" +checksum = "03642b8b0cce622392deb0ee3e88511f75df2daac806102597905c3ea1974848" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "cfg_aliases", "cgl", "core-foundation", @@ -545,9 +551,9 @@ dependencies = [ [[package]] name = "glutin_egl_sys" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae99fff4d2850dbe6fb8c1fa8e4fead5525bab715beaacfccf3fb994e01c827" +checksum = "4c4680ba6195f424febdc3ba46e7a42a0e58743f2edb115297b86d7f8ecc02d2" dependencies = [ "gl_generator", "windows-sys 0.52.0", @@ -555,9 +561,9 @@ dependencies = [ [[package]] name = "glutin_glx_sys" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2b2d3918e76e18e08796b55eb64e8fe6ec67d5a6b2e2a7e2edce224ad24c63" +checksum = "8a7bb2938045a88b612499fbcba375a77198e01306f52272e692f8c1f3751185" dependencies = [ "gl_generator", "x11-dl", @@ -565,18 +571,18 @@ dependencies = [ [[package]] name = "glutin_wgl_sys" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e1951bbd9434a81aa496fe59ccc2235af3820d27b85f9314e279609211e2c" +checksum = "2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e" dependencies = [ "gl_generator", ] [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "hermit-abi" @@ -586,9 +592,9 @@ checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] name = "indexmap" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", "hashbrown", @@ -618,19 +624,21 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ + "getrandom 0.3.2", "libc", ] [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -648,15 +656,15 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.161" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libloading" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", "windows-targets 0.52.6", @@ -668,22 +676,22 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "libc", - "redox_syscall 0.5.7", + "redox_syscall 0.5.11", ] [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "log" -version = "0.4.22" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "memchr" @@ -711,9 +719,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" dependencies = [ "adler2", ] @@ -724,7 +732,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "jni-sys", "log", "ndk-sys", @@ -864,7 +872,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "block2", "libc", "objc2", @@ -880,7 +888,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "block2", "objc2", "objc2-core-location", @@ -904,7 +912,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "block2", "objc2", "objc2-foundation", @@ -936,9 +944,9 @@ dependencies = [ [[package]] name = "objc2-encode" -version = "4.0.3" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" [[package]] name = "objc2-foundation" @@ -946,7 +954,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "block2", "dispatch", "libc", @@ -971,7 +979,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "block2", "objc2", "objc2-foundation", @@ -983,7 +991,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "block2", "objc2", "objc2-foundation", @@ -1006,7 +1014,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "block2", "objc2", "objc2-cloud-kit", @@ -1038,7 +1046,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "block2", "objc2", "objc2-core-location", @@ -1047,18 +1055,18 @@ dependencies = [ [[package]] name = "object" -version = "0.36.5" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.20.2" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "orbclient" @@ -1086,18 +1094,18 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project" -version = "1.1.7" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.7" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", @@ -1106,21 +1114,21 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pkg-config" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "polling" -version = "3.7.3" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", @@ -1133,65 +1141,71 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy", + "zerocopy 0.8.24", ] [[package]] name = "proc-macro-crate" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] [[package]] name = "quick-xml" -version = "0.36.2" +version = "0.37.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" +checksum = "a4ce8c88de324ff838700f36fb6ab86c96df0e3c4ab6ef3a9b2044465cce1369" dependencies = [ "memchr", ] [[package]] name = "quote" -version = "1.0.37" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "rand" -version = "0.8.5" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ - "libc", "rand_chacha", "rand_core", + "zerocopy 0.8.24", ] [[package]] name = "rand_chacha" -version = "0.3.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", "rand_core", @@ -1199,18 +1213,18 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.4" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom", + "getrandom 0.3.2", ] [[package]] name = "rand_xorshift" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ "rand_core", ] @@ -1277,11 +1291,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", ] [[package]] @@ -1298,9 +1312,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -1321,17 +1335,23 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustix" -version = "0.38.38" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] +[[package]] +name = "rustversion" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" + [[package]] name = "same-file" version = "1.0.6" @@ -1362,18 +1382,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.214" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", @@ -1397,9 +1417,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.2" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" [[package]] name = "smithay-client-toolkit" @@ -1407,7 +1427,7 @@ version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "calloop", "calloop-wayland-source", "cursor-icon", @@ -1449,9 +1469,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "2.0.85" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -1460,18 +1480,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.65" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.65" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", @@ -1511,9 +1531,9 @@ checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ "indexmap", "toml_datetime", @@ -1522,9 +1542,9 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-core", @@ -1532,21 +1552,21 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" [[package]] name = "ttf-parser" -version = "0.25.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5902c5d130972a0000f60860bfbf46f7ca3db5391eddfedd1b8728bd9dc96c0e" +checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-segmentation" @@ -1576,26 +1596,35 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", "syn", @@ -1604,21 +1633,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1626,9 +1656,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", @@ -1639,9 +1669,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm_sync" @@ -1656,9 +1689,9 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" +checksum = "b7208998eaa3870dad37ec8836979581506e0c5c64c20c9e79e9d2a10d6f47bf" dependencies = [ "cc", "downcast-rs", @@ -1670,11 +1703,11 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.7" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66249d3fc69f76fd74c82cc319300faa554e9d865dab1f7cd66cc20db10b280" +checksum = "c2120de3d33638aaef5b9f4472bff75f07c56379cf76ea320bd3a3d65ecaf73f" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "rustix", "wayland-backend", "wayland-scanner", @@ -1686,16 +1719,16 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "cursor-icon", "wayland-backend", ] [[package]] name = "wayland-cursor" -version = "0.31.7" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b08bc3aafdb0035e7fe0fdf17ba0c09c268732707dca4ae098f60cb28c9e4c" +checksum = "a93029cbb6650748881a00e4922b076092a6a08c11e7fbdb923f064b23968c5d" dependencies = [ "rustix", "wayland-client", @@ -1704,11 +1737,11 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.32.5" +version = "0.32.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd0ade57c4e6e9a8952741325c30bf82f4246885dca8bf561898b86d0c1f58e" +checksum = "0781cf46869b37e36928f7b432273c0995aa8aed9552c556fb18754420541efc" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "wayland-backend", "wayland-client", "wayland-scanner", @@ -1716,11 +1749,11 @@ dependencies = [ [[package]] name = "wayland-protocols-plasma" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b31cab548ee68c7eb155517f2212049dc151f7cd7910c2b66abfd31c3ee12bd" +checksum = "7ccaacc76703fefd6763022ac565b590fcade92202492381c95b2edfdf7d46b3" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -1729,11 +1762,11 @@ dependencies = [ [[package]] name = "wayland-protocols-wlr" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "782e12f6cd923c3c316130d56205ebab53f55d6666b7faddfad36cecaeeb4022" +checksum = "248a02e6f595aad796561fa82d25601bd2c8c3b145b1c7453fc8f94c1a58f8b2" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -1742,9 +1775,9 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" +checksum = "896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484" dependencies = [ "proc-macro2", "quick-xml", @@ -1753,9 +1786,9 @@ dependencies = [ [[package]] name = "wayland-sys" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" +checksum = "dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615" dependencies = [ "dlib", "log", @@ -1765,9 +1798,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -2021,14 +2054,14 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winit" -version = "0.30.5" +version = "0.30.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0be9e76a1f1077e04a411f0b989cbd3c93339e1771cb41e71ac4aee95bfd2c67" +checksum = "a809eacf18c8eca8b6635091543f02a5a06ddf3dad846398795460e6e0ae3cc0" dependencies = [ "ahash", "android-activity", "atomic-waker", - "bitflags 2.6.0", + "bitflags 2.9.0", "block2", "bytemuck", "calloop", @@ -2073,13 +2106,22 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.20" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" dependencies = [ "memchr", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags 2.9.0", +] + [[package]] name = "x11-dl" version = "2.21.0" @@ -2124,7 +2166,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "dlib", "log", "once_cell", @@ -2139,9 +2181,9 @@ checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" [[package]] name = "xml-rs" -version = "0.8.22" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26" +checksum = "a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda" [[package]] name = "zerocopy" @@ -2149,8 +2191,16 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" +dependencies = [ + "zerocopy-derive 0.8.24", ] [[package]] @@ -2163,3 +2213,14 @@ dependencies = [ "quote", "syn", ] + +[[package]] +name = "zerocopy-derive" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/rayon-core/Cargo.toml b/rayon-core/Cargo.toml index 09f8bf654..850d1ef7e 100644 --- a/rayon-core/Cargo.toml +++ b/rayon-core/Cargo.toml @@ -30,8 +30,8 @@ wasm_sync = { version = "0.1.0", optional = true } web_spin_lock = ["dep:wasm_sync"] [dev-dependencies] -rand = "0.8" -rand_xorshift = "0.3" +rand = "0.9" +rand_xorshift = "0.4" scoped-tls = "1.0" [target.'cfg(unix)'.dev-dependencies] diff --git a/rayon-core/src/join/test.rs b/rayon-core/src/join/test.rs index 17084db87..03f4ab447 100644 --- a/rayon-core/src/join/test.rs +++ b/rayon-core/src/join/test.rs @@ -2,7 +2,7 @@ use super::*; use crate::ThreadPoolBuilder; -use rand::distributions::Standard; +use rand::distr::StandardUniform; use rand::{Rng, SeedableRng}; use rand_xorshift::XorShiftRng; @@ -38,7 +38,7 @@ fn seeded_rng() -> XorShiftRng { #[test] fn sort() { let rng = seeded_rng(); - let mut data: Vec = rng.sample_iter(&Standard).take(6 * 1024).collect(); + let mut data: Vec = rng.sample_iter(&StandardUniform).take(6 * 1024).collect(); let mut sorted_data = data.clone(); sorted_data.sort(); quick_sort(&mut data); @@ -49,7 +49,7 @@ fn sort() { #[cfg_attr(any(target_os = "emscripten", target_family = "wasm"), ignore)] fn sort_in_pool() { let rng = seeded_rng(); - let mut data: Vec = rng.sample_iter(&Standard).take(12 * 1024).collect(); + let mut data: Vec = rng.sample_iter(&StandardUniform).take(12 * 1024).collect(); let pool = ThreadPoolBuilder::new().build().unwrap(); let mut sorted_data = data.clone(); diff --git a/rayon-core/src/scope/test.rs b/rayon-core/src/scope/test.rs index db1e4227a..4505ba7c4 100644 --- a/rayon-core/src/scope/test.rs +++ b/rayon-core/src/scope/test.rs @@ -119,13 +119,13 @@ fn random_tree1(depth: usize, rng: &mut XorShiftRng) -> Tree { let children = if depth == 0 { vec![] } else { - (0..rng.gen_range(0..4)) // somewhere between 0 and 3 children at each level + (0..rng.random_range(0..4)) // somewhere between 0 and 3 children at each level .map(|_| random_tree1(depth - 1, rng)) .collect() }; Tree { - value: rng.gen_range(0..1_000_000), + value: rng.random_range(0..1_000_000), children, } } diff --git a/rayon-demo/Cargo.toml b/rayon-demo/Cargo.toml index 8ea1ccca5..0b7a4f27b 100644 --- a/rayon-demo/Cargo.toml +++ b/rayon-demo/Cargo.toml @@ -13,8 +13,8 @@ docopt = "1" fixedbitset = "0.5" glium = "0.36" once_cell = "1.17.1" -rand = "0.8" -rand_xorshift = "0.3" +rand = "0.9" +rand_xorshift = "0.4" regex = "1" winit = "0.30" diff --git a/rayon-demo/src/find/mod.rs b/rayon-demo/src/find/mod.rs index b3a07e4b2..42aba0dfb 100644 --- a/rayon-demo/src/find/mod.rs +++ b/rayon-demo/src/find/mod.rs @@ -4,14 +4,14 @@ macro_rules! make_tests { ($n:expr, $m:ident) => { mod $m { use once_cell::sync::Lazy; - use rand::distributions::Standard; + use rand::distr::StandardUniform; use rand::Rng; use rayon::prelude::*; use test::Bencher; static HAYSTACK: Lazy> = Lazy::new(|| { let rng = crate::seeded_rng(); - rng.sample_iter(&Standard) + rng.sample_iter(&StandardUniform) .map(|x| { let mut result: [u32; $n] = [0; $n]; result[0] = x; diff --git a/rayon-demo/src/life/mod.rs b/rayon-demo/src/life/mod.rs index de74c98ea..645ee5dcf 100644 --- a/rayon-demo/src/life/mod.rs +++ b/rayon-demo/src/life/mod.rs @@ -16,8 +16,8 @@ Options: "; use crate::cpu_time::{self, CpuMeasure}; -use rand::distributions::Standard; -use rand::{thread_rng, Rng}; +use rand::distr::StandardUniform; +use rand::{rng, Rng}; use std::iter::repeat; use std::sync::Arc; use std::thread; @@ -90,8 +90,8 @@ impl Board { } pub fn random(&self) -> Board { - let new_brd = thread_rng() - .sample_iter(&Standard) + let new_brd = rng() + .sample_iter(&StandardUniform) .take(self.len()) .collect(); diff --git a/rayon-demo/src/mergesort/mod.rs b/rayon-demo/src/mergesort/mod.rs index 02a82c8a0..adf3f17c3 100644 --- a/rayon-demo/src/mergesort/mod.rs +++ b/rayon-demo/src/mergesort/mod.rs @@ -1,4 +1,4 @@ -use rand::distributions::Standard; +use rand::distr::StandardUniform; use rand::Rng; const USAGE: &str = " @@ -236,7 +236,7 @@ pub fn is_sorted(v: &mut [T]) -> bool { fn default_vec(n: usize) -> Vec { let rng = crate::seeded_rng(); - rng.sample_iter(&Standard).take(n).collect() + rng.sample_iter(&StandardUniform).take(n).collect() } fn timed_sort(n: usize, f: F, name: &str) -> u64 { diff --git a/rayon-demo/src/nbody/nbody.rs b/rayon-demo/src/nbody/nbody.rs index c6e5f3c17..e33e066b4 100644 --- a/rayon-demo/src/nbody/nbody.rs +++ b/rayon-demo/src/nbody/nbody.rs @@ -52,9 +52,9 @@ impl NBodyBenchmark { pub fn new(num_bodies: usize, rng: &mut R) -> NBodyBenchmark { let bodies0: Vec<_> = (0..num_bodies) .map(|_| { - let r = rng.gen_range(0.0..10_000.0); - let theta = rng.gen_range(0.0..PI); - let phi = rng.gen_range(0.0..2.0 * PI); + let r = rng.random_range(0.0..10_000.0); + let theta = rng.random_range(0.0..PI); + let phi = rng.random_range(0.0..2.0 * PI); let position = Point3 { x: r * theta.sin() * phi.cos(), y: r * theta.sin() * phi.sin(), @@ -62,15 +62,15 @@ impl NBodyBenchmark { }; let velocity = Vector3 { - x: rng.gen_range(-0.5..0.5) * INITIAL_VELOCITY, - y: rng.gen_range(-0.5..0.5) * INITIAL_VELOCITY, - z: rng.gen::() * INITIAL_VELOCITY + 10.0, + x: rng.random_range(-0.5..0.5) * INITIAL_VELOCITY, + y: rng.random_range(-0.5..0.5) * INITIAL_VELOCITY, + z: rng.random::() * INITIAL_VELOCITY + 10.0, }; let velocity2 = Vector3 { - x: rng.gen_range(-0.5..0.5) * INITIAL_VELOCITY, - y: rng.gen_range(-0.5..0.5) * INITIAL_VELOCITY, - z: rng.gen::() * INITIAL_VELOCITY, + x: rng.random_range(-0.5..0.5) * INITIAL_VELOCITY, + y: rng.random_range(-0.5..0.5) * INITIAL_VELOCITY, + z: rng.random::() * INITIAL_VELOCITY, }; Body { diff --git a/rayon-demo/src/nbody/visualize.rs b/rayon-demo/src/nbody/visualize.rs index 7583d108f..59a8f8740 100644 --- a/rayon-demo/src/nbody/visualize.rs +++ b/rayon-demo/src/nbody/visualize.rs @@ -191,7 +191,7 @@ pub fn visualize_benchmarks(num_bodies: usize, mode: ExecutionMode) { .with_title("nbody demo") .build(&event_loop); - let benchmark = NBodyBenchmark::new(num_bodies, &mut rand::thread_rng()); + let benchmark = NBodyBenchmark::new(num_bodies, &mut rand::rng()); let vertex_shader_src = r#" #version 100 @@ -231,9 +231,9 @@ pub fn visualize_benchmarks(num_bodies: usize, mode: ExecutionMode) { let instances: Vec<_> = (0..num_bodies) .map(|_| Instance { color: [ - rng.gen_range(0.5..1.0), - rng.gen_range(0.5..1.0), - rng.gen_range(0.5..1.0), + rng.random_range(0.5..1.0), + rng.random_range(0.5..1.0), + rng.random_range(0.5..1.0), ], world_position: [0.0, 0.0, 0.0], }) diff --git a/rayon-demo/src/quicksort/mod.rs b/rayon-demo/src/quicksort/mod.rs index b0ced3fa0..bc042f209 100644 --- a/rayon-demo/src/quicksort/mod.rs +++ b/rayon-demo/src/quicksort/mod.rs @@ -23,7 +23,7 @@ pub struct Args { } use docopt::Docopt; -use rand::distributions::Standard; +use rand::distr::StandardUniform; use rand::Rng; use std::time::Instant; @@ -108,7 +108,7 @@ pub fn is_sorted(v: &[T]) -> bool { fn default_vec(n: usize) -> Vec { let rng = crate::seeded_rng(); - rng.sample_iter(&Standard).take(n).collect() + rng.sample_iter(&StandardUniform).take(n).collect() } fn timed_sort(n: usize, f: F, name: &str) -> u64 { diff --git a/rayon-demo/src/sort.rs b/rayon-demo/src/sort.rs index 57a614aa3..dccb29e9d 100644 --- a/rayon-demo/src/sort.rs +++ b/rayon-demo/src/sort.rs @@ -1,4 +1,4 @@ -use rand::distributions::{Alphanumeric, Standard, Uniform}; +use rand::distr::{Alphanumeric, StandardUniform, Uniform}; use rand::Rng; use rayon::prelude::*; use std::mem; @@ -16,12 +16,12 @@ fn gen_descending(len: usize) -> Vec { fn gen_random(len: usize) -> Vec { let rng = crate::seeded_rng(); - rng.sample_iter(&Standard).take(len).collect() + rng.sample_iter(&StandardUniform).take(len).collect() } fn gen_mostly_ascending(len: usize) -> Vec { let mut rng = crate::seeded_rng(); - let len_dist = Uniform::new(0, len); + let len_dist = Uniform::new(0, len).unwrap(); let mut v = gen_ascending(len); for _ in (0usize..).take_while(|x| x * x <= len) { let x = rng.sample(len_dist); @@ -33,7 +33,7 @@ fn gen_mostly_ascending(len: usize) -> Vec { fn gen_mostly_descending(len: usize) -> Vec { let mut rng = crate::seeded_rng(); - let len_dist = Uniform::new(0, len); + let len_dist = Uniform::new(0, len).unwrap(); let mut v = gen_descending(len); for _ in (0usize..).take_while(|x| x * x <= len) { let x = rng.sample(len_dist); @@ -46,7 +46,7 @@ fn gen_mostly_descending(len: usize) -> Vec { fn gen_strings(len: usize) -> Vec { let mut rng = crate::seeded_rng(); let rng = &mut rng; - let len_dist = Uniform::new(1, 21); + let len_dist = Uniform::new(1, 21).unwrap(); let mut v = vec![]; for _ in 0..len { let n = rng.sample(len_dist); @@ -62,7 +62,7 @@ fn gen_strings(len: usize) -> Vec { fn gen_big_random(len: usize) -> Vec<[u64; 16]> { let rng = crate::seeded_rng(); - rng.sample_iter(&Standard) + rng.sample_iter(&StandardUniform) .map(|x| [x; 16]) .take(len) .collect() diff --git a/src/iter/mod.rs b/src/iter/mod.rs index c7e3a0d99..116931f52 100644 --- a/src/iter/mod.rs +++ b/src/iter/mod.rs @@ -434,7 +434,7 @@ pub trait ParallelIterator: Sized + Send { /// /// v.par_chunks_mut(1000) /// .for_each_init( - /// || rand::thread_rng(), + /// || rand::rng(), /// |rng, chunk| rng.fill(chunk), /// ); /// @@ -535,15 +535,15 @@ pub trait ParallelIterator: Sized + Send { /// # Examples /// /// ``` - /// use rand::Rng; + /// use rand::{Rng, TryRngCore}; /// use rayon::prelude::*; /// /// let mut v = vec![0u8; 1_000_000]; /// /// v.par_chunks_mut(1000) /// .try_for_each_init( - /// || rand::thread_rng(), - /// |rng, chunk| rng.try_fill(chunk), + /// || rand::rng(), + /// |rng, chunk| rng.try_fill_bytes(chunk), /// ) /// .expect("expected no rand errors"); /// @@ -660,8 +660,8 @@ pub trait ParallelIterator: Sized + Send { /// let a: Vec<_> = (1i32..1_000_000) /// .into_par_iter() /// .map_init( - /// || rand::thread_rng(), // get the thread-local RNG - /// |rng, x| if rng.gen() { // randomly negate items + /// || rand::rng(), // get the thread-local RNG + /// |rng, x| if rng.random() { // randomly negate items /// -x /// } else { /// x diff --git a/src/iter/test.rs b/src/iter/test.rs index 08fd57a4c..fde66a4e6 100644 --- a/src/iter/test.rs +++ b/src/iter/test.rs @@ -4,7 +4,7 @@ use super::*; use crate::prelude::*; use rayon_core::*; -use rand::distributions::Standard; +use rand::distr::StandardUniform; use rand::{Rng, SeedableRng}; use rand_xorshift::XorShiftRng; use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet}; @@ -421,8 +421,8 @@ fn check_cmp_to_seq() { fn check_cmp_rng_to_seq() { let mut rng = seeded_rng(); let rng = &mut rng; - let a: Vec = rng.sample_iter(&Standard).take(1024).collect(); - let b: Vec = rng.sample_iter(&Standard).take(1024).collect(); + let a: Vec = rng.sample_iter(&StandardUniform).take(1024).collect(); + let b: Vec = rng.sample_iter(&StandardUniform).take(1024).collect(); for i in 0..a.len() { let par_result = a[i..].par_iter().cmp(b[i..].par_iter()); let seq_result = a[i..].iter().cmp(b[i..].iter()); @@ -578,8 +578,8 @@ fn check_partial_cmp_to_seq() { fn check_partial_cmp_rng_to_seq() { let mut rng = seeded_rng(); let rng = &mut rng; - let a: Vec = rng.sample_iter(&Standard).take(1024).collect(); - let b: Vec = rng.sample_iter(&Standard).take(1024).collect(); + let a: Vec = rng.sample_iter(&StandardUniform).take(1024).collect(); + let b: Vec = rng.sample_iter(&StandardUniform).take(1024).collect(); for i in 0..a.len() { let par_result = a[i..].par_iter().partial_cmp(b[i..].par_iter()); let seq_result = a[i..].iter().partial_cmp(b[i..].iter()); @@ -1602,7 +1602,7 @@ fn par_iter_unindexed_flat_map() { #[test] fn min_max() { let rng = seeded_rng(); - let a: Vec = rng.sample_iter(&Standard).take(1024).collect(); + let a: Vec = rng.sample_iter(&StandardUniform).take(1024).collect(); for i in 0..=a.len() { let slice = &a[..i]; assert_eq!(slice.par_iter().min(), slice.iter().min()); @@ -1614,7 +1614,7 @@ fn min_max() { fn min_max_by() { let rng = seeded_rng(); // Make sure there are duplicate keys, for testing sort stability - let r: Vec = rng.sample_iter(&Standard).take(512).collect(); + let r: Vec = rng.sample_iter(&StandardUniform).take(512).collect(); let a: Vec<(i32, u16)> = r.iter().chain(&r).cloned().zip(0..).collect(); for i in 0..=a.len() { let slice = &a[..i]; @@ -1633,7 +1633,7 @@ fn min_max_by() { fn min_max_by_key() { let rng = seeded_rng(); // Make sure there are duplicate keys, for testing sort stability - let r: Vec = rng.sample_iter(&Standard).take(512).collect(); + let r: Vec = rng.sample_iter(&StandardUniform).take(512).collect(); let a: Vec<(i32, u16)> = r.iter().chain(&r).cloned().zip(0..).collect(); for i in 0..=a.len() { let slice = &a[..i]; diff --git a/src/slice/sort.rs b/src/slice/sort.rs index 88fb9ff8a..4d14d9b6c 100644 --- a/src/slice/sort.rs +++ b/src/slice/sort.rs @@ -1611,16 +1611,16 @@ where mod tests { use super::heapsort; use super::split_for_merge; - use rand::distributions::Uniform; - use rand::{thread_rng, Rng}; + use rand::distr::Uniform; + use rand::{rng, Rng}; #[test] fn test_heapsort() { - let rng = &mut thread_rng(); + let rng = &mut rng(); for len in (0..25).chain(500..501) { for &modulus in &[5, 10, 100] { - let dist = Uniform::new(0, modulus); + let dist = Uniform::new(0, modulus).unwrap(); for _ in 0..100 { let v: Vec = rng.sample_iter(&dist).take(len).collect(); @@ -1640,7 +1640,7 @@ mod tests { // Sort using a completely random comparison function. // This will reorder the elements *somehow*, but won't panic. let mut v: Vec<_> = (0..100).collect(); - heapsort(&mut v, |_, _| thread_rng().gen()); + heapsort(&mut v, |_, _| rand::rng().random()); heapsort(&mut v, |a, b| a < b); for (i, &entry) in v.iter().enumerate() { @@ -1662,19 +1662,19 @@ mod tests { check(&[1, 2, 2, 2, 2, 3], &[]); check(&[], &[1, 2, 2, 2, 2, 3]); - let rng = &mut thread_rng(); + let rng = &mut rng(); for _ in 0..100 { - let limit: u32 = rng.gen_range(1..21); - let left_len: usize = rng.gen_range(0..20); - let right_len: usize = rng.gen_range(0..20); + let limit: u32 = rng.random_range(1..21); + let left_len: usize = rng.random_range(0..20); + let right_len: usize = rng.random_range(0..20); let mut left = rng - .sample_iter(&Uniform::new(0, limit)) + .sample_iter(&Uniform::new(0, limit).unwrap()) .take(left_len) .collect::>(); let mut right = rng - .sample_iter(&Uniform::new(0, limit)) + .sample_iter(&Uniform::new(0, limit).unwrap()) .take(right_len) .collect::>(); diff --git a/src/slice/test.rs b/src/slice/test.rs index 2538a86b9..627df8f96 100644 --- a/src/slice/test.rs +++ b/src/slice/test.rs @@ -1,9 +1,9 @@ #![cfg(test)] use crate::prelude::*; -use rand::distributions::Uniform; -use rand::seq::SliceRandom; -use rand::{thread_rng, Rng}; +use rand::distr::Uniform; +use rand::seq::IndexedRandom; +use rand::{rng, Rng}; use std::cmp::Ordering::{Equal, Greater, Less}; use std::sync::atomic::{AtomicUsize, Ordering::Relaxed}; @@ -11,11 +11,11 @@ macro_rules! sort { ($f:ident, $name:ident) => { #[test] fn $name() { - let rng = &mut thread_rng(); + let rng = &mut rng(); for len in (0..25).chain(500..501) { for &modulus in &[5, 10, 100] { - let dist = Uniform::new(0, modulus); + let dist = Uniform::new(0, modulus).unwrap(); for _ in 0..100 { let v: Vec = rng.sample_iter(&dist).take(len).collect(); @@ -35,7 +35,7 @@ macro_rules! sort { // Test sort with many duplicates. for &len in &[1_000, 10_000, 100_000] { for &modulus in &[5, 10, 100, 10_000] { - let dist = Uniform::new(0, modulus); + let dist = Uniform::new(0, modulus).unwrap(); let mut v: Vec = rng.sample_iter(&dist).take(len).collect(); v.$f(|a, b| a.cmp(b)); @@ -45,9 +45,9 @@ macro_rules! sort { // Test sort with many pre-sorted runs. for &len in &[1_000, 10_000, 100_000] { - let len_dist = Uniform::new(0, len); + let len_dist = Uniform::new(0, len).unwrap(); for &modulus in &[5, 10, 1000, 50_000] { - let dist = Uniform::new(0, modulus); + let dist = Uniform::new(0, modulus).unwrap(); let mut v: Vec = rng.sample_iter(&dist).take(len).collect(); v.sort(); @@ -71,7 +71,7 @@ macro_rules! sort { // Sort using a completely random comparison function. // This will reorder the elements *somehow*, but won't panic. let mut v: Vec<_> = (0..100).collect(); - v.$f(|_, _| *[Less, Equal, Greater].choose(&mut thread_rng()).unwrap()); + v.$f(|_, _| *[Less, Equal, Greater].choose(&mut rand::rng()).unwrap()); v.$f(|a, b| a.cmp(b)); for i in 0..v.len() { assert_eq!(v[i], i); @@ -103,10 +103,10 @@ fn test_par_sort_stability() { // the second item represents which occurrence of that // number this element is, i.e. the second elements // will occur in sorted order. - let mut rng = thread_rng(); + let mut rng = rng(); let mut v: Vec<_> = (0..len) .map(|_| { - let n: usize = rng.gen_range(0..10); + let n: usize = rng.random_range(0..10); counts[n] += 1; (n, counts[n]) }) diff --git a/tests/sort-panic-safe.rs b/tests/sort-panic-safe.rs index 5ffe2bb76..0bee5ac85 100644 --- a/tests/sort-panic-safe.rs +++ b/tests/sort-panic-safe.rs @@ -1,5 +1,5 @@ -use rand::distributions::Uniform; -use rand::{thread_rng, Rng}; +use rand::distr::Uniform; +use rand::{rng, Rng}; use rayon::prelude::*; use std::cell::Cell; use std::cmp::Ordering; @@ -131,13 +131,13 @@ fn sort_panic_safe() { })); for &len in &[1, 2, 3, 4, 5, 10, 20, 100, 500, 5_000, 20_000] { - let len_dist = Uniform::new(0, len); + let len_dist = Uniform::new(0, len).unwrap(); for &modulus in &[5, 30, 1_000, 20_000] { for &has_runs in &[false, true] { - let mut rng = thread_rng(); + let mut rng = rng(); let mut input = (0..len) .map(|id| DropCounter { - x: rng.gen_range(0..modulus), + x: rng.random_range(0..modulus), id, version: Cell::new(0), }) diff --git a/tests/str.rs b/tests/str.rs index 2c7e549ab..aef4ea115 100644 --- a/tests/str.rs +++ b/tests/str.rs @@ -1,4 +1,4 @@ -use rand::distributions::Standard; +use rand::distr::StandardUniform; use rand::{Rng, SeedableRng}; use rand_xorshift::XorShiftRng; use rayon::prelude::*; @@ -12,7 +12,10 @@ fn seeded_rng() -> XorShiftRng { #[test] pub fn execute_strings() { let rng = seeded_rng(); - let s: String = rng.sample_iter::(&Standard).take(1024).collect(); + let s: String = rng + .sample_iter::(&StandardUniform) + .take(1024) + .collect(); let par_chars: String = s.par_chars().collect(); assert_eq!(s, par_chars);