Any concrete plans after the GDB BoF?

Simon Marchi simark@simark.ca
Mon Oct 31 14:15:40 GMT 2022



On 10/31/22 09:37, Joel Brobecker via Gdb wrote:
>> I agree with all you said.  There is always some resistance related to
>> how clang-format handles this or that case.  In my opinion, that's minor
>> compared to the benefit of using it.  My opinion would be: make the
>> clang-format config that is closest to our style today, make a big
>> re-format, and carry on.
> 
> I agree with that. As long as the formatting is consistent, it might
> take a little getting used to, but I think we'll be happier if we don't
> have to spend time worrying about code formatting.
> 
> The one small obstacle, perhaps, might be if different versions of
> the tool format things differently. In that case, we might have to
> clearly state which version we expect the code to be formatted with.
> I am thinking of the kind of issues we get with the configury which
> is generated by the auto tools, which is so dependent on the version
> that even the distro-provided versions introduce spurious differences
> sometimes, as a result of which I have built my own set of vanilla
> autotools. If clang-format is tricky to build, we may have issues
> in that respect...

I would suggest mandating one version, and for that version to
continuously be the latest stable version of clang-format, like we do
for Black.  When a new version comes out, we don't have to wonder if /
when we move the next version.  Someone just pushes a patch re-formating
the code to the next version, if there are some differences.  It keeps
the overhead to a minimum.

So far I have never seen problems related to distro-specific patches, as
we have seen with autoconf.

For Debian/Ubuntu, it's easy to get the latest stable version through
apt.llvm.org.  I don't really know about other distros.  In any case,
it's easy to build and not long (not long like building the whole
llvm/clang):

$ git clone --depth 1 https://github.com/llvm/llvm-project.git --branch release/15.x
$ mkdir -p llvm-project/build
$ cd llvm-project/build
$ cmake -DLLVM_ENABLE_PROJECTS=clang -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" ../llvm -DCMAKE_INSTALL_PREFIX=/tmp/llvm
$ make -j 4 clang-format
$ make install-clang-format
$ /tmp/llvm/bin/clang-format --version
clang-format version 15.0.4 (https://github.com/llvm/llvm-project.git 08bd84e8a6358eb412fcef279f8875e2d69a3374)

Simon


More information about the Gdb mailing list