Re: [C++][Discuss] Switch to C++17

2021-06-11 Thread Jonathan Keane
Tying this together, it sounds like we have a few competing priorities and it would be good to come up with more formal criteria about what platforms + versions we support. We have a list of operating systems (and versions) that we support [1], and some of our client languages list versions that a

Re: [C++][Discuss] Switch to C++17

2021-06-09 Thread Neal Richardson
Responding to Antoine's specific questions: * 429 R packages on CRAN list C++11 as a SystemRequirement. These numbers may be a slight undercount because the SystemRequirements field is not machine-read. Some packages (e.g. https://github.com/eddelbuettel/rcppsimdjson/) appear to actually require C

Re: [C++][Discuss] Switch to C++17

2021-06-09 Thread Benjamin Kietzman
One improvement in read/writability which might be my favorite is the removal of SFINAE-controlled template instantiation in favor of compile time branching with `if constexpr`. Here's an example of that in the draft PR: https://github.com/apache/arrow/pull/10414/files#diff-058e32693ee8820a3d89674

Re: [C++][Discuss] Switch to C++17

2021-06-09 Thread Antoine Pitrou
Le 09/06/2021 à 19:25, Eduardo Ponce a écrit : Measurable metrics: * code size (source and binary) - measured in bytes [...] Qualitative metrics: * code structure/maintainability - how would it improve development? * code readability - ease of understanding details for new/current contribut

Re: [C++][Discuss] Switch to C++17

2021-06-09 Thread Eduardo Ponce
After the discussion in today's Arrow sync call, I do think it would be beneficial to come up with a formal process for deciding when is a "right time" for upgrading Arrow to a newer C++ standard. I suggest we could consider a set of general metrics/criteria that try to summarize the benefits and d

Re: [C++][Discuss] Switch to C++17

2021-06-09 Thread Antoine Pitrou
On Tue, 8 Jun 2021 17:37:30 -0500 Jonathan Keane wrote: > I've been digging a bit to try and put numbers on those users the Neal > mentions. Specifically, we know that requiring C++17 will mean that R > users on windows using versions of R before 4.0.0 will not be able to > compile/install arrow.

Re: [C++][Discuss] Switch to C++17

2021-06-09 Thread Antoine Pitrou
On Tue, 8 Jun 2021 14:39:27 -0700 Neal Richardson wrote: > I'm guessing there hasn't been opposition on this thread because the users > that this might affect aren't following this mailing list. > > I'd be interested to see which other major C++ projects out there have > bumped their requirement

Re: [C++][Discuss] Switch to C++17

2021-06-08 Thread Jonathan Keane
I've been digging a bit to try and put numbers on those users the Neal mentions. Specifically, we know that requiring C++17 will mean that R users on windows using versions of R before 4.0.0 will not be able to compile/install arrow. Although R version 3.6 is no longer supported by CRAN [1], many p

Re: [C++][Discuss] Switch to C++17

2021-06-08 Thread Neal Richardson
I'm guessing there hasn't been opposition on this thread because the users that this might affect aren't following this mailing list. I'd be interested to see which other major C++ projects out there have bumped their requirement to C++17, and how that experience was for everyone--the user communi

Re: [C++][Discuss] Switch to C++17

2021-06-08 Thread Antoine Pitrou
Hello, Note the change in the message topic :-) We now have a draft PR up to switch the C++ standard level to C++17. This allows very nice simplifications in the code, especially the use of elegant constructs that can replace some cumbersome uses of std::enable_if, SFINAE and other pain points.