tribuchet: building on jamie Running phase: unpackPhase unpacking source archive /nix/store/dyq8rcqb3y33yzng7wafxas1m3s0hhz1-source source root is source Running phase: patchPhase Running phase: updateAutotoolsGnuConfigScriptsPhase Running phase: configurePhase mesonConfigurePhase flags: --prefix=/nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4 --libdir=/nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/lib --libexecdir=/nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/libexec --bindir=/nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/bin --sbindir=/nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/sbin --includedir=/nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/include --mandir=/nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/share/man --infodir=/nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/share/info --localedir=/nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/share/locale -Dauto_features=enabled -Dwrap_mode=nodownload --buildtype=plain -Db_pch=false The Meson build system Version: 1.10.2 Source dir: /build/source Build dir: /build/source/build Build type: native build WARNING: Project does not target a minimum version but uses feature introduced in '1.1': meson.options file. Use meson_options.txt instead Project name: nix-grpc-store Project version: 0.1.0-beta.4 C++ compiler for the host machine: clang++ (clang 22.1.8 "clang version 22.1.8") C++ linker for the host machine: clang++ ld.bfd 2.46 Host machine cpu family: x86_64 Host machine cpu: x86_64 Found pkg-config: YES (/nix/store/29d1c5xk6w3rwl7yvdfwl90whslv5h54-pkg-config-wrapper-0.29.2/bin/pkg-config) 0.29.2 Run-time dependency grpc++ found: YES 1.83.0 Run-time dependency protobuf found: YES 36.1.0 Run-time dependency libzstd found: YES 1.5.7 Run-time dependency threads found: YES Run-time dependency libcrypto found: YES 3.6.4 Run-time dependency prometheus-cpp-core found: YES 1.3.0 Run-time dependency prometheus-cpp-pull found: YES 1.3.0 Run-time dependency absl_flat_hash_map found: YES 20260107 Run-time dependency absl_hash found: YES 20260107 Run-time dependency absl_synchronization found: YES 20260107 Compiler for C++ supports arguments -Werror=thread-safety: YES Run-time dependency jemalloc found: YES 5.3.1_0 Run-time dependency nix-store found: YES 2.36.0pre20260920_5711f8fe Run-time dependency nix-util found: YES 2.36.0pre20260920_5711f8fe Run-time dependency libcurl found: YES 8.22.0 Run-time dependency nlohmann_json found: YES 3.12.0 Check usable header "jwt-cpp/traits/nlohmann-json/defaults.h" : YES Program protoc found: YES (/nix/store/4hdzvycn5mkg3xm1ggscp3mxz8005c3m-protobuf-36.1/bin/protoc) Program grpc_cpp_plugin found: YES (/nix/store/n81x7qakspm4bnm9q8cjdgjvvx6h691v-grpc-1.83.0/bin/grpc_cpp_plugin) Program mold found: YES (/nix/store/vfvfq1k7436b6sidk1246m72j6944kv7-mold-unwrapped-wrapper-2.42.1/bin/mold) Run-time dependency dl found: YES Program tests/farm-client-test.sh found: YES (/build/source/tests/farm-client-test.sh) Program tests/oidc-test.sh found: YES (/build/source/tests/oidc-test.sh) Build targets in project: 13 WARNING: Project specifies no minimum version but uses features which were added in versions: * 1.1: {'meson.options file'} nix-grpc-store 0.1.0-beta.4 User defined options auto_features: enabled b_pch : false bindir : /nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/bin buildtype : plain includedir : /nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/include infodir : /nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/share/info libdir : /nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/lib libexecdir : /nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/libexec localedir : /nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/share/locale mandir : /nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/share/man prefix : /nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4 sbindir : /nix/store/ijgjpyraldzpqz8qab84vymm311zclaw-nix-grpc-store-clang-tidy-0.1.0-beta.4/sbin wrap_mode : nodownload Found ninja-1.13.2 at /nix/store/r8a159fqvj0mpczq0dq8d3dwdd2rsz8c-ninja-1.13.2/bin/ninja mesonConfigurePhase: enabled\ parallel\ building Running phase: buildPhase [1/2] Generating eds_proto with a custom command [2/2] Generating nix_remote_proto with a custom command [0/1] /nix/store/jaa89dphx07w3r26y7gh79a7b1mld5p4-meson-1.10.2/bin/meson --internal clangtidy /build/source /build/source/build --color always >>> /nix/store/xvjhx2zrkdnccqgf9wbmzlbqqjnbjqdk-clang-tools-22.1.8/bin/clang-tidy --use-color -quiet -p /build/source/build /build/source/tests/log-spill-test.cc ../src/daemon/log-spill.hh:25:7: error: class 'LogSpill' defines a non-default destructor, a copy constructor and a copy assignment operator but does not define a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions,-warnings-as-errors] 25 | class LogSpill | ^ ../src/daemon/log-spill.hh:38:24: error: variable name 'fd' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 38 | if (auto const fd = fd_.load(); fd >= 0) { | ^ ../src/daemon/log-spill.hh:51:20: error: variable name 'at' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 51 | auto const at = written_.load(std::memory_order_relaxed); | ^ ../src/daemon/log-spill.hh:61:15: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 61 | record[0] = static_cast(kind); | ^~~ ../src/daemon/log-spill.hh:63:35: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors] 63 | std::memcpy(record.data() + 1, &len, sizeof len); | ^ ../src/daemon/log-spill.hh:78:37: error: forwarding reference parameter 'fn' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward,-warnings-as-errors] 78 | auto drain(size_t offset, Fn && fn) const -> size_t | ^ ../src/daemon/log-spill.hh:78:37: error: parameter name 'fn' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] ../src/daemon/log-spill.hh:81:20: error: variable name 'fd' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 81 | auto const fd = fd_.load(); | ^ ../src/daemon/log-spill.hh:84:13: error: do not declare C-style arrays, use 'std::array' instead [cppcoreguidelines-avoid-c-arrays,modernize-avoid-c-arrays,-warnings-as-errors] 84 | char header[kHeader]; | ^~~~~~~~~~~~~~~~~~~~ ../src/daemon/log-spill.hh:85:30: error: do not implicitly decay an array into a pointer; consider using gsl::array_view or an explicit cast instead [cppcoreguidelines-pro-bounds-array-to-pointer-decay,-warnings-as-errors] 85 | if (!readAll(fd, header, kHeader, offset)) { | ^ ../src/daemon/log-spill.hh:89:31: error: do not implicitly decay an array into a pointer; consider using gsl::array_view or an explicit cast instead [cppcoreguidelines-pro-bounds-array-to-pointer-decay,-warnings-as-errors] 89 | std::memcpy(&len, header + 1, sizeof len); | ^ ../src/daemon/log-spill.hh:89:38: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors] 89 | std::memcpy(&len, header + 1, sizeof len); | ^ ../src/daemon/log-spill.hh:110:28: error: function is not thread safe [concurrency-mt-unsafe,-warnings-as-errors] 110 | auto const * env = std::getenv("TMPDIR"); | ^ ../src/daemon/log-spill.hh:112:14: error: variable name 'fd' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 112 | auto fd = ::open(dir.c_str(), O_TMPFILE | O_RDWR | O_CLOEXEC, 0600); | ^ ../src/daemon/log-spill.hh:112:19: error: do not call c-style vararg functions [cppcoreguidelines-pro-type-vararg,-warnings-as-errors] 112 | auto fd = ::open(dir.c_str(), O_TMPFILE | O_RDWR | O_CLOEXEC, 0600); | ^ ../src/daemon/log-spill.hh:112:71: error: 0600 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors] 112 | auto fd = ::open(dir.c_str(), O_TMPFILE | O_RDWR | O_CLOEXEC, 0600); | ^ ../src/daemon/log-spill.hh:128:5: error: function 'writeAll' should be marked [[nodiscard]] [modernize-use-nodiscard,-warnings-as-errors] 128 | auto writeAll(const std::string & data, size_t offset) const -> bool | ^ | [[nodiscard]] ../src/daemon/log-spill.hh:132:24: error: variable name 'n' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 132 | auto const n = ::pwrite(fd_.load(), data.data() + done, data.size() - done, static_cast(offset + done)); | ^ ../src/daemon/log-spill.hh:132:61: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors] 132 | auto const n = ::pwrite(fd_.load(), data.data() + done, data.size() - done, static_cast(offset + done)); | ^ ../src/daemon/log-spill.hh:144:29: error: parameter name 'fd' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 144 | static auto readAll(int fd, char * buf, size_t len, size_t offset) -> bool | ^ ../src/daemon/log-spill.hh:148:24: error: variable name 'n' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 148 | auto const n = ::pread(fd, buf + done, len - done, static_cast(offset + done)); | ^ ../src/daemon/log-spill.hh:148:44: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors] 148 | auto const n = ::pread(fd, buf + done, len - done, static_cast(offset + done)); | ^ ../src/daemon/log-spill.hh:175:31: error: parameter name 'cv' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 175 | std::condition_variable & cv, | ^ ../src/daemon/log-spill.hh:178:18: error: forwarding reference parameter 'cancelled' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward,-warnings-as-errors] 178 | Cancelled && cancelled, | ^ ../src/daemon/log-spill.hh:179:13: error: forwarding reference parameter 'emit' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward,-warnings-as-errors] 179 | Emit && emit) -> bool | ^ ../src/daemon/log-spill.hh:195:16: error: 'wait_for' should be placed inside a while statement or used with a conditional parameter [bugprone-spuriously-wake-up-functions,cert-con36-c,cert-con54-cpp,-warnings-as-errors] 195 | cv.wait_for(lock, poll); | ^ ../tests/log-spill-test.cc:1:1: error: included header atomic is not used directly [misc-include-cleaner,-warnings-as-errors] 1 | #include | ^~~~~~~~~~~~~~~~~ 2 | #include ../tests/log-spill-test.cc:16:13: error: function 'readAll' declared 'static', move to anonymous namespace instead [misc-use-anonymous-namespace,-warnings-as-errors] 16 | static auto readAll(const LogSpill & spill) -> Records | ^ ../tests/log-spill-test.cc:19:24: error: no header providing "uint8_t" is directly included [misc-include-cleaner,-warnings-as-errors] 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | #include "log-spill.hh" 12 | 13 | using nixgrpc::LogSpill; 14 | using Records = std::vector>; 15 | 16 | static auto readAll(const LogSpill & spill) -> Records 17 | { 18 | Records out; 19 | spill.drain(0, [&](uint8_t kind, std::string_view text) -> void { out.emplace_back(kind, std::string(text)); }); | ^ ../tests/log-spill-test.cc:19:43: error: no header providing "std::string_view" is directly included [misc-include-cleaner,-warnings-as-errors] 7 | #include 8 | #include 9 | #include 10 | 11 | #include "log-spill.hh" 12 | 13 | using nixgrpc::LogSpill; 14 | using Records = std::vector>; 15 | 16 | static auto readAll(const LogSpill & spill) -> Records 17 | { 18 | Records out; 19 | spill.drain(0, [&](uint8_t kind, std::string_view text) -> void { out.emplace_back(kind, std::string(text)); }); | ^ ../tests/log-spill-test.cc:23:13: error: function 'follow' declared 'static', move to anonymous namespace instead [misc-use-anonymous-namespace,-warnings-as-errors] 23 | static auto follow(LogSpill & spill, std::mutex & mutex, std::condition_variable & cv, const bool & finished) -> Records | ^ ../tests/log-spill-test.cc:23:84: error: parameter name 'cv' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 23 | static auto follow(LogSpill & spill, std::mutex & mutex, std::condition_variable & cv, const bool & finished) -> Records | ^ ../tests/log-spill-test.cc:41:37: error: 300000 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors] 41 | spill.append(0, std::string(300000, 'x')); | ^ ../tests/log-spill-test.cc:44:19: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 44 | assert(got[0] == std::make_pair(0, std::string("first"))); | ^ /nix/store/lbjwxax9n0457lgd83rqwpd1l9lgfl7r-glibc-2.42-84-dev/include/assert.h:100:27: note: expanded from macro 'assert' 100 | (static_cast (expr) \ | ^~~~ ../tests/log-spill-test.cc:45:19: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 45 | assert(got[1] == std::make_pair(1, std::string("build"))); | ^ /nix/store/lbjwxax9n0457lgd83rqwpd1l9lgfl7r-glibc-2.42-84-dev/include/assert.h:100:27: note: expanded from macro 'assert' 100 | (static_cast (expr) \ | ^~~~ ../tests/log-spill-test.cc:46:19: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 46 | assert(got[2].second.empty()); | ^ /nix/store/lbjwxax9n0457lgd83rqwpd1l9lgfl7r-glibc-2.42-84-dev/include/assert.h:100:27: note: expanded from macro 'assert' 100 | (static_cast (expr) \ | ^~~~ ../tests/log-spill-test.cc:47:19: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 47 | assert(got[3].second.size() == 300000); | ^ /nix/store/lbjwxax9n0457lgd83rqwpd1l9lgfl7r-glibc-2.42-84-dev/include/assert.h:100:27: note: expanded from macro 'assert' 100 | (static_cast (expr) \ | ^~~~ ../tests/log-spill-test.cc:54:40: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 54 | assert(rest.size() == 1 && rest[0].second == "later"); | ^ /nix/store/lbjwxax9n0457lgd83rqwpd1l9lgfl7r-glibc-2.42-84-dev/include/assert.h:100:27: note: expanded from macro 'assert' 100 | (static_cast (expr) \ | ^~~~ ../tests/log-spill-test.cc:59:24: error: 64 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors] 59 | LogSpill spill(64); | ^ ../tests/log-spill-test.cc:60:29: error: 50 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors] 60 | for (int i = 0; i < 50; i++) { | ^ ../tests/log-spill-test.cc:75:33: error: variable name 'cv' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 75 | std::condition_variable cv; | ^ ../tests/log-spill-test.cc:80:21: error: variable name 't1' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 80 | std::thread t1([&] { early = follow(spill, mutex, cv, finished); }); | ^ ../tests/log-spill-test.cc:80:24: error: use a trailing return type for this lambda [modernize-use-trailing-return-type,-warnings-as-errors] 80 | std::thread t1([&] { early = follow(spill, mutex, cv, finished); }); | ^ | -> void ../tests/log-spill-test.cc:81:27: error: use a trailing return type for this lambda [modernize-use-trailing-return-type,-warnings-as-errors] 81 | std::thread owner([&] { | ^ | -> void ../tests/log-spill-test.cc:91:34: error: 1000 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors] 91 | while (spill.written() < 1000) { | ^ ../tests/log-spill-test.cc:94:21: error: variable name 't2' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 94 | std::thread t2([&] { late = follow(spill, mutex, cv, finished); }); | ^ ../tests/log-spill-test.cc:94:24: error: use a trailing return type for this lambda [modernize-use-trailing-return-type,-warnings-as-errors] 94 | std::thread t2([&] { late = follow(spill, mutex, cv, finished); }); | ^ | -> void ../tests/log-spill-test.cc:101:30: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 101 | assert((*got)[static_cast(i)].second == "line " + std::to_string(i)); | ^ /nix/store/lbjwxax9n0457lgd83rqwpd1l9lgfl7r-glibc-2.42-84-dev/include/assert.h:100:27: note: expanded from macro 'assert' 100 | (static_cast (expr) \ | ^~~~ ../tests/log-spill-test.cc:101:43: error: no header providing "size_t" is directly included [misc-include-cleaner,-warnings-as-errors] 5 | assert((*got)[static_cast(i)].second == "line " + std::to_string(i)); | ^ ../tests/log-spill-test.cc:110:33: error: variable name 'cv' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 110 | std::condition_variable cv; | ^ >>> /nix/store/xvjhx2zrkdnccqgf9wbmzlbqqjnbjqdk-clang-tools-22.1.8/bin/clang-tidy --use-color -quiet -p /build/source/build /build/source/src/client/channel.cc [1/1] (1/2) Processing file /build/source/src/client/channel.cc. [1/1] (2/2) Processing file /build/source/src/client/channel.cc. >>> /nix/store/xvjhx2zrkdnccqgf9wbmzlbqqjnbjqdk-clang-tools-22.1.8/bin/clang-tidy --use-color -quiet -p /build/source/build /build/source/src/daemon/coordinator.cc ../src/daemon/log-spill.hh:25:7: error: class 'LogSpill' defines a non-default destructor, a copy constructor and a copy assignment operator but does not define a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions,-warnings-as-errors] 25 | class LogSpill | ^ ../src/daemon/log-spill.hh:38:24: error: variable name 'fd' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 38 | if (auto const fd = fd_.load(); fd >= 0) { | ^ ../src/daemon/log-spill.hh:51:20: error: variable name 'at' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 51 | auto const at = written_.load(std::memory_order_relaxed); | ^ ../src/daemon/log-spill.hh:61:15: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 61 | record[0] = static_cast(kind); | ^~~ ../src/daemon/log-spill.hh:63:35: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors] 63 | std::memcpy(record.data() + 1, &len, sizeof len); | ^ ../src/daemon/log-spill.hh:78:37: error: forwarding reference parameter 'fn' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward,-warnings-as-errors] 78 | auto drain(size_t offset, Fn && fn) const -> size_t | ^ ../src/daemon/log-spill.hh:78:37: error: parameter name 'fn' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] ../src/daemon/log-spill.hh:81:20: error: variable name 'fd' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 81 | auto const fd = fd_.load(); | ^ ../src/daemon/log-spill.hh:84:13: error: do not declare C-style arrays, use 'std::array' instead [cppcoreguidelines-avoid-c-arrays,modernize-avoid-c-arrays,-warnings-as-errors] 84 | char header[kHeader]; | ^~~~~~~~~~~~~~~~~~~~ ../src/daemon/log-spill.hh:85:30: error: do not implicitly decay an array into a pointer; consider using gsl::array_view or an explicit cast instead [cppcoreguidelines-pro-bounds-array-to-pointer-decay,-warnings-as-errors] 85 | if (!readAll(fd, header, kHeader, offset)) { | ^ ../src/daemon/log-spill.hh:89:31: error: do not implicitly decay an array into a pointer; consider using gsl::array_view or an explicit cast instead [cppcoreguidelines-pro-bounds-array-to-pointer-decay,-warnings-as-errors] 89 | std::memcpy(&len, header + 1, sizeof len); | ^ ../src/daemon/log-spill.hh:89:38: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors] 89 | std::memcpy(&len, header + 1, sizeof len); | ^ ../src/daemon/log-spill.hh:110:28: error: function is not thread safe [concurrency-mt-unsafe,-warnings-as-errors] 110 | auto const * env = std::getenv("TMPDIR"); | ^ ../src/daemon/log-spill.hh:112:14: error: variable name 'fd' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 112 | auto fd = ::open(dir.c_str(), O_TMPFILE | O_RDWR | O_CLOEXEC, 0600); | ^ ../src/daemon/log-spill.hh:112:19: error: do not call c-style vararg functions [cppcoreguidelines-pro-type-vararg,-warnings-as-errors] 112 | auto fd = ::open(dir.c_str(), O_TMPFILE | O_RDWR | O_CLOEXEC, 0600); | ^ ../src/daemon/log-spill.hh:112:71: error: 0600 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors] 112 | auto fd = ::open(dir.c_str(), O_TMPFILE | O_RDWR | O_CLOEXEC, 0600); | ^ ../src/daemon/log-spill.hh:128:5: error: function 'writeAll' should be marked [[nodiscard]] [modernize-use-nodiscard,-warnings-as-errors] 128 | auto writeAll(const std::string & data, size_t offset) const -> bool | ^ | [[nodiscard]] ../src/daemon/log-spill.hh:132:24: error: variable name 'n' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 132 | auto const n = ::pwrite(fd_.load(), data.data() + done, data.size() - done, static_cast(offset + done)); | ^ ../src/daemon/log-spill.hh:132:61: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors] 132 | auto const n = ::pwrite(fd_.load(), data.data() + done, data.size() - done, static_cast(offset + done)); | ^ ../src/daemon/log-spill.hh:144:29: error: parameter name 'fd' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 144 | static auto readAll(int fd, char * buf, size_t len, size_t offset) -> bool | ^ ../src/daemon/log-spill.hh:148:24: error: variable name 'n' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 148 | auto const n = ::pread(fd, buf + done, len - done, static_cast(offset + done)); | ^ ../src/daemon/log-spill.hh:148:44: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors] 148 | auto const n = ::pread(fd, buf + done, len - done, static_cast(offset + done)); | ^ ../src/daemon/log-spill.hh:175:31: error: parameter name 'cv' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 175 | std::condition_variable & cv, | ^ ../src/daemon/log-spill.hh:178:18: error: forwarding reference parameter 'cancelled' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward,-warnings-as-errors] 178 | Cancelled && cancelled, | ^ ../src/daemon/log-spill.hh:179:13: error: forwarding reference parameter 'emit' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward,-warnings-as-errors] 179 | Emit && emit) -> bool | ^ ../src/daemon/log-spill.hh:195:16: error: 'wait_for' should be placed inside a while statement or used with a conditional parameter [bugprone-spuriously-wake-up-functions,cert-con36-c,cert-con54-cpp,-warnings-as-errors] 195 | cv.wait_for(lock, poll); | ^ >>> /nix/store/xvjhx2zrkdnccqgf9wbmzlbqqjnbjqdk-clang-tools-22.1.8/bin/clang-tidy --use-color -quiet -p /build/source/build /build/source/src/daemon/main.cc Errors encountered while running clang-tidy ../src/daemon/log-spill.hh:25:7: error: class 'LogSpill' defines a non-default destructor, a copy constructor and a copy assignment operator but does not define a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions,-warnings-as-errors] 25 | class LogSpill | ^ ../src/daemon/log-spill.hh:38:24: error: variable name 'fd' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 38 | if (auto const fd = fd_.load(); fd >= 0) { | ^ ../src/daemon/log-spill.hh:51:20: error: variable name 'at' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 51 | auto const at = written_.load(std::memory_order_relaxed); | ^ ../src/daemon/log-spill.hh:61:15: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 61 | record[0] = static_cast(kind); | ^~~ ../src/daemon/log-spill.hh:63:35: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors] 63 | std::memcpy(record.data() + 1, &len, sizeof len); | ^ ../src/daemon/log-spill.hh:78:37: error: forwarding reference parameter 'fn' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward,-warnings-as-errors] 78 | auto drain(size_t offset, Fn && fn) const -> size_t | ^ ../src/daemon/log-spill.hh:78:37: error: parameter name 'fn' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] ../src/daemon/log-spill.hh:81:20: error: variable name 'fd' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 81 | auto const fd = fd_.load(); | ^ ../src/daemon/log-spill.hh:84:13: error: do not declare C-style arrays, use 'std::array' instead [cppcoreguidelines-avoid-c-arrays,modernize-avoid-c-arrays,-warnings-as-errors] 84 | char header[kHeader]; | ^~~~~~~~~~~~~~~~~~~~ ../src/daemon/log-spill.hh:85:30: error: do not implicitly decay an array into a pointer; consider using gsl::array_view or an explicit cast instead [cppcoreguidelines-pro-bounds-array-to-pointer-decay,-warnings-as-errors] 85 | if (!readAll(fd, header, kHeader, offset)) { | ^ ../src/daemon/log-spill.hh:89:31: error: do not implicitly decay an array into a pointer; consider using gsl::array_view or an explicit cast instead [cppcoreguidelines-pro-bounds-array-to-pointer-decay,-warnings-as-errors] 89 | std::memcpy(&len, header + 1, sizeof len); | ^ ../src/daemon/log-spill.hh:89:38: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors] 89 | std::memcpy(&len, header + 1, sizeof len); | ^ ../src/daemon/log-spill.hh:110:28: error: function is not thread safe [concurrency-mt-unsafe,-warnings-as-errors] 110 | auto const * env = std::getenv("TMPDIR"); | ^ ../src/daemon/log-spill.hh:112:14: error: variable name 'fd' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 112 | auto fd = ::open(dir.c_str(), O_TMPFILE | O_RDWR | O_CLOEXEC, 0600); | ^ ../src/daemon/log-spill.hh:112:19: error: do not call c-style vararg functions [cppcoreguidelines-pro-type-vararg,-warnings-as-errors] 112 | auto fd = ::open(dir.c_str(), O_TMPFILE | O_RDWR | O_CLOEXEC, 0600); | ^ ../src/daemon/log-spill.hh:112:71: error: 0600 is a magic number; consider replacing it with a named constant [cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers,-warnings-as-errors] 112 | auto fd = ::open(dir.c_str(), O_TMPFILE | O_RDWR | O_CLOEXEC, 0600); | ^ ../src/daemon/log-spill.hh:128:5: error: function 'writeAll' should be marked [[nodiscard]] [modernize-use-nodiscard,-warnings-as-errors] 128 | auto writeAll(const std::string & data, size_t offset) const -> bool | ^ | [[nodiscard]] ../src/daemon/log-spill.hh:132:24: error: variable name 'n' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 132 | auto const n = ::pwrite(fd_.load(), data.data() + done, data.size() - done, static_cast(offset + done)); | ^ ../src/daemon/log-spill.hh:132:61: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors] 132 | auto const n = ::pwrite(fd_.load(), data.data() + done, data.size() - done, static_cast(offset + done)); | ^ ../src/daemon/log-spill.hh:144:29: error: parameter name 'fd' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 144 | static auto readAll(int fd, char * buf, size_t len, size_t offset) -> bool | ^ ../src/daemon/log-spill.hh:148:24: error: variable name 'n' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 148 | auto const n = ::pread(fd, buf + done, len - done, static_cast(offset + done)); | ^ ../src/daemon/log-spill.hh:148:44: error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors] 148 | auto const n = ::pread(fd, buf + done, len - done, static_cast(offset + done)); | ^ ../src/daemon/log-spill.hh:175:31: error: parameter name 'cv' is too short, expected at least 3 characters [readability-identifier-length,-warnings-as-errors] 175 | std::condition_variable & cv, | ^ ../src/daemon/log-spill.hh:178:18: error: forwarding reference parameter 'cancelled' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward,-warnings-as-errors] 178 | Cancelled && cancelled, | ^ ../src/daemon/log-spill.hh:179:13: error: forwarding reference parameter 'emit' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward,-warnings-as-errors] 179 | Emit && emit) -> bool | ^ ../src/daemon/log-spill.hh:195:16: error: 'wait_for' should be placed inside a while statement or used with a conditional parameter [bugprone-spuriously-wake-up-functions,cert-con36-c,cert-con54-cpp,-warnings-as-errors] 195 | cv.wait_for(lock, poll); | ^ ../src/daemon/main.cc:504:41: error: no header providing "nixgrpc::followSpill" is directly included [misc-include-cleaner,-warnings-as-errors] 71 | auto const completed = nixgrpc::followSpill( | ^ FAILED: [code=1] meson-internal__clang-tidy /nix/store/jaa89dphx07w3r26y7gh79a7b1mld5p4-meson-1.10.2/bin/meson --internal clangtidy /build/source /build/source/build --color always ninja: build stopped: subcommand failed.