Skip to content

Conversation

@Demonese
Copy link

@Demonese Demonese commented Apr 20, 2025

Currently, pcg-cpp lacks Windows ARM64 support.

This modification has been tested on github actions.

See test result: https://github.com/Legacy-LuaSTG-Engine/windows-arm64-problems/actions/runs/14560185357

pitrou pushed a commit to apache/arrow that referenced this pull request Oct 15, 2025
…nsics (#47779)

### Rationale for this change

This change enables building Arrow C++ for Windows ARM64 with MSVC when setting `ARROW_SIMD_LEVEL` to `NONE`. This is useful to be able to build Arrow with `vcpkg` and use it as a dependency.

Setting `ARROW_SIMD_LEVEL` to `NONE` is done to disable the use of `xsimd`, which does not yet support msvc arm64 intrinsics, and is non-trivial to fix.

### What changes are included in this PR?

A patch to the vendored `pcg` library, based on imneme/pcg-cpp#99. The upstream pcg library has not been updated in the past 3 years, so this may never get merged.

### Are these changes tested?

Yes, the changes have been tested in microsoft/vcpkg#47750 (the same patch for `vcpkg`, which this change would alleviate) and in https://github.com/jgiannuzzi/ParquetSharp/actions/runs/18354286294 (a full run of the ParquetSharp CI, using this patch to build Arrow with `vcpkg`).

### Are there any user-facing changes?

Not really, unless you consider adding the ability to build Arrow on Windows ARM64 user-facing?
* GitHub Issue: #47784

Authored-by: Jonathan Giannuzzi <jonathan@giannuzzi.me>
Signed-off-by: Antoine Pitrou <antoine@python.org>
zanmato1984 pushed a commit to zanmato1984/arrow that referenced this pull request Nov 5, 2025
… intrinsics (apache#47779)

### Rationale for this change

This change enables building Arrow C++ for Windows ARM64 with MSVC when setting `ARROW_SIMD_LEVEL` to `NONE`. This is useful to be able to build Arrow with `vcpkg` and use it as a dependency.

Setting `ARROW_SIMD_LEVEL` to `NONE` is done to disable the use of `xsimd`, which does not yet support msvc arm64 intrinsics, and is non-trivial to fix.

### What changes are included in this PR?

A patch to the vendored `pcg` library, based on imneme/pcg-cpp#99. The upstream pcg library has not been updated in the past 3 years, so this may never get merged.

### Are these changes tested?

Yes, the changes have been tested in microsoft/vcpkg#47750 (the same patch for `vcpkg`, which this change would alleviate) and in https://github.com/jgiannuzzi/ParquetSharp/actions/runs/18354286294 (a full run of the ParquetSharp CI, using this patch to build Arrow with `vcpkg`).

### Are there any user-facing changes?

Not really, unless you consider adding the ability to build Arrow on Windows ARM64 user-facing?
* GitHub Issue: apache#47784

Authored-by: Jonathan Giannuzzi <jonathan@giannuzzi.me>
Signed-off-by: Antoine Pitrou <antoine@python.org>
@Demonese
Copy link
Author

Demonese commented Nov 6, 2025

Hello @imneme ,

I'm very sorry to disturb you. I sincerely hope this pull request can be merged. It has already been validated by Arrow and requires only minimal changes. Thank you for your pcg library—it's fantastic!

@Demonese
Copy link
Author

Demonese commented Nov 6, 2025

It has passed tests on multiple platforms (including MSVC ARM64): https://github.com/Legacy-LuaSTG-Engine/pcg-cpp/actions/runs/19141647833

image

@lgray
Copy link

lgray commented Nov 25, 2025

Hi - I would also like this to be merged, we'd like to expand our platform support in correctionlib and we heavily use pcg-cpp, it's great!

@Demonese
Copy link
Author

Hi - I would also like this to be merged, we'd like to expand our platform support in correctionlib and we heavily use pcg-cpp, it's great!

This repository has been inactive for years, so I think the best solution is to fix the code using a patch.

@JkarVN
Copy link

JkarVN commented Dec 24, 2025

Merged into Total-Random/pcg-cpp

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants