Skip to content

GH-49921: [C++] Bump xsimd to 14.2.0#49922

Open
AntoinePrv wants to merge 10 commits into
apache:mainfrom
AntoinePrv:main
Open

GH-49921: [C++] Bump xsimd to 14.2.0#49922
AntoinePrv wants to merge 10 commits into
apache:mainfrom
AntoinePrv:main

Conversation

@AntoinePrv
Copy link
Copy Markdown
Collaborator

@AntoinePrv AntoinePrv commented May 5, 2026

Rationale for this change

What changes are included in this PR?

Bump version and cleanup backports.

Are these changes tested?

Yes, in CI.

Are there any user-facing changes?

No

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

⚠️ GitHub issue #49921 has been automatically assigned in GitHub to PR creator.

@AntoinePrv AntoinePrv changed the title GH-49921: [C++] Bunp xsimd to 14.2.0 GH-49921: [C++] Bump xsimd to 14.2.0 May 5, 2026
@pitrou
Copy link
Copy Markdown
Member

pitrou commented May 6, 2026

@AntoinePrv Can you take a look at the CI failures? They seem related.

@AntoinePrv
Copy link
Copy Markdown
Collaborator Author

Yes, I am still waiting for the Msys2 build of xsimd to happen...

@pitrou
Copy link
Copy Markdown
Member

pitrou commented May 6, 2026

@AntoinePrv
Copy link
Copy Markdown
Collaborator Author

AntoinePrv commented May 6, 2026

Perhaps it's this check that does not work on MSVC?

https://github.com/xtensor-stack/xsimd/blob/80c23624ce008d937da7e845e528e82ce0cbf4e0/include/xsimd/types/xsimd_batch_constant.hpp#L500

Either we could add /Zc:__cplusplus or re-introduce the backport.

@pitrou
Copy link
Copy Markdown
Member

pitrou commented May 6, 2026

I think we should both 1) fix xsimd upstream anyway and 2) pass /Zc:__cplusplus when building Arrow C++.

It seems xsimd should do something like this:

#ifdef _MSVC_LANG
#define XSIMD_CPP_LEVEL _MSVC_LANG
#else
#define XSIMD_CPP_LEVEL __cplusplus
#endif

and then use the XSIMD_CPP_LEVEL macro everywhere instead of __cplusplus.

(but xsimd could also use find-grained feature testing).

@AntoinePrv
Copy link
Copy Markdown
Collaborator Author

AntoinePrv commented May 6, 2026

Already sending a patch, but not sure I want to go through another round of xsimd releases

xtensor-stack/xsimd#1342

@pitrou
Copy link
Copy Markdown
Member

pitrou commented May 6, 2026

Agreed, hence "pass /Zc:__cplusplus when building Arrow C++" as well 😉

@pitrou
Copy link
Copy Markdown
Member

pitrou commented May 6, 2026

Bloody protobuf fails building with /Zc:__cplusplus.
https://github.com/apache/arrow/actions/runs/25429128655/job/74590408553?pr=49922#step:9:2218

@pitrou pitrou added the CI: Extra: C++ Run extra C++ CI label May 6, 2026
@pitrou
Copy link
Copy Markdown
Member

pitrou commented May 6, 2026

Tiny syntax error that needs fixing:

  #17 27.36 Failed to load manifest from directory /arrow/ci/vcpkg
  #17 27.36 /arrow/ci/vcpkg/vcpkg.json:24:26: error: Trailing comma in an object
  #17 27.36   on expression:       "version>=": "14.2",

@AntoinePrv
Copy link
Copy Markdown
Collaborator Author

@pitrou I'm not very proactively working on this until the msys2 xsimd build is live

@github-actions github-actions Bot removed the CI: Extra: C++ Run extra C++ CI label May 6, 2026
@pitrou
Copy link
Copy Markdown
Member

pitrou commented May 6, 2026

@pitrou I'm not very proactively working on this until the msys2 xsimd build is live

@kou Do you know how we can make that happen?

@pitrou pitrou added the CI: Extra: C++ Run extra C++ CI label May 6, 2026
@pitrou
Copy link
Copy Markdown
Member

pitrou commented May 6, 2026

@github-actions crossbow submit -g cpp

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2026

Revision: 89a1f7e

Submitted crossbow builds: ursacomputing/crossbow @ actions-9c434593fe

Task Status
example-cpp-minimal-build-static GitHub Actions
example-cpp-minimal-build-static-system-dependency GitHub Actions
example-cpp-tutorial GitHub Actions
test-build-cpp-fuzz GitHub Actions
test-conda-cpp GitHub Actions
test-conda-cpp-valgrind GitHub Actions
test-debian-13-cpp-amd64 GitHub Actions
test-debian-13-cpp-i386 GitHub Actions
test-debian-experimental-cpp-gcc-15 GitHub Actions
test-fedora-42-cpp GitHub Actions
test-ubuntu-22.04-cpp GitHub Actions
test-ubuntu-22.04-cpp-bundled GitHub Actions
test-ubuntu-22.04-cpp-emscripten GitHub Actions
test-ubuntu-22.04-cpp-no-threading GitHub Actions
test-ubuntu-24.04-cpp GitHub Actions
test-ubuntu-24.04-cpp-bundled-offline GitHub Actions
test-ubuntu-24.04-cpp-gcc-13-bundled GitHub Actions
test-ubuntu-24.04-cpp-gcc-14 GitHub Actions
test-ubuntu-24.04-cpp-minimal-with-formats GitHub Actions
test-ubuntu-24.04-cpp-thread-sanitizer GitHub Actions

@raulcd
Copy link
Copy Markdown
Member

raulcd commented May 6, 2026

Do you know how we can make that happen?

It's just a matter of waiting for their queue to update it:
https://packages.msys2.org/queue

Based on experience when uploading Arrow it takes between 6 and 12 hours. Their CI seems to run several times a day and xsimd is already listed on the queue so it should be available "soon".

@github-actions github-actions Bot removed the CI: Extra: C++ Run extra C++ CI label May 6, 2026
@pitrou pitrou added the CI: Extra: C++ Run extra C++ CI label May 7, 2026
@raulcd
Copy link
Copy Markdown
Member

raulcd commented Jun 2, 2026

@github-actions crossbow submit wheelcp314

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 2, 2026

Revision: 3f697f0

Submitted crossbow builds: ursacomputing/crossbow @ actions-5ec367f3ef

Task Status
wheel-macos-monterey-cp314-cp314-amd64 GitHub Actions
wheel-macos-monterey-cp314-cp314-arm64 GitHub Actions
wheel-macos-monterey-cp314-cp314t-amd64 GitHub Actions
wheel-macos-monterey-cp314-cp314t-arm64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314-amd64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314-arm64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314t-amd64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314t-arm64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314-amd64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314-arm64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314t-amd64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314t-arm64 GitHub Actions
wheel-windows-cp314-cp314-amd64 GitHub Actions
wheel-windows-cp314-cp314t-amd64 GitHub Actions

Comment thread ci/vcpkg/vcpkg.json Outdated
Copilot AI review requested due to automatic review settings June 2, 2026 08:53
@github-actions github-actions Bot added awaiting changes Awaiting changes and removed awaiting change review Awaiting change review labels Jun 2, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

Comment on lines 200 to 207
if constexpr (kIsSse2 && (IntSize != sizeof(uint64_t))) {
constexpr Int kMaxRShift = max_value(std::array{kShifts...});

constexpr auto kLShifts =
xsimd::make_batch_constant<Int, kMaxRShift, Arch>() - shifts;

return xsimd::bitwise_rshift<kMaxRShift>(left_shift(batch, kLShifts));
}

