-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Update llvm-project and toolset: MSVC Compiler 19.50.35719 #5888
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
tests/CMakeLists.txt: Find Python immediately, so it's available when we add_subdirectory(libcxx).
tests/libcxx/CMakeLists.txt: Run check_libcxx_paths.py, and if it fails, make configuring fail.
tools/scripts/check_libcxx_paths.py:
Extract expected_results_txt.
If we fail, print expected_results_txt to clearly indicate which file needs to be fixed.
Print failures to stderr so they're clearly distinguished from normal CMake output (e.g. if it's being redirected).
Success is silence.
```
D:\GitHub\STL>cmake --preset x64
-- Found clang-format: C:/Program Files/Microsoft Visual Studio/18/Insiders/VC/Tools/Llvm/x64/bin/clang-format.exe (found expected version "20.1.8")
Failure: tests/libcxx/expected_results.txt contains 8 nonexistent tests:
std/re/re.alg/re.alg.match/awk.locale.pass.cpp
std/re/re.alg/re.alg.match/basic.locale.pass.cpp
std/re/re.alg/re.alg.match/ecma.locale.pass.cpp
std/re/re.alg/re.alg.match/extended.locale.pass.cpp
std/re/re.alg/re.alg.search/awk.locale.pass.cpp
std/re/re.alg/re.alg.search/basic.locale.pass.cpp
std/re/re.alg/re.alg.search/ecma.locale.pass.cpp
std/re/re.alg/re.alg.search/extended.locale.pass.cpp
CMake Error at tests/libcxx/CMakeLists.txt:4 (execute_process):
execute_process failed command indexes:
1: "Child return code: 1"
```
3239d31 to
65fa81d
Compare
…end on case sensitivity.
65fa81d to
e363cef
Compare
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
| if len(sys.argv) != 2: | ||
| sys.exit(f"Usage: python {sys.argv[0]} tests/std-OR-tr1") | ||
|
|
||
| absolute_base = Path(sys.argv[1]).absolute() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not blocking: I think this won't normalize paths. It probably doesn't matter here, but we could use resolve instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have existing usage in other scripts; I'll investigate this for a potential followup. Thanks!
| else: | ||
| unique_tests.add(line) | ||
|
|
||
| existing_tests = {fR"tests\{p.name}" for p in absolute_tests.iterdir() if is_nonempty_dir(p)} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not blocking: This and below is mixing uses of strings and Path objects I think. We could standardize on Paths?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was at least partially intentional since Paths insist on being printed with backslashes and I didn't see any way to request forward slashes (like with <filesystem>'s generic_string()). I agree it's somewhat confusing though.
|
I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed. |
|
I had to push an additional commit to mark C++26 tests as FAIL for the MSVC-internal test harness. |
Fixes #5898. Fixes #5899.
Commits
deallocate_size.pass.cppMSVC-friendly llvm/llvm-project#165162_LIBCPP_VERSIONllvm/llvm-project#160627GH_000639_nvcc_include_allisn't listed.P0896R4_and_P1614R2_comparisonsso sorted order doesn't depend on case sensitivity.config_rgxso its usage is less visually busy.sorted()to make it clearer that we want to print nonexistent tests in sorted order. (We don't care about the list's contents afterwards.)test.lst.stdandtr1. (Technicallycommented_testsshould be used only forstdbut it's harmless fortr1unless someone's trying to be wacky.)libcxx,std,tr1). Although this doesn't follow my "report all failures" principle, avoiding this wasn't worth the effort, and damaging multiple directories simultaneously is unlikely.runTestingcontrols whetherrun-tests.ymldoes anything.CMakeLists.txtBUILD_TESTING. Rename it toCONFIGURE_TESTINGbecause that's what it controls (and "build testing" was very confusing, given all of the options we have to control how much testing happens).cmake-configure-build.ymlconfigureTestingandbuildStlparameters. Pass the former asCONFIGURE_TESTING, and use the latter to control whether we build the STL (previously, no stage skipped building the STL, except for Code Format which uses an entirely different YAML.)build-and-test.ymlconfigureTestingandbuildStl, defaulting totrue.configureTestingto control whether we checkout thellvm-projectsubmodule.cmake-configure-build.yml.azure-pipelines.ymlconfigureTesting: false, to avoid slowing down the critical path as previously mentioned.buildStl: false(and implicitly leavesconfigureTestingastrue). It also doesn't bother passing any options relating to builds (we don't care about building with/analyze, and we don't want to build the benchmarks). The time we save building the STL can then be spent on syncing llvm-project.Test_x64depend onConfigure_Tests. As usual, the other full test passes fan out from this.Automating check_libcxx_paths.py
add_subdirectory(libcxx).expected_results_txt.expected_results_txtto clearly indicate which file needs to be fixed.Failure Examples
Failure looks like this:
When configuring:
When directly run: