Bio-Sketch-Mash v0.9 Perl 5 v5.39.3 x86_64-linux-thread-multi

Status
Fail
From
Andreas J. König (ANDK)
Dist
Bio-Sketch-Mash v0.9
Platform
Perl 5 v5.39.3 x86_64-linux-thread-multi
Date
2023-11-14 01:31:40
ID
8f99dc0e-828d-11ee-b9b6-32e8fdc0d5ee
This distribution has been tested as part of the CPAN Testers
project, supporting the Perl programming language.  See
http://wiki.cpantesters.org/ for more information or email
questions to cpan-testers-discuss@perl.org


--
Dear Lee S. Katz,

This is a computer-generated report for Bio-Sketch-Mash-0.9
on perl 5.39.3, created by CPAN-Reporter-1.2019.

Thank you for uploading your work to CPAN.  However, there was a problem
testing your distribution.

If you think this report is invalid, please consult the CPAN Testers Wiki
for suggestions on how to avoid getting FAIL reports for missing library
or binary dependencies, unsupported operating systems, and so on:

http://wiki.cpantesters.org/wiki/CPANAuthorNotes

Sections of this report:

    * Tester comments
    * Program output
    * Prerequisites
    * Environment and other context

------------------------------
TESTER COMMENTS
------------------------------

Additional comments from tester:

this report is from an automated smoke testing program
and was not reviewed by a human for accuracy

------------------------------
PROGRAM OUTPUT
------------------------------

Output from '/usr/bin/make test':

PERL_DL_NONLAZY=1 "/home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.39.3/29fb/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
    # uncompressing capnproto
    # Configuring capnproto
    # making capnproto
In file included from ./src/kj/memory.h:28,
                 from ./src/kj/array.h:28,
                 from ./src/kj/string.h:29,
                 from ./src/capnp/common.h:33,
                 from ./src/capnp/raw-schema.h:28,
                 from ./src/capnp/generated-header-support.h:30,
                 from ./src/capnp/compiler/lexer.capnp.h:6,
                 from src/capnp/compiler/lexer.h:28,
                 from src/capnp/compiler/capnp.c++:26:
./src/kj/common.h: In instantiation of ‘constexpr kj::ArrayPtr<T>::ArrayPtr(std::initializer_list<typename kj::RemoveConstOrDisable_<T>::Type>) [with T = const kj::ArrayPtr<const unsigned char>; typename kj::RemoveConstOrDisable_<T>::Type = kj::ArrayPtr<const unsigned char>]’:
src/capnp/compiler/capnp.c++:1111:21:   required from here
./src/kj/common.h:1267:23: warning: initializing ‘kj::ArrayPtr<const kj::ArrayPtr<const unsigned char> >::ptr’ from ‘std::initializer_list<kj::ArrayPtr<const unsigned char> >::begin’ does not extend the lifetime of the underlying array [-Winit-list-lifetime]
 1267 |       : ptr(init.begin()), size_(init.size()) {}
      |             ~~~~~~~~~~^~
src/kj/exception.c++: In member function ‘virtual void kj::ExceptionCallback::RootExceptionCallback::onRecoverableException(kj::Exception&&)’:
src/kj/exception.c++:794:32: warning: ‘bool std::uncaught_exception()’ is deprecated: use 'std::uncaught_exceptions()' instead [-Wdeprecated-declarations]
  794 |     if (std::uncaught_exception()) {
      |         ~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from src/kj/exception.c++:33:
/usr/include/c++/13/exception:122:8: note: declared here
  122 |   bool uncaught_exception() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__pure__));
      |        ^~~~~~~~~~~~~~~~~~
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
In file included from src/kj/memory.h:28,
                 from src/kj/exception.h:28,
                 from src/kj/async-prelude.h:31,
                 from src/kj/async.h:28,
                 from src/kj/async-io.h:28,
                 from src/kj/async-io.c++:28:
src/kj/common.h: In instantiation of ‘constexpr kj::ArrayPtr<T>::ArrayPtr(std::initializer_list<typename kj::RemoveConstOrDisable_<T>::Type>) [with T = const unsigned char; typename kj::RemoveConstOrDisable_<T>::Type = unsigned char]’:
src/kj/async-io.c++:1497:34:   required from here
src/kj/common.h:1267:23: warning: initializing ‘kj::ArrayPtr<const unsigned char>::ptr’ from ‘std::initializer_list<unsigned char>::begin’ does not extend the lifetime of the underlying array [-Winit-list-lifetime]
 1267 |       : ptr(init.begin()), size_(init.size()) {}
      |             ~~~~~~~~~~^~
In file included from src/kj/array.h:29,
                 from src/kj/exception.h:29,
                 from src/kj/async-prelude.h:31,
                 from src/kj/async.h:28,
                 from src/kj/async-io.h:28,
                 from src/kj/async-io-unix.c++:29:
In function ‘const void* memchr(const void*, int, size_t)’,
    inlined from ‘kj::Maybe<long unsigned int> kj::StringPtr::findFirst(char) const’ at src/kj/string.h:538:57,
    inlined from ‘static kj::Promise<kj::Array<kj::{anonymous}::SocketAddress> > kj::{anonymous}::SocketAddress::parse(kj::LowLevelAsyncIoProvider&, kj::StringPtr, kj::uint, kj::_::NetworkFilter&)’ at src/kj/async-io-unix.c++:671:7:
/usr/include/string.h:102:27: warning: ‘void* __builtin_memchr(const void*, int, long unsigned int)’ specified bound [18446744073709551615, 0] exceeds maximum object size 9223372036854775807 [-Wstringop-overread]
  102 |   return __builtin_memchr (__s, __c, __n);
      |          ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
In file included from src/kj/common-test.c++:22:
src/kj/common.h: In instantiation of ‘constexpr kj::ArrayPtr<T>::ArrayPtr(std::initializer_list<typename kj::RemoveConstOrDisable_<T>::Type>) [with T = const int; typename kj::RemoveConstOrDisable_<T>::Type = int]’:
src/kj/common-test.c++:493:3:   required from here
src/kj/common.h:1267:23: warning: initializing ‘kj::ArrayPtr<const int>::ptr’ from ‘std::initializer_list<int>::begin’ does not extend the lifetime of the underlying array [-Winit-list-lifetime]
 1267 |       : ptr(init.begin()), size_(init.size()) {}
      |             ~~~~~~~~~~^~
src/kj/common.h: In instantiation of ‘constexpr kj::ArrayPtr<T>::ArrayPtr(std::initializer_list<typename kj::RemoveConstOrDisable_<T>::Type>) [with T = const short int; typename kj::RemoveConstOrDisable_<T>::Type = short int]’:
src/kj/common-test.c++:498:3:   required from here
src/kj/common.h:1267:23: warning: initializing ‘kj::ArrayPtr<const short int>::ptr’ from ‘std::initializer_list<short int>::begin’ does not extend the lifetime of the underlying array [-Winit-list-lifetime]
src/kj/common.h: In instantiation of ‘constexpr kj::ArrayPtr<T>::ArrayPtr(std::initializer_list<typename kj::RemoveConstOrDisable_<T>::Type>) [with T = const kj::StringPtr; typename kj::RemoveConstOrDisable_<T>::Type = kj::StringPtr]’:
src/kj/common-test.c++:503:3:   required from here
src/kj/common.h:1267:23: warning: initializing ‘kj::ArrayPtr<const kj::StringPtr>::ptr’ from ‘std::initializer_list<kj::StringPtr>::begin’ does not extend the lifetime of the underlying array [-Winit-list-lifetime]
src/kj/common.h: In instantiation of ‘constexpr kj::ArrayPtr<T>::ArrayPtr(std::initializer_list<typename kj::RemoveConstOrDisable_<T>::Type>) [with T = const char* const; typename kj::RemoveConstOrDisable_<T>::Type = const char*]’:
src/kj/common-test.c++:503:3:   required from here
src/kj/common.h:1267:23: warning: initializing ‘kj::ArrayPtr<const char* const>::ptr’ from ‘std::initializer_list<const char*>::begin’ does not extend the lifetime of the underlying array [-Winit-list-lifetime]
In file included from ./src/kj/compat/gtest.h:32,
                 from src/kj/string-test.c++:23:
src/kj/string-test.c++: In member function ‘virtual void kj::_::{anonymous}::TestCase31::run()’:
src/kj/string-test.c++:37:36: error: ‘uint8_t’ was not declared in this scope
   37 |             str((int8_t)123, " ", (uint8_t)234, " ", (int8_t)-123, " ", hex((uint8_t)0xe7)));
      |                                    ^~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:36:3: note: in expansion of macro ‘EXPECT_EQ’
   36 |   EXPECT_EQ("123 234 -123 e7",
      |   ^~~~~~~~~
src/kj/string-test.c++:25:1: note: ‘uint8_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
   24 | #include <string>
  +++ |+#include <cstdint>
   25 | #include "vector.h"
src/kj/string-test.c++:37:86: error: expected ‘)’ before numeric constant
   37 |             str((int8_t)123, " ", (uint8_t)234, " ", (int8_t)-123, " ", hex((uint8_t)0xe7)));
      |                                                                            ~         ^~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:36:3: note: in expansion of macro ‘EXPECT_EQ’
   36 |   EXPECT_EQ("123 234 -123 e7",
      |   ^~~~~~~~~
In file included from ./src/kj/compat/../test.h:28:
src/kj/string-test.c++:37:44: error: expected ‘)’ before numeric constant
   37 |             str((int8_t)123, " ", (uint8_t)234, " ", (int8_t)-123, " ", hex((uint8_t)0xe7)));
      |                ~                           ^~~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:36:3: note: in expansion of macro ‘EXPECT_EQ’
   36 |   EXPECT_EQ("123 234 -123 e7",
      |   ^~~~~~~~~
src/kj/string-test.c++:37:86: error: expected ‘)’ before numeric constant
   37 |             str((int8_t)123, " ", (uint8_t)234, " ", (int8_t)-123, " ", hex((uint8_t)0xe7)));
      |                                                                            ~         ^~~~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:36:3: note: in expansion of macro ‘EXPECT_EQ’
   36 |   EXPECT_EQ("123 234 -123 e7",
      |   ^~~~~~~~~
src/kj/string-test.c++:42:16: error: ‘uint8_t’ was not declared in this scope
   42 |       str(hex((uint8_t)0xff), ' ', hex((uint16_t)0xffff), ' ', hex((uint32_t)0xffffffffu), ' ',
      |                ^~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:41:3: note: in expansion of macro ‘EXPECT_EQ’
   41 |   EXPECT_EQ("ff ffff ffffffff ffffffffffffffff",
      |   ^~~~~~~~~
src/kj/string-test.c++:42:16: note: ‘uint8_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
   42 |       str(hex((uint8_t)0xff), ' ', hex((uint16_t)0xffff), ' ', hex((uint32_t)0xffffffffu), ' ',
      |                ^~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:41:3: note: in expansion of macro ‘EXPECT_EQ’
   41 |   EXPECT_EQ("ff ffff ffffffff ffffffffffffffff",
      |   ^~~~~~~~~
src/kj/string-test.c++:42:41: error: ‘uint16_t’ was not declared in this scope
   42 |       str(hex((uint8_t)0xff), ' ', hex((uint16_t)0xffff), ' ', hex((uint32_t)0xffffffffu), ' ',
      |                                         ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:41:3: note: in expansion of macro ‘EXPECT_EQ’
   41 |   EXPECT_EQ("ff ffff ffffffff ffffffffffffffff",
      |   ^~~~~~~~~
src/kj/string-test.c++:42:41: note: ‘uint16_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
   42 |       str(hex((uint8_t)0xff), ' ', hex((uint16_t)0xffff), ' ', hex((uint32_t)0xffffffffu), ' ',
      |                                         ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:41:3: note: in expansion of macro ‘EXPECT_EQ’
   41 |   EXPECT_EQ("ff ffff ffffffff ffffffffffffffff",
      |   ^~~~~~~~~
src/kj/string-test.c++:42:69: error: ‘uint32_t’ was not declared in this scope
   42 |       str(hex((uint8_t)0xff), ' ', hex((uint16_t)0xffff), ' ', hex((uint32_t)0xffffffffu), ' ',
      |                                                                     ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:41:3: note: in expansion of macro ‘EXPECT_EQ’
   41 |   EXPECT_EQ("ff ffff ffffffff ffffffffffffffff",
      |   ^~~~~~~~~
src/kj/string-test.c++:42:69: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
   42 |       str(hex((uint8_t)0xff), ' ', hex((uint16_t)0xffff), ' ', hex((uint32_t)0xffffffffu), ' ',
      |                                                                     ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:41:3: note: in expansion of macro ‘EXPECT_EQ’
   41 |   EXPECT_EQ("ff ffff ffffffff ffffffffffffffff",
      |   ^~~~~~~~~
src/kj/string-test.c++:43:16: error: ‘uint64_t’ was not declared in this scope
   43 |           hex((uint64_t)0xffffffffffffffffull)));
      |                ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:41:3: note: in expansion of macro ‘EXPECT_EQ’
   41 |   EXPECT_EQ("ff ffff ffffffff ffffffffffffffff",
      |   ^~~~~~~~~
src/kj/string-test.c++:43:16: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
   43 |           hex((uint64_t)0xffffffffffffffffull)));
      |                ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:41:3: note: in expansion of macro ‘EXPECT_EQ’
   41 |   EXPECT_EQ("ff ffff ffffffff ffffffffffffffff",
      |   ^~~~~~~~~
src/kj/string-test.c++:42:24: error: expected ‘)’ before numeric constant
   42 |       str(hex((uint8_t)0xff), ' ', hex((uint16_t)0xffff), ' ', hex((uint32_t)0xffffffffu), ' ',
      |              ~         ^~~~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:41:3: note: in expansion of macro ‘EXPECT_EQ’
   41 |   EXPECT_EQ("ff ffff ffffffff ffffffffffffffff",
      |   ^~~~~~~~~
src/kj/string-test.c++:42:50: error: expected ‘)’ before numeric constant
   42 |       str(hex((uint8_t)0xff), ' ', hex((uint16_t)0xffff), ' ', hex((uint32_t)0xffffffffu), ' ',
      |                                       ~          ^~~~~~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:41:3: note: in expansion of macro ‘EXPECT_EQ’
   41 |   EXPECT_EQ("ff ffff ffffffff ffffffffffffffff",
      |   ^~~~~~~~~
src/kj/string-test.c++:42:78: error: expected ‘)’ before numeric constant
   42 |       str(hex((uint8_t)0xff), ' ', hex((uint16_t)0xffff), ' ', hex((uint32_t)0xffffffffu), ' ',
      |                                                                   ~          ^~~~~~~~~~~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:41:3: note: in expansion of macro ‘EXPECT_EQ’
   41 |   EXPECT_EQ("ff ffff ffffffff ffffffffffffffff",
      |   ^~~~~~~~~
src/kj/string-test.c++:43:25: error: expected ‘)’ before numeric constant
   43 |           hex((uint64_t)0xffffffffffffffffull)));
      |              ~          ^~~~~~~~~~~~~~~~~~~~~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:41:3: note: in expansion of macro ‘EXPECT_EQ’
   41 |   EXPECT_EQ("ff ffff ffffffff ffffffffffffffff",
      |   ^~~~~~~~~
src/kj/string-test.c++: In member function ‘virtual void kj::_::{anonymous}::TestCase82::run()’:
src/kj/string-test.c++:125:36: error: ‘uint64_t’ was not declared in this scope
  125 |   EXPECT_EQ(StringPtr("1").parseAs<uint64_t>(), 1);
      |                                    ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:125:3: note: in expansion of macro ‘EXPECT_EQ’
  125 |   EXPECT_EQ(StringPtr("1").parseAs<uint64_t>(), 1);
      |   ^~~~~~~~~
src/kj/string-test.c++:125:36: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  125 |   EXPECT_EQ(StringPtr("1").parseAs<uint64_t>(), 1);
      |                                    ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:125:3: note: in expansion of macro ‘EXPECT_EQ’
  125 |   EXPECT_EQ(StringPtr("1").parseAs<uint64_t>(), 1);
      |   ^~~~~~~~~
src/kj/string-test.c++:125:45: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  125 |   EXPECT_EQ(StringPtr("1").parseAs<uint64_t>(), 1);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:125:3: note: in expansion of macro ‘EXPECT_EQ’
  125 |   EXPECT_EQ(StringPtr("1").parseAs<uint64_t>(), 1);
      |   ^~~~~~~~~
In file included from src/kj/string-test.c++:22:
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:125:45: error: template argument 1 is invalid
  125 |   EXPECT_EQ(StringPtr("1").parseAs<uint64_t>(), 1);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:125:3: note: in expansion of macro ‘EXPECT_EQ’
  125 |   EXPECT_EQ(StringPtr("1").parseAs<uint64_t>(), 1);
      |   ^~~~~~~~~
src/kj/string-test.c++:125:45: error: no matching function for call to ‘kj::StringPtr::parseAs<uint64_t>()’
  125 |   EXPECT_EQ(StringPtr("1").parseAs<uint64_t>(), 1);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:125:3: note: in expansion of macro ‘EXPECT_EQ’
  125 |   EXPECT_EQ(StringPtr("1").parseAs<uint64_t>(), 1);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:126:36: error: ‘uint64_t’ was not declared in this scope
  126 |   EXPECT_EQ(StringPtr("0").parseAs<uint64_t>(), 0);
      |                                    ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:126:3: note: in expansion of macro ‘EXPECT_EQ’
  126 |   EXPECT_EQ(StringPtr("0").parseAs<uint64_t>(), 0);
      |   ^~~~~~~~~
src/kj/string-test.c++:126:36: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  126 |   EXPECT_EQ(StringPtr("0").parseAs<uint64_t>(), 0);
      |                                    ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:126:3: note: in expansion of macro ‘EXPECT_EQ’
  126 |   EXPECT_EQ(StringPtr("0").parseAs<uint64_t>(), 0);
      |   ^~~~~~~~~
src/kj/string-test.c++:126:45: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  126 |   EXPECT_EQ(StringPtr("0").parseAs<uint64_t>(), 0);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:126:3: note: in expansion of macro ‘EXPECT_EQ’
  126 |   EXPECT_EQ(StringPtr("0").parseAs<uint64_t>(), 0);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:126:45: error: template argument 1 is invalid
  126 |   EXPECT_EQ(StringPtr("0").parseAs<uint64_t>(), 0);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:126:3: note: in expansion of macro ‘EXPECT_EQ’
  126 |   EXPECT_EQ(StringPtr("0").parseAs<uint64_t>(), 0);
      |   ^~~~~~~~~
src/kj/string-test.c++:126:45: error: no matching function for call to ‘kj::StringPtr::parseAs<uint64_t>()’
  126 |   EXPECT_EQ(StringPtr("0").parseAs<uint64_t>(), 0);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:126:3: note: in expansion of macro ‘EXPECT_EQ’
  126 |   EXPECT_EQ(StringPtr("0").parseAs<uint64_t>(), 0);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:127:55: error: ‘uint64_t’ was not declared in this scope
  127 |   EXPECT_EQ(StringPtr("18446744073709551615").parseAs<uint64_t>(), 18446744073709551615ULL);
      |                                                       ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:127:3: note: in expansion of macro ‘EXPECT_EQ’
  127 |   EXPECT_EQ(StringPtr("18446744073709551615").parseAs<uint64_t>(), 18446744073709551615ULL);
      |   ^~~~~~~~~
src/kj/string-test.c++:127:55: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  127 |   EXPECT_EQ(StringPtr("18446744073709551615").parseAs<uint64_t>(), 18446744073709551615ULL);
      |                                                       ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:127:3: note: in expansion of macro ‘EXPECT_EQ’
  127 |   EXPECT_EQ(StringPtr("18446744073709551615").parseAs<uint64_t>(), 18446744073709551615ULL);
      |   ^~~~~~~~~
src/kj/string-test.c++:127:64: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  127 |   EXPECT_EQ(StringPtr("18446744073709551615").parseAs<uint64_t>(), 18446744073709551615ULL);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:127:3: note: in expansion of macro ‘EXPECT_EQ’
  127 |   EXPECT_EQ(StringPtr("18446744073709551615").parseAs<uint64_t>(), 18446744073709551615ULL);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:127:64: error: template argument 1 is invalid
  127 |   EXPECT_EQ(StringPtr("18446744073709551615").parseAs<uint64_t>(), 18446744073709551615ULL);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:127:3: note: in expansion of macro ‘EXPECT_EQ’
  127 |   EXPECT_EQ(StringPtr("18446744073709551615").parseAs<uint64_t>(), 18446744073709551615ULL);
      |   ^~~~~~~~~
src/kj/string-test.c++:127:64: error: no matching function for call to ‘kj::StringPtr::parseAs<uint64_t>()’
  127 |   EXPECT_EQ(StringPtr("18446744073709551615").parseAs<uint64_t>(), 18446744073709551615ULL);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:127:3: note: in expansion of macro ‘EXPECT_EQ’
  127 |   EXPECT_EQ(StringPtr("18446744073709551615").parseAs<uint64_t>(), 18446744073709551615ULL);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
In file included from src/kj/memory.h:28,
                 from src/kj/array.h:28,
                 from src/kj/string.h:29:
src/kj/string-test.c++: In lambda function:
src/kj/string-test.c++:128:79: error: ‘uint64_t’ was not declared in this scope
  128 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint64_t>());
      |                                                                               ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:128:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  128 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:128:79: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  128 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint64_t>());
      |                                                                               ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:128:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  128 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:128:88: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  128 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint64_t>());
      |                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:128:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  128 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:128:88: error: template argument 1 is invalid
  128 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint64_t>());
      |                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:128:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  128 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++: In lambda function:
src/kj/string-test.c++:129:97: error: ‘uint64_t’ was not declared in this scope
  129 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("18446744073709551616").parseAs<uint64_t>());
      |                                                                                                 ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:129:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  129 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("18446744073709551616").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:129:97: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  129 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("18446744073709551616").parseAs<uint64_t>());
      |                                                                                                 ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:129:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  129 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("18446744073709551616").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:129:106: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  129 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("18446744073709551616").parseAs<uint64_t>());
      |                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:129:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  129 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("18446744073709551616").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:129:106: error: template argument 1 is invalid
  129 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("18446744073709551616").parseAs<uint64_t>());
      |                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:129:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  129 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("18446744073709551616").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++: In lambda function:
src/kj/string-test.c++:130:82: error: ‘uint64_t’ was not declared in this scope
  130 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("").parseAs<uint64_t>());
      |                                                                                  ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:130:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  130 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:130:82: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  130 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("").parseAs<uint64_t>());
      |                                                                                  ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:130:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  130 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:130:91: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  130 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("").parseAs<uint64_t>());
      |                                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:130:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  130 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:130:91: error: template argument 1 is invalid
  130 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("").parseAs<uint64_t>());
      |                                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:130:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  130 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++: In lambda function:
src/kj/string-test.c++:131:83: error: ‘uint64_t’ was not declared in this scope
  131 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("a").parseAs<uint64_t>());
      |                                                                                   ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:131:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  131 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("a").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:131:83: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  131 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("a").parseAs<uint64_t>());
      |                                                                                   ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:131:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  131 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("a").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:131:92: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  131 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("a").parseAs<uint64_t>());
      |                                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:131:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  131 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("a").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:131:92: error: template argument 1 is invalid
  131 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("a").parseAs<uint64_t>());
      |                                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:131:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  131 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("a").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++: In lambda function:
src/kj/string-test.c++:132:84: error: ‘uint64_t’ was not declared in this scope
  132 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("1a").parseAs<uint64_t>());
      |                                                                                    ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:132:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  132 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("1a").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:132:84: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  132 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("1a").parseAs<uint64_t>());
      |                                                                                    ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:132:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  132 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("1a").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:132:93: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  132 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("1a").parseAs<uint64_t>());
      |                                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:132:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  132 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("1a").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:132:93: error: template argument 1 is invalid
  132 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("1a").parseAs<uint64_t>());
      |                                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:132:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  132 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("1a").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++: In lambda function:
src/kj/string-test.c++:133:85: error: ‘uint64_t’ was not declared in this scope
  133 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("+-1").parseAs<uint64_t>());
      |                                                                                     ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:133:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  133 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("+-1").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:133:85: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  133 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("+-1").parseAs<uint64_t>());
      |                                                                                     ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:133:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  133 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("+-1").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:133:94: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  133 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("+-1").parseAs<uint64_t>());
      |                                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:133:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  133 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("+-1").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:133:94: error: template argument 1 is invalid
  133 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("+-1").parseAs<uint64_t>());
      |                                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:133:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  133 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("not contain valid", StringPtr("+-1").parseAs<uint64_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++: In member function ‘virtual void kj::_::{anonymous}::TestCase82::run()’:
src/kj/string-test.c++:141:36: error: ‘uint32_t’ was not declared in this scope
  141 |   EXPECT_EQ(StringPtr("1").parseAs<uint32_t>(), 1);
      |                                    ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:141:3: note: in expansion of macro ‘EXPECT_EQ’
  141 |   EXPECT_EQ(StringPtr("1").parseAs<uint32_t>(), 1);
      |   ^~~~~~~~~
src/kj/string-test.c++:141:36: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  141 |   EXPECT_EQ(StringPtr("1").parseAs<uint32_t>(), 1);
      |                                    ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:141:3: note: in expansion of macro ‘EXPECT_EQ’
  141 |   EXPECT_EQ(StringPtr("1").parseAs<uint32_t>(), 1);
      |   ^~~~~~~~~
src/kj/string-test.c++:141:45: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  141 |   EXPECT_EQ(StringPtr("1").parseAs<uint32_t>(), 1);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:141:3: note: in expansion of macro ‘EXPECT_EQ’
  141 |   EXPECT_EQ(StringPtr("1").parseAs<uint32_t>(), 1);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:141:45: error: template argument 1 is invalid
  141 |   EXPECT_EQ(StringPtr("1").parseAs<uint32_t>(), 1);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:141:3: note: in expansion of macro ‘EXPECT_EQ’
  141 |   EXPECT_EQ(StringPtr("1").parseAs<uint32_t>(), 1);
      |   ^~~~~~~~~
src/kj/string-test.c++:141:45: error: no matching function for call to ‘kj::StringPtr::parseAs<uint32_t>()’
  141 |   EXPECT_EQ(StringPtr("1").parseAs<uint32_t>(), 1);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:141:3: note: in expansion of macro ‘EXPECT_EQ’
  141 |   EXPECT_EQ(StringPtr("1").parseAs<uint32_t>(), 1);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:142:36: error: ‘uint32_t’ was not declared in this scope
  142 |   EXPECT_EQ(StringPtr("0").parseAs<uint32_t>(), 0U);
      |                                    ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:142:3: note: in expansion of macro ‘EXPECT_EQ’
  142 |   EXPECT_EQ(StringPtr("0").parseAs<uint32_t>(), 0U);
      |   ^~~~~~~~~
src/kj/string-test.c++:142:36: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  142 |   EXPECT_EQ(StringPtr("0").parseAs<uint32_t>(), 0U);
      |                                    ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:142:3: note: in expansion of macro ‘EXPECT_EQ’
  142 |   EXPECT_EQ(StringPtr("0").parseAs<uint32_t>(), 0U);
      |   ^~~~~~~~~
src/kj/string-test.c++:142:45: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  142 |   EXPECT_EQ(StringPtr("0").parseAs<uint32_t>(), 0U);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:142:3: note: in expansion of macro ‘EXPECT_EQ’
  142 |   EXPECT_EQ(StringPtr("0").parseAs<uint32_t>(), 0U);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:142:45: error: template argument 1 is invalid
  142 |   EXPECT_EQ(StringPtr("0").parseAs<uint32_t>(), 0U);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:142:3: note: in expansion of macro ‘EXPECT_EQ’
  142 |   EXPECT_EQ(StringPtr("0").parseAs<uint32_t>(), 0U);
      |   ^~~~~~~~~
src/kj/string-test.c++:142:45: error: no matching function for call to ‘kj::StringPtr::parseAs<uint32_t>()’
  142 |   EXPECT_EQ(StringPtr("0").parseAs<uint32_t>(), 0U);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:142:3: note: in expansion of macro ‘EXPECT_EQ’
  142 |   EXPECT_EQ(StringPtr("0").parseAs<uint32_t>(), 0U);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:143:45: error: ‘uint32_t’ was not declared in this scope
  143 |   EXPECT_EQ(StringPtr("4294967295").parseAs<uint32_t>(), 4294967295U);
      |                                             ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:143:3: note: in expansion of macro ‘EXPECT_EQ’
  143 |   EXPECT_EQ(StringPtr("4294967295").parseAs<uint32_t>(), 4294967295U);
      |   ^~~~~~~~~
src/kj/string-test.c++:143:45: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  143 |   EXPECT_EQ(StringPtr("4294967295").parseAs<uint32_t>(), 4294967295U);
      |                                             ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:143:3: note: in expansion of macro ‘EXPECT_EQ’
  143 |   EXPECT_EQ(StringPtr("4294967295").parseAs<uint32_t>(), 4294967295U);
      |   ^~~~~~~~~
src/kj/string-test.c++:143:54: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  143 |   EXPECT_EQ(StringPtr("4294967295").parseAs<uint32_t>(), 4294967295U);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:143:3: note: in expansion of macro ‘EXPECT_EQ’
  143 |   EXPECT_EQ(StringPtr("4294967295").parseAs<uint32_t>(), 4294967295U);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:143:54: error: template argument 1 is invalid
  143 |   EXPECT_EQ(StringPtr("4294967295").parseAs<uint32_t>(), 4294967295U);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:143:3: note: in expansion of macro ‘EXPECT_EQ’
  143 |   EXPECT_EQ(StringPtr("4294967295").parseAs<uint32_t>(), 4294967295U);
      |   ^~~~~~~~~
src/kj/string-test.c++:143:54: error: no matching function for call to ‘kj::StringPtr::parseAs<uint32_t>()’
  143 |   EXPECT_EQ(StringPtr("4294967295").parseAs<uint32_t>(), 4294967295U);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:143:3: note: in expansion of macro ‘EXPECT_EQ’
  143 |   EXPECT_EQ(StringPtr("4294967295").parseAs<uint32_t>(), 4294967295U);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++: In lambda function:
src/kj/string-test.c++:144:79: error: ‘uint32_t’ was not declared in this scope
  144 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint32_t>());
      |                                                                               ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:144:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  144 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint32_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:144:79: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  144 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint32_t>());
      |                                                                               ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:144:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  144 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint32_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:144:88: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  144 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint32_t>());
      |                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:144:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  144 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint32_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:144:88: error: template argument 1 is invalid
  144 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint32_t>());
      |                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:144:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  144 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("-1").parseAs<uint32_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++: In lambda function:
src/kj/string-test.c++:145:87: error: ‘uint32_t’ was not declared in this scope
  145 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("4294967296").parseAs<uint32_t>());
      |                                                                                       ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:145:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  145 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("4294967296").parseAs<uint32_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:145:87: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  145 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("4294967296").parseAs<uint32_t>());
      |                                                                                       ^~~~~~~~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:145:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  145 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("4294967296").parseAs<uint32_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++:145:96: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  145 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("4294967296").parseAs<uint32_t>());
      |                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:145:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  145 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("4294967296").parseAs<uint32_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:145:96: error: template argument 1 is invalid
  145 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("4294967296").parseAs<uint32_t>());
      |                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
src/kj/common.h:1053:67: note: in definition of macro ‘KJ_IF_MAYBE’
 1053 | #define KJ_IF_MAYBE(name, exp) if (auto name = ::kj::_::readMaybe(exp))
      |                                                                   ^~~
src/kj/string-test.c++:145:3: note: in expansion of macro ‘KJ_EXPECT_THROW_RECOVERABLE_MESSAGE’
  145 |   KJ_EXPECT_THROW_RECOVERABLE_MESSAGE("out-of-range", StringPtr("4294967296").parseAs<uint32_t>());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/kj/string-test.c++: In member function ‘virtual void kj::_::{anonymous}::TestCase82::run()’:
src/kj/string-test.c++:148:36: error: ‘uint16_t’ was not declared in this scope
  148 |   EXPECT_EQ(StringPtr("1").parseAs<uint16_t>(), 1);
      |                                    ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:148:3: note: in expansion of macro ‘EXPECT_EQ’
  148 |   EXPECT_EQ(StringPtr("1").parseAs<uint16_t>(), 1);
      |   ^~~~~~~~~
src/kj/string-test.c++:148:36: note: ‘uint16_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  148 |   EXPECT_EQ(StringPtr("1").parseAs<uint16_t>(), 1);
      |                                    ^~~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:148:3: note: in expansion of macro ‘EXPECT_EQ’
  148 |   EXPECT_EQ(StringPtr("1").parseAs<uint16_t>(), 1);
      |   ^~~~~~~~~
src/kj/string-test.c++:148:45: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  148 |   EXPECT_EQ(StringPtr("1").parseAs<uint16_t>(), 1);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:148:3: note: in expansion of macro ‘EXPECT_EQ’
  148 |   EXPECT_EQ(StringPtr("1").parseAs<uint16_t>(), 1);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:148:45: error: template argument 1 is invalid
  148 |   EXPECT_EQ(StringPtr("1").parseAs<uint16_t>(), 1);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:148:3: note: in expansion of macro ‘EXPECT_EQ’
  148 |   EXPECT_EQ(StringPtr("1").parseAs<uint16_t>(), 1);
      |   ^~~~~~~~~
src/kj/string-test.c++:148:45: error: no matching function for call to ‘kj::StringPtr::parseAs<uint16_t>()’
  148 |   EXPECT_EQ(StringPtr("1").parseAs<uint16_t>(), 1);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:148:3: note: in expansion of macro ‘EXPECT_EQ’
  148 |   EXPECT_EQ(StringPtr("1").parseAs<uint16_t>(), 1);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:150:36: error: ‘uint8_t’ was not declared in this scope
  150 |   EXPECT_EQ(StringPtr("1").parseAs<uint8_t>(), 1);
      |                                    ^~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:150:3: note: in expansion of macro ‘EXPECT_EQ’
  150 |   EXPECT_EQ(StringPtr("1").parseAs<uint8_t>(), 1);
      |   ^~~~~~~~~
src/kj/string-test.c++:150:36: note: ‘uint8_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  150 |   EXPECT_EQ(StringPtr("1").parseAs<uint8_t>(), 1);
      |                                    ^~~~~~~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:150:3: note: in expansion of macro ‘EXPECT_EQ’
  150 |   EXPECT_EQ(StringPtr("1").parseAs<uint8_t>(), 1);
      |   ^~~~~~~~~
src/kj/string-test.c++:150:44: error: no matching function for call to ‘kj::StringPtr::parseAs<<expression error> >()’
  150 |   EXPECT_EQ(StringPtr("1").parseAs<uint8_t>(), 1);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:150:3: note: in expansion of macro ‘EXPECT_EQ’
  150 |   EXPECT_EQ(StringPtr("1").parseAs<uint8_t>(), 1);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
src/kj/string-test.c++:150:44: error: template argument 1 is invalid
  150 |   EXPECT_EQ(StringPtr("1").parseAs<uint8_t>(), 1);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../test.h:75:7: note: in definition of macro ‘KJ_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |       ^~~~
src/kj/string-test.c++:150:3: note: in expansion of macro ‘EXPECT_EQ’
  150 |   EXPECT_EQ(StringPtr("1").parseAs<uint8_t>(), 1);
      |   ^~~~~~~~~
src/kj/string-test.c++:150:44: error: no matching function for call to ‘kj::StringPtr::parseAs<uint8_t>()’
  150 |   EXPECT_EQ(StringPtr("1").parseAs<uint8_t>(), 1);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./src/kj/compat/../debug.h:215:41: note: in definition of macro ‘KJ_LOG’
  215 |                         #__VA_ARGS__, ##__VA_ARGS__)
      |                                         ^~~~~~~~~~~
./src/kj/compat/../test.h:75:19: note: in expansion of macro ‘KJ_FAIL_EXPECT’
   75 |   if (cond); else KJ_FAIL_EXPECT("failed: expected " #cond, ##__VA_ARGS__)
      |                   ^~~~~~~~~~~~~~
./src/kj/compat/gtest.h:54:25: note: in expansion of macro ‘KJ_EXPECT’
   54 | #define EXPECT_EQ(x, y) KJ_EXPECT((x) == (y), x, y)
      |                         ^~~~~~~~~
src/kj/string-test.c++:150:3: note: in expansion of macro ‘EXPECT_EQ’
  150 |   EXPECT_EQ(StringPtr("1").parseAs<uint8_t>(), 1);
      |   ^~~~~~~~~
src/kj/string.h:133:5: note: candidate: ‘template<class T> T kj::StringPtr::parseAs() const’
  133 |   T parseAs() const;
      |     ^~~~~~~
src/kj/string.h:133:5: note:   template argument deduction/substitution failed:
In file included from src/kj/memory.h:28,
                 from src/kj/array.h:28,
                 from src/kj/array-test.c++:22:
src/kj/common.h: In instantiation of ‘constexpr kj::ArrayPtr<T>::ArrayPtr(std::initializer_list<typename kj::RemoveConstOrDisable_<T>::Type>) [with T = const kj::StringPtr; typename kj::RemoveConstOrDisable_<T>::Type = kj::StringPtr]’:
src/kj/array-test.c++:384:3:   required from here
src/kj/common.h:1267:23: warning: initializing ‘kj::ArrayPtr<const kj::StringPtr>::ptr’ from ‘std::initializer_list<kj::StringPtr>::begin’ does not extend the lifetime of the underlying array [-Winit-list-lifetime]
 1267 |       : ptr(init.begin()), size_(init.size()) {}
      |             ~~~~~~~~~~^~
make[3]: *** [Makefile:2357: src/kj/capnp_test-string-test.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [Makefile:3804: check-am] Error 2
make[1]: *** [Makefile:3807: check] Error 2
Bailout called.  Further testing stopped:  Failed the installation of capnp
t/00_setup.t ......... 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/1 subtests 
Can't use an undefined value as a subroutine reference at /home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.39.3/29fb/lib/5.39.3/TAP/Harness.pm line 612.
make: *** [Makefile:876: test_dynamic] Error 255

------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

requires:

    Module              Need     Have    
    ------------------- -------- --------
    Bio::Sketch         0        0.3     
    Class::Interface    0        1.01    
    Data::Dumper        0        2.189   
    Encode              2.21     3.19    
    Exporter            0        5.77    
    File::Basename      0        2.86    
    JSON                2.9      4.10    
    List::Util          0        1.63    
    perl                5.012000 5.039003
    Thread::Queue       0        3.14    
    threads             0        2.39    
    threads::shared     0        1.69    

build_requires:

    Module              Need     Have    
    ------------------- -------- --------
    Test::More          0.47     1.302195

configure_requires:

    Module              Need     Have    
    ------------------- -------- --------
    ExtUtils::MakeMaker 0        7.70    


------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    AUTOMATED_TESTING = 1
    LANG = en_US.UTF-8
    LANGUAGE = en_US:en
    PATH = /home/sand/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/local/perl/bin:/usr/X11/bin:/sbin:/usr/sbin
    PERL5LIB = 
    PERL5OPT = 
    PERL5_CPANPLUS_IS_RUNNING = 3731852
    PERL5_CPAN_IS_RUNNING = 3731852
    PERL_CANARY_STABILITY_NOPROMPT = 1
    PERL_MM_USE_DEFAULT = 1
    PERL_USE_UNSAFE_INC = 1
    SHELL = /usr/bin/zsh
    TERM = screen

Perl special variables (and OS-specific diagnostics, for MSWin32):

    $^X = /home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.39.3/29fb/bin/perl
    $UID/$EUID = 1005 / 1005
    $GID = 1005 1005
    $EGID = 1005 1005

Perl module toolchain versions installed:

    Module              Have    
    ------------------- --------
    CPAN                2.36    
    CPAN::Meta          2.150010
    Cwd                 3.90    
    ExtUtils::CBuilder  0.280240
    ExtUtils::Command   7.70    
    ExtUtils::Install   2.22    
    ExtUtils::MakeMaker 7.70    
    ExtUtils::Manifest  1.75    
    ExtUtils::ParseXS   3.51    
    File::Spec          3.90    
    JSON                4.10    
    JSON::PP            4.16    
    Module::Build       0.4234  
    Module::Signature   0.88    
    Parse::CPAN::Meta   2.150010
    Test2               1.302195
    Test::Harness       3.47    
    Test::More          1.302195
    YAML                1.30    
    YAML::Syck          1.34    
    version             0.9930  


--

Summary of my perl5 (revision 5 version 39 subversion 3) configuration:
  Commit id: c8a2e4d1432cd1244a4e44d6bb71920b692076b7
  Platform:
    osname=linux
    osvers=6.1.0-7-amd64
    archname=x86_64-linux-thread-multi
    uname='linux k93msid 6.1.0-7-amd64 #1 smp preempt_dynamic debian 6.1.20-1 (2023-03-19) x86_64 gnulinux '
    config_args='-Dprefix=/home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.39.3/29fb -Dmyhostname=k93msid -Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db -Dlibswanted=cl pthread socket inet nsl gdbm dbm malloc dl ld sun m crypt sec util c cposix posix ucb BSD gdbm_compat -Duseithreads -Uuselongdouble -DEBUGGING=both'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=define
    usemultiplicity=define
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
  Compiler:
    cc='cc'
    ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
    optimize='-O2 -g'
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='12.2.0'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib/x86_64-linux-gnu /usr/lib /usr/lib64
    libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=/lib/x86_64-linux-gnu/libc.so.6
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version='2.36'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options:
    DEBUGGING
    HAS_LONG_DOUBLE
    HAS_STRTOLD
    HAS_TIMES
    MULTIPLICITY
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_HASH_FUNC_SIPHASH13
    PERL_HASH_USE_SBOX32
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_TRACK_MEMPOOL
    PERL_USE_DEVEL
    PERL_USE_SAFE_PUTENV
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_ITHREADS
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
    USE_REENTRANT_API
    USE_THREAD_SAFE_LOCALE
  Built under linux
  Compiled at Sep 20 2023 23:25:55
  %ENV:
    PERL5LIB=""
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="3731852"
    PERL5_CPAN_IS_RUNNING="3731852"
    PERL_CANARY_STABILITY_NOPROMPT="1"
    PERL_MM_USE_DEFAULT="1"
    PERL_USE_UNSAFE_INC="1"
  @INC:
    /home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.39.3/29fb/lib/site_perl/5.39.3/x86_64-linux-thread-multi
    /home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.39.3/29fb/lib/site_perl/5.39.3
    /home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.39.3/29fb/lib/5.39.3/x86_64-linux-thread-multi
    /home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.39.3/29fb/lib/5.39.3
    .