// TODO(xsimd) bug fixed in xsimd 14.1.0
// https://github.com/xtensor-stack/xsimd/pull/1266
#if XSIMD_VERSION_MAJOR < 14 || ((XSIMD_VERSION_MAJOR == 14) && XSIMD_VERSION_MINOR == 0)
if constexpr (IsNeon<Arch>) {
using SInt = std::make_signed_t<Int>;
constexpr auto signed_shifts =
xsimd::batch_constant<SInt, Arch, static_cast<SInt>(kShifts)...>();
return xsimd::kernel::bitwise_rshift(batch, signed_shifts.as_batch(), Arch{});
return xsimd::bitwise_rshift<kMaxRShift>(batch << kLShifts);
}
Comment thread ci/conda_env_cpp.txt
@github-actions github-actions Bot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Jun 2, 2026
@raulcd
Copy link
Copy Markdown
Member

raulcd commented Jun 2, 2026

@github-actions crossbow submit wheelcp314

@github-actions github-actions Bot added awaiting changes Awaiting changes and removed awaiting change review Awaiting change review labels Jun 2, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 2, 2026

Revision: 22ffada

Submitted crossbow builds: ursacomputing/crossbow @ actions-575ab77839

Task Status
wheel-macos-monterey-cp314-cp314-amd64 GitHub Actions
wheel-macos-monterey-cp314-cp314-arm64 GitHub Actions
wheel-macos-monterey-cp314-cp314t-amd64 GitHub Actions
wheel-macos-monterey-cp314-cp314t-arm64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314-amd64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314-arm64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314t-amd64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314t-arm64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314-amd64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314-arm64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314t-amd64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314t-arm64 GitHub Actions
wheel-windows-cp314-cp314-amd64 GitHub Actions
wheel-windows-cp314-cp314t-amd64 GitHub Actions

@raulcd raulcd added CI: Extra: C++ Run extra C++ CI CI: Extra: Package: Linux Run extra Linux Packages CI labels Jun 2, 2026
Copy link
Copy Markdown
Member

@raulcd raulcd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI failures are unrelated. We should merge this now. Thanks @AntoinePrv !

@github-actions github-actions Bot added awaiting merge Awaiting merge and removed awaiting changes Awaiting changes labels Jun 2, 2026
Copy link
Copy Markdown
Member

@raulcd raulcd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, just thought about this, I am happy to merge as is.
Are we planning to bump this requirement later on when we improve the cpu detection feature?

resolve_dependency(xsimd
FORCE_ANY_NEWER_VERSION
TRUE
IS_RUNTIME_DEPENDENCY
FALSE
REQUIRED_VERSION
"14.0.0")

@github-actions github-actions Bot added awaiting changes Awaiting changes and removed awaiting merge Awaiting merge labels Jun 2, 2026
@github-actions github-actions Bot added awaiting change review Awaiting change review and removed CI: Extra: C++ Run extra C++ CI CI: Extra: Package: Linux Run extra Linux Packages CI awaiting changes Awaiting changes labels Jun 2, 2026
@raulcd
Copy link
Copy Markdown
Member

raulcd commented Jun 2, 2026

@github-actions crossbow submit wheelcp314

@raulcd raulcd added the CI: Extra: Package: Linux Run extra Linux Packages CI label Jun 2, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 2, 2026

Revision: 8278222

Submitted crossbow builds: ursacomputing/crossbow @ actions-0d5b743af7

Task Status
wheel-macos-monterey-cp314-cp314-amd64 GitHub Actions
wheel-macos-monterey-cp314-cp314-arm64 GitHub Actions
wheel-macos-monterey-cp314-cp314t-amd64 GitHub Actions
wheel-macos-monterey-cp314-cp314t-arm64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314-amd64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314-arm64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314t-amd64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314t-arm64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314-amd64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314-arm64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314t-amd64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314t-arm64 GitHub Actions
wheel-windows-cp314-cp314-amd64 GitHub Actions
wheel-windows-cp314-cp314t-amd64 GitHub Actions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting change review Awaiting change review CI: Extra: Package: Linux Run extra Linux Packages CI CI: Extra: R Run extra R CI Component: C++

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants