GH-49176: [C++] CRAN build fail on missing std::floating_point concept - #49221

Merged
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround
Feb 16, 2026
Merged

GH-49176: [C++] CRAN build fail on missing std::floating_point concept#49221
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround

Conversation

@jonkeane

@jonkeanejonkeane commented Feb 11, 2026

Copy link
Copy Markdown
Member

Rationale for this change

Passing builds on CRAN

What changes are included in this PR?

A workaround for C++20 compatibility issues

Are these changes tested?

Yes, we can ship these tests in this PR or we can keep them in #49216 either is fine by me.

Are there any user-facing changes?

No

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added the awaiting committer review Awaiting committer review label Feb 11, 2026
@github-actions

Copy link
Copy Markdown

Revision: 5ed5de1

Submitted crossbow builds: ursacomputing/crossbow @ actions-bc3fd4369a

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actions

Copy link
Copy Markdown

Revision: 1314042

Submitted crossbow builds: ursacomputing/crossbow @ actions-cf07311e56

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from 1314042 to dc11decCompareFebruary 11, 2026 04:46
@jonkeane
jonkeane requested a review from pitrouFebruary 11, 2026 05:05
@jonkeane

Copy link
Copy Markdown
MemberAuthor

cc @shashbha14 here is a fix (+ a CI job that proves it)

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Downloading this from this github site is very funky, and honestly a little sketchy. But it does actually replicate the very old macosx sdks that CRAN is building arrow with. And we can replicate it in CI

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 you have a timeline on when we can remove this?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

The R-devel runners are already moved to a newer version of the SDK, and R4.6 should be released in April (historically that's when that happens, but technically there isn't a set deadline). I don't yet know if that will mean all of CRAN's builders will have that new SDK though. I imagine they will move forward soon given how old these are, but in that thread there is a stated desire to keep supporting macOS + x86, which will

FWIW: I am honestly moderately uncomfortable with this, even in a CI job that has restricted permissions, etc. etc. But I haven't found any other way to link against the old SDKs that CRAN is using. We could make this something that is only run manually (though there is at least one other issue that has been merged to main that the old SDKs aren't good with: #49223 / #49105

I wonder if from ^^^ you have any ideas about how else we might catch when we need a fallback?

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.

cc @kou about the CI aspect of this

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not sure if this is helpful, but I did find https://developer.apple.com/xcode/cpp/#c++20 which lists when some of these features were supported (though not particularly consistently!) and once we are on xcode 14, it looks like we should be clear.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Do we have any macos self-hosted runners? If yes, then just let me know where to put it and how to point this CI at those and I'll make it so...

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Ok I have changed this to point to a (private) repo and added a limited PAT to crossbow for just that repo.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Oops, sorry when I commented I hadn't pushed yet, but it is now.

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.

I'm OK with the private repository approach because this is a temporary need. We will be able to remove this after this April.

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting committer review Awaiting committer review labels Feb 11, 2026
@shashbha14

Copy link
Copy Markdown

Thanks for working through this and wiring up the macOS-as-CRAN CI job, this makes the situation much clearer.
My earlier attempt on #49176 was just switching to std::is_floating_point_v, but your PR plus the SDK-based CI reproducer is a much more complete solution for the CRAN builders.
I’ll treat this PR as the canonical fix for the issue and won’t push additional changes on top of it unless you’d like help with anything specific.

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from dc11dec to 08daa2eCompareFebruary 13, 2026 18:19
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Feb 13, 2026
@apacheapache deleted a comment from github-actionsBotFeb 13, 2026
@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting change review Awaiting change review labels Feb 13, 2026
@github-actions

Copy link
Copy Markdown

Revision: 08daa2e

Submitted crossbow builds: ursacomputing/crossbow @ actions-ca0a264fc8

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

This is ready for (re)-review. If we are going to merge the CI changes (from #49216) we should merge them here, (though we will also need to merge #49223 to have this not fail on main once it is merged, but that's ok cause these are nightly tests)

@jonkeane

Copy link
Copy Markdown
MemberAuthor

I'm going to merge this tomorrow unless there is objection.

@pitroupitrou 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 a lot @jonkeane !

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting changes Awaiting changes labels Feb 16, 2026
@thisisnic
thisisnic merged commit 1d76e1e into apache:mainFeb 16, 2026
59 checks passed
@thisisnicthisisnic removed the awaiting merge Awaiting merge label Feb 16, 2026
thisisnic pushed a commit to thisisnic/arrow that referenced this pull request Feb 18, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Mottl pushed a commit to Mottl/arrow that referenced this pull request May 26, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jonkeane@shashbha14@kou@rok@raulcd@pitrou@thisisnic
, '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-49176: [C++] CRAN build fail on missing std::floating_point concept - #49221

Merged
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround
Feb 16, 2026
Merged

GH-49176: [C++] CRAN build fail on missing std::floating_point concept#49221
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround

Conversation

@jonkeane

@jonkeanejonkeane commented Feb 11, 2026

Copy link
Copy Markdown
Member

Rationale for this change

Passing builds on CRAN

What changes are included in this PR?

A workaround for C++20 compatibility issues

Are these changes tested?

Yes, we can ship these tests in this PR or we can keep them in #49216 either is fine by me.

Are there any user-facing changes?

No

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added the awaiting committer review Awaiting committer review label Feb 11, 2026
@github-actions

Copy link
Copy Markdown

Revision: 5ed5de1

Submitted crossbow builds: ursacomputing/crossbow @ actions-bc3fd4369a

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actions

Copy link
Copy Markdown

Revision: 1314042

Submitted crossbow builds: ursacomputing/crossbow @ actions-cf07311e56

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from 1314042 to dc11decCompareFebruary 11, 2026 04:46
@jonkeane
jonkeane requested a review from pitrouFebruary 11, 2026 05:05
@jonkeane

Copy link
Copy Markdown
MemberAuthor

cc @shashbha14 here is a fix (+ a CI job that proves it)

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Downloading this from this github site is very funky, and honestly a little sketchy. But it does actually replicate the very old macosx sdks that CRAN is building arrow with. And we can replicate it in CI

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 you have a timeline on when we can remove this?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

The R-devel runners are already moved to a newer version of the SDK, and R4.6 should be released in April (historically that's when that happens, but technically there isn't a set deadline). I don't yet know if that will mean all of CRAN's builders will have that new SDK though. I imagine they will move forward soon given how old these are, but in that thread there is a stated desire to keep supporting macOS + x86, which will

FWIW: I am honestly moderately uncomfortable with this, even in a CI job that has restricted permissions, etc. etc. But I haven't found any other way to link against the old SDKs that CRAN is using. We could make this something that is only run manually (though there is at least one other issue that has been merged to main that the old SDKs aren't good with: #49223 / #49105

I wonder if from ^^^ you have any ideas about how else we might catch when we need a fallback?

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.

cc @kou about the CI aspect of this

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not sure if this is helpful, but I did find https://developer.apple.com/xcode/cpp/#c++20 which lists when some of these features were supported (though not particularly consistently!) and once we are on xcode 14, it looks like we should be clear.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Do we have any macos self-hosted runners? If yes, then just let me know where to put it and how to point this CI at those and I'll make it so...

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Ok I have changed this to point to a (private) repo and added a limited PAT to crossbow for just that repo.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Oops, sorry when I commented I hadn't pushed yet, but it is now.

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.

I'm OK with the private repository approach because this is a temporary need. We will be able to remove this after this April.

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting committer review Awaiting committer review labels Feb 11, 2026
@shashbha14

Copy link
Copy Markdown

Thanks for working through this and wiring up the macOS-as-CRAN CI job, this makes the situation much clearer.
My earlier attempt on #49176 was just switching to std::is_floating_point_v, but your PR plus the SDK-based CI reproducer is a much more complete solution for the CRAN builders.
I’ll treat this PR as the canonical fix for the issue and won’t push additional changes on top of it unless you’d like help with anything specific.

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from dc11dec to 08daa2eCompareFebruary 13, 2026 18:19
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Feb 13, 2026
@apacheapache deleted a comment from github-actionsBotFeb 13, 2026
@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting change review Awaiting change review labels Feb 13, 2026
@github-actions

Copy link
Copy Markdown

Revision: 08daa2e

Submitted crossbow builds: ursacomputing/crossbow @ actions-ca0a264fc8

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

This is ready for (re)-review. If we are going to merge the CI changes (from #49216) we should merge them here, (though we will also need to merge #49223 to have this not fail on main once it is merged, but that's ok cause these are nightly tests)

@jonkeane

Copy link
Copy Markdown
MemberAuthor

I'm going to merge this tomorrow unless there is objection.

@pitroupitrou 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 a lot @jonkeane !

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting changes Awaiting changes labels Feb 16, 2026
@thisisnic
thisisnic merged commit 1d76e1e into apache:mainFeb 16, 2026
59 checks passed
@thisisnicthisisnic removed the awaiting merge Awaiting merge label Feb 16, 2026
thisisnic pushed a commit to thisisnic/arrow that referenced this pull request Feb 18, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Mottl pushed a commit to Mottl/arrow that referenced this pull request May 26, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jonkeane@shashbha14@kou@rok@raulcd@pitrou@thisisnic
, '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-49176: [C++] CRAN build fail on missing std::floating_point concept - #49221

Merged
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround
Feb 16, 2026
Merged

GH-49176: [C++] CRAN build fail on missing std::floating_point concept#49221
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround

Conversation

@jonkeane

@jonkeanejonkeane commented Feb 11, 2026

Copy link
Copy Markdown
Member

Rationale for this change

Passing builds on CRAN

What changes are included in this PR?

A workaround for C++20 compatibility issues

Are these changes tested?

Yes, we can ship these tests in this PR or we can keep them in #49216 either is fine by me.

Are there any user-facing changes?

No

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added the awaiting committer review Awaiting committer review label Feb 11, 2026
@github-actions

Copy link
Copy Markdown

Revision: 5ed5de1

Submitted crossbow builds: ursacomputing/crossbow @ actions-bc3fd4369a

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actions

Copy link
Copy Markdown

Revision: 1314042

Submitted crossbow builds: ursacomputing/crossbow @ actions-cf07311e56

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from 1314042 to dc11decCompareFebruary 11, 2026 04:46
@jonkeane
jonkeane requested a review from pitrouFebruary 11, 2026 05:05
@jonkeane

Copy link
Copy Markdown
MemberAuthor

cc @shashbha14 here is a fix (+ a CI job that proves it)

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Downloading this from this github site is very funky, and honestly a little sketchy. But it does actually replicate the very old macosx sdks that CRAN is building arrow with. And we can replicate it in CI

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 you have a timeline on when we can remove this?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

The R-devel runners are already moved to a newer version of the SDK, and R4.6 should be released in April (historically that's when that happens, but technically there isn't a set deadline). I don't yet know if that will mean all of CRAN's builders will have that new SDK though. I imagine they will move forward soon given how old these are, but in that thread there is a stated desire to keep supporting macOS + x86, which will

FWIW: I am honestly moderately uncomfortable with this, even in a CI job that has restricted permissions, etc. etc. But I haven't found any other way to link against the old SDKs that CRAN is using. We could make this something that is only run manually (though there is at least one other issue that has been merged to main that the old SDKs aren't good with: #49223 / #49105

I wonder if from ^^^ you have any ideas about how else we might catch when we need a fallback?

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.

cc @kou about the CI aspect of this

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not sure if this is helpful, but I did find https://developer.apple.com/xcode/cpp/#c++20 which lists when some of these features were supported (though not particularly consistently!) and once we are on xcode 14, it looks like we should be clear.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Do we have any macos self-hosted runners? If yes, then just let me know where to put it and how to point this CI at those and I'll make it so...

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Ok I have changed this to point to a (private) repo and added a limited PAT to crossbow for just that repo.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Oops, sorry when I commented I hadn't pushed yet, but it is now.

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.

I'm OK with the private repository approach because this is a temporary need. We will be able to remove this after this April.

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting committer review Awaiting committer review labels Feb 11, 2026
@shashbha14

Copy link
Copy Markdown

Thanks for working through this and wiring up the macOS-as-CRAN CI job, this makes the situation much clearer.
My earlier attempt on #49176 was just switching to std::is_floating_point_v, but your PR plus the SDK-based CI reproducer is a much more complete solution for the CRAN builders.
I’ll treat this PR as the canonical fix for the issue and won’t push additional changes on top of it unless you’d like help with anything specific.

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from dc11dec to 08daa2eCompareFebruary 13, 2026 18:19
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Feb 13, 2026
@apacheapache deleted a comment from github-actionsBotFeb 13, 2026
@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting change review Awaiting change review labels Feb 13, 2026
@github-actions

Copy link
Copy Markdown

Revision: 08daa2e

Submitted crossbow builds: ursacomputing/crossbow @ actions-ca0a264fc8

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

This is ready for (re)-review. If we are going to merge the CI changes (from #49216) we should merge them here, (though we will also need to merge #49223 to have this not fail on main once it is merged, but that's ok cause these are nightly tests)

@jonkeane

Copy link
Copy Markdown
MemberAuthor

I'm going to merge this tomorrow unless there is objection.

@pitroupitrou 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 a lot @jonkeane !

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting changes Awaiting changes labels Feb 16, 2026
@thisisnic
thisisnic merged commit 1d76e1e into apache:mainFeb 16, 2026
59 checks passed
@thisisnicthisisnic removed the awaiting merge Awaiting merge label Feb 16, 2026
thisisnic pushed a commit to thisisnic/arrow that referenced this pull request Feb 18, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Mottl pushed a commit to Mottl/arrow that referenced this pull request May 26, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jonkeane@shashbha14@kou@rok@raulcd@pitrou@thisisnic
, '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-49176: [C++] CRAN build fail on missing std::floating_point concept - #49221

Merged
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround
Feb 16, 2026
Merged

GH-49176: [C++] CRAN build fail on missing std::floating_point concept#49221
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround

Conversation

@jonkeane

@jonkeanejonkeane commented Feb 11, 2026

Copy link
Copy Markdown
Member

Rationale for this change

Passing builds on CRAN

What changes are included in this PR?

A workaround for C++20 compatibility issues

Are these changes tested?

Yes, we can ship these tests in this PR or we can keep them in #49216 either is fine by me.

Are there any user-facing changes?

No

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added the awaiting committer review Awaiting committer review label Feb 11, 2026
@github-actions

Copy link
Copy Markdown

Revision: 5ed5de1

Submitted crossbow builds: ursacomputing/crossbow @ actions-bc3fd4369a

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actions

Copy link
Copy Markdown

Revision: 1314042

Submitted crossbow builds: ursacomputing/crossbow @ actions-cf07311e56

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from 1314042 to dc11decCompareFebruary 11, 2026 04:46
@jonkeane
jonkeane requested a review from pitrouFebruary 11, 2026 05:05
@jonkeane

Copy link
Copy Markdown
MemberAuthor

cc @shashbha14 here is a fix (+ a CI job that proves it)

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Downloading this from this github site is very funky, and honestly a little sketchy. But it does actually replicate the very old macosx sdks that CRAN is building arrow with. And we can replicate it in CI

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 you have a timeline on when we can remove this?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

The R-devel runners are already moved to a newer version of the SDK, and R4.6 should be released in April (historically that's when that happens, but technically there isn't a set deadline). I don't yet know if that will mean all of CRAN's builders will have that new SDK though. I imagine they will move forward soon given how old these are, but in that thread there is a stated desire to keep supporting macOS + x86, which will

FWIW: I am honestly moderately uncomfortable with this, even in a CI job that has restricted permissions, etc. etc. But I haven't found any other way to link against the old SDKs that CRAN is using. We could make this something that is only run manually (though there is at least one other issue that has been merged to main that the old SDKs aren't good with: #49223 / #49105

I wonder if from ^^^ you have any ideas about how else we might catch when we need a fallback?

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.

cc @kou about the CI aspect of this

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not sure if this is helpful, but I did find https://developer.apple.com/xcode/cpp/#c++20 which lists when some of these features were supported (though not particularly consistently!) and once we are on xcode 14, it looks like we should be clear.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Do we have any macos self-hosted runners? If yes, then just let me know where to put it and how to point this CI at those and I'll make it so...

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Ok I have changed this to point to a (private) repo and added a limited PAT to crossbow for just that repo.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Oops, sorry when I commented I hadn't pushed yet, but it is now.

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.

I'm OK with the private repository approach because this is a temporary need. We will be able to remove this after this April.

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting committer review Awaiting committer review labels Feb 11, 2026
@shashbha14

Copy link
Copy Markdown

Thanks for working through this and wiring up the macOS-as-CRAN CI job, this makes the situation much clearer.
My earlier attempt on #49176 was just switching to std::is_floating_point_v, but your PR plus the SDK-based CI reproducer is a much more complete solution for the CRAN builders.
I’ll treat this PR as the canonical fix for the issue and won’t push additional changes on top of it unless you’d like help with anything specific.

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from dc11dec to 08daa2eCompareFebruary 13, 2026 18:19
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Feb 13, 2026
@apacheapache deleted a comment from github-actionsBotFeb 13, 2026
@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting change review Awaiting change review labels Feb 13, 2026
@github-actions

Copy link
Copy Markdown

Revision: 08daa2e

Submitted crossbow builds: ursacomputing/crossbow @ actions-ca0a264fc8

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

This is ready for (re)-review. If we are going to merge the CI changes (from #49216) we should merge them here, (though we will also need to merge #49223 to have this not fail on main once it is merged, but that's ok cause these are nightly tests)

@jonkeane

Copy link
Copy Markdown
MemberAuthor

I'm going to merge this tomorrow unless there is objection.

@pitroupitrou 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 a lot @jonkeane !

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting changes Awaiting changes labels Feb 16, 2026
@thisisnic
thisisnic merged commit 1d76e1e into apache:mainFeb 16, 2026
59 checks passed
@thisisnicthisisnic removed the awaiting merge Awaiting merge label Feb 16, 2026
thisisnic pushed a commit to thisisnic/arrow that referenced this pull request Feb 18, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Mottl pushed a commit to Mottl/arrow that referenced this pull request May 26, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jonkeane@shashbha14@kou@rok@raulcd@pitrou@thisisnic
, '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-49176: [C++] CRAN build fail on missing std::floating_point concept - #49221

Merged
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround
Feb 16, 2026
Merged

GH-49176: [C++] CRAN build fail on missing std::floating_point concept#49221
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround

Conversation

@jonkeane

@jonkeanejonkeane commented Feb 11, 2026

Copy link
Copy Markdown
Member

Rationale for this change

Passing builds on CRAN

What changes are included in this PR?

A workaround for C++20 compatibility issues

Are these changes tested?

Yes, we can ship these tests in this PR or we can keep them in #49216 either is fine by me.

Are there any user-facing changes?

No

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added the awaiting committer review Awaiting committer review label Feb 11, 2026
@github-actions

Copy link
Copy Markdown

Revision: 5ed5de1

Submitted crossbow builds: ursacomputing/crossbow @ actions-bc3fd4369a

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actions

Copy link
Copy Markdown

Revision: 1314042

Submitted crossbow builds: ursacomputing/crossbow @ actions-cf07311e56

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from 1314042 to dc11decCompareFebruary 11, 2026 04:46
@jonkeane
jonkeane requested a review from pitrouFebruary 11, 2026 05:05
@jonkeane

Copy link
Copy Markdown
MemberAuthor

cc @shashbha14 here is a fix (+ a CI job that proves it)

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Downloading this from this github site is very funky, and honestly a little sketchy. But it does actually replicate the very old macosx sdks that CRAN is building arrow with. And we can replicate it in CI

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 you have a timeline on when we can remove this?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

The R-devel runners are already moved to a newer version of the SDK, and R4.6 should be released in April (historically that's when that happens, but technically there isn't a set deadline). I don't yet know if that will mean all of CRAN's builders will have that new SDK though. I imagine they will move forward soon given how old these are, but in that thread there is a stated desire to keep supporting macOS + x86, which will

FWIW: I am honestly moderately uncomfortable with this, even in a CI job that has restricted permissions, etc. etc. But I haven't found any other way to link against the old SDKs that CRAN is using. We could make this something that is only run manually (though there is at least one other issue that has been merged to main that the old SDKs aren't good with: #49223 / #49105

I wonder if from ^^^ you have any ideas about how else we might catch when we need a fallback?

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.

cc @kou about the CI aspect of this

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not sure if this is helpful, but I did find https://developer.apple.com/xcode/cpp/#c++20 which lists when some of these features were supported (though not particularly consistently!) and once we are on xcode 14, it looks like we should be clear.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Do we have any macos self-hosted runners? If yes, then just let me know where to put it and how to point this CI at those and I'll make it so...

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Ok I have changed this to point to a (private) repo and added a limited PAT to crossbow for just that repo.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Oops, sorry when I commented I hadn't pushed yet, but it is now.

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.

I'm OK with the private repository approach because this is a temporary need. We will be able to remove this after this April.

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting committer review Awaiting committer review labels Feb 11, 2026
@shashbha14

Copy link
Copy Markdown

Thanks for working through this and wiring up the macOS-as-CRAN CI job, this makes the situation much clearer.
My earlier attempt on #49176 was just switching to std::is_floating_point_v, but your PR plus the SDK-based CI reproducer is a much more complete solution for the CRAN builders.
I’ll treat this PR as the canonical fix for the issue and won’t push additional changes on top of it unless you’d like help with anything specific.

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from dc11dec to 08daa2eCompareFebruary 13, 2026 18:19
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Feb 13, 2026
@apacheapache deleted a comment from github-actionsBotFeb 13, 2026
@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting change review Awaiting change review labels Feb 13, 2026
@github-actions

Copy link
Copy Markdown

Revision: 08daa2e

Submitted crossbow builds: ursacomputing/crossbow @ actions-ca0a264fc8

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

This is ready for (re)-review. If we are going to merge the CI changes (from #49216) we should merge them here, (though we will also need to merge #49223 to have this not fail on main once it is merged, but that's ok cause these are nightly tests)

@jonkeane

Copy link
Copy Markdown
MemberAuthor

I'm going to merge this tomorrow unless there is objection.

@pitroupitrou 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 a lot @jonkeane !

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting changes Awaiting changes labels Feb 16, 2026
@thisisnic
thisisnic merged commit 1d76e1e into apache:mainFeb 16, 2026
59 checks passed
@thisisnicthisisnic removed the awaiting merge Awaiting merge label Feb 16, 2026
thisisnic pushed a commit to thisisnic/arrow that referenced this pull request Feb 18, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Mottl pushed a commit to Mottl/arrow that referenced this pull request May 26, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jonkeane@shashbha14@kou@rok@raulcd@pitrou@thisisnic
, '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-49176: [C++] CRAN build fail on missing std::floating_point concept - #49221

Merged
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround
Feb 16, 2026
Merged

GH-49176: [C++] CRAN build fail on missing std::floating_point concept#49221
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround

Conversation

@jonkeane

@jonkeanejonkeane commented Feb 11, 2026

Copy link
Copy Markdown
Member

Rationale for this change

Passing builds on CRAN

What changes are included in this PR?

A workaround for C++20 compatibility issues

Are these changes tested?

Yes, we can ship these tests in this PR or we can keep them in #49216 either is fine by me.

Are there any user-facing changes?

No

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added the awaiting committer review Awaiting committer review label Feb 11, 2026
@github-actions

Copy link
Copy Markdown

Revision: 5ed5de1

Submitted crossbow builds: ursacomputing/crossbow @ actions-bc3fd4369a

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actions

Copy link
Copy Markdown

Revision: 1314042

Submitted crossbow builds: ursacomputing/crossbow @ actions-cf07311e56

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from 1314042 to dc11decCompareFebruary 11, 2026 04:46
@jonkeane
jonkeane requested a review from pitrouFebruary 11, 2026 05:05
@jonkeane

Copy link
Copy Markdown
MemberAuthor

cc @shashbha14 here is a fix (+ a CI job that proves it)

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Downloading this from this github site is very funky, and honestly a little sketchy. But it does actually replicate the very old macosx sdks that CRAN is building arrow with. And we can replicate it in CI

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 you have a timeline on when we can remove this?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

The R-devel runners are already moved to a newer version of the SDK, and R4.6 should be released in April (historically that's when that happens, but technically there isn't a set deadline). I don't yet know if that will mean all of CRAN's builders will have that new SDK though. I imagine they will move forward soon given how old these are, but in that thread there is a stated desire to keep supporting macOS + x86, which will

FWIW: I am honestly moderately uncomfortable with this, even in a CI job that has restricted permissions, etc. etc. But I haven't found any other way to link against the old SDKs that CRAN is using. We could make this something that is only run manually (though there is at least one other issue that has been merged to main that the old SDKs aren't good with: #49223 / #49105

I wonder if from ^^^ you have any ideas about how else we might catch when we need a fallback?

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.

cc @kou about the CI aspect of this

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not sure if this is helpful, but I did find https://developer.apple.com/xcode/cpp/#c++20 which lists when some of these features were supported (though not particularly consistently!) and once we are on xcode 14, it looks like we should be clear.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Do we have any macos self-hosted runners? If yes, then just let me know where to put it and how to point this CI at those and I'll make it so...

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Ok I have changed this to point to a (private) repo and added a limited PAT to crossbow for just that repo.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Oops, sorry when I commented I hadn't pushed yet, but it is now.

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.

I'm OK with the private repository approach because this is a temporary need. We will be able to remove this after this April.

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting committer review Awaiting committer review labels Feb 11, 2026
@shashbha14

Copy link
Copy Markdown

Thanks for working through this and wiring up the macOS-as-CRAN CI job, this makes the situation much clearer.
My earlier attempt on #49176 was just switching to std::is_floating_point_v, but your PR plus the SDK-based CI reproducer is a much more complete solution for the CRAN builders.
I’ll treat this PR as the canonical fix for the issue and won’t push additional changes on top of it unless you’d like help with anything specific.

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from dc11dec to 08daa2eCompareFebruary 13, 2026 18:19
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Feb 13, 2026
@apacheapache deleted a comment from github-actionsBotFeb 13, 2026
@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting change review Awaiting change review labels Feb 13, 2026
@github-actions

Copy link
Copy Markdown

Revision: 08daa2e

Submitted crossbow builds: ursacomputing/crossbow @ actions-ca0a264fc8

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

This is ready for (re)-review. If we are going to merge the CI changes (from #49216) we should merge them here, (though we will also need to merge #49223 to have this not fail on main once it is merged, but that's ok cause these are nightly tests)

@jonkeane

Copy link
Copy Markdown
MemberAuthor

I'm going to merge this tomorrow unless there is objection.

@pitroupitrou 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 a lot @jonkeane !

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting changes Awaiting changes labels Feb 16, 2026
@thisisnic
thisisnic merged commit 1d76e1e into apache:mainFeb 16, 2026
59 checks passed
@thisisnicthisisnic removed the awaiting merge Awaiting merge label Feb 16, 2026
thisisnic pushed a commit to thisisnic/arrow that referenced this pull request Feb 18, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Mottl pushed a commit to Mottl/arrow that referenced this pull request May 26, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jonkeane@shashbha14@kou@rok@raulcd@pitrou@thisisnic
, '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-49176: [C++] CRAN build fail on missing std::floating_point concept - #49221

Merged
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround
Feb 16, 2026
Merged

GH-49176: [C++] CRAN build fail on missing std::floating_point concept#49221
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround

Conversation

@jonkeane

@jonkeanejonkeane commented Feb 11, 2026

Copy link
Copy Markdown
Member

Rationale for this change

Passing builds on CRAN

What changes are included in this PR?

A workaround for C++20 compatibility issues

Are these changes tested?

Yes, we can ship these tests in this PR or we can keep them in #49216 either is fine by me.

Are there any user-facing changes?

No

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added the awaiting committer review Awaiting committer review label Feb 11, 2026
@github-actions

Copy link
Copy Markdown

Revision: 5ed5de1

Submitted crossbow builds: ursacomputing/crossbow @ actions-bc3fd4369a

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actions

Copy link
Copy Markdown

Revision: 1314042

Submitted crossbow builds: ursacomputing/crossbow @ actions-cf07311e56

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from 1314042 to dc11decCompareFebruary 11, 2026 04:46
@jonkeane
jonkeane requested a review from pitrouFebruary 11, 2026 05:05
@jonkeane

Copy link
Copy Markdown
MemberAuthor

cc @shashbha14 here is a fix (+ a CI job that proves it)

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Downloading this from this github site is very funky, and honestly a little sketchy. But it does actually replicate the very old macosx sdks that CRAN is building arrow with. And we can replicate it in CI

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 you have a timeline on when we can remove this?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

The R-devel runners are already moved to a newer version of the SDK, and R4.6 should be released in April (historically that's when that happens, but technically there isn't a set deadline). I don't yet know if that will mean all of CRAN's builders will have that new SDK though. I imagine they will move forward soon given how old these are, but in that thread there is a stated desire to keep supporting macOS + x86, which will

FWIW: I am honestly moderately uncomfortable with this, even in a CI job that has restricted permissions, etc. etc. But I haven't found any other way to link against the old SDKs that CRAN is using. We could make this something that is only run manually (though there is at least one other issue that has been merged to main that the old SDKs aren't good with: #49223 / #49105

I wonder if from ^^^ you have any ideas about how else we might catch when we need a fallback?

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.

cc @kou about the CI aspect of this

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not sure if this is helpful, but I did find https://developer.apple.com/xcode/cpp/#c++20 which lists when some of these features were supported (though not particularly consistently!) and once we are on xcode 14, it looks like we should be clear.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Do we have any macos self-hosted runners? If yes, then just let me know where to put it and how to point this CI at those and I'll make it so...

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Ok I have changed this to point to a (private) repo and added a limited PAT to crossbow for just that repo.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Oops, sorry when I commented I hadn't pushed yet, but it is now.

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.

I'm OK with the private repository approach because this is a temporary need. We will be able to remove this after this April.

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting committer review Awaiting committer review labels Feb 11, 2026
@shashbha14

Copy link
Copy Markdown

Thanks for working through this and wiring up the macOS-as-CRAN CI job, this makes the situation much clearer.
My earlier attempt on #49176 was just switching to std::is_floating_point_v, but your PR plus the SDK-based CI reproducer is a much more complete solution for the CRAN builders.
I’ll treat this PR as the canonical fix for the issue and won’t push additional changes on top of it unless you’d like help with anything specific.

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from dc11dec to 08daa2eCompareFebruary 13, 2026 18:19
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Feb 13, 2026
@apacheapache deleted a comment from github-actionsBotFeb 13, 2026
@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting change review Awaiting change review labels Feb 13, 2026
@github-actions

Copy link
Copy Markdown

Revision: 08daa2e

Submitted crossbow builds: ursacomputing/crossbow @ actions-ca0a264fc8

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

This is ready for (re)-review. If we are going to merge the CI changes (from #49216) we should merge them here, (though we will also need to merge #49223 to have this not fail on main once it is merged, but that's ok cause these are nightly tests)

@jonkeane

Copy link
Copy Markdown
MemberAuthor

I'm going to merge this tomorrow unless there is objection.

@pitroupitrou 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 a lot @jonkeane !

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting changes Awaiting changes labels Feb 16, 2026
@thisisnic
thisisnic merged commit 1d76e1e into apache:mainFeb 16, 2026
59 checks passed
@thisisnicthisisnic removed the awaiting merge Awaiting merge label Feb 16, 2026
thisisnic pushed a commit to thisisnic/arrow that referenced this pull request Feb 18, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Mottl pushed a commit to Mottl/arrow that referenced this pull request May 26, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jonkeane@shashbha14@kou@rok@raulcd@pitrou@thisisnic
, '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-49176: [C++] CRAN build fail on missing std::floating_point concept - #49221

Merged
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround
Feb 16, 2026
Merged

GH-49176: [C++] CRAN build fail on missing std::floating_point concept#49221
thisisnic merged 3 commits into
apache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround

Conversation

@jonkeane

@jonkeanejonkeane commented Feb 11, 2026

Copy link
Copy Markdown
Member

Rationale for this change

Passing builds on CRAN

What changes are included in this PR?

A workaround for C++20 compatibility issues

Are these changes tested?

Yes, we can ship these tests in this PR or we can keep them in #49216 either is fine by me.

Are there any user-facing changes?

No

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added the awaiting committer review Awaiting committer review label Feb 11, 2026
@github-actions

Copy link
Copy Markdown

Revision: 5ed5de1

Submitted crossbow builds: ursacomputing/crossbow @ actions-bc3fd4369a

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actions

Copy link
Copy Markdown

Revision: 1314042

Submitted crossbow builds: ursacomputing/crossbow @ actions-cf07311e56

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from 1314042 to dc11decCompareFebruary 11, 2026 04:46
@jonkeane
jonkeane requested a review from pitrouFebruary 11, 2026 05:05
@jonkeane

Copy link
Copy Markdown
MemberAuthor

cc @shashbha14 here is a fix (+ a CI job that proves it)

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Downloading this from this github site is very funky, and honestly a little sketchy. But it does actually replicate the very old macosx sdks that CRAN is building arrow with. And we can replicate it in CI

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 you have a timeline on when we can remove this?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

The R-devel runners are already moved to a newer version of the SDK, and R4.6 should be released in April (historically that's when that happens, but technically there isn't a set deadline). I don't yet know if that will mean all of CRAN's builders will have that new SDK though. I imagine they will move forward soon given how old these are, but in that thread there is a stated desire to keep supporting macOS + x86, which will

FWIW: I am honestly moderately uncomfortable with this, even in a CI job that has restricted permissions, etc. etc. But I haven't found any other way to link against the old SDKs that CRAN is using. We could make this something that is only run manually (though there is at least one other issue that has been merged to main that the old SDKs aren't good with: #49223 / #49105

I wonder if from ^^^ you have any ideas about how else we might catch when we need a fallback?

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.

cc @kou about the CI aspect of this

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not sure if this is helpful, but I did find https://developer.apple.com/xcode/cpp/#c++20 which lists when some of these features were supported (though not particularly consistently!) and once we are on xcode 14, it looks like we should be clear.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Do we have any macos self-hosted runners? If yes, then just let me know where to put it and how to point this CI at those and I'll make it so...

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Ok I have changed this to point to a (private) repo and added a limited PAT to crossbow for just that repo.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Oops, sorry when I commented I hadn't pushed yet, but it is now.

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.

I'm OK with the private repository approach because this is a temporary need. We will be able to remove this after this April.

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting committer review Awaiting committer review labels Feb 11, 2026
@shashbha14

Copy link
Copy Markdown

Thanks for working through this and wiring up the macOS-as-CRAN CI job, this makes the situation much clearer.
My earlier attempt on #49176 was just switching to std::is_floating_point_v, but your PR plus the SDK-based CI reproducer is a much more complete solution for the CRAN builders.
I’ll treat this PR as the canonical fix for the issue and won’t push additional changes on top of it unless you’d like help with anything specific.

@jonkeane
jonkeaneforce-pushed the gh49176-std-floatingpoint-workaround branch from dc11dec to 08daa2eCompareFebruary 13, 2026 18:19
@github-actionsgithub-actionsBot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Feb 13, 2026
@apacheapache deleted a comment from github-actionsBotFeb 13, 2026
@jonkeane

Copy link
Copy Markdown
MemberAuthor

@github-actions crossbow submit test-r-macos-as-cran

@github-actionsgithub-actionsBot added awaiting changes Awaiting changes and removed awaiting change review Awaiting change review labels Feb 13, 2026
@github-actions

Copy link
Copy Markdown

Revision: 08daa2e

Submitted crossbow builds: ursacomputing/crossbow @ actions-ca0a264fc8

TaskStatus
test-r-macos-as-cranGitHub Actions

@jonkeane

Copy link
Copy Markdown
MemberAuthor

This is ready for (re)-review. If we are going to merge the CI changes (from #49216) we should merge them here, (though we will also need to merge #49223 to have this not fail on main once it is merged, but that's ok cause these are nightly tests)

@jonkeane

Copy link
Copy Markdown
MemberAuthor

I'm going to merge this tomorrow unless there is objection.

@pitroupitrou 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 a lot @jonkeane !

Comment on lines +65 to +69
run: |
curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz
sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/
echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/"
ls -la /Library/Developer/CommandLineTools/SDKs/

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.

Sorry missed this

Do we have any macos self-hosted runners?

No, we only have the CUDA self-hosted runners. Unfortunately it's also not easy adding self-hosted macOS runners as the current runs-on solution we use to set up self-hosted runners doesn't seem to support macOS runners: https://runs-on.com/runners/macos/

@github-actionsgithub-actionsBot added awaiting merge Awaiting merge and removed awaiting changes Awaiting changes labels Feb 16, 2026
@thisisnic
thisisnic merged commit 1d76e1e into apache:mainFeb 16, 2026
59 checks passed
@thisisnicthisisnic removed the awaiting merge Awaiting merge label Feb 16, 2026
thisisnic pushed a commit to thisisnic/arrow that referenced this pull request Feb 18, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Mottl pushed a commit to Mottl/arrow that referenced this pull request May 26, 2026
…concept (apache#49221)
### Rationale for this change
Passing builds on CRAN
### What changes are included in this PR?
A workaround for C++20 compatibility issues
### Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in apache#49216 either is fine by me. ### Are there any user-facing changes?
No
* GitHub Issue: apache#49176
Authored-by: Jonathan Keane <jkeane@gmail.com>
Signed-off-by: Nic Crane <thisisnic@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@jonkeane@shashbha14@kou@rok@raulcd@pitrou@thisisnic