From 98645974f47b29559a8b0bdb0ed9cd8cbe0acf2e Mon Sep 17 00:00:00 2001 From: Aaditya Srinivasan Date: Wed, 22 Jul 2026 06:53:56 +0530 Subject: [PATCH 01/11] Use bundled simdjson by default --- r/tools/nixlibs.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/r/tools/nixlibs.R b/r/tools/nixlibs.R index 3c184f6fe23..7c83d08c38c 100644 --- a/r/tools/nixlibs.R +++ b/r/tools/nixlibs.R @@ -589,6 +589,10 @@ build_libarrow <- function(src_dir, dst_dir) { env_var_list <- c(env_var_list, ARROW_DEPENDENCY_SOURCE = "BUNDLED") } + if (Sys.getenv("simdjson_SOURCE") == "") { + env_var_list <- c(env_var_list, simdjson_SOURCE = "BUNDLED") + } + # On macOS, if not otherwise set, let's override Boost_SOURCE to be bundled # Necessary due to #39590 for CRAN if (on_macos) { From 09faaf95f148694173136cc85184d4da6fda3770 Mon Sep 17 00:00:00 2001 From: Aaditya Srinivasan Date: Thu, 23 Jul 2026 08:35:57 +0530 Subject: [PATCH 02/11] Add simdjson alias target --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 7 ++++++- cpp/src/arrow/CMakeLists.txt | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index d251e787a8c..39308b6df3b 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -2816,7 +2816,7 @@ function(build_simdjson) TRUE PARENT_SCOPE) - list(APPEND ARROW_BUNDLED_STATIC_LIBS simdjson::simdjson) + list(APPEND ARROW_BUNDLED_STATIC_LIBS simdjson) set(ARROW_BUNDLED_STATIC_LIBS "${ARROW_BUNDLED_STATIC_LIBS}" PARENT_SCOPE) @@ -2833,6 +2833,11 @@ if(ARROW_WITH_SIMDJSON) ${ARROW_SIMDJSON_REQUIRED_VERSION} IS_RUNTIME_DEPENDENCY FALSE) + if(SIMDJSON_VENDORED) + add_library(arrow::simdjson ALIAS simdjson) + else() + add_library(arrow::simdjson ALIAS simdjson::simdjson) + endif() endif() function(build_rapidjson) diff --git a/cpp/src/arrow/CMakeLists.txt b/cpp/src/arrow/CMakeLists.txt index e792574a183..0b21fec6058 100644 --- a/cpp/src/arrow/CMakeLists.txt +++ b/cpp/src/arrow/CMakeLists.txt @@ -1044,7 +1044,7 @@ if(ARROW_JSON) json/parser.cc json/reader.cc) foreach(ARROW_JSON_TARGET ${ARROW_JSON_TARGETS}) - target_link_libraries(${ARROW_JSON_TARGET} PRIVATE RapidJSON simdjson::simdjson) + target_link_libraries(${ARROW_JSON_TARGET} PRIVATE RapidJSON arrow::simdjson) endforeach() else() set(ARROW_JSON_TARGET_SHARED) From b265939cf297db548e5b7dfbaf49d43b04e7e353 Mon Sep 17 00:00:00 2001 From: Aaditya Srinivasan Date: Thu, 23 Jul 2026 15:48:27 +0530 Subject: [PATCH 03/11] Forward simdjson_SOURCE to CMake --- r/inst/build_arrow_static.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/r/inst/build_arrow_static.sh b/r/inst/build_arrow_static.sh index e7f453bb64e..8c8d9d6b95a 100755 --- a/r/inst/build_arrow_static.sh +++ b/r/inst/build_arrow_static.sh @@ -107,8 +107,9 @@ ${CMAKE_WRAPPER} ${CMAKE} -DARROW_BOOST_USE_SHARED=OFF \ -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON \ -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \ -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} \ - -Dre2_SOURCE=${re2_SOURCE:-BUNDLED} \ -Dabsl_SOURCE=${absl_SOURCE:-BUNDLED} \ + -Dre2_SOURCE=${re2_SOURCE:-BUNDLED} \ + -Dsimdjson_SOURCE=${simdjson_SOURCE:-} \ -Dxsimd_SOURCE=${xsimd_SOURCE:-} \ -Dzstd_SOURCE=${zstd_SOURCE:-} \ ${EXTRA_CMAKE_FLAGS} \ From 9ba3e6471892cb9b1d1fff539db55cd4ed3ceb05 Mon Sep 17 00:00:00 2001 From: Aaditya Srinivasan Date: Fri, 24 Jul 2026 09:23:17 +0530 Subject: [PATCH 04/11] Disable JSON on AppleClang < 22 --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 39308b6df3b..b3108233bf9 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -410,6 +410,13 @@ if(ARROW_AZURE) set(ARROW_WITH_AZURE_SDK ON) endif() +if(ARROW_JSON + AND CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" + AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "22") + message(STATUS "Disabling ARROW_JSON for AppleClang < 22") + set(ARROW_JSON OFF) +endif() + if(ARROW_JSON OR ARROW_FLIGHT_SQL_ODBC) set(ARROW_WITH_RAPIDJSON ON) endif() From 99219994806358d61cf0c3421143f73e269a7338 Mon Sep 17 00:00:00 2001 From: Aaditya Srinivasan Date: Fri, 24 Jul 2026 11:00:51 +0530 Subject: [PATCH 05/11] Add bundled in simdjson --- r/inst/build_arrow_static.sh | 2 +- r/tools/nixlibs.R | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/r/inst/build_arrow_static.sh b/r/inst/build_arrow_static.sh index 8c8d9d6b95a..870e60055c4 100755 --- a/r/inst/build_arrow_static.sh +++ b/r/inst/build_arrow_static.sh @@ -109,7 +109,7 @@ ${CMAKE_WRAPPER} ${CMAKE} -DARROW_BOOST_USE_SHARED=OFF \ -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} \ -Dabsl_SOURCE=${absl_SOURCE:-BUNDLED} \ -Dre2_SOURCE=${re2_SOURCE:-BUNDLED} \ - -Dsimdjson_SOURCE=${simdjson_SOURCE:-} \ + -Dsimdjson_SOURCE=${simdjson_SOURCE:-BUNDLED} \ -Dxsimd_SOURCE=${xsimd_SOURCE:-} \ -Dzstd_SOURCE=${zstd_SOURCE:-} \ ${EXTRA_CMAKE_FLAGS} \ diff --git a/r/tools/nixlibs.R b/r/tools/nixlibs.R index 7c83d08c38c..3c184f6fe23 100644 --- a/r/tools/nixlibs.R +++ b/r/tools/nixlibs.R @@ -589,10 +589,6 @@ build_libarrow <- function(src_dir, dst_dir) { env_var_list <- c(env_var_list, ARROW_DEPENDENCY_SOURCE = "BUNDLED") } - if (Sys.getenv("simdjson_SOURCE") == "") { - env_var_list <- c(env_var_list, simdjson_SOURCE = "BUNDLED") - } - # On macOS, if not otherwise set, let's override Boost_SOURCE to be bundled # Necessary due to #39590 for CRAN if (on_macos) { From 3432892d0e630a50d3d564ab834775ef2ea0aa60 Mon Sep 17 00:00:00 2001 From: Aaditya Srinivasan Date: Fri, 24 Jul 2026 12:43:57 +0530 Subject: [PATCH 06/11] Disable Arrow json for MacOS 11.3 SDK --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index b3108233bf9..15ba158a4e4 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -411,9 +411,9 @@ if(ARROW_AZURE) endif() if(ARROW_JSON - AND CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" - AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "22") - message(STATUS "Disabling ARROW_JSON for AppleClang < 22") + AND CMAKE_OSX_SYSROOT + AND CMAKE_OSX_SYSROOT MATCHES "MacOSX11\\.3\\.sdk$") + message(STATUS "Disabling ARROW_JSON for macOS SDK 11.3") set(ARROW_JSON OFF) endif() From 179a1a27bd7c2c5283071feed29df499c560f926 Mon Sep 17 00:00:00 2001 From: Aaditya Srinivasan Date: Fri, 24 Jul 2026 14:30:42 +0530 Subject: [PATCH 07/11] Disable simdjson concepts for MacOS 11.3 SDK --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 15ba158a4e4..9d5491ddf93 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -413,8 +413,8 @@ endif() if(ARROW_JSON AND CMAKE_OSX_SYSROOT AND CMAKE_OSX_SYSROOT MATCHES "MacOSX11\\.3\\.sdk$") - message(STATUS "Disabling ARROW_JSON for macOS SDK 11.3") - set(ARROW_JSON OFF) + message(STATUS "Disabling simdjson concepts for macOS SDK 11.3") + add_compile_definitions(SIMDJSON_CONCEPT_DISABLED=1) endif() if(ARROW_JSON OR ARROW_FLIGHT_SQL_ODBC) From b785ee46b00bb0ae543abb46bdad8d9732760fb2 Mon Sep 17 00:00:00 2001 From: Aaditya Srinivasan Date: Fri, 24 Jul 2026 16:30:21 +0530 Subject: [PATCH 08/11] Use bundled simdjson for Windows wheel builds --- ci/scripts/python_wheel_windows_build.bat | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/scripts/python_wheel_windows_build.bat b/ci/scripts/python_wheel_windows_build.bat index 3805f750d45..48057c60d4f 100644 --- a/ci/scripts/python_wheel_windows_build.bat +++ b/ci/scripts/python_wheel_windows_build.bat @@ -107,6 +107,7 @@ cmake ^ -DPARQUET_REQUIRE_ENCRYPTION=%PARQUET_REQUIRE_ENCRYPTION% ^ -DVCPKG_MANIFEST_MODE=OFF ^ -DVCPKG_TARGET_TRIPLET=%VCPKG_TARGET_TRIPLET% ^ + -Dsimdjson_SOURCE=BUNDLED ^ -Dxsimd_SOURCE=BUNDLED ^ -G "%CMAKE_GENERATOR%" ^ -A "%CMAKE_PLATFORM%" ^ From 55686e574d3c7af9d4adde9e1514665b08a832da Mon Sep 17 00:00:00 2001 From: Aaditya Srinivasan Date: Fri, 24 Jul 2026 16:37:40 +0530 Subject: [PATCH 09/11] Revert "Use bundled simdjson for Windows wheel builds" This reverts commit b785ee46b00bb0ae543abb46bdad8d9732760fb2. --- ci/scripts/python_wheel_windows_build.bat | 1 - 1 file changed, 1 deletion(-) diff --git a/ci/scripts/python_wheel_windows_build.bat b/ci/scripts/python_wheel_windows_build.bat index 48057c60d4f..3805f750d45 100644 --- a/ci/scripts/python_wheel_windows_build.bat +++ b/ci/scripts/python_wheel_windows_build.bat @@ -107,7 +107,6 @@ cmake ^ -DPARQUET_REQUIRE_ENCRYPTION=%PARQUET_REQUIRE_ENCRYPTION% ^ -DVCPKG_MANIFEST_MODE=OFF ^ -DVCPKG_TARGET_TRIPLET=%VCPKG_TARGET_TRIPLET% ^ - -Dsimdjson_SOURCE=BUNDLED ^ -Dxsimd_SOURCE=BUNDLED ^ -G "%CMAKE_GENERATOR%" ^ -A "%CMAKE_PLATFORM%" ^ From e470cf0ced3c16cdd77f9cd9dd15e010e1e20a9f Mon Sep 17 00:00:00 2001 From: Aaditya Srinivasan Date: Fri, 24 Jul 2026 16:43:03 +0530 Subject: [PATCH 10/11] Update Windows wheel image revision --- .env | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 6051a433873..ca77b9441d7 100644 --- a/.env +++ b/.env @@ -98,5 +98,5 @@ VCPKG="9b965a116838c6cdcd36bca60d1b81b030c8ab8d" # 2026.05.27 (not release, u # ci/docker/python-*-windows-*.dockerfile or the vcpkg config. # This is a workaround for our CI problem that "archery docker build" doesn't # use pulled built images in dev/tasks/python-wheels/github.windows.yml. -PYTHON_WHEEL_WINDOWS_IMAGE_REVISION=2026-07-13 -PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION=2026-07-13 +PYTHON_WHEEL_WINDOWS_IMAGE_REVISION=2026-07-24 +PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION=2026-07-24 From f58e19690cfe7a6a50002c440160d3e18a6eb936 Mon Sep 17 00:00:00 2001 From: Aaditya Srinivasan Date: Fri, 24 Jul 2026 22:01:13 +0530 Subject: [PATCH 11/11] Add comments --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 9d5491ddf93..0ee9af56b35 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -410,6 +410,8 @@ if(ARROW_AZURE) set(ARROW_WITH_AZURE_SDK ON) endif() +# The macOS 11.3 SDK has incomplete C++20 concepts support, which prevents +# simdjson headers from compiling. Disable simdjson concepts for this SDK. if(ARROW_JSON AND CMAKE_OSX_SYSROOT AND CMAKE_OSX_SYSROOT MATCHES "MacOSX11\\.3\\.sdk$")