On 12/6/22 16:03, David Blaikie wrote:
Over in https://reviews.llvm.org/D137059 we're discussing the naming
of a clang flag - would be good to have it be consistent with GCC.
The functionality is to name the BMI (.pcm in Clang's parlance) output
file when compiling a C++20 module.
Current proposal is to use `-fsave-std-cxx-module-file=` which is
certainly precise, but maybe a bit verbose. Clang has some other flags
related to modules that skip the std/cxx parts, and are just
`-fmodule-*` or `-fmodules-*`, so there's some precedent for that too.
Do GCC folks have any veto votes (is the currently proposed name
especially objectionable/wouldn't be acceptable in GCC) or preferences
(suggestions to add to the pool)?
I think the suggested option name is problematic for a number of additional
reasons:
1) 'save' -- does it *cause* the bmi to be saved, or is that actually controlled
by other options? (I suspect the latter)
2) 'std' -- why is this there. There's only one C++ std, with different
variants thereof being temporally selectable.
3) 'cxx' -- why not 'c++'? Let's not let this transliteration of + to x get
into the options -- it hasn't in '-std=c++20' for example.
Might I suggest something more like '-fmodule-output='? That collates nicely
with other -fmodule-$FOO options, and the 'output' part is similar to the
mnemonic '-o' for the regular output file naming. (Incidentally, as clang
treats the BMI as a step in the compilation pipeline, what do you do if you just
want compilation to produce the BMI and no assembly artifact? Does '-o' name
the BMI in that case?)
nathan
--
Nathan Sidwell