Cling & C++17 15character

Hi,
where can I find “The Statement of Cling C++98,11,14,17,20 Compliance”? :slight_smile:

Regards. Valeriy

I am not sure what is this “document”. May be @Axel or @vvassilev know.

cling supports all standards up to C++17 (with basically the same level of compliance as clang). C++20 is not supported yet.

Cheers,
Enrico

#include <filesystem
using filesystem= fs
fs::any_method

If that’s meant to say "I don’t seem to be able to use filesystem":

root [0] __cplusplus
(long) 201703
root [1] #include <filesystem>
root [2] std::filesystem::status("/foo").type()
(std::filesystem::file_type) (std::__1::__fs::filesystem::file_type::not_found) : (signed char) -1

I.e. make sure you actually built ROOT with C++17.

I found some issues in using <filesystem> with runtime modules on and in value-printing related types at the prompt, now tracked at Cannot import <filesystem> with runtime modules · Issue #9670 · root-project/root · GitHub and Crash when value-printing `path` objects · Issue #9672 · root-project/root · GitHub. Thank you for reporting @xtovo .

Cheers,
Enrico

Axel,
I would get rid of all methods which exist in C++20+ from ROOT7
Digging in ROOT sources I didnt mention any influance of C++20+ style.
Why are you still live in 98?

We don’t, Valeriy, and I’m happy to explain this:

  • We will not rewrite all of ROOT to have it use C++20. We can spend our time in a much more productive way.
  • We create new features with modern C++. The newest we can use is C++17, so that’s what RNTuple and other new code requires.
  • We generally don’t get rid of highly used old code (TTree, TList, etc), we just carry it along. There’s not point in deleting it: thousands of people still use it. Instead we use a carrot (!) to move them over to the new parts: performance, ease of use, clear interfaces, way better documentation, better interoperability (Python, other libraries, the standard lib etc).

Let’s focus on technical issues you have, Valeriy; the forum isn’t the best venue for philosophical discussions.

I just tried to find out where my beloved ROOT is going on.
No answer I got
In fact from ROOT I need only 3 things

  1. cling
  2. persistency
  3. RootJs like canvas

Everything else must be plugged as pip -i (BOOTing)
just make a quiz which parts of ROOT are used the most.
For sure there are a lot of dead code there, totally unknown, e.g. Root Gui Builder

Where Hercules to purge this stuff to smell ROOT like arose