C++ Logo


Advanced search

Re: [Tooling] Purview of SG15 ?

From: Corentin <corentin.jabot_at_[hidden]>
Date: Fri, 23 Feb 2018 09:24:50 +0100
Thanks for your replies.
I wasn't subscribed to the mailing list properly, so my reply may mess up
the reply chain a bit, sorry about that.

A few replies

> Is standardizing cmake as part of C++, at least within the mandate of
tools, something we can all agree on?
Definitively not. I think that cmake is terrible and that better options
exist. Of course people will disagree and a war will rage on. But, do we
actually need a standard build system ? I'm not convinced. We do, however,
need a standard package manager.

Maybe build systems can manage to talk to each others. CMake already has a
"server mode" mode to talk to IDEs. If that communication protocol could be
extended so that one can, for example, include a cmake project in a build2
or meson project, or the other way around, we wouldn't need to force a
build system on people.

I do think that's doable. After all, all build systems do the same thing,
they all have the same input and outputs.
The same protocol could be used for the IDE/build system integration as
well as hopefully build system/clangd integration ( or something similar if
other vendors wish to offer a tooling/indexing server)

> Well, taming the preprocessor is one reason why the Modules TS doesn't
support exporting macros.

And it's a great start ! I don't think however it is sufficient. Notably,
I'd like a way for a declaration ( or even definition ) to be part of the
AST even if that symbol is not included in the compiled TU in the current

I did some thinking on that particular issue and I'm interested in
gathering feedbacks

> If you are interested in C++ refactoring get in touch with me. we are
working for more than a decade on practical refactoring and for your
example of renaming the preprocessor is just one hurdle.
The others are intrinsic in the language and won't go away.

Do you have some concrete examples ? Clang tools are pretty reliable if
parts of your code are not #ifdef-ed away (even if writing them takes a bit
of care).
I'm hopping the performances issues, notably in regards to indexing and
IDEs integration, are solved by modules. I guess it will still be a few
years before we get significant data about that.

I do agree that even the simplest tool needs to be a full fledged compiler
front end, that's why clang is the best thing since sliced bread.

Received on 2018-02-23 09:24:52