hosseinmoein / DataFrame

C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and contiguous memory storage
https://hosseinmoein.github.io/DataFrame/
BSD 3-Clause "New" or "Revised" License
2.53k stars 313 forks source link

Would it be possible to assemble a table of version/compiler compatibility? #329

Closed axrt closed 1 week ago

axrt commented 1 month ago

First of all thank you for the library, it is the long sought missing piece of C++ ecosystem that I have been looking for!

Question (in a form of offering to help): what would the range of compilers and compiler versions (roughly) be to do i grid-search-like table of compatibility? Would it be feasible to try compiling in different environments, or is it strictly 23 and that's it? I could do that and issue a pr against readme if you think this makes sense.

Tldr below: We use some ancient gcc at work (healthcare, so things have to be solid as a rock), but porting code from R and python is so difficult without proper dataframe functionality that it is a constant pain. I poked around randomly, and I think some earlier versions did compile with c++17. That is still too new for us, but at least worth considering. Maybe, if the functionality of the earlier versions of DataFrame is enough, we could go with earlier with the compiler that we have. Lmk, thanks again!

hosseinmoein commented 1 month ago

Yes, the current master branch requires C++23. But the past releases started from C++17 and up. You can look at the release notes to find out when requirements changed. I noted complier changes in release notes.

C++17 was a while ago, but see release notes

axrt commented 1 month ago

Ok, makes sense, let me try different envs 👍

axrt commented 1 month ago

Sorry, took me very long to get to this.. Here are some results, certainly not a pr material, but could save people some time.

OS GCC Version C++ Standard Support DataFrame Version Compiles Comment
Ubuntu 20.04 9.4.0 C++14 to C++17 3.3.0 No
Ubuntu 20.04 9.4.0 C++14 to C++17 3.1.0 No
Ubuntu 20.04 9.4.0 C++14 to C++17 2.3.0 No
Ubuntu 20.04 9.4.0 C++14 to C++17 2.2.0 No
Ubuntu 20.04 9.4.0 C++14 to C++17 2.1.0 Yes
Ubuntu 20.04 9.4.0 C++14 to C++17 2.0.0 No Tests do not seem to compile well
Ubuntu 20.04 9.4.0 C++14 to C++17 1.22.0 Yes
Ubuntu 22.04 11.2.0 C++17 to C++20 3.3.0 No
Ubuntu 22.04 11.2.0 C++17 to C++20 3.1.0 No
Ubuntu 22.04 11.2.0 C++17 to C++20 2.3.0 No
Ubuntu 22.04 11.2.0 C++17 to C++20 2.2.0 Yes
Ubuntu 22.04 11.2.0 C++17 to C++20 2.1.0 Yes
Ubuntu 22.04 11.2.0 C++17 to C++20 2.0.0 No Tests do not seem to compile well
Ubuntu 22.04 11.2.0 C++17 to C++20 1.22.0 Yes
Ubuntu 24.04 13.0.0 C++20 to C++23 3.3.0 Yes Hangs at building step, consumes 10GB RAM, compiles by end of day
Ubuntu 24.04 13.0.0 C++20 to C++23 3.1.0 No Tests do not seem to compile well
Ubuntu 24.04 13.0.0 C++20 to C++23 2.3.0 Yes
Ubuntu 24.04 13.0.0 C++20 to C++23 2.2.0 Yes
Ubuntu 24.04 13.0.0 C++20 to C++23 2.1.0 Yes
Ubuntu 24.04 13.0.0 C++20 to C++23 2.0.0 No Tests do not seem to compile well
Ubuntu 24.04 13.0.0 C++20 to C++23 1.22.0 Yes
Rockylinux 9.3 11.4.1 C++17 to C++20 3.3.0 No
Rockylinux 9.3 11.4.1 C++17 to C++20 3.1.0 No
Rockylinux 9.3 11.4.1 C++17 to C++20 2.3.0 No
Rockylinux 9.3 11.4.1 C++17 to C++20 2.2.0 Yes
Rockylinux 9.3 11.4.1 C++17 to C++20 2.1.0 Yes
Rockylinux 9.3 11.4.1 C++17 to C++20 2.0.0 No Tests do not seem to compile well
Rockylinux 9.3 11.4.1 C++17 to C++20 1.22.0 Yes

I used docker and official images for ubuntu and rocky. Also, noticed the recent reddit post, I guess, safe to say the release works well with gcc13.

Hope this helps!

hosseinmoein commented 1 month ago

Thanks for the effort