I can definitely vouch for the benefits of upgrading to C++17, it makes general development significantly more enjoyable!

On that end, I second Neal's suggestion for deployment, that's roughly the same plan we used in my past experience when performing a compiler upgrade on a very large codebase.

--Matt

On Wed, Aug 17 2022 at 08:45:34 AM -0500, Neal Richardson <neal.p.richard...@gmail.com> wrote:
I have no opinion about the benefits of upgrading to C++17. From the R
perspective, there are a handful of packages on CRAN that require C++14 or C++17. Last year, when I asked other R package maintainers why they hadn't
upgraded to newer C++ standards, the reasoning was that because many
packages try to support the 5 last versions of R, the Windows 3.6 issue is still limiting, at least if you hope to be a package that others depend on.
But I don't think this is an argument to prevent us from upgrading: R
package developers have been more likely to take on `arrow` as an optional
dependency, if at all, given the size/complexity of the build.

Here's a tactical suggestion: for 10.0, we could upgrade all* of our
packaging and CI jobs to build with C++17, but not add code that cannot compile on C++11 (hence the *, we will need to maintain at least one C++11 CI job to assure that). Then, assuming there are no adverse consequences, we can start upgrading the codebase to C++17, and 11.0 would be the first
release that can't build on C++11.

Neal

On Wed, Aug 17, 2022 at 3:56 AM Antoine Pitrou <anto...@python.org <mailto:anto...@python.org>> wrote:


 Le 17/08/2022 à 10:48, Jacob Wujciak a écrit :
> I am generally in favour of this proposal but would like to mention that
 we
> have to be able to build on MacOS 10.13 for the R package due to CRAN
 using
 > it.
 > The CRAN builder comes with:
> Apple LLVM version 10.0.0 (clang-1000.10.44.4); GNU Fortran (GCC) 8.2.0

Well, I can't say for sure, but according to this StackOverflow post it
 would probably be ok:
 <https://stackoverflow.com/a/54030282>

 Do we have CI for that macOS platform?
Do you know which XCode version that Apple LLVM version corresponds to?



Reply via email to