diff --git a/python/Cargo.lock b/python/Cargo.lock index 0a73294833c..ae3aee8dc75 100644 --- a/python/Cargo.lock +++ b/python/Cargo.lock @@ -5083,12 +5083,13 @@ dependencies = [ [[package]] name = "object_store_opendal" -version = "0.54.1" +version = "0.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b88fc0e0c4890c1d99e2b8c519c5db40f7d9b69a0f562ff1ad4967a4c8bbc6" +checksum = "113ab0769e972eee585e57407b98de08bda5354fa28e8ba4d89038d6cb6a8991" dependencies = [ "async-trait", "bytes", + "chrono", "futures", "object_store", "opendal", @@ -5116,20 +5117,20 @@ checksum = "b4ce411919553d3f9fa53a0880544cda985a112117a0444d5ff1e870a893d6ea" [[package]] name = "opendal" -version = "0.54.1" +version = "0.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42afda58fa2cf50914402d132cc1caacff116a85d10c72ab2082bb7c50021754" +checksum = "d075ab8a203a6ab4bc1bce0a4b9fe486a72bf8b939037f4b78d95386384bc80a" dependencies = [ "anyhow", "backon", "base64 0.22.1", "bytes", - "chrono", "crc32c", "futures", "getrandom 0.2.16", "http 1.4.0", "http-body 1.0.1", + "jiff", "log", "md-5", "percent-encoding", @@ -5140,6 +5141,7 @@ dependencies = [ "serde_json", "sha2", "tokio", + "url", "uuid", ] diff --git a/rust/lance-linalg/build.rs b/rust/lance-linalg/build.rs index fee023cf742..9c3646040a5 100644 --- a/rust/lance-linalg/build.rs +++ b/rust/lance-linalg/build.rs @@ -15,8 +15,9 @@ fn main() -> Result<(), String> { println!("cargo:rustc-cfg=feature=\"nightly\""); } - // Let clippy know about our custom cfg attribute + // Let clippy know about our custom cfg attributes println!("cargo::rustc-check-cfg=cfg(kernel_support, values(\"avx512\"))"); + println!("cargo::rustc-check-cfg=cfg(kernel_support_dist_table, values(\"avx512\"))"); println!("cargo:rerun-if-changed=src/simd/f16.c"); println!("cargo:rerun-if-changed=src/simd/dist_table.c"); @@ -61,7 +62,9 @@ fn main() -> Result<(), String> { err ); } else { - println!("cargo:rustc-cfg=kernel_support=\"avx512\""); + // Use a separate cfg flag for dist_table to avoid symbol mismatch + // when f16 build succeeds but dist_table build fails (or vice versa) + println!("cargo:rustc-cfg=kernel_support_dist_table=\"avx512\""); }; // Build a version with AVX // While GCC doesn't have support for _Float16 until GCC 12, clang diff --git a/rust/lance-linalg/src/simd/dist_table.rs b/rust/lance-linalg/src/simd/dist_table.rs index f3708ab3a2c..bce45eaaccb 100644 --- a/rust/lance-linalg/src/simd/dist_table.rs +++ b/rust/lance-linalg/src/simd/dist_table.rs @@ -35,7 +35,7 @@ pub fn sum_4bit_dist_table( debug_assert!(n.is_multiple_of(BATCH_SIZE)); match *SIMD_SUPPORT { - #[cfg(all(kernel_support = "avx512", target_arch = "x86_64"))] + #[cfg(all(kernel_support_dist_table = "avx512", target_arch = "x86_64"))] SimdSupport::Avx512 | SimdSupport::Avx512FP16 => unsafe { for i in (0..n).step_by(BATCH_SIZE) { let codes = &codes[i * code_len..(i + BATCH_SIZE) * code_len]; @@ -162,7 +162,7 @@ unsafe fn sum_dist_table_32bytes_batch_avx2(codes: &[u8], dist_table: &[u8], dis // We implement the AVX512 version in C because AVX512 is not stable yet in Rust, // implement it in Rust once we upgrade rust to 1.89.0. extern "C" { - #[cfg(all(kernel_support = "avx512", target_arch = "x86_64"))] + #[cfg(all(kernel_support_dist_table = "avx512", target_arch = "x86_64"))] pub fn sum_4bit_dist_table_32bytes_batch_avx512( codes: *const u8, code_length: usize,