From edaa8b0bd580ce7ae4f2801edf943ec0058ba742 Mon Sep 17 00:00:00 2001 From: Hans Kratz Date: Thu, 20 Nov 2025 17:23:16 +0000 Subject: [PATCH] Benchmarks: update simdjson to latest version + cleanup --- bench/simdjson-utf8/Cargo.toml | 4 ++-- bench/simdjson-utf8/build.rs | 9 ++++----- bench/simdjson-utf8/src/lib.rs | 4 ++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/bench/simdjson-utf8/Cargo.toml b/bench/simdjson-utf8/Cargo.toml index c8ff56d5..b8634d4c 100644 --- a/bench/simdjson-utf8/Cargo.toml +++ b/bench/simdjson-utf8/Cargo.toml @@ -7,5 +7,5 @@ edition = "2018" publish = false [build-dependencies] -bindgen = "0.54.0" -cmake = "0.1.44" +bindgen = "0.72.1" +cmake = "0.1.54" diff --git a/bench/simdjson-utf8/build.rs b/bench/simdjson-utf8/build.rs index 174df6d9..6e17d6a7 100644 --- a/bench/simdjson-utf8/build.rs +++ b/bench/simdjson-utf8/build.rs @@ -23,7 +23,7 @@ fn get_cpp_link_stdlib() -> Option { } fn main() { - let version = "0.9.2"; + let version = "4.2.2"; let download_url = "https://github.com/simdjson/simdjson/archive/refs/tags/v".to_owned() + version + ".tar.gz"; let out_path = PathBuf::from(env::var("OUT_DIR").unwrap()); @@ -54,7 +54,6 @@ fn main() { // .define("CMAKE_C_COMPILER", "clang") // .define("CMAKE_CXX_COMPILER", "gcc") // .define("CMAKE_C_COMPILER", "gcc") - .uses_cxx11() .build(); eprintln!("building done"); @@ -67,14 +66,14 @@ fn main() { eprintln!("bindings"); let bindings = bindgen::Builder::default() - .clang_args(&[ + .clang_args([ "-xc++", "-std=c++17", &("-I".to_owned() + &simdjson_dir + "/include"), ]) .header(&(simdjson_dir.to_owned() + "/include/simdjson/implementation.h")) - .whitelist_function("simdjson::validate_utf8") - .parse_callbacks(Box::new(bindgen::CargoCallbacks)) + .allowlist_function("simdjson::validate_utf8") + .parse_callbacks(Box::new(bindgen::CargoCallbacks::new())) .generate() .expect("unable to generate bindings"); eprintln!("bindings done"); diff --git a/bench/simdjson-utf8/src/lib.rs b/bench/simdjson-utf8/src/lib.rs index 91182afe..3c0f515f 100644 --- a/bench/simdjson-utf8/src/lib.rs +++ b/bench/simdjson-utf8/src/lib.rs @@ -1,11 +1,11 @@ -#![expect(non_camel_case_types)] use std::os::raw::c_char; +use std::os::raw::c_ulong; include!(concat!(env!("OUT_DIR"), "/bindings.rs")); #[inline(always)] // only works if simdjson ist compiled with LLVM and cross-language LTO is enabled pub fn validate(bytes: &[u8]) -> bool { - unsafe { simdjson_validate_utf8(bytes.as_ptr() as *const c_char, bytes.len() as size_t) } + unsafe { simdjson_validate_utf8(bytes.as_ptr() as *const c_char, bytes.len() as c_ulong) } } #[cfg(test)]