[libcxx-commits] [PATCH] D100866: Add a buildkite for _LIBCPP_DEBUG=1.
Arthur O'Dwyer via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Apr 21 15:19:37 PDT 2021
Quuxplusone marked an inline comment as done.
Quuxplusone added inline comments.
================
Comment at: libcxx/cmake/caches/Generic-debug.cmake:1
+set(LIBCXX_TEST_PARAMS "std=c++2b" "debug_level=1" "additional_features=LIBCXX-DEBUG-FIXME" CACHE STRING "")
+set(LIBCXXABI_TEST_PARAMS "${LIBCXX_TEST_PARAMS}" CACHE STRING "")
----------------
ldionne wrote:
> This shouldn't set `std=c++2b` explicitly, I believe we should be using the default here.
I want to make sure that we're testing new features as soon as they're pull-requested; testing only C++14 mode wouldn't have caught the issues with `<span>`. Of course we could add debug-mode testing for multiple versions, like `std=c++03` AND `std=c++2b` and maybe something in between; I thought that was overkill, but I'd do it if you want it.
I //don't// think we want to be testing only C++14, though; I think we want //at least// C++20, and I see only upsides to testing C++2b (given that the goal here is to catch things at pull-request time, and people tend to pull-request mostly features that are enabled in '20 and '2b, not '14 anymore).
How about if I provide just `generic-cxx03-debug` and `generic-cxx2b-debug`, with those names? (This also helps to indicate that they're not the opposite of `generic-no-debug`, as brought up below.)
================
Comment at: libcxx/utils/ci/run-buildbot:518
+generic-debug)
+ export CC=clang-tot
+ export CXX=clang++-tot
----------------
ldionne wrote:
> Should be `clang` and `clang++`, like the other jobs?
>
> Also, please move close to the `generic-no-debug)` step.
(A) `clang-tot` turned out to be the magic incantation that makes the `std=c++2b` parameter work. Compare to the `generic-cxx2b)` case. (If we stopped trying to test 2b pull requests and went to 20 or earlier, then this could indeed be just `clang`.)
(B) Will do. But notice that `generic-no-debug` is actually talking about a build configuration that //doesn't build debug.cpp into the library//; it's not the "opposite" of `generic-debug`. All of `generic-no-{debug,filesystem,localization,random_device}` have the same structure of "normal compilation, just don't link in some .cpp files to the library."
================
Comment at: libcxx/utils/libcxx/test/config.py:484
self.cxx.compile_flags += ['-D_LIBCPP_DEBUG=%s' % debug_level]
+ self.config.available_features.add('debug_level_%s' % debug_level)
----------------
ldionne wrote:
> You can rebase on top of 3d8f2059b95d3e9d6785255949283b258d7ca121.
I'll do so. But actually I'm pretty sure that all the trouble I had was completely due to writing `clang`/`std=c++2b` instead of (either `clang-tot`/`std=c++2b` or `clang`/`std=c++20`) above.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D100866/new/
https://reviews.llvm.org/D100866
More information about the libcxx-commits
mailing list