From b2f501d5d7f1d2adda12ddcbc50935bc990db877 Mon Sep 17 00:00:00 2001 From: John Shumway Date: Fri, 5 Sep 2025 22:30:00 +0000 Subject: [PATCH] Generalized version to StringLiteral. With the change, the following can be used for the version parameter: "0.1.0" // string literal constexpr char API_VERSION[] = "0.1.0"; constexpr ckb::StringLiteral API_VERSION = "0.1.0"; --- .../builder/include/ck_tile/builder/conv_builder.hpp | 3 +-- .../builder/include/ck_tile/builder/versions.h | 11 ++++++----- experimental/builder/test/test_conv_builder.cpp | 3 ++- experimental/builder/test/test_conv_instances.cpp | 3 ++- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/experimental/builder/include/ck_tile/builder/conv_builder.hpp b/experimental/builder/include/ck_tile/builder/conv_builder.hpp index a6d7f5a12b..ab82deea9b 100644 --- a/experimental/builder/include/ck_tile/builder/conv_builder.hpp +++ b/experimental/builder/include/ck_tile/builder/conv_builder.hpp @@ -3,7 +3,6 @@ #include #include -#include "conv_builder_reference.hpp" #include #include #include @@ -23,7 +22,7 @@ namespace ck_tile::builder { * @tparam ALGORITHM The specific convolution algorithm to be used for the implementation. * @tparam VERSION The version of the builder implementation. */ -template +template requires SupportedVersion struct ConvBuilder { diff --git a/experimental/builder/include/ck_tile/builder/versions.h b/experimental/builder/include/ck_tile/builder/versions.h index 5e362209e7..c14003502c 100644 --- a/experimental/builder/include/ck_tile/builder/versions.h +++ b/experimental/builder/include/ck_tile/builder/versions.h @@ -3,13 +3,14 @@ #include #include +#include + namespace ck_tile::builder { -static constexpr char V0_0_0[] = "0.0.0"; -static constexpr char V0_1_0[] = "0.1.0"; +static constexpr StringLiteral V0_0_0 = "0.0.0"; +static constexpr StringLiteral V0_1_0 = "0.1.0"; -template -concept SupportedVersion = (std::string_view{V} == std::string_view{V0_0_0}) || - (std::string_view{V} == std::string_view{V0_1_0}); +template +concept SupportedVersion = (V == V0_0_0) || (V == V0_1_0); } // namespace ck_tile::builder diff --git a/experimental/builder/test/test_conv_builder.cpp b/experimental/builder/test/test_conv_builder.cpp index 4561207011..7a7310d738 100644 --- a/experimental/builder/test/test_conv_builder.cpp +++ b/experimental/builder/test/test_conv_builder.cpp @@ -20,7 +20,8 @@ struct DefaultFwdConvAlgorithm }; static_assert(ckb::ConvAlgorithm); -static constexpr char API_VERSION[] = "0.1.0"; +constexpr char API_VERSION[] = "0.1.0"; +static_assert(ckb::SupportedVersion); TEST(ConvBuilderTest, TestDefaultInstance) { diff --git a/experimental/builder/test/test_conv_instances.cpp b/experimental/builder/test/test_conv_instances.cpp index 95f8899bad..67dfefd2df 100644 --- a/experimental/builder/test/test_conv_instances.cpp +++ b/experimental/builder/test/test_conv_instances.cpp @@ -14,7 +14,8 @@ struct FwdConvSignature }; static_assert(ckb::ConvSignature); -static constexpr char API_VERSION[] = "0.1.0"; +constexpr char API_VERSION[] = "0.1.0"; +static_assert(ckb::SupportedVersion); struct FwdConvAlgorithm {