GH-46827: [C++] Update Meson Configuration for compute shared lib - #46839

Merged
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2
Jun 25, 2025
Merged

GH-46827: [C++] Update Meson Configuration for compute shared lib#46839
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2

Conversation

@WillAyd

@WillAydWillAyd commented Jun 17, 2025

Copy link
Copy Markdown
Contributor

Rationale for this change

The major refactor of the compute sources in #46261 addressed updates to the CMake configuration but not Meson. This is a follow up to get the Meson builds working again

What changes are included in this PR?

Meson configuration files are updated to reflect new source structure. gtest has also been bumped to a new WrapDB version, which fixes some undefined behavior that was compounded by updates to the compute test structure

Are these changes tested?

Yes

Are there any user-facing changes?

No

@WillAyd

Copy link
Copy Markdown
ContributorAuthor

This was a continuation of #46830 which I thought got borked somehow, but I'm guessing github is just in the middle of some service outages

@WillAydWillAyd closed this Jun 17, 2025
@WillAyd
WillAyd requested a review from westonpace as a code ownerJune 17, 2025 19:56
@WillAydWillAyd reopened this Jun 17, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from c2de059 to 5123728CompareJune 17, 2025 23:43
@WillAydWillAyd changed the title Fix meson compute2GH-46827: [C++] Update Meson Configuration for compute shared libJun 18, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 5123728 to cd2f9f4CompareJune 18, 2025 01:18
@WillAyd

WillAyd commented Jun 18, 2025

Copy link
Copy Markdown
ContributorAuthor

Unfortunately I don't think my prior PR is recoverable - I think it got borked in an outage, so we maybe need to continue along here @kou@raulcd

I think I've addressed all the feedback. With respect to the AppVeyor failure, it looks like the previous failures occurred with Visual Studio 2019, and I've made some macros to handle that accordingly. However, I now see the following AppVeyor error:

 RUN ] Substrait.ExecReadRelWithLocalFiles
C:/projects/arrow/cpp/src/arrow/engine/substrait/serde_test.cc(1132): error: Failed
'_error_or_value131.status()' failed with Invalid: Cannot parse URI: 'file://C:projectsarrowcppsubmodulesparquet-testingdata/byte_stream_split.zstd.parquet' due to syntax error at character '/' (position 54)

In the AppVeyor build we set a variable like:

set PARQUET_TEST_DATA=%CD%\cpp\submodules\parquet-testing\data

and the failing test does a string replace with that against:

"uriFile": "file://[DIRECTORY_PLACEHOLDER]/byte_stream_split.zstd.parquet",

So I guess Visual Studio is not happy with the mix of forward/backslashes, although I'm still stumped as to why the changes in this PR would bring that to light

@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from cd2f9f4 to 30afe0aCompareJune 18, 2025 13:52
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 5 times, most recently from aa1e82b to 4d01c2cCompareJune 19, 2025 02:02
Comment threadcpp/src/arrow/c/meson.build Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we need arrow_test_dep here?

Suggested change
arrow_c_bridge_deps = []
arrow_c_bridge_deps = [arrow_test_dep]

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It is not required because the arrow_compute_test_dep includes arrow_test_dep_no_main transitively. Maybe there is better naming we can use for the dependencies?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Ah, I want to focus on if not needs_compute branch here. In the branch, we want to run bridge_test.cc without compute support.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Oh I see what you mean - nice catch!

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hmm. Is it really related to Visual Studio version?
It seems that this will be happened with newer Visual Studio.

Could you share the build log URL for this change?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It appears so. Here is the last build log URL before I added this:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52249396

So the failure messages looked like:

[----------] 18 tests from TestPivotKernel
[ RUN ] TestPivotKernel.Basics
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Basics (2 ms)
[ RUN ] TestPivotKernel.BinaryKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.BinaryKeyTypes (1 ms)
[ RUN ] TestPivotKernel.IntegerKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.IntegerKeyTypes (1 ms)
[ RUN ] TestPivotKernel.Numbers
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Numbers (1 ms)
[ RUN ] TestPivotKernel.Binary
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Binary (0 ms)
[ RUN ] TestPivotKernel.NullType
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.NullType (0 ms)
[ RUN ] TestPivotKernel.NullValues
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK without the macro the SEH exceptions are gone, so maybe that was a temporal issue with AppVeyor. However, I still get the error about the invalid file path without this macro, which you can see in the latest run here:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52266070

In the interim, I fixed up the macro (changed _MSVC_VER -> _MSC_VER) and it looks like things are all green, so hopefully that works for now

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting review Awaiting review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 4d01c2c to 06ca403CompareJune 19, 2025 03:43
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review awaiting changes Awaiting changes and removed awaiting changes Awaiting changes awaiting change review Awaiting change review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 3 times, most recently from 3ae0327 to 20dd3dfCompareJune 19, 2025 15:21
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 927b44d to d8a3ca0CompareJune 23, 2025 18:52
@WillAyd

Copy link
Copy Markdown
ContributorAuthor

We are all green - any other feedback on this?

@raulcdraulcd added the CI: Extra Run extra CI label Jun 25, 2025

@raulcdraulcd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for following up this! I've taken a look and looks good to me, I am not an expert on this but matches what was done at CMake level.
I'll let @kou take a look and merge

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting change review Awaiting change review labels Jun 25, 2025
kou
kou approved these changes Jun 25, 2025

@koukou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1

@raulcd
raulcd merged commit e6cef22 into apache:mainJun 25, 2025
@raulcdraulcd removed the awaiting merge Awaiting merge label Jun 25, 2025
@WillAyd
WillAyd deleted the fix-meson-compute2 branch June 25, 2025 13:36
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 3 benchmarking runs that have been run so far on merge-commit e6cef22.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@WillAyd@kou@raulcd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

GH-46827: [C++] Update Meson Configuration for compute shared lib - #46839

Merged
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2
Jun 25, 2025
Merged

GH-46827: [C++] Update Meson Configuration for compute shared lib#46839
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2

Conversation

@WillAyd

@WillAydWillAyd commented Jun 17, 2025

Copy link
Copy Markdown
Contributor

Rationale for this change

The major refactor of the compute sources in #46261 addressed updates to the CMake configuration but not Meson. This is a follow up to get the Meson builds working again

What changes are included in this PR?

Meson configuration files are updated to reflect new source structure. gtest has also been bumped to a new WrapDB version, which fixes some undefined behavior that was compounded by updates to the compute test structure

Are these changes tested?

Yes

Are there any user-facing changes?

No

@WillAyd

Copy link
Copy Markdown
ContributorAuthor

This was a continuation of #46830 which I thought got borked somehow, but I'm guessing github is just in the middle of some service outages

@WillAydWillAyd closed this Jun 17, 2025
@WillAyd
WillAyd requested a review from westonpace as a code ownerJune 17, 2025 19:56
@WillAydWillAyd reopened this Jun 17, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from c2de059 to 5123728CompareJune 17, 2025 23:43
@WillAydWillAyd changed the title Fix meson compute2GH-46827: [C++] Update Meson Configuration for compute shared libJun 18, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 5123728 to cd2f9f4CompareJune 18, 2025 01:18
@WillAyd

WillAyd commented Jun 18, 2025

Copy link
Copy Markdown
ContributorAuthor

Unfortunately I don't think my prior PR is recoverable - I think it got borked in an outage, so we maybe need to continue along here @kou@raulcd

I think I've addressed all the feedback. With respect to the AppVeyor failure, it looks like the previous failures occurred with Visual Studio 2019, and I've made some macros to handle that accordingly. However, I now see the following AppVeyor error:

 RUN ] Substrait.ExecReadRelWithLocalFiles
C:/projects/arrow/cpp/src/arrow/engine/substrait/serde_test.cc(1132): error: Failed
'_error_or_value131.status()' failed with Invalid: Cannot parse URI: 'file://C:projectsarrowcppsubmodulesparquet-testingdata/byte_stream_split.zstd.parquet' due to syntax error at character '/' (position 54)

In the AppVeyor build we set a variable like:

set PARQUET_TEST_DATA=%CD%\cpp\submodules\parquet-testing\data

and the failing test does a string replace with that against:

"uriFile": "file://[DIRECTORY_PLACEHOLDER]/byte_stream_split.zstd.parquet",

So I guess Visual Studio is not happy with the mix of forward/backslashes, although I'm still stumped as to why the changes in this PR would bring that to light

@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from cd2f9f4 to 30afe0aCompareJune 18, 2025 13:52
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 5 times, most recently from aa1e82b to 4d01c2cCompareJune 19, 2025 02:02
Comment threadcpp/src/arrow/c/meson.build Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we need arrow_test_dep here?

Suggested change
arrow_c_bridge_deps = []
arrow_c_bridge_deps = [arrow_test_dep]

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It is not required because the arrow_compute_test_dep includes arrow_test_dep_no_main transitively. Maybe there is better naming we can use for the dependencies?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Ah, I want to focus on if not needs_compute branch here. In the branch, we want to run bridge_test.cc without compute support.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Oh I see what you mean - nice catch!

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hmm. Is it really related to Visual Studio version?
It seems that this will be happened with newer Visual Studio.

Could you share the build log URL for this change?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It appears so. Here is the last build log URL before I added this:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52249396

So the failure messages looked like:

[----------] 18 tests from TestPivotKernel
[ RUN ] TestPivotKernel.Basics
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Basics (2 ms)
[ RUN ] TestPivotKernel.BinaryKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.BinaryKeyTypes (1 ms)
[ RUN ] TestPivotKernel.IntegerKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.IntegerKeyTypes (1 ms)
[ RUN ] TestPivotKernel.Numbers
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Numbers (1 ms)
[ RUN ] TestPivotKernel.Binary
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Binary (0 ms)
[ RUN ] TestPivotKernel.NullType
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.NullType (0 ms)
[ RUN ] TestPivotKernel.NullValues
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK without the macro the SEH exceptions are gone, so maybe that was a temporal issue with AppVeyor. However, I still get the error about the invalid file path without this macro, which you can see in the latest run here:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52266070

In the interim, I fixed up the macro (changed _MSVC_VER -> _MSC_VER) and it looks like things are all green, so hopefully that works for now

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting review Awaiting review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 4d01c2c to 06ca403CompareJune 19, 2025 03:43
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review awaiting changes Awaiting changes and removed awaiting changes Awaiting changes awaiting change review Awaiting change review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 3 times, most recently from 3ae0327 to 20dd3dfCompareJune 19, 2025 15:21
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 927b44d to d8a3ca0CompareJune 23, 2025 18:52
@WillAyd

Copy link
Copy Markdown
ContributorAuthor

We are all green - any other feedback on this?

@raulcdraulcd added the CI: Extra Run extra CI label Jun 25, 2025

@raulcdraulcd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for following up this! I've taken a look and looks good to me, I am not an expert on this but matches what was done at CMake level.
I'll let @kou take a look and merge

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting change review Awaiting change review labels Jun 25, 2025
kou
kou approved these changes Jun 25, 2025

@koukou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1

@raulcd
raulcd merged commit e6cef22 into apache:mainJun 25, 2025
@raulcdraulcd removed the awaiting merge Awaiting merge label Jun 25, 2025
@WillAyd
WillAyd deleted the fix-meson-compute2 branch June 25, 2025 13:36
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 3 benchmarking runs that have been run so far on merge-commit e6cef22.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@WillAyd@kou@raulcd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

GH-46827: [C++] Update Meson Configuration for compute shared lib - #46839

Merged
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2
Jun 25, 2025
Merged

GH-46827: [C++] Update Meson Configuration for compute shared lib#46839
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2

Conversation

@WillAyd

@WillAydWillAyd commented Jun 17, 2025

Copy link
Copy Markdown
Contributor

Rationale for this change

The major refactor of the compute sources in #46261 addressed updates to the CMake configuration but not Meson. This is a follow up to get the Meson builds working again

What changes are included in this PR?

Meson configuration files are updated to reflect new source structure. gtest has also been bumped to a new WrapDB version, which fixes some undefined behavior that was compounded by updates to the compute test structure

Are these changes tested?

Yes

Are there any user-facing changes?

No

@WillAyd

Copy link
Copy Markdown
ContributorAuthor

This was a continuation of #46830 which I thought got borked somehow, but I'm guessing github is just in the middle of some service outages

@WillAydWillAyd closed this Jun 17, 2025
@WillAyd
WillAyd requested a review from westonpace as a code ownerJune 17, 2025 19:56
@WillAydWillAyd reopened this Jun 17, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from c2de059 to 5123728CompareJune 17, 2025 23:43
@WillAydWillAyd changed the title Fix meson compute2GH-46827: [C++] Update Meson Configuration for compute shared libJun 18, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 5123728 to cd2f9f4CompareJune 18, 2025 01:18
@WillAyd

WillAyd commented Jun 18, 2025

Copy link
Copy Markdown
ContributorAuthor

Unfortunately I don't think my prior PR is recoverable - I think it got borked in an outage, so we maybe need to continue along here @kou@raulcd

I think I've addressed all the feedback. With respect to the AppVeyor failure, it looks like the previous failures occurred with Visual Studio 2019, and I've made some macros to handle that accordingly. However, I now see the following AppVeyor error:

 RUN ] Substrait.ExecReadRelWithLocalFiles
C:/projects/arrow/cpp/src/arrow/engine/substrait/serde_test.cc(1132): error: Failed
'_error_or_value131.status()' failed with Invalid: Cannot parse URI: 'file://C:projectsarrowcppsubmodulesparquet-testingdata/byte_stream_split.zstd.parquet' due to syntax error at character '/' (position 54)

In the AppVeyor build we set a variable like:

set PARQUET_TEST_DATA=%CD%\cpp\submodules\parquet-testing\data

and the failing test does a string replace with that against:

"uriFile": "file://[DIRECTORY_PLACEHOLDER]/byte_stream_split.zstd.parquet",

So I guess Visual Studio is not happy with the mix of forward/backslashes, although I'm still stumped as to why the changes in this PR would bring that to light

@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from cd2f9f4 to 30afe0aCompareJune 18, 2025 13:52
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 5 times, most recently from aa1e82b to 4d01c2cCompareJune 19, 2025 02:02
Comment threadcpp/src/arrow/c/meson.build Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we need arrow_test_dep here?

Suggested change
arrow_c_bridge_deps = []
arrow_c_bridge_deps = [arrow_test_dep]

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It is not required because the arrow_compute_test_dep includes arrow_test_dep_no_main transitively. Maybe there is better naming we can use for the dependencies?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Ah, I want to focus on if not needs_compute branch here. In the branch, we want to run bridge_test.cc without compute support.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Oh I see what you mean - nice catch!

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hmm. Is it really related to Visual Studio version?
It seems that this will be happened with newer Visual Studio.

Could you share the build log URL for this change?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It appears so. Here is the last build log URL before I added this:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52249396

So the failure messages looked like:

[----------] 18 tests from TestPivotKernel
[ RUN ] TestPivotKernel.Basics
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Basics (2 ms)
[ RUN ] TestPivotKernel.BinaryKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.BinaryKeyTypes (1 ms)
[ RUN ] TestPivotKernel.IntegerKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.IntegerKeyTypes (1 ms)
[ RUN ] TestPivotKernel.Numbers
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Numbers (1 ms)
[ RUN ] TestPivotKernel.Binary
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Binary (0 ms)
[ RUN ] TestPivotKernel.NullType
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.NullType (0 ms)
[ RUN ] TestPivotKernel.NullValues
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK without the macro the SEH exceptions are gone, so maybe that was a temporal issue with AppVeyor. However, I still get the error about the invalid file path without this macro, which you can see in the latest run here:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52266070

In the interim, I fixed up the macro (changed _MSVC_VER -> _MSC_VER) and it looks like things are all green, so hopefully that works for now

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting review Awaiting review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 4d01c2c to 06ca403CompareJune 19, 2025 03:43
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review awaiting changes Awaiting changes and removed awaiting changes Awaiting changes awaiting change review Awaiting change review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 3 times, most recently from 3ae0327 to 20dd3dfCompareJune 19, 2025 15:21
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 927b44d to d8a3ca0CompareJune 23, 2025 18:52
@WillAyd

Copy link
Copy Markdown
ContributorAuthor

We are all green - any other feedback on this?

@raulcdraulcd added the CI: Extra Run extra CI label Jun 25, 2025

@raulcdraulcd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for following up this! I've taken a look and looks good to me, I am not an expert on this but matches what was done at CMake level.
I'll let @kou take a look and merge

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting change review Awaiting change review labels Jun 25, 2025
kou
kou approved these changes Jun 25, 2025

@koukou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1

@raulcd
raulcd merged commit e6cef22 into apache:mainJun 25, 2025
@raulcdraulcd removed the awaiting merge Awaiting merge label Jun 25, 2025
@WillAyd
WillAyd deleted the fix-meson-compute2 branch June 25, 2025 13:36
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 3 benchmarking runs that have been run so far on merge-commit e6cef22.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@WillAyd@kou@raulcd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

GH-46827: [C++] Update Meson Configuration for compute shared lib - #46839

Merged
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2
Jun 25, 2025
Merged

GH-46827: [C++] Update Meson Configuration for compute shared lib#46839
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2

Conversation

@WillAyd

@WillAydWillAyd commented Jun 17, 2025

Copy link
Copy Markdown
Contributor

Rationale for this change

The major refactor of the compute sources in #46261 addressed updates to the CMake configuration but not Meson. This is a follow up to get the Meson builds working again

What changes are included in this PR?

Meson configuration files are updated to reflect new source structure. gtest has also been bumped to a new WrapDB version, which fixes some undefined behavior that was compounded by updates to the compute test structure

Are these changes tested?

Yes

Are there any user-facing changes?

No

@WillAyd

Copy link
Copy Markdown
ContributorAuthor

This was a continuation of #46830 which I thought got borked somehow, but I'm guessing github is just in the middle of some service outages

@WillAydWillAyd closed this Jun 17, 2025
@WillAyd
WillAyd requested a review from westonpace as a code ownerJune 17, 2025 19:56
@WillAydWillAyd reopened this Jun 17, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from c2de059 to 5123728CompareJune 17, 2025 23:43
@WillAydWillAyd changed the title Fix meson compute2GH-46827: [C++] Update Meson Configuration for compute shared libJun 18, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 5123728 to cd2f9f4CompareJune 18, 2025 01:18
@WillAyd

WillAyd commented Jun 18, 2025

Copy link
Copy Markdown
ContributorAuthor

Unfortunately I don't think my prior PR is recoverable - I think it got borked in an outage, so we maybe need to continue along here @kou@raulcd

I think I've addressed all the feedback. With respect to the AppVeyor failure, it looks like the previous failures occurred with Visual Studio 2019, and I've made some macros to handle that accordingly. However, I now see the following AppVeyor error:

 RUN ] Substrait.ExecReadRelWithLocalFiles
C:/projects/arrow/cpp/src/arrow/engine/substrait/serde_test.cc(1132): error: Failed
'_error_or_value131.status()' failed with Invalid: Cannot parse URI: 'file://C:projectsarrowcppsubmodulesparquet-testingdata/byte_stream_split.zstd.parquet' due to syntax error at character '/' (position 54)

In the AppVeyor build we set a variable like:

set PARQUET_TEST_DATA=%CD%\cpp\submodules\parquet-testing\data

and the failing test does a string replace with that against:

"uriFile": "file://[DIRECTORY_PLACEHOLDER]/byte_stream_split.zstd.parquet",

So I guess Visual Studio is not happy with the mix of forward/backslashes, although I'm still stumped as to why the changes in this PR would bring that to light

@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from cd2f9f4 to 30afe0aCompareJune 18, 2025 13:52
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 5 times, most recently from aa1e82b to 4d01c2cCompareJune 19, 2025 02:02
Comment threadcpp/src/arrow/c/meson.build Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we need arrow_test_dep here?

Suggested change
arrow_c_bridge_deps = []
arrow_c_bridge_deps = [arrow_test_dep]

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It is not required because the arrow_compute_test_dep includes arrow_test_dep_no_main transitively. Maybe there is better naming we can use for the dependencies?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Ah, I want to focus on if not needs_compute branch here. In the branch, we want to run bridge_test.cc without compute support.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Oh I see what you mean - nice catch!

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hmm. Is it really related to Visual Studio version?
It seems that this will be happened with newer Visual Studio.

Could you share the build log URL for this change?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It appears so. Here is the last build log URL before I added this:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52249396

So the failure messages looked like:

[----------] 18 tests from TestPivotKernel
[ RUN ] TestPivotKernel.Basics
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Basics (2 ms)
[ RUN ] TestPivotKernel.BinaryKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.BinaryKeyTypes (1 ms)
[ RUN ] TestPivotKernel.IntegerKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.IntegerKeyTypes (1 ms)
[ RUN ] TestPivotKernel.Numbers
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Numbers (1 ms)
[ RUN ] TestPivotKernel.Binary
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Binary (0 ms)
[ RUN ] TestPivotKernel.NullType
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.NullType (0 ms)
[ RUN ] TestPivotKernel.NullValues
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK without the macro the SEH exceptions are gone, so maybe that was a temporal issue with AppVeyor. However, I still get the error about the invalid file path without this macro, which you can see in the latest run here:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52266070

In the interim, I fixed up the macro (changed _MSVC_VER -> _MSC_VER) and it looks like things are all green, so hopefully that works for now

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting review Awaiting review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 4d01c2c to 06ca403CompareJune 19, 2025 03:43
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review awaiting changes Awaiting changes and removed awaiting changes Awaiting changes awaiting change review Awaiting change review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 3 times, most recently from 3ae0327 to 20dd3dfCompareJune 19, 2025 15:21
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 927b44d to d8a3ca0CompareJune 23, 2025 18:52
@WillAyd

Copy link
Copy Markdown
ContributorAuthor

We are all green - any other feedback on this?

@raulcdraulcd added the CI: Extra Run extra CI label Jun 25, 2025

@raulcdraulcd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for following up this! I've taken a look and looks good to me, I am not an expert on this but matches what was done at CMake level.
I'll let @kou take a look and merge

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting change review Awaiting change review labels Jun 25, 2025
kou
kou approved these changes Jun 25, 2025

@koukou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1

@raulcd
raulcd merged commit e6cef22 into apache:mainJun 25, 2025
@raulcdraulcd removed the awaiting merge Awaiting merge label Jun 25, 2025
@WillAyd
WillAyd deleted the fix-meson-compute2 branch June 25, 2025 13:36
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 3 benchmarking runs that have been run so far on merge-commit e6cef22.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@WillAyd@kou@raulcd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

GH-46827: [C++] Update Meson Configuration for compute shared lib - #46839

Merged
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2
Jun 25, 2025
Merged

GH-46827: [C++] Update Meson Configuration for compute shared lib#46839
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2

Conversation

@WillAyd

@WillAydWillAyd commented Jun 17, 2025

Copy link
Copy Markdown
Contributor

Rationale for this change

The major refactor of the compute sources in #46261 addressed updates to the CMake configuration but not Meson. This is a follow up to get the Meson builds working again

What changes are included in this PR?

Meson configuration files are updated to reflect new source structure. gtest has also been bumped to a new WrapDB version, which fixes some undefined behavior that was compounded by updates to the compute test structure

Are these changes tested?

Yes

Are there any user-facing changes?

No

@WillAyd

Copy link
Copy Markdown
ContributorAuthor

This was a continuation of #46830 which I thought got borked somehow, but I'm guessing github is just in the middle of some service outages

@WillAydWillAyd closed this Jun 17, 2025
@WillAyd
WillAyd requested a review from westonpace as a code ownerJune 17, 2025 19:56
@WillAydWillAyd reopened this Jun 17, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from c2de059 to 5123728CompareJune 17, 2025 23:43
@WillAydWillAyd changed the title Fix meson compute2GH-46827: [C++] Update Meson Configuration for compute shared libJun 18, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 5123728 to cd2f9f4CompareJune 18, 2025 01:18
@WillAyd

WillAyd commented Jun 18, 2025

Copy link
Copy Markdown
ContributorAuthor

Unfortunately I don't think my prior PR is recoverable - I think it got borked in an outage, so we maybe need to continue along here @kou@raulcd

I think I've addressed all the feedback. With respect to the AppVeyor failure, it looks like the previous failures occurred with Visual Studio 2019, and I've made some macros to handle that accordingly. However, I now see the following AppVeyor error:

 RUN ] Substrait.ExecReadRelWithLocalFiles
C:/projects/arrow/cpp/src/arrow/engine/substrait/serde_test.cc(1132): error: Failed
'_error_or_value131.status()' failed with Invalid: Cannot parse URI: 'file://C:projectsarrowcppsubmodulesparquet-testingdata/byte_stream_split.zstd.parquet' due to syntax error at character '/' (position 54)

In the AppVeyor build we set a variable like:

set PARQUET_TEST_DATA=%CD%\cpp\submodules\parquet-testing\data

and the failing test does a string replace with that against:

"uriFile": "file://[DIRECTORY_PLACEHOLDER]/byte_stream_split.zstd.parquet",

So I guess Visual Studio is not happy with the mix of forward/backslashes, although I'm still stumped as to why the changes in this PR would bring that to light

@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from cd2f9f4 to 30afe0aCompareJune 18, 2025 13:52
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 5 times, most recently from aa1e82b to 4d01c2cCompareJune 19, 2025 02:02
Comment threadcpp/src/arrow/c/meson.build Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we need arrow_test_dep here?

Suggested change
arrow_c_bridge_deps = []
arrow_c_bridge_deps = [arrow_test_dep]

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It is not required because the arrow_compute_test_dep includes arrow_test_dep_no_main transitively. Maybe there is better naming we can use for the dependencies?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Ah, I want to focus on if not needs_compute branch here. In the branch, we want to run bridge_test.cc without compute support.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Oh I see what you mean - nice catch!

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hmm. Is it really related to Visual Studio version?
It seems that this will be happened with newer Visual Studio.

Could you share the build log URL for this change?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It appears so. Here is the last build log URL before I added this:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52249396

So the failure messages looked like:

[----------] 18 tests from TestPivotKernel
[ RUN ] TestPivotKernel.Basics
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Basics (2 ms)
[ RUN ] TestPivotKernel.BinaryKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.BinaryKeyTypes (1 ms)
[ RUN ] TestPivotKernel.IntegerKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.IntegerKeyTypes (1 ms)
[ RUN ] TestPivotKernel.Numbers
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Numbers (1 ms)
[ RUN ] TestPivotKernel.Binary
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Binary (0 ms)
[ RUN ] TestPivotKernel.NullType
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.NullType (0 ms)
[ RUN ] TestPivotKernel.NullValues
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK without the macro the SEH exceptions are gone, so maybe that was a temporal issue with AppVeyor. However, I still get the error about the invalid file path without this macro, which you can see in the latest run here:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52266070

In the interim, I fixed up the macro (changed _MSVC_VER -> _MSC_VER) and it looks like things are all green, so hopefully that works for now

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting review Awaiting review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 4d01c2c to 06ca403CompareJune 19, 2025 03:43
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review awaiting changes Awaiting changes and removed awaiting changes Awaiting changes awaiting change review Awaiting change review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 3 times, most recently from 3ae0327 to 20dd3dfCompareJune 19, 2025 15:21
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 927b44d to d8a3ca0CompareJune 23, 2025 18:52
@WillAyd

Copy link
Copy Markdown
ContributorAuthor

We are all green - any other feedback on this?

@raulcdraulcd added the CI: Extra Run extra CI label Jun 25, 2025

@raulcdraulcd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for following up this! I've taken a look and looks good to me, I am not an expert on this but matches what was done at CMake level.
I'll let @kou take a look and merge

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting change review Awaiting change review labels Jun 25, 2025
kou
kou approved these changes Jun 25, 2025

@koukou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1

@raulcd
raulcd merged commit e6cef22 into apache:mainJun 25, 2025
@raulcdraulcd removed the awaiting merge Awaiting merge label Jun 25, 2025
@WillAyd
WillAyd deleted the fix-meson-compute2 branch June 25, 2025 13:36
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 3 benchmarking runs that have been run so far on merge-commit e6cef22.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@WillAyd@kou@raulcd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

GH-46827: [C++] Update Meson Configuration for compute shared lib - #46839

Merged
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2
Jun 25, 2025
Merged

GH-46827: [C++] Update Meson Configuration for compute shared lib#46839
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2

Conversation

@WillAyd

@WillAydWillAyd commented Jun 17, 2025

Copy link
Copy Markdown
Contributor

Rationale for this change

The major refactor of the compute sources in #46261 addressed updates to the CMake configuration but not Meson. This is a follow up to get the Meson builds working again

What changes are included in this PR?

Meson configuration files are updated to reflect new source structure. gtest has also been bumped to a new WrapDB version, which fixes some undefined behavior that was compounded by updates to the compute test structure

Are these changes tested?

Yes

Are there any user-facing changes?

No

@WillAyd

Copy link
Copy Markdown
ContributorAuthor

This was a continuation of #46830 which I thought got borked somehow, but I'm guessing github is just in the middle of some service outages

@WillAydWillAyd closed this Jun 17, 2025
@WillAyd
WillAyd requested a review from westonpace as a code ownerJune 17, 2025 19:56
@WillAydWillAyd reopened this Jun 17, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from c2de059 to 5123728CompareJune 17, 2025 23:43
@WillAydWillAyd changed the title Fix meson compute2GH-46827: [C++] Update Meson Configuration for compute shared libJun 18, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 5123728 to cd2f9f4CompareJune 18, 2025 01:18
@WillAyd

WillAyd commented Jun 18, 2025

Copy link
Copy Markdown
ContributorAuthor

Unfortunately I don't think my prior PR is recoverable - I think it got borked in an outage, so we maybe need to continue along here @kou@raulcd

I think I've addressed all the feedback. With respect to the AppVeyor failure, it looks like the previous failures occurred with Visual Studio 2019, and I've made some macros to handle that accordingly. However, I now see the following AppVeyor error:

 RUN ] Substrait.ExecReadRelWithLocalFiles
C:/projects/arrow/cpp/src/arrow/engine/substrait/serde_test.cc(1132): error: Failed
'_error_or_value131.status()' failed with Invalid: Cannot parse URI: 'file://C:projectsarrowcppsubmodulesparquet-testingdata/byte_stream_split.zstd.parquet' due to syntax error at character '/' (position 54)

In the AppVeyor build we set a variable like:

set PARQUET_TEST_DATA=%CD%\cpp\submodules\parquet-testing\data

and the failing test does a string replace with that against:

"uriFile": "file://[DIRECTORY_PLACEHOLDER]/byte_stream_split.zstd.parquet",

So I guess Visual Studio is not happy with the mix of forward/backslashes, although I'm still stumped as to why the changes in this PR would bring that to light

@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from cd2f9f4 to 30afe0aCompareJune 18, 2025 13:52
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 5 times, most recently from aa1e82b to 4d01c2cCompareJune 19, 2025 02:02
Comment threadcpp/src/arrow/c/meson.build Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we need arrow_test_dep here?

Suggested change
arrow_c_bridge_deps = []
arrow_c_bridge_deps = [arrow_test_dep]

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It is not required because the arrow_compute_test_dep includes arrow_test_dep_no_main transitively. Maybe there is better naming we can use for the dependencies?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Ah, I want to focus on if not needs_compute branch here. In the branch, we want to run bridge_test.cc without compute support.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Oh I see what you mean - nice catch!

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hmm. Is it really related to Visual Studio version?
It seems that this will be happened with newer Visual Studio.

Could you share the build log URL for this change?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It appears so. Here is the last build log URL before I added this:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52249396

So the failure messages looked like:

[----------] 18 tests from TestPivotKernel
[ RUN ] TestPivotKernel.Basics
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Basics (2 ms)
[ RUN ] TestPivotKernel.BinaryKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.BinaryKeyTypes (1 ms)
[ RUN ] TestPivotKernel.IntegerKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.IntegerKeyTypes (1 ms)
[ RUN ] TestPivotKernel.Numbers
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Numbers (1 ms)
[ RUN ] TestPivotKernel.Binary
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Binary (0 ms)
[ RUN ] TestPivotKernel.NullType
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.NullType (0 ms)
[ RUN ] TestPivotKernel.NullValues
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK without the macro the SEH exceptions are gone, so maybe that was a temporal issue with AppVeyor. However, I still get the error about the invalid file path without this macro, which you can see in the latest run here:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52266070

In the interim, I fixed up the macro (changed _MSVC_VER -> _MSC_VER) and it looks like things are all green, so hopefully that works for now

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting review Awaiting review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 4d01c2c to 06ca403CompareJune 19, 2025 03:43
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review awaiting changes Awaiting changes and removed awaiting changes Awaiting changes awaiting change review Awaiting change review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 3 times, most recently from 3ae0327 to 20dd3dfCompareJune 19, 2025 15:21
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 927b44d to d8a3ca0CompareJune 23, 2025 18:52
@WillAyd

Copy link
Copy Markdown
ContributorAuthor

We are all green - any other feedback on this?

@raulcdraulcd added the CI: Extra Run extra CI label Jun 25, 2025

@raulcdraulcd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for following up this! I've taken a look and looks good to me, I am not an expert on this but matches what was done at CMake level.
I'll let @kou take a look and merge

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting change review Awaiting change review labels Jun 25, 2025
kou
kou approved these changes Jun 25, 2025

@koukou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1

@raulcd
raulcd merged commit e6cef22 into apache:mainJun 25, 2025
@raulcdraulcd removed the awaiting merge Awaiting merge label Jun 25, 2025
@WillAyd
WillAyd deleted the fix-meson-compute2 branch June 25, 2025 13:36
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 3 benchmarking runs that have been run so far on merge-commit e6cef22.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@WillAyd@kou@raulcd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

GH-46827: [C++] Update Meson Configuration for compute shared lib - #46839

Merged
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2
Jun 25, 2025
Merged

GH-46827: [C++] Update Meson Configuration for compute shared lib#46839
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2

Conversation

@WillAyd

@WillAydWillAyd commented Jun 17, 2025

Copy link
Copy Markdown
Contributor

Rationale for this change

The major refactor of the compute sources in #46261 addressed updates to the CMake configuration but not Meson. This is a follow up to get the Meson builds working again

What changes are included in this PR?

Meson configuration files are updated to reflect new source structure. gtest has also been bumped to a new WrapDB version, which fixes some undefined behavior that was compounded by updates to the compute test structure

Are these changes tested?

Yes

Are there any user-facing changes?

No

@WillAyd

Copy link
Copy Markdown
ContributorAuthor

This was a continuation of #46830 which I thought got borked somehow, but I'm guessing github is just in the middle of some service outages

@WillAydWillAyd closed this Jun 17, 2025
@WillAyd
WillAyd requested a review from westonpace as a code ownerJune 17, 2025 19:56
@WillAydWillAyd reopened this Jun 17, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from c2de059 to 5123728CompareJune 17, 2025 23:43
@WillAydWillAyd changed the title Fix meson compute2GH-46827: [C++] Update Meson Configuration for compute shared libJun 18, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 5123728 to cd2f9f4CompareJune 18, 2025 01:18
@WillAyd

WillAyd commented Jun 18, 2025

Copy link
Copy Markdown
ContributorAuthor

Unfortunately I don't think my prior PR is recoverable - I think it got borked in an outage, so we maybe need to continue along here @kou@raulcd

I think I've addressed all the feedback. With respect to the AppVeyor failure, it looks like the previous failures occurred with Visual Studio 2019, and I've made some macros to handle that accordingly. However, I now see the following AppVeyor error:

 RUN ] Substrait.ExecReadRelWithLocalFiles
C:/projects/arrow/cpp/src/arrow/engine/substrait/serde_test.cc(1132): error: Failed
'_error_or_value131.status()' failed with Invalid: Cannot parse URI: 'file://C:projectsarrowcppsubmodulesparquet-testingdata/byte_stream_split.zstd.parquet' due to syntax error at character '/' (position 54)

In the AppVeyor build we set a variable like:

set PARQUET_TEST_DATA=%CD%\cpp\submodules\parquet-testing\data

and the failing test does a string replace with that against:

"uriFile": "file://[DIRECTORY_PLACEHOLDER]/byte_stream_split.zstd.parquet",

So I guess Visual Studio is not happy with the mix of forward/backslashes, although I'm still stumped as to why the changes in this PR would bring that to light

@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from cd2f9f4 to 30afe0aCompareJune 18, 2025 13:52
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 5 times, most recently from aa1e82b to 4d01c2cCompareJune 19, 2025 02:02
Comment threadcpp/src/arrow/c/meson.build Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we need arrow_test_dep here?

Suggested change
arrow_c_bridge_deps = []
arrow_c_bridge_deps = [arrow_test_dep]

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It is not required because the arrow_compute_test_dep includes arrow_test_dep_no_main transitively. Maybe there is better naming we can use for the dependencies?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Ah, I want to focus on if not needs_compute branch here. In the branch, we want to run bridge_test.cc without compute support.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Oh I see what you mean - nice catch!

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hmm. Is it really related to Visual Studio version?
It seems that this will be happened with newer Visual Studio.

Could you share the build log URL for this change?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It appears so. Here is the last build log URL before I added this:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52249396

So the failure messages looked like:

[----------] 18 tests from TestPivotKernel
[ RUN ] TestPivotKernel.Basics
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Basics (2 ms)
[ RUN ] TestPivotKernel.BinaryKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.BinaryKeyTypes (1 ms)
[ RUN ] TestPivotKernel.IntegerKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.IntegerKeyTypes (1 ms)
[ RUN ] TestPivotKernel.Numbers
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Numbers (1 ms)
[ RUN ] TestPivotKernel.Binary
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Binary (0 ms)
[ RUN ] TestPivotKernel.NullType
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.NullType (0 ms)
[ RUN ] TestPivotKernel.NullValues
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK without the macro the SEH exceptions are gone, so maybe that was a temporal issue with AppVeyor. However, I still get the error about the invalid file path without this macro, which you can see in the latest run here:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52266070

In the interim, I fixed up the macro (changed _MSVC_VER -> _MSC_VER) and it looks like things are all green, so hopefully that works for now

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting review Awaiting review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 4d01c2c to 06ca403CompareJune 19, 2025 03:43
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review awaiting changes Awaiting changes and removed awaiting changes Awaiting changes awaiting change review Awaiting change review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 3 times, most recently from 3ae0327 to 20dd3dfCompareJune 19, 2025 15:21
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 927b44d to d8a3ca0CompareJune 23, 2025 18:52
@WillAyd

Copy link
Copy Markdown
ContributorAuthor

We are all green - any other feedback on this?

@raulcdraulcd added the CI: Extra Run extra CI label Jun 25, 2025

@raulcdraulcd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for following up this! I've taken a look and looks good to me, I am not an expert on this but matches what was done at CMake level.
I'll let @kou take a look and merge

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting change review Awaiting change review labels Jun 25, 2025
kou
kou approved these changes Jun 25, 2025

@koukou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1

@raulcd
raulcd merged commit e6cef22 into apache:mainJun 25, 2025
@raulcdraulcd removed the awaiting merge Awaiting merge label Jun 25, 2025
@WillAyd
WillAyd deleted the fix-meson-compute2 branch June 25, 2025 13:36
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 3 benchmarking runs that have been run so far on merge-commit e6cef22.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@WillAyd@kou@raulcd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

GH-46827: [C++] Update Meson Configuration for compute shared lib - #46839

Merged
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2
Jun 25, 2025
Merged

GH-46827: [C++] Update Meson Configuration for compute shared lib#46839
raulcd merged 9 commits into
apache:mainfrom
WillAyd:fix-meson-compute2

Conversation

@WillAyd

@WillAydWillAyd commented Jun 17, 2025

Copy link
Copy Markdown
Contributor

Rationale for this change

The major refactor of the compute sources in #46261 addressed updates to the CMake configuration but not Meson. This is a follow up to get the Meson builds working again

What changes are included in this PR?

Meson configuration files are updated to reflect new source structure. gtest has also been bumped to a new WrapDB version, which fixes some undefined behavior that was compounded by updates to the compute test structure

Are these changes tested?

Yes

Are there any user-facing changes?

No

@WillAyd

Copy link
Copy Markdown
ContributorAuthor

This was a continuation of #46830 which I thought got borked somehow, but I'm guessing github is just in the middle of some service outages

@WillAydWillAyd closed this Jun 17, 2025
@WillAyd
WillAyd requested a review from westonpace as a code ownerJune 17, 2025 19:56
@WillAydWillAyd reopened this Jun 17, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from c2de059 to 5123728CompareJune 17, 2025 23:43
@WillAydWillAyd changed the title Fix meson compute2GH-46827: [C++] Update Meson Configuration for compute shared libJun 18, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 5123728 to cd2f9f4CompareJune 18, 2025 01:18
@WillAyd

WillAyd commented Jun 18, 2025

Copy link
Copy Markdown
ContributorAuthor

Unfortunately I don't think my prior PR is recoverable - I think it got borked in an outage, so we maybe need to continue along here @kou@raulcd

I think I've addressed all the feedback. With respect to the AppVeyor failure, it looks like the previous failures occurred with Visual Studio 2019, and I've made some macros to handle that accordingly. However, I now see the following AppVeyor error:

 RUN ] Substrait.ExecReadRelWithLocalFiles
C:/projects/arrow/cpp/src/arrow/engine/substrait/serde_test.cc(1132): error: Failed
'_error_or_value131.status()' failed with Invalid: Cannot parse URI: 'file://C:projectsarrowcppsubmodulesparquet-testingdata/byte_stream_split.zstd.parquet' due to syntax error at character '/' (position 54)

In the AppVeyor build we set a variable like:

set PARQUET_TEST_DATA=%CD%\cpp\submodules\parquet-testing\data

and the failing test does a string replace with that against:

"uriFile": "file://[DIRECTORY_PLACEHOLDER]/byte_stream_split.zstd.parquet",

So I guess Visual Studio is not happy with the mix of forward/backslashes, although I'm still stumped as to why the changes in this PR would bring that to light

@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from cd2f9f4 to 30afe0aCompareJune 18, 2025 13:52
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 5 times, most recently from aa1e82b to 4d01c2cCompareJune 19, 2025 02:02
Comment threadcpp/src/arrow/c/meson.build Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we need arrow_test_dep here?

Suggested change
arrow_c_bridge_deps = []
arrow_c_bridge_deps = [arrow_test_dep]

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It is not required because the arrow_compute_test_dep includes arrow_test_dep_no_main transitively. Maybe there is better naming we can use for the dependencies?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Ah, I want to focus on if not needs_compute branch here. In the branch, we want to run bridge_test.cc without compute support.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Oh I see what you mean - nice catch!

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change

Comment threadcpp/src/arrow/compute/CMakeLists.txt Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hmm. Is it really related to Visual Studio version?
It seems that this will be happened with newer Visual Studio.

Could you share the build log URL for this change?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

It appears so. Here is the last build log URL before I added this:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52249396

So the failure messages looked like:

[----------] 18 tests from TestPivotKernel
[ RUN ] TestPivotKernel.Basics
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Basics (2 ms)
[ RUN ] TestPivotKernel.BinaryKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.BinaryKeyTypes (1 ms)
[ RUN ] TestPivotKernel.IntegerKeyTypes
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.IntegerKeyTypes (1 ms)
[ RUN ] TestPivotKernel.Numbers
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Numbers (1 ms)
[ RUN ] TestPivotKernel.Binary
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.Binary (0 ms)
[ RUN ] TestPivotKernel.NullType
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:
[ FAILED ] TestPivotKernel.NullType (0 ms)
[ RUN ] TestPivotKernel.NullValues
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

OK without the macro the SEH exceptions are gone, so maybe that was a temporal issue with AppVeyor. However, I still get the error about the invalid file path without this macro, which you can see in the latest run here:

https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/52266070

In the interim, I fixed up the macro (changed _MSVC_VER -> _MSC_VER) and it looks like things are all green, so hopefully that works for now

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting review Awaiting review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 4d01c2c to 06ca403CompareJune 19, 2025 03:43
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review awaiting changes Awaiting changes and removed awaiting changes Awaiting changes awaiting change review Awaiting change review labels Jun 19, 2025
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch 3 times, most recently from 3ae0327 to 20dd3dfCompareJune 19, 2025 15:21
@WillAyd
WillAydforce-pushed the fix-meson-compute2 branch from 927b44d to d8a3ca0CompareJune 23, 2025 18:52
@WillAyd

Copy link
Copy Markdown
ContributorAuthor

We are all green - any other feedback on this?

@raulcdraulcd added the CI: Extra Run extra CI label Jun 25, 2025

@raulcdraulcd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for following up this! I've taken a look and looks good to me, I am not an expert on this but matches what was done at CMake level.
I'll let @kou take a look and merge

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting change review Awaiting change review labels Jun 25, 2025
kou
kou approved these changes Jun 25, 2025

@koukou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1

@raulcd
raulcd merged commit e6cef22 into apache:mainJun 25, 2025
@raulcdraulcd removed the awaiting merge Awaiting merge label Jun 25, 2025
@WillAyd
WillAyd deleted the fix-meson-compute2 branch June 25, 2025 13:36
@conbench-apache-arrow

Copy link
Copy Markdown

After merging your PR, Conbench analyzed the 3 benchmarking runs that have been run so far on merge-commit e6cef22.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@WillAyd@kou@raulcd