Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[libcxx] Use debug() instead of note() for substitutions#193667

Merged
vitalybuka merged 8 commits intomainfrom
users/vitalybuka/spr/libcxx-use-debug-instead-of-note-for-substitutions-and-features
Apr 23, 2026
Merged

[libcxx] Use debug() instead of note() for substitutions#193667
vitalybuka merged 8 commits intomainfrom
users/vitalybuka/spr/libcxx-use-debug-instead-of-note-for-substitutions-and-features

Conversation

@vitalybuka
Copy link
Copy Markdown
Collaborator

@vitalybuka vitalybuka commented Apr 23, 2026

This reduces the noise in the lit output when running tests like this:

llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{cxx} substitution: 'bin/clang++'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{flags} substitution: ' --target=x86_64-unknown-linux-gnu'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{compile_flags} substitution: '-nostdinc++ -I %{include} -D_LIBUNWIND_HAVE_GETAUXVAL -funwind-tables -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -flax-vector-conversions=none -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -Wuser-defined-warnings'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{link_flags} substitution: '-L %{lib} -Wl,-rpath,%{lib} -lunwind -Wl,--export-dynamic -ldl -latomic'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{benchmark_flags} substitution: ''
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{exec} substitution: '%{executor} --execdir %{temp} -- '
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) All available features: add-latomic-workaround, buildhost=linux, c++26, can-create-symlinks, character-conversion-warnings, clang, clang-23, clang-23.0, clang-23.0.0, diagnose-if-support, enable-benchmarks=run, gcc-style-warnings, has-fblocks, has-fconstexpr-steps, has-filecheck, has-unix-headers, host-has-gdb-with-python, large_tests, libcpp-has-no-experimental-hardening-observe-semantic, libcpp-has-no-experimental-optional-iterator, libcpp-has-no-experimental-syncstream, libcpp-has-no-experimental-tzdb, libcpp-has-no-incomplete-pstl, linux, locale.cs_CZ.ISO8859-2, locale.en_US.UTF-8, locale.fr_CA.ISO8859-1, locale.fr_FR.UTF-8, locale.ja_JP.UTF-8, locale.ru_RU.UTF-8, locale.zh_CN.UTF-8, long_tests, objcopy-available, objective-c++, optimization=none, std-at-least-c++03, std-at-least-c++11, std-at-least-c++14, std-at-least-c++17, std-at-least-c++20, std-at-least-c++23, std-at-least-c++26, stdlib=libc++, stdlib=llvm-libc++, target=x86_64-unknown-linux-gnu, verify-support, win32-broken-utf8-wchar-ctype
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{cxx} substitution: 'bin/clang++'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{flags} substitution: '-pthread --target=x86_64-unknown-linux-gnu'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{compile_flags} substitution: '-nostdinc++ -I %{target-include-dir} -I %{include-dir} -I %{libcxx-dir}/test/support -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -flax-vector-conversions=none -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -Wuser-defined-warnings'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{link_flags} substitution: '-lc++experimental -nostdlib++ -L %{lib-dir} -Wl,-rpath,%{lib-dir} -lc++ -latomic'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{benchmark_flags} substitution: '-I runtimes/runtimes-bins/libcxx/test/benchmarks/google-benchmark/include -L runtimes/runtimes-bins/libcxx/test/benchmarks/google-benchmark/lib -L runtimes/runtimes-bins/libcxx/test/benchmarks/google-benchmark/lib64 -l benchmark'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{exec} substitution: '%{executor} --execdir %{temp} -- '
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) All available features: add-latomic-workaround, buildhost=linux, c++26, c++experimental, can-create-symlinks, character-conversion-warnings, clang, clang-23, clang-23.0, clang-23.0.0, diagnose-if-support, enable-benchmarks=no, gcc-style-warnings, has-1024-bit-atomics, has-64-bit-atomics, has-fblocks, has-fconstexpr-steps, has-filecheck, has-unix-headers, host-has-gdb-with-python, large_tests, libcpp-abi-version=1, libcpp-hardening-mode=extensive, libcpp-has-no-availability-markup, libcpp-has-thread-api-pthread, linux, locale.cs_CZ.ISO8859-2, locale.en_US.UTF-8, locale.fr_CA.ISO8859-1, locale.fr_FR.UTF-8, locale.ja_JP.UTF-8, locale.ru_RU.UTF-8, locale.zh_CN.UTF-8, objective-c++, optimization=none, std-at

Note: "All available features" is still preserved.

Can be re-enabled runtime with LIT_OPTS=-debug

Created using spr 1.3.7
@vitalybuka vitalybuka requested a review from a team as a code owner April 23, 2026 06:03
@llvmbot llvmbot added the libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. label Apr 23, 2026
@vitalybuka vitalybuka requested a review from ldionne April 23, 2026 06:03
@llvmbot
Copy link
Copy Markdown
Member

llvmbot commented Apr 23, 2026

@llvm/pr-subscribers-libcxx

Author: Vitaly Buka (vitalybuka)

Changes

This reduces the noise in the lit output when running tests like this:

llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{cxx} substitution: 'bin/clang++'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{flags} substitution: ' --target=x86_64-unknown-linux-gnu'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{compile_flags} substitution: '-nostdinc++ -I %{include} -D_LIBUNWIND_HAVE_GETAUXVAL -funwind-tables -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -flax-vector-conversions=none -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -Wuser-defined-warnings'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{link_flags} substitution: '-L %{lib} -Wl,-rpath,%{lib} -lunwind -Wl,--export-dynamic -ldl -latomic'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{benchmark_flags} substitution: ''
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{exec} substitution: '%{executor} --execdir %{temp} -- '
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) All available features: add-latomic-workaround, buildhost=linux, c++26, can-create-symlinks, character-conversion-warnings, clang, clang-23, clang-23.0, clang-23.0.0, diagnose-if-support, enable-benchmarks=run, gcc-style-warnings, has-fblocks, has-fconstexpr-steps, has-filecheck, has-unix-headers, host-has-gdb-with-python, large_tests, libcpp-has-no-experimental-hardening-observe-semantic, libcpp-has-no-experimental-optional-iterator, libcpp-has-no-experimental-syncstream, libcpp-has-no-experimental-tzdb, libcpp-has-no-incomplete-pstl, linux, locale.cs_CZ.ISO8859-2, locale.en_US.UTF-8, locale.fr_CA.ISO8859-1, locale.fr_FR.UTF-8, locale.ja_JP.UTF-8, locale.ru_RU.UTF-8, locale.zh_CN.UTF-8, long_tests, objcopy-available, objective-c++, optimization=none, std-at-least-c++03, std-at-least-c++11, std-at-least-c++14, std-at-least-c++17, std-at-least-c++20, std-at-least-c++23, std-at-least-c++26, stdlib=libc++, stdlib=llvm-libc++, target=x86_64-unknown-linux-gnu, verify-support, win32-broken-utf8-wchar-ctype
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{cxx} substitution: 'bin/clang++'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{flags} substitution: '-pthread --target=x86_64-unknown-linux-gnu'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{compile_flags} substitution: '-nostdinc++ -I %{target-include-dir} -I %{include-dir} -I %{libcxx-dir}/test/support -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -flax-vector-conversions=none -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -Wuser-defined-warnings'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{link_flags} substitution: '-lc++experimental -nostdlib++ -L %{lib-dir} -Wl,-rpath,%{lib-dir} -lc++ -latomic'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{benchmark_flags} substitution: '-I runtimes/runtimes-bins/libcxx/test/benchmarks/google-benchmark/include -L runtimes/runtimes-bins/libcxx/test/benchmarks/google-benchmark/lib -L runtimes/runtimes-bins/libcxx/test/benchmarks/google-benchmark/lib64 -l benchmark'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{exec} substitution: '%{executor} --execdir %{temp} -- '
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) All available features: add-latomic-workaround, buildhost=linux, c++26, c++experimental, can-create-symlinks, character-conversion-warnings, clang, clang-23, clang-23.0, clang-23.0.0, diagnose-if-support, enable-benchmarks=no, gcc-style-warnings, has-1024-bit-atomics, has-64-bit-atomics, has-fblocks, has-fconstexpr-steps, has-filecheck, has-unix-headers, host-has-gdb-with-python, large_tests, libcpp-abi-version=1, libcpp-hardening-mode=extensive, libcpp-has-no-availability-markup, libcpp-has-thread-api-pthread, linux, locale.cs_CZ.ISO8859-2, locale.en_US.UTF-8, locale.fr_CA.ISO8859-1, locale.fr_FR.UTF-8, locale.ja_JP.UTF-8, locale.ru_RU.UTF-8, locale.zh_CN.UTF-8, objective-c++, optimization=none, std-at

Can be re-enabled runtime with LIT_OPTS=-debug


Full diff: https://github.com/llvm/llvm-project/pull/193667.diff

1 Files Affected:

  • (modified) libcxx/utils/libcxx/test/config.py (+2-2)
diff --git a/libcxx/utils/libcxx/test/config.py b/libcxx/utils/libcxx/test/config.py
index c1bba1167d9a3..cfc7d2c3cd7d4 100644
--- a/libcxx/utils/libcxx/test/config.py
+++ b/libcxx/utils/libcxx/test/config.py
@@ -52,7 +52,7 @@ def configure(parameters, features, config, lit_config):
 
     # Print the basic substitutions
     for sub in ("%{cxx}", "%{flags}", "%{compile_flags}", "%{link_flags}", "%{benchmark_flags}", "%{exec}"):
-        note("Using {} substitution: '{}'".format(sub, _getSubstitution(sub, config.substitutions)))
+        debug("Using {} substitution: '{}'".format(sub, _getSubstitution(sub, config.substitutions)))
 
     # Print all available features
-    note("All available features: {}".format(", ".join(sorted(config.available_features))))
+    debug("All available features: {}".format(", ".join(sorted(config.available_features))))

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 23, 2026

⚠️ Python code formatter, darker found issues in your code. ⚠️

You can test this locally with the following command:
darker --check --diff -r origin/main...HEAD libcxx/utils/libcxx/test/config.py

⚠️
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing origin/main to the base branch/commit you want to compare against.
⚠️

View the diff from darker here.
--- config.py	2026-04-23 19:44:41.000000 +0000
+++ config.py	2026-04-23 19:45:45.979564 +0000
@@ -49,10 +49,21 @@
                     action.pretty(config, lit_config.params), feature.pretty(config)
                 )
             )
 
     # Print the basic substitutions
-    for sub in ("%{cxx}", "%{flags}", "%{compile_flags}", "%{link_flags}", "%{benchmark_flags}", "%{exec}"):
-        debug("Using {} substitution: '{}'".format(sub, _getSubstitution(sub, config.substitutions)))
+    for sub in (
+        "%{cxx}",
+        "%{flags}",
+        "%{compile_flags}",
+        "%{link_flags}",
+        "%{benchmark_flags}",
+        "%{exec}",
+    ):
+        debug(
+            "Using {} substitution: '{}'".format(
+                sub, _getSubstitution(sub, config.substitutions)
+            )
+        )
 
     # Print all available features
     note("All available features: {}".format(", ".join(sorted(config.available_features))))

Created using spr 1.3.7

[skip ci]
Created using spr 1.3.7
Created using spr 1.3.7

[skip ci]
Created using spr 1.3.7
@vitalybuka vitalybuka changed the base branch from users/vitalybuka/spr/main.libcxx-use-debug-instead-of-note-for-substitutions-and-features to users/vitalybuka/spr/libcxxtest-format-configpy April 23, 2026 06:44
Copy link
Copy Markdown
Contributor

@philnik777 philnik777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't mind putting the expansions in debug, but I'd really like to keep the available features. I use that too often to figure out what exactly is going on to abandon that into a relatively obscure flag.

Comment thread libcxx/utils/libcxx/test/config.py Outdated
@vitalybuka vitalybuka requested a review from philnik777 April 23, 2026 16:07
@vitalybuka
Copy link
Copy Markdown
Collaborator Author

vitalybuka commented Apr 23, 2026

I don't mind putting the expansions in debug, but I'd really like to keep the available features. I use that too often to figure out what exactly is going on to abandon that into a relatively obscure flag.

Some people do check-all, with manyLLVM projects
at the moment only libc++ announce features (e.g I disabled compiler-rt one like a year ago)
if we let everyone do this, it will be full console of spam

@philnik777
Copy link
Copy Markdown
Contributor

I don't mind putting the expansions in debug, but I'd really like to keep the available features. I use that too often to figure out what exactly is going on to abandon that into a relatively obscure flag.

Some people do check-all, with manyLLVM projects
at the moment only libc++ announce features (e.g I disabled compiler-rt one like a year ago)
if we let everyone do this, it will be full console of spam

It's one line of output. That's not exactly significant amounts of noise. Even if every subproject did that it'd be like 20 lines at most. It didn't bother anybody for at least the last five years, while I probably used that output hundreds of times for debugging at this point.

@vitalybuka vitalybuka changed the base branch from users/vitalybuka/spr/libcxxtest-format-configpy to main April 23, 2026 18:45
Created using spr 1.3.7
@vitalybuka
Copy link
Copy Markdown
Collaborator Author

vitalybuka commented Apr 23, 2026

I don't mind putting the expansions in debug, but I'd really like to keep the available features. I use that too often to figure out what exactly is going on to abandon that into a relatively obscure flag.

Some people do check-all, with manyLLVM projects
at the moment only libc++ announce features (e.g I disabled compiler-rt one like a year ago)
if we let everyone do this, it will be full console of spam

It's one line of output. That's not exactly significant amounts of noise. Even if every subproject did that it'd be like 20 lines at most. It didn't bother anybody for at least the last five years, while I probably used that output hundreds of times for debugging at this point.

on the HEAD now:

LIT_FILTER=time.zone.members ninja -C ../out/ check-all

...
build noise
...

  [318/319] Running all regression tests
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using split-file: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/split-file
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using yaml2obj: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/yaml2obj
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using llvm-objcopy: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/llvm-objcopy
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using ld.lld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/ld.lld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using lld-link: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/lld-link
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using ld64.lld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/ld64.lld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using wasm-ld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/wasm-ld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using clang: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/clang
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using clang: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/clang
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using ld.lld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/ld.lld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using lld-link: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/lld-link
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using ld64.lld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/ld64.lld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using wasm-ld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/wasm-ld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using clang: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/clang
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using clang: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/clang
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using ld.lld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/ld.lld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{cxx} substitution: '/usr/local/google/home/vitalybuka/src/llvm.git/out/bin/clang++'
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{flags} substitution: ' --target=x86_64-unknown-linux-gnu'
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{compile_flags} substitution: '-nostdinc++ -I %{include} -D_LIBUNWIND_HAVE_GETAUXVAL -funwind-tables -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -flax-vector-conversions=none -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -Wuser-defined-warnings'
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{link_flags} substitution: '-L %{lib} -Wl,-rpath,%{lib} -lunwind -Wl,--export-dynamic -ldl -latomic'
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{benchmark_flags} substitution: ''
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{exec} substitution: '%{executor} --execdir %{temp} -- '
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) All available features: add-latomic-workaround, buildhost=linux, c++26, can-create-symlinks, character-conversion-warnings, clang, clang-23, clang-23.0, clang-23.0.0, diagnose-if-support, enable-benchmarks=run, gcc-style-warnings, has-fblocks, has-fconstexpr-steps, has-filecheck, has-unix-headers, host-has-gdb-with-python, large_tests, libcpp-has-no-experimental-hardening-observe-semantic, libcpp-has-no-experimental-optional-iterator, libcpp-has-no-experimental-syncstream, libcpp-has-no-experimental-tzdb, libcpp-has-no-incomplete-pstl, linux, locale.cs_CZ.ISO8859-2, locale.en_US.UTF-8, locale.fr_CA.ISO8859-1, locale.fr_FR.UTF-8, locale.ja_JP.UTF-8, locale.ru_RU.UTF-8, locale.zh_CN.UTF-8, long_tests, objcopy-available, objective-c++, optimization=none, std-at-least-c++03, std-at-least-c++11, std-at-least-c++14, std-at-least-c++17, std-at-least-c++20, std-at-least-c++23, std-at-least-c++26, stdlib=libc++, stdlib=llvm-libc++, target=x86_64-unknown-linux-gnu, verify-support, win32-broken-utf8-wchar-ctype
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{cxx} substitution: '/usr/local/google/home/vitalybuka/src/llvm.git/out/bin/clang++'
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{flags} substitution: '-pthread --target=x86_64-unknown-linux-gnu'
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{compile_flags} substitution: '-nostdinc++ -I %{target-include-dir} -I %{include-dir} -I %{libcxx-dir}/test/support -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -flax-vector-conversions=none -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -Wuser-defined-warnings'
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{link_flags} substitution: '-lc++experimental -nostdlib++ -L %{lib-dir} -Wl,-rpath,%{lib-dir} -lc++ -latomic'
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{benchmark_flags} substitution: '-I /usr/local/google/home/vitalybuka/src/llvm.git/out/runtimes/runtimes-bins/libcxx/test/benchmarks/google-benchmark/include -L /usr/local/google/home/vitalybuka/src/llvm.git/out/runtimes/runtimes-bins/libcxx/test/benchmarks/google-benchmark/lib -L /usr/local/google/home/vitalybuka/src/llvm.git/out/runtimes/runtimes-bins/libcxx/test/benchmarks/google-benchmark/lib64 -l benchmark'
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{exec} substitution: '%{executor} --execdir %{temp} -- '
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) All available features: add-latomic-workaround, buildhost=linux, c++26, c++experimental, can-create-symlinks, character-conversion-warnings, clang, clang-23, clang-23.0, clang-23.0.0, diagnose-if-support, enable-benchmarks=no, gcc-style-warnings, has-1024-bit-atomics, has-64-bit-atomics, has-fblocks, has-fconstexpr-steps, has-filecheck, has-unix-headers, host-has-gdb-with-python, large_tests, libcpp-abi-version=1, libcpp-hardening-mode=extensive, libcpp-has-no-availability-markup, libcpp-has-thread-api-pthread, linux, locale.cs_CZ.ISO8859-2, locale.en_US.UTF-8, locale.fr_CA.ISO8859-1, locale.fr_FR.UTF-8, locale.ja_JP.UTF-8, locale.ru_RU.UTF-8, locale.zh_CN.UTF-8, objective-c++, optimization=none, std-at-least-c++03, std-at-least-c++11, std-at-least-c++14, std-at-least-c++17, std-at-least-c++20, std-at-least-c++23, std-at-least-c++26, stdlib=libc++, stdlib=llvm-libc++, target=x86_64-unknown-linux-gnu, verify-support
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using ld.lld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/ld.lld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using lld-link: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/lld-link
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using ld64.lld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/ld64.lld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using wasm-ld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/wasm-ld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using ld.lld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/ld.lld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using lld-link: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/lld-link
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using ld64.lld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/ld64.lld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using wasm-ld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/wasm-ld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using ld.lld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/ld.lld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using lld-link: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/lld-link
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using ld64.lld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/ld64.lld
llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using wasm-ld: /usr/local/google/home/vitalybuka/src/llvm.git/out/bin/wasm-ld

Testing Time: 4.89s

Total Discovered Tests: 119695
  Excluded   : 119683 (99.99%)
  Unsupported:      3 (0.00%)
  Passed     :      9 (0.01%)

With #193667 (and #193662)

LIT_FILTER=time.zone.members ninja -C ../out/ check-all
...
build noise
...

[311/312] Running all regression tests

Testing Time: 4.96s

Total Discovered Tests: 119694
  Excluded   : 119682 (99.99%)
  Unsupported:      3 (0.00%)
  Passed     :      9 (0.01%)

Hopefully we can avoid some unnecessary rebuilds steps, but limit 'build noise'

@philnik777
Copy link
Copy Markdown
Contributor

@vitalybuka

  1. How long is the "CMake noise"? I have a feeling that's like 90% of the output, which makes this comparison very unrepresentative of the actual readability improvement.
  2. I'm only asking to keep llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) All available features: add-latomic-workaround, ..., not the rest.

@vitalybuka
Copy link
Copy Markdown
Collaborator Author

Although this isn't a strict blocker, the daily visual noise is quite distracting—arguably more so than the occasional sub-optionally formatted file. I would really appreciate it if this change could be accepted.

As an added bonus, it should help us save on input tokens! :)

@vitalybuka
Copy link
Copy Markdown
Collaborator Author

@vitalybuka

  1. How long is the "CMake noise"? I have a feeling that's like 90% of the output, which makes this comparison very unrepresentative of the actual readability improvement.

with CMAKE_INSTALL_MESSAGE=NEVER for incremental builds as it's rather 60% (on the HEAD for my setup)
And build noise should be possible to improve, but obviously not in this PR

  1. I'm only asking to keep llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) All available features: add-latomic-workaround, ..., not the rest.

But then it's not perfect (talking about "Running all regression tests" step) :)

Created using spr 1.3.7
@vitalybuka
Copy link
Copy Markdown
Collaborator Author

extracted featueres into #193827 in case you'd like to reconsider latter

@philnik777
Copy link
Copy Markdown
Contributor

@vitalybuka

  1. How long is the "CMake noise"? I have a feeling that's like 90% of the output, which makes this comparison very unrepresentative of the actual readability improvement.

with CMAKE_INSTALL_MESSAGE=NEVER for incremental builds as it's rather 60% (on the HEAD for my setup) And build noise should be possible to improve, but obviously not in this PR

  1. I'm only asking to keep llvm-lit: /usr/local/google/home/vitalybuka/src/llvm.git/llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) All available features: add-latomic-workaround, ..., not the rest.

But then it's not perfect (talking about "Running all regression tests" step) :)

Why do you care so much that there is no output at all? I care that I get the information I need on a regular basis, which this patch would remove. I looked at that literally today. That would make it significantly worse to debug problems in the lit configuration with very limited benefit that I can see.

Copy link
Copy Markdown
Contributor

@philnik777 philnik777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With the title and description updated I'm fine with not printing the substitutions by default.

@vitalybuka vitalybuka changed the title [libcxx] Use debug() instead of note() for substitutions and features [libcxx] Use debug() instead of note() for substitutions Apr 23, 2026
@vitalybuka vitalybuka merged commit ad4cd22 into main Apr 23, 2026
14 of 20 checks passed
@vitalybuka vitalybuka deleted the users/vitalybuka/spr/libcxx-use-debug-instead-of-note-for-substitutions-and-features branch April 23, 2026 19:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants