Skip to content

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

Open
jonkeane wants to merge 3 commits intoapache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround
Open

GH-49176: [C++] CRAN build fail on missing std::floating_point concept#49221
jonkeane wants to merge 3 commits intoapache:mainfrom
jonkeane:gh49176-std-floatingpoint-workaround

Conversation

@jonkeane
Copy link
Member

@jonkeane jonkeane commented Feb 11, 2026

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
Member Author

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

@github-actions github-actions bot added the awaiting committer review Awaiting committer review label Feb 11, 2026
@github-actions
Copy link

Revision: 5ed5de1

Submitted crossbow builds: ursacomputing/crossbow @ actions-bc3fd4369a

Task Status
test-r-macos-as-cran GitHub Actions

@apache apache deleted a comment from github-actions bot Feb 11, 2026
@jonkeane
Copy link
Member Author

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

@github-actions
Copy link

Revision: 1314042

Submitted crossbow builds: ursacomputing/crossbow @ actions-cf07311e56

Task Status
test-r-macos-as-cran GitHub Actions

@jonkeane jonkeane force-pushed the gh49176-std-floatingpoint-workaround branch from 1314042 to dc11dec Compare February 11, 2026 04:46
@jonkeane jonkeane requested a review from pitrou February 11, 2026 05:05
@jonkeane
Copy link
Member Author

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
Member Author

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
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
Member Author

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
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
Member Author

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
Member

Choose a reason for hiding this comment

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

Do we have some place we could host this privately (but still with access for our CI runners)? I'm happy to do that temporarily, but don't want it to be out and available on the open internet if possible. I would consider a private repo alongside usracomputing/crossbow, but I don't have access to that anymore. Do you know who does?

Perhaps @rok @raulcd @assignUser have ideas

Copy link
Member

@rok rok Feb 12, 2026

Choose a reason for hiding this comment

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

Does this need to be private? We have s3://arrow-data for things like nightly report.
We can make s new s3 bucket that's only accessible to our (self-hosted) CI runners?

Copy link
Member Author

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
Member Author

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
Member Author

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.

@github-actions github-actions bot added awaiting changes Awaiting changes and removed awaiting committer review Awaiting committer review labels Feb 11, 2026
@shashbha14
Copy link
Contributor

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 jonkeane force-pushed the gh49176-std-floatingpoint-workaround branch from dc11dec to 08daa2e Compare February 13, 2026 18:19
@github-actions github-actions bot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Feb 13, 2026
@apache apache deleted a comment from github-actions bot Feb 13, 2026
@jonkeane
Copy link
Member Author

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

@github-actions github-actions bot added awaiting changes Awaiting changes and removed awaiting change review Awaiting change review labels Feb 13, 2026
@github-actions
Copy link

Revision: 08daa2e

Submitted crossbow builds: ursacomputing/crossbow @ actions-ca0a264fc8

Task Status
test-r-macos-as-cran GitHub Actions

@jonkeane
Copy link
Member Author

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 jonkeane requested a review from rok February 13, 2026 19:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants