From 36982d475cfcf9bf2f7711e6fef325bd21e4ff69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20S=2E=20Ga=C3=9Fmann?= Date: Mon, 6 Nov 2023 21:38:12 +0100 Subject: [PATCH 1/7] build: Update dependencies to 2023-11-06 --- vcpkg-configuration.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json index 88a297f..d813d4c 100644 --- a/vcpkg-configuration.json +++ b/vcpkg-configuration.json @@ -2,7 +2,7 @@ "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json", "default-registry": { "kind": "builtin", - "baseline": "f6a5d4e8eb7476b8d7fc12a56dff300c1c986131" + "baseline": "8eb57355a4ffb410a2e94c07b4dca2dffbee8e50" }, "registries": [ { From 3107c825aad13200e24eb9662919083510ee1144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20S=2E=20Ga=C3=9Fmann?= Date: Mon, 6 Nov 2023 21:43:15 +0100 Subject: [PATCH 2/7] ci: Sync vcpkg baseline with vcpkg-configuration --- .github/workflows/cpp-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cpp-ci.yml b/.github/workflows/cpp-ci.yml index 6705950..00c9ea9 100644 --- a/.github/workflows/cpp-ci.yml +++ b/.github/workflows/cpp-ci.yml @@ -45,7 +45,7 @@ jobs: uses: lukka/run-vcpkg@v10 with: vcpkgDirectory: ${{ github.workspace }}/build/vcpkg - vcpkgGitCommitId: f6a5d4e8eb7476b8d7fc12a56dff300c1c986131 + vcpkgGitCommitId: 8eb57355a4ffb410a2e94c07b4dca2dffbee8e50 prependedCacheKey: compiler=${{ matrix.compiler }} #appendedCacheKey: r00 @@ -98,7 +98,7 @@ jobs: uses: lukka/run-vcpkg@v10 with: vcpkgDirectory: ${{ github.workspace }}/../vcpkg - vcpkgGitCommitId: f6a5d4e8eb7476b8d7fc12a56dff300c1c986131 + vcpkgGitCommitId: 8eb57355a4ffb410a2e94c07b4dca2dffbee8e50 prependedCacheKey: compiler=clang-15 #appendedCacheKey: r00 From 5db00e523865fd5f31bf6cb0c2a788a4e2970283 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20S=2E=20Ga=C3=9Fmann?= Date: Mon, 20 Nov 2023 22:44:08 +0100 Subject: [PATCH 3/7] ci: Try auto vcpkg baseline discovery --- .github/workflows/cpp-ci.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/cpp-ci.yml b/.github/workflows/cpp-ci.yml index 00c9ea9..d3e50c0 100644 --- a/.github/workflows/cpp-ci.yml +++ b/.github/workflows/cpp-ci.yml @@ -42,12 +42,10 @@ jobs: cmakeVersion: 3.22.6 - name: Initialize vcpkg - uses: lukka/run-vcpkg@v10 + uses: lukka/run-vcpkg@dev/vcpkgconfjson-support with: vcpkgDirectory: ${{ github.workspace }}/build/vcpkg - vcpkgGitCommitId: 8eb57355a4ffb410a2e94c07b4dca2dffbee8e50 - prependedCacheKey: compiler=${{ matrix.compiler }} - #appendedCacheKey: r00 + vcpkgConfigurationJsonGlob: '**/vcpkg-configuration.json' - name: Build ${{ matrix.triplet }}-${{ matrix.compiler }} preset uses: lukka/run-cmake@v10 @@ -95,12 +93,10 @@ jobs: cmakeVersion: 3.22.6 - name: Initialize vcpkg - uses: lukka/run-vcpkg@v10 + uses: lukka/run-vcpkg@dev/vcpkgconfjson-support with: vcpkgDirectory: ${{ github.workspace }}/../vcpkg - vcpkgGitCommitId: 8eb57355a4ffb410a2e94c07b4dca2dffbee8e50 - prependedCacheKey: compiler=clang-15 - #appendedCacheKey: r00 + vcpkgConfigurationJsonGlob: '**/vcpkg-configuration.json' - name: Configure x64-linux-clang preset uses: lukka/run-cmake@v10 From 730f35e0a2b2144cc005ecd18ebc6733cd331f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20S=2E=20Ga=C3=9Fmann?= Date: Tue, 21 Nov 2023 09:27:19 +0100 Subject: [PATCH 4/7] build: Update vcpkg-baseline to v2023.11.20 --- vcpkg-configuration.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json index d813d4c..078575d 100644 --- a/vcpkg-configuration.json +++ b/vcpkg-configuration.json @@ -2,7 +2,7 @@ "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json", "default-registry": { "kind": "builtin", - "baseline": "8eb57355a4ffb410a2e94c07b4dca2dffbee8e50" + "baseline": "a42af01b72c28a8e1d7b48107b33e4f286a55ef6" }, "registries": [ { From 6c5c920fc88ae942d04735a53cf428248ce145ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20S=2E=20Ga=C3=9Fmann?= Date: Tue, 21 Nov 2023 22:24:36 +0100 Subject: [PATCH 5/7] fix: Adapt status-code API changes `system_error2::erased` has been made an implementation detail and been replaced in the API by additional type aliases. --- src/dplx/cncr/data_defined_status_domain.hpp | 2 -- src/dplx/cncr/data_defined_status_domain.test.cpp | 10 ++++++++++ src/dplx/cncr/disappointment.hpp | 8 ++++---- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/dplx/cncr/data_defined_status_domain.hpp b/src/dplx/cncr/data_defined_status_domain.hpp index 2369173..2171914 100644 --- a/src/dplx/cncr/data_defined_status_domain.hpp +++ b/src/dplx/cncr/data_defined_status_domain.hpp @@ -130,8 +130,6 @@ class data_defined_status_domain_type : public system_error::status_code_domain { template friend class system_error::status_code; - template - friend class system_error::detail::indirecting_domain; public: using value_type = Enum; diff --git a/src/dplx/cncr/data_defined_status_domain.test.cpp b/src/dplx/cncr/data_defined_status_domain.test.cpp index adddaec..a64ee6c 100644 --- a/src/dplx/cncr/data_defined_status_domain.test.cpp +++ b/src/dplx/cncr/data_defined_status_domain.test.cpp @@ -9,7 +9,9 @@ #include #include +#include #include +#include #include "test_utils.hpp" @@ -113,4 +115,12 @@ TEST_CASE("data defined domain returns the correct description") CHECK(std::string_view(test_code(code).message().data()) == description); } +TEST_CASE("data defined domain can be put on the heap") +{ + cncr::system_error::system_code const subject + = cncr::system_error::make_nested_status_code( + test_code{test_errc::perm}); + CHECK(subject == test_errc::perm); +} + } // namespace cncr_tests diff --git a/src/dplx/cncr/disappointment.hpp b/src/dplx/cncr/disappointment.hpp index 0ac27f0..bf291c7 100644 --- a/src/dplx/cncr/disappointment.hpp +++ b/src/dplx/cncr/disappointment.hpp @@ -28,8 +28,8 @@ template struct status_code_throw_policy : outcome::experimental::policy::status_code_throw< T, - system_error::errored_status_code>, + system_error::erased_errored_status_code< + typename system_error::system_code::value_type>, void> { }; @@ -37,8 +37,8 @@ struct status_code_throw_policy template using result = outcome::experimental::status_result< R, - system_error::errored_status_code>, + system_error::erased_errored_status_code< + typename system_error::system_code::value_type>, status_code_throw_policy>; } // namespace dplx From 1047b517682a6b7470a03a41f5fbe64f7b18108f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20S=2E=20Ga=C3=9Fmann?= Date: Tue, 21 Nov 2023 22:43:18 +0100 Subject: [PATCH 6/7] build: Deactivate experimental libc++ on MacOSX --- tools/toolchains/x64-macos-clang-15-brew.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/toolchains/x64-macos-clang-15-brew.cmake b/tools/toolchains/x64-macos-clang-15-brew.cmake index 51bb01e..77e06d4 100644 --- a/tools/toolchains/x64-macos-clang-15-brew.cmake +++ b/tools/toolchains/x64-macos-clang-15-brew.cmake @@ -9,4 +9,4 @@ set(CMAKE_OSX_SYSROOT /Applications/Xcode_14.3.1.app/Contents/Developer/Platform set(CMAKE_C_STANDARD 17) set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_FLAGS_INIT "-fsized-deallocation -fexperimental-library") +set(CMAKE_CXX_FLAGS_INIT "-fsized-deallocation") From fe4319c4aeff92b85117533c95020c113c581242 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20S=2E=20Ga=C3=9Fmann?= Date: Wed, 22 Nov 2023 10:04:17 +0100 Subject: [PATCH 7/7] build: Retarget clang versions to 16 --- .github/workflows/cpp-ci.yml | 25 ++++++++++++++++--- CMakePresets.json | 12 ++++----- ...lang-15.cmake => x64-linux-clang-16.cmake} | 4 +-- ...ew.cmake => x64-macos-clang-16-brew.cmake} | 4 +-- tools/toolchains/x64-macos-gcc-12.cmake | 2 +- ...lang-15.cmake => x64-linux-clang-16.cmake} | 2 +- ...brew.cmake => x64-osx-clang-16-brew.cmake} | 6 ++++- 7 files changed, 38 insertions(+), 17 deletions(-) rename tools/toolchains/{x64-linux-clang-15.cmake => x64-linux-clang-16.cmake} (67%) rename tools/toolchains/{x64-macos-clang-15-brew.cmake => x64-macos-clang-16-brew.cmake} (73%) rename tools/triplets/{x64-linux-clang-15.cmake => x64-linux-clang-16.cmake} (83%) rename tools/triplets/{x64-osx-clang-15-brew.cmake => x64-osx-clang-16-brew.cmake} (61%) diff --git a/.github/workflows/cpp-ci.yml b/.github/workflows/cpp-ci.yml index d3e50c0..261a66c 100644 --- a/.github/workflows/cpp-ci.yml +++ b/.github/workflows/cpp-ci.yml @@ -26,8 +26,21 @@ jobs: include: - os: macos-13 triplet: x64-macos + - os: macos-13 + compiler: clang + triplet: x64-macos + install: | + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install llvm@16 - os: ubuntu-22.04 triplet: x64-linux + - os: ubuntu-22.04 + triplet: x64-linux + compiler: clang + install: | + sudo cp tools/llvm-snapshot.gpg.key.asc /etc/apt/trusted.gpg.d/llvm-snapshot.asc + sudo add-apt-repository "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main" + sudo apt-get -qq update + sudo apt-get -qq -y install clang-16 - os: windows-2022 triplet: x64-windows @@ -37,6 +50,10 @@ jobs: steps: - uses: actions/checkout@v3 + - name: Install required packages / compilers + if: ${{ matrix.install }} + run: ${{ matrix.install }} + - uses: lukka/get-cmake@latest with: cmakeVersion: 3.22.6 @@ -81,12 +98,12 @@ jobs: steps: - uses: actions/checkout@v3 - - name: "Install clang-tools-15" + - name: "Install clang-tools-16" run: | sudo cp ${{ github.workspace }}/tools/llvm-snapshot.gpg.key.asc /etc/apt/trusted.gpg.d/llvm-snapshot.asc - sudo add-apt-repository "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main" + sudo add-apt-repository "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main" sudo apt-get -qq update - sudo apt-get -qq -y install clang-15 clang-tidy-15 clang-format-15 + sudo apt-get -qq -y install clang-16 clang-tidy-16 clang-format-16 - uses: lukka/get-cmake@latest with: @@ -109,7 +126,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - version: 15.0.7 + version: 16.0.6 style: file # use .clang-format settings tidy-checks: '' # use .clang-tidy settings extensions: cpp,hpp diff --git a/CMakePresets.json b/CMakePresets.json index e60f49d..c7ef595 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -126,8 +126,8 @@ "x64-linux" ], "cacheVariables": { - "VCPKG_TARGET_TRIPLET": "x64-linux-clang", - "VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/tools/toolchains/x64-linux-clang.cmake" + "VCPKG_TARGET_TRIPLET": "x64-linux-clang-16", + "VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/tools/toolchains/x64-linux-clang-16.cmake" } }, { @@ -136,8 +136,8 @@ "x64-linux-clang" ], "cacheVariables": { - "VCPKG_TARGET_TRIPLET": "x64-linux-clang-15", - "VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/tools/toolchains/x64-linux-clang-15.cmake", + "VCPKG_TARGET_TRIPLET": "x64-linux-clang-16", + "VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/tools/toolchains/x64-linux-clang-16.cmake", "CMAKE_EXPORT_COMPILE_COMMANDS": true } }, @@ -171,8 +171,8 @@ "name": "x64-macos-clang", "inherits": [ "x64-macos" ], "cacheVariables": { - "VCPKG_TARGET_TRIPLET": "x64-osx-clang-15-brew", - "VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/tools/toolchains/x64-macos-clang-15-brew.cmake" + "VCPKG_TARGET_TRIPLET": "x64-osx-clang-16-brew", + "VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/tools/toolchains/x64-macos-clang-16-brew.cmake" } }, { diff --git a/tools/toolchains/x64-linux-clang-15.cmake b/tools/toolchains/x64-linux-clang-16.cmake similarity index 67% rename from tools/toolchains/x64-linux-clang-15.cmake rename to tools/toolchains/x64-linux-clang-16.cmake index 1687ff8..c4733c6 100644 --- a/tools/toolchains/x64-linux-clang-15.cmake +++ b/tools/toolchains/x64-linux-clang-16.cmake @@ -1,7 +1,7 @@ set(CMAKE_SYSTEM_PROCESSOR AMD64) -set(CMAKE_C_COMPILER clang-15) -set(CMAKE_CXX_COMPILER clang++-15) +set(CMAKE_C_COMPILER clang-16) +set(CMAKE_CXX_COMPILER clang++-16) set(CMAKE_C_STANDARD 17) set(CMAKE_CXX_STANDARD 20) diff --git a/tools/toolchains/x64-macos-clang-15-brew.cmake b/tools/toolchains/x64-macos-clang-16-brew.cmake similarity index 73% rename from tools/toolchains/x64-macos-clang-15-brew.cmake rename to tools/toolchains/x64-macos-clang-16-brew.cmake index 77e06d4..24c7483 100644 --- a/tools/toolchains/x64-macos-clang-15-brew.cmake +++ b/tools/toolchains/x64-macos-clang-16-brew.cmake @@ -1,10 +1,10 @@ set(CMAKE_SYSTEM_PROCESSOR AMD64) -execute_process(COMMAND brew --prefix llvm@15 OUTPUT_VARIABLE BREW_LLVM_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) +execute_process(COMMAND brew --prefix llvm@16 OUTPUT_VARIABLE BREW_LLVM_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) set(CMAKE_C_COMPILER "${BREW_LLVM_PATH}/bin/clang") set(CMAKE_CXX_COMPILER "${BREW_LLVM_PATH}/bin/clang++") -set(CMAKE_OSX_SYSROOT /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk) +set(CMAKE_OSX_SYSROOT /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk) set(CMAKE_C_STANDARD 17) set(CMAKE_CXX_STANDARD 20) diff --git a/tools/toolchains/x64-macos-gcc-12.cmake b/tools/toolchains/x64-macos-gcc-12.cmake index e02fd42..c1b4122 100644 --- a/tools/toolchains/x64-macos-gcc-12.cmake +++ b/tools/toolchains/x64-macos-gcc-12.cmake @@ -2,7 +2,7 @@ set(CMAKE_SYSTEM_PROCESSOR AMD64) set(CMAKE_C_COMPILER gcc-12) set(CMAKE_CXX_COMPILER g++-12) -set(CMAKE_OSX_SYSROOT /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk) +set(CMAKE_OSX_SYSROOT /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk) set(CMAKE_C_STANDARD 17) set(CMAKE_CXX_STANDARD 20) diff --git a/tools/triplets/x64-linux-clang-15.cmake b/tools/triplets/x64-linux-clang-16.cmake similarity index 83% rename from tools/triplets/x64-linux-clang-15.cmake rename to tools/triplets/x64-linux-clang-16.cmake index 0d55c4c..c06c8bb 100644 --- a/tools/triplets/x64-linux-clang-15.cmake +++ b/tools/triplets/x64-linux-clang-16.cmake @@ -3,4 +3,4 @@ set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) -set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/../toolchains/x64-linux-clang-15.cmake") +set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/../toolchains/x64-linux-clang-16.cmake") diff --git a/tools/triplets/x64-osx-clang-15-brew.cmake b/tools/triplets/x64-osx-clang-16-brew.cmake similarity index 61% rename from tools/triplets/x64-osx-clang-15-brew.cmake rename to tools/triplets/x64-osx-clang-16-brew.cmake index cc1ebfa..cbe5d61 100644 --- a/tools/triplets/x64-osx-clang-15-brew.cmake +++ b/tools/triplets/x64-osx-clang-16-brew.cmake @@ -4,4 +4,8 @@ set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Darwin) set(VCPKG_OSX_ARCHITECTURES x86_64) -set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/../toolchains/x64-macos-clang-15-brew.cmake") +set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/../toolchains/x64-macos-clang-16-brew.cmake") + +if(PORT STREQUAL "status-code") + set(VCPKG_CMAKE_CONFIGURE_OPTIONS "-DBUILD_TESTING=OFF") +endif()