For R's official support for various C++ versions, see
https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Using-C_002b_002b11-code
and below. Empirically, C++ > 11 is not really used: there are only 6
packages on CRAN that declare it as a requirement, and none of those
are widely used.

$ R
> df <- tools::CRAN_package_db()
> table(grepl("C++11", df$SystemRequirements, fixed=TRUE))

FALSE  TRUE
14502   275
> table(grepl("C++14", df$SystemRequirements, fixed=TRUE))

FALSE  TRUE
14771     6
> df[grepl("C++14", df$SystemRequirements, fixed=TRUE), c("Package", "Reverse 
> depends", "Reverse imports", "Reverse suggests")]
        Package Reverse depends Reverse imports Reverse suggests
6071   IsoSpecR            <NA>            <NA>             <NA>
8004   multinet            <NA>            <NA>             <NA>
8200     ndjson         streamR            <NA>             <NA>
10487 RcppAlgos            <NA>         STraTUS  bigIntegerAlgos
11115    rmdcev            <NA>            <NA>             <NA>
14391    walker            <NA>            <NA>             <NA>
> table(grepl("C++17", df$SystemRequirements, fixed=TRUE))

FALSE
14777

On Fri, Aug 16, 2019 at 8:32 AM Antoine Pitrou <anto...@python.org> wrote:
>
>
> Le 16/08/2019 à 17:11, Hatem Helal a écrit :
> > Hi all,
> >
> > I ran into a surprising (to me) limitation when working on an issue [1].  
> > To summarize, supporting the manylinux1 standard ties Arrow development to 
> > gcc 4.8.x which is technically not C++11 complete.  This brought on few 
> > questions for me:
> >
> > * What are the pre-conditions for dropping manylinux1 / gcc 4.8.x?  I found 
> > an open task to remove support altogether [2] .
>
> Not much IMHO.   1) The people who have been producing Python wheels up
> to now have decided to stop spending valuable time on hairy binary
> compatibility and distribution issues.  2) Last I tried, manylinux2010
> works and someone who's interested in reviving Python Linux wheels can
> probably produce such wheels instead of manylinux1.
>
> So IMHO we can drop manylinux1 support right now.  However:
>
> > * What is needed to move to C++ 14?
>
> Make sure that all important toolchains support it.  Unfortunately, I
> don't think that's the case for the MinGW version that's used to build R
> packages on Windows.  It's using gcc 4.9.3.
>
> See e.g.
> https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/26742063/job/7k57qamlpb5cchfh?fullLog=true#L666
>
> > * Would either of these changes normally require a PMC-driven vote?
>
> I don't think dropping manylinux1 needs a PMC vote.  It's simply a case
> of a high-cost recurring activity that doesn't find a volunteer anymore.
>  The PMC can't simply claim that we continue supporting manylinux1 if
> there's nobody around to do the actual work.
>
> As for switching the baseline to C++14, it would probably require a vote
> indeed.  And I expect a -1 if the R Windows build can't be migrated to a
> newer compiler.
>
> Regards
>
> Antoine.

Reply via email to