Skip to content

Commit

Permalink
[libc++] Improve the format ignorelist generation.
Browse files Browse the repository at this point in the history
Several improvements
- Only add files that we actually want to format.
- Sort according to a fixed locale.

Some drive-by fixes
- Rename a text file, this avoids a filter exception.
- Adds a some missing source files extensions.
- Removes unused extensions hh, hxx, cc, and cxx from clang-format.

Reviewed By: philnik, #libc

Differential Revision: https://reviews.llvm.org/D144126
  • Loading branch information
mordante committed Feb 17, 2023
1 parent 22b564c commit f7f8645
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 11 deletions.
File renamed without changes.
2 changes: 1 addition & 1 deletion libcxx/utils/ci/run-buildbot
Expand Up @@ -187,7 +187,7 @@ check-format)
fi
${GIT_CLANG_FORMAT} \
--diff \
--extensions ',h,hh,hpp,hxx,c,cc,cxx,cpp' HEAD~1 \
--extensions ',h,hpp,c,cpp,inc,ipp' HEAD~1 \
-- $(find libcxx/{benchmarks,include,src}/ -type f | grep -vf libcxx/utils/data/ignore_format.txt) \
| tee ${BUILD_DIR}/clang-format.patch
# Check if the diff is empty, fail otherwise.
Expand Down
8 changes: 0 additions & 8 deletions libcxx/utils/data/ignore_format.txt
@@ -1,4 +1,3 @@
libcxx/benchmarks/CMakeLists.txt
libcxx/benchmarks/CartesianBenchmarks.h
libcxx/benchmarks/ContainerBenchmarks.h
libcxx/benchmarks/GenerateInput.h
Expand Down Expand Up @@ -29,16 +28,13 @@ libcxx/benchmarks/formatter_int.bench.cpp
libcxx/benchmarks/format_to.bench.cpp
libcxx/benchmarks/format_to_n.bench.cpp
libcxx/benchmarks/function.bench.cpp
libcxx/benchmarks/lit.cfg.py
libcxx/benchmarks/lit.site.cfg.py.in
libcxx/benchmarks/map.bench.cpp
libcxx/benchmarks/ordered_set.bench.cpp
libcxx/benchmarks/random.bench.cpp
libcxx/benchmarks/string.bench.cpp
libcxx/benchmarks/stringstream.bench.cpp
libcxx/benchmarks/unordered_set_operations.bench.cpp
libcxx/benchmarks/vector_operations.bench.cpp
libcxx/include/CMakeLists.txt
libcxx/include/__algorithm/binary_search.h
libcxx/include/__algorithm/clamp.h
libcxx/include/__algorithm/comp.h
Expand Down Expand Up @@ -312,7 +308,6 @@ libcxx/include/__concepts/swappable.h
libcxx/include/__concepts/totally_ordered.h
libcxx/include/condition_variable
libcxx/include/__config
libcxx/include/__config_site.in
libcxx/include/__coroutine/coroutine_handle.h
libcxx/include/__coroutine/coroutine_traits.h
libcxx/include/__coroutine/noop_coroutine_handle.h
Expand Down Expand Up @@ -470,7 +465,6 @@ libcxx/include/__iterator/sortable.h
libcxx/include/__iterator/unreachable_sentinel.h
libcxx/include/__iterator/wrap_iter.h
libcxx/include/latch
libcxx/include/libcxx.imp
libcxx/include/limits
libcxx/include/limits.h
libcxx/include/list
Expand Down Expand Up @@ -506,7 +500,6 @@ libcxx/include/__memory/temp_value.h
libcxx/include/__memory/uninitialized_algorithms.h
libcxx/include/__memory/unique_ptr.h
libcxx/include/__memory/uses_allocator.h
libcxx/include/module.modulemap.in
libcxx/include/mutex
libcxx/include/__mutex_base
libcxx/include/new
Expand Down Expand Up @@ -789,7 +782,6 @@ libcxx/include/vector
libcxx/include/__verbose_abort
libcxx/include/wchar.h
libcxx/include/wctype.h
libcxx/src/CMakeLists.txt
libcxx/src/any.cpp
libcxx/src/atomic.cpp
libcxx/src/barrier.cpp
Expand Down
15 changes: 13 additions & 2 deletions libcxx/utils/generate_ignore_format.sh
Expand Up @@ -7,11 +7,22 @@ if [ -z "${CLANG_FORMAT}" ]; then
fi

rm libcxx/utils/data/ignore_format.txt
for file in $(find libcxx/{benchmarks,include,src}/ -type f); do
# This uses the same matches as the check-format CI step.
#
# Since it's hard to match empty extensions the following
# method is used, remove all files with an extension, then
# add the list of extensions that should be formatted.
for file in $(find libcxx/{benchmarks,include,src}/ -type f -not -name '*.*' -or \( \
-name "*.h" -or -name "*.hpp" -or \
-name "*.c" -or -name "*.cpp" -or \
-name "*.inc" -or -name "*.ipp" \
\) ); do

${CLANG_FORMAT} --Werror --dry-run ${file} >& /dev/null
if [ $? != 0 ]; then
echo ${file} >> libcxx/utils/data/ignore_format.txt
fi
done

sort libcxx/utils/data/ignore_format.txt -d -o libcxx/utils/data/ignore_format.txt
# Force sorting not to depend on the system's locale.
LC_ALL=C sort libcxx/utils/data/ignore_format.txt -d -o libcxx/utils/data/ignore_format.txt

0 comments on commit f7f8645

Please sign in to comment.