Skip to content

Commit d00cf26

Browse files
authored
Updated crates to use new versions of Dependencies (#146)
* Dependencies updated and toolchain updated to a modern version of rust nightly. Had to update the vek, sysinfo, and rayon crates, since they wer pulling in code from dependencies that has long since been broken. rustc codegen nvvm is still broken, seems to have a number of issues. Once I got Optix installed and setup, I started having trouble with llvm. The build file seems to need llvm-config, which does not ship with precompiled binaries for llvm. I compiled llvm from source, but am still unable to get the build file to find that correctly. There are also a number of regular errors which will need to resolved slowly. * Dependencies for all crates should be updated to the latest available versions. Going to tackle any breaking changes next * Two bit flag fields in cust/texture.rs did not implement traits required by the structs they were contained in. This has been resolved * I both of these files, the field access was replaced with a getter method, which was previously throwing an error * ArrayObjectFlags needed Debug and PartialEq traits to be derived, was throwing an error before * updating another file * removed once_cell as dependency from rustc_codegen_nvvm. The goal was to replace with the standardized version from the std library, but the dependency does not seem to be in use anyway
1 parent be0d1fb commit d00cf26

File tree

27 files changed

+73
-70
lines changed

27 files changed

+73
-70
lines changed

Cargo.toml

+3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
[workspace]
2+
3+
resolver = "2"
4+
25
members = [
36
"crates/*",
47
"crates/optix/examples/ex*",

crates/blastoff/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ authors = ["Riccardo D'Ambrosio <[email protected]>"]
66
repository = "https://github.com/Rust-GPU/Rust-CUDA"
77

88
[dependencies]
9-
bitflags = "1.3.2"
9+
bitflags = "2.8"
1010
cublas_sys = { version = "0.1", path = "../cublas_sys" }
1111
cust = { version = "0.3", path = "../cust", features = ["impl_num_complex"] }
12-
num-complex = "0.4.0"
13-
half = { version = "1.8.0", optional = true }
12+
num-complex = "0.4.6"
13+
half = { version = "2.4.1", optional = true }
1414

1515
[package.metadata.docs.rs]
1616
rustdoc-args = ["--html-in-header", "katex-header.html", "--cfg", "docsrs"]

crates/cuda_builder/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ readme = "../../README.md"
1111
[dependencies]
1212
rustc_codegen_nvvm = { version = "0.3", path = "../rustc_codegen_nvvm" }
1313
nvvm = { path = "../nvvm", version = "0.1" }
14-
serde = { version = "1.0.130", features = ["derive"] }
15-
serde_json = "1.0.68"
14+
serde = { version = "1.0.217", features = ["derive"] }
15+
serde_json = "1.0.138"
1616
find_cuda_helper = { version = "0.2", path = "../find_cuda_helper" }

crates/cuda_std/Cargo.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ repository = "https://github.com/Rust-GPU/Rust-CUDA"
88
readme = "../../README.md"
99

1010
[dependencies]
11-
vek = { version = "0.15.1", default-features = false, features = ["libm"] }
11+
vek = { version = "0.17.1", default-features = false, features = ["libm"] }
1212
cuda_std_macros = { version = "0.2", path = "../cuda_std_macros" }
13-
half = "1.7.1"
14-
bitflags = "1.3.2"
15-
paste = "1.0.5"
13+
half = "2.4.1"
14+
bitflags = "2.8"
15+
paste = "1.0.15"

crates/cuda_std_macros/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ readme = "../../README.md"
1111
proc-macro = true
1212

1313
[dependencies]
14-
quote = "1.0.9"
15-
syn = { version = "1.0.75", features = ["full"] }
16-
proc-macro2 = "1"
14+
quote = "1.0.38"
15+
syn = { version = "2.0.96", features = ["full"] }
16+
proc-macro2 = "1.0.93"

crates/cuda_std_macros/src/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ pub fn gpu_only(_attr: proc_macro::TokenStream, item: proc_macro::TokenStream) -
156156

157157
let mut cloned_attrs = attrs.clone();
158158
cloned_attrs.retain(|a| {
159-
!a.path
159+
!a.path()
160160
.get_ident()
161161
.map(|x| *x == "nvvm_internal")
162162
.unwrap_or_default()
@@ -199,7 +199,7 @@ pub fn externally_visible(
199199
let mut func = syn::parse_macro_input!(item as syn::ItemFn);
200200

201201
assert!(
202-
func.attrs.iter().any(|a| a.path.is_ident("no_mangle")),
202+
func.attrs.iter().any(|a| a.path().is_ident("no_mangle")),
203203
"#[externally_visible] function should also be #[no_mangle]"
204204
);
205205

crates/cudnn/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ name = "cudnn"
55
version = "0.1.0"
66

77
[dependencies]
8-
bitflags = "1.3.2"
8+
bitflags = "2.8"
99
cust = {version = "0.3.2", path = "../cust"}

crates/cust/Cargo.toml

+5-5
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ readme = "../../README.md"
1515
[dependencies]
1616
cust_core = { path = "../cust_core", version = "0.1.0"}
1717
cust_raw = { path = "../cust_raw", version = "0.11.2"}
18-
bitflags = "1.2"
18+
bitflags = "2.8"
1919
cust_derive = { path = "../cust_derive", version = "0.2" }
20-
glam = { version = "0.20", features=["cuda"], optional = true }
20+
glam = { version = "0.29.2", features=["cuda"], optional = true }
2121
mint = { version = "^0.5", optional = true }
22-
num-complex = { version = "0.4", optional = true }
23-
vek = { version = "0.15.1", optional = true, default-features = false }
24-
bytemuck = { version = "1.7.3", optional = true }
22+
num-complex = { version = "0.4.6", optional = true }
23+
vek = { version = "0.17.1", optional = true, default-features = false }
24+
bytemuck = { version = "1.21", optional = true }
2525

2626
[features]
2727
default= ["bytemuck", "impl_glam", "impl_mint", "impl_vek"]

crates/cust/src/graph.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ impl Graph {
320320
let mut raw = MaybeUninit::uninit();
321321

322322
unsafe {
323-
cuda::cuGraphCreate(raw.as_mut_ptr(), flags.bits).to_result()?;
323+
cuda::cuGraphCreate(raw.as_mut_ptr(), flags.bits()).to_result()?;
324324

325325
Ok(Self {
326326
raw: raw.assume_init(),

crates/cust/src/memory/array.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ impl ArrayFormat {
155155

156156
bitflags::bitflags! {
157157
/// Flags which modify the behavior of CUDA array creation.
158-
#[derive(Default)]
158+
#[derive(Default, Debug, PartialEq)]
159159
pub struct ArrayObjectFlags: c_uint {
160160
/// Enables creation of layered CUDA arrays. When this flag is set, depth specifies the
161161
/// number of layers, not the depth of a 3D array.

crates/cust/src/texture.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ pub enum TextureFilterMode {
4141

4242
bitflags::bitflags! {
4343
/// Flags which modify the behavior of CUDA texture creation.
44-
#[derive(Default)]
44+
#[derive(Default, Debug, Clone, Copy)]
4545
pub struct TextureDescriptorFlags: c_uint {
4646
/// Suppresses the default behavior of having the texture promote data to floating point data in the range
4747
/// of [0, 1]. This flag does nothing if the texture is a texture of `u32`s.
@@ -306,7 +306,7 @@ impl ResourceViewDescriptor {
306306

307307
bitflags::bitflags! {
308308
/// Flags for a resource descriptor. Currently empty.
309-
#[derive(Default)]
309+
#[derive(Default, Debug)]
310310
pub struct ResourceDescriptorFlags: c_uint {
311311
#[doc(hidden)]
312312
const _ZERO = 0;

crates/cust_core/Cargo.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ repository = "https://github.com/Rust-GPU/Rust-CUDA"
88
readme = "../../README.md"
99

1010
[dependencies]
11-
vek = { version = "0.15.1", default-features=false, features=["libm"], optional = true }
12-
glam = { version = "0.20", features=["cuda", "libm"], default-features=false, optional=true }
11+
vek = { version = "0.17.1", default-features=false, features=["libm"], optional = true }
12+
glam = { version = "0.29.2", features=["cuda", "libm"], default-features=false, optional=true }
1313
mint = { version = "^0.5", optional = true }
14-
half = { version = "1.8", optional = true }
15-
num-complex = { version = "0.4", optional = true }
14+
half = { version = "2.4.1", optional = true }
15+
num-complex = { version = "0.4.6", optional = true }
1616
cust_derive = { path = "../cust_derive", version = "0.2" }

crates/cust_derive/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ readme = "../../README.md"
1212
proc-macro = true
1313

1414
[dependencies]
15-
syn = "1.0"
16-
quote = "1.0"
17-
proc-macro2 = "1.0"
15+
syn = "2.0.96"
16+
quote = "1.0.38"
17+
proc-macro2 = "1.0.93"

crates/gpu_rand/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ repository = "https://github.com/Rust-GPU/Rust-CUDA"
99
readme = "../../README.md"
1010

1111
[dependencies]
12-
rand_core = { version = "0.6" }
12+
rand_core = { version = "0.9" }
1313
cust_core = { version = "0.1.0", path = "../cust_core" }
1414

1515
[target.'cfg(target_os = "cuda")'.dependencies]

crates/optix/Cargo.toml

+5-5
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ impl_half=["cust/impl_half", "half"]
1919
cust = { version = "0.3", path = "../cust", features=["impl_mint"] }
2020
cust_raw = { version = "0.11.2", path = "../cust_raw" }
2121
cfg-if = "1.0.0"
22-
bitflags = "1.3.2"
23-
glam = { version = "0.20", features=["cuda", "libm"], default-features=false, optional=true }
24-
half = { version = "^1.8", optional = true }
25-
memoffset = "0.6.4"
26-
mint = "0.5.8"
22+
bitflags = "2.8"
23+
glam = { version = "0.29", features=["cuda", "libm"], default-features=false, optional=true }
24+
half = { version = "2.4.1", optional = true }
25+
memoffset = "0.9.1"
26+
mint = "0.5.9"
2727
embed-doc-image = {version = "0.1.4"}
2828

2929
[build-dependencies]

crates/optix_device/Cargo.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ edition = "2021"
55
authors = ["Anders Langlands <[email protected]>", "Riccardo D'Ambrosio <[email protected]>"]
66

77
[dependencies]
8-
bitflags = "1.3.2"
8+
bitflags = "2.8"
99
cuda_std = { version = "0.2", path = "../cuda_std" }
10-
glam = { version = "0.20", features=["cuda", "libm"], default-features=false }
11-
paste = "1.0.6"
12-
seq-macro = "0.3.0"
10+
glam = { version = "0.29", features=["cuda", "libm"], default-features=false }
11+
paste = "1.0.15"
12+
seq-macro = "0.3.5"
1313
cust_core = { version = "0.1", path = "../cust_core" }

crates/optix_device/src/transform.rs

+1
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ fn matrix_motion_transform_from_handle_ptr(
9696
bitflags::bitflags! {
9797
/// Possible motion flags.
9898
#[repr(transparent)]
99+
#[derive(Debug, Clone, PartialEq)]
99100
pub struct MotionFlags: u32 {
100101
const START_VANISH = 1 << 0;
101102
const END_VANISH = 1 << 1;

crates/optix_device_macros/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ readme = "../../README.md"
1111
proc-macro = true
1212

1313
[dependencies]
14-
quote = "1.0.9"
15-
syn = { version = "1.0.75", features = ["full"] }
16-
proc-macro2 = "1"
14+
quote = "1.0.38"
15+
syn = { version = "2.0.96", features = ["full"] }
16+
proc-macro2 = "1.0.93"

crates/ptx/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ readme = "../../README.md"
1010
[dependencies]
1111
ascii = "1"
1212
# used for lexing/serializing very large enums of instructions/opcodes
13-
strum = { version = "0.21", features = ["derive"] }
14-
smallvec = "1.7"
13+
strum = { version = "0.26.3", features = ["derive"] }
14+
smallvec = "1.13.2"

crates/rustc_codegen_nvvm/Cargo.toml

+6-7
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,13 @@ crate-type = ["dylib"]
1616

1717
[dependencies]
1818
nvvm = { version = "0.1", path = "../nvvm" }
19-
rustc-demangle = "0.1.20"
20-
libc = "0.2.97"
21-
tar = "0.4.35"
22-
once_cell = "1.8.0"
23-
bitflags = "1.3.2"
24-
tracing = { version = "0.1.29", features = ["release_max_level_debug"] }
19+
rustc-demangle = "0.1.24"
20+
libc = "0.2.169"
21+
tar = "0.4.43"
22+
bitflags = "2.8"
23+
tracing = { version = "0.1.41", features = ["release_max_level_debug"] }
2524
find_cuda_helper = { version = "0.2", path = "../find_cuda_helper" }
26-
tracing-subscriber = { version = "0.3.1", features = ["env-filter"] }
25+
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
2726
rustc_codegen_nvvm_macros = { version = "0.1", path = "../rustc_codegen_nvvm_macros" }
2827

2928
[build-dependencies]

crates/rustc_codegen_nvvm_macros/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ readme = "../../README.md"
1111
proc-macro = true
1212

1313
[dependencies]
14-
syn = { version = "1.0.81", features = ["full"] }
15-
quote = "1.0.10"
16-
proc-macro2 = "1.0.32"
14+
syn = { version = "2.0.96", features = ["full"] }
15+
quote = "1.0.38"
16+
proc-macro2 = "1.0.93"

examples/cuda/cpu/add/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ nanorand = "0.6.1"
1212
# the newest semver compatible versions anyway.
1313
log = "=0.4.17"
1414
regex-syntax = "=0.6.28"
15-
regex = "=1.7.1"
15+
regex = "=1.11.1"
1616
thread_local = "=1.1.4"
1717
jobserver = "=0.1.25"
1818
cc = "=1.0.78"
19-
rayon = "=1.5.1"
20-
rayon-core = "=1.10.0"
19+
rayon = "=1.10"
20+
rayon-core = "=1.12.1"
2121
byteorder = "=1.4.0"
2222

2323
[build-dependencies]

examples/cuda/cpu/path_tracer/Cargo.toml

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ version = "0.1.0"
44
edition = "2018"
55

66
[dependencies]
7-
vek = { version = "0.15", features = ["bytemuck", "mint"] }
8-
bytemuck = { version = "1.7.2", features = ["derive"] }
7+
vek = { version = "0.17.1", features = ["bytemuck", "mint"] }
8+
bytemuck = { version = "1.21", features = ["derive"] }
99
cust = { version = "0.3", path = "../../../../crates/cust", features = ["impl_vek"] }
10-
image = "0.23.14"
10+
image = "0.25.5"
1111
path_tracer_gpu = { path = "../../gpu/path_tracer_gpu" }
1212
gpu_rand = { version = "0.1", path = "../../../../crates/gpu_rand" }
1313
optix = { version = "0.1", path = "../../../../crates/optix" }
@@ -16,8 +16,8 @@ glutin = "0.27.0"
1616
imgui = "0.8.0"
1717
imgui-glium-renderer = "0.8.0"
1818
imgui-winit-support = "0.8.0"
19-
rayon = "1.5.1"
20-
sysinfo = "0.20.5"
19+
rayon = "1.10"
20+
sysinfo = "0.33.1"
2121
anyhow = "1.0.53"
2222

2323
[build-dependencies]

examples/cuda/gpu/path_tracer_gpu/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ edition = "2018"
55

66
[dependencies]
77
cuda_std = { version = "0.2", path = "../../../../crates/cuda_std" }
8-
enum_dispatch = "0.3.7"
8+
enum_dispatch = "0.3.13"
99
gpu_rand = { version = "0.1", path = "../../../../crates/gpu_rand" }
1010
cust_core = { path = "../../../../crates/cust_core" }
1111
optix_device = { path = "../../../../crates/optix_device" }

examples/optix/denoiser/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ edition = "2021"
77
optix = { version = "0.1", path = "../../../crates/optix" }
88
structopt = "0.3"
99
cust = { version = "0.3", path = "../../../crates/cust", features = ["impl_vek", "bytemuck"] }
10-
image = "0.23.14"
11-
vek = { version = "0.15.1", features = ["bytemuck"] }
10+
image = "0.25.5"
11+
vek = { version = "0.17.1", features = ["bytemuck"] }

rust-toolchain

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
# to the user in the error, instead of "error: invalid channel name '[toolchain]'".
66

77
[toolchain]
8-
channel = "nightly-2021-12-04"
8+
channel = "nightly-2025-01-23"
99
components = ["rust-src", "rustc-dev", "llvm-tools-preview"]

xtask/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ license = "MIT"
66

77
[dependencies]
88
pico-args = "0.4.2"
9-
rayon = "1.5.1"
10-
regex = "1.3.9"
9+
rayon = "1.10"
10+
regex = "1.11.1"
1111
rustc_codegen_nvvm = { path = "../crates/rustc_codegen_nvvm" }

0 commit comments

Comments
 (0)