[Rdkit-devel] The RDKit and modern C++
Open-Source Cheminformatics and Machine Learning
Brought to you by:
glandrum
|
From: Greg L. <gre...@gm...> - 2015-05-12 04:32:51
|
Dear all, I would like to start "allowing" the use of modern C++ (by which I mean C++ 11/14) in the RDKit. I think this is an important step both for code quality in the toolkit itself and for allowing us (the developers) to continue to learn and use modern tools. Who knows, it may even help with performance. :-) This move would, of course, break compatibility with some older compilers. Here's one view of compiler support for C++11 and some of C++14: http://en.cppreference.com/w/cpp/compiler_support It looks like g++ 4.8+ and VC++ 2013 are both fine with most/all C++11 features. VC++ 2015 does even better and g++5 is very solid. Clang, which is the default on the Mac and available for both windows and linux, has great support. The thing I am most concerned about is that RHEL6 only includes g++ 4.4. RHEL7 is fine, but I would guess that most large organizations aren't that up-to-date yet. I know of at least one (ahem) that is hasn't even finished the move to RHEL6. It looks like an "enterprise" alternative here is to use the RedHat Developer Toolset, but I don't have personal experience with that yet. Clang is always an option, but it something people will have to install on their own. Here's how I would propose that we proceed: - If no fundamental objections come up here, we'll create a document listing the C++ features that should not be used (yet) due to compiler compatibility. We'll also agree on a new baseline version of Boost that can be assumed to be present. - I will create a compatibility branch based on the current master. Bug fixes will be ported back onto this branch for the next release or two, but new features will not be added. - We can start using modern C++ on master. Best, -greg |