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

Status
Fail
From
Slaven Rezić
Dist
Bio-Sketch-Mash v0.9
Platform
Perl 5 v5.38.2 x86_64-linux-thread-multi
Date
2023-12-28 11:02:48
ID
a32efe9c-a570-11ee-b0f0-52f86d8775ea
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.38.2, 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:

none provided

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

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

PERL_DL_NONLAZY=1 "/opt/perl-5.38.2t/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__));
      |        ^~~~~~~~~~~~~~~~~~
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);
      |          ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
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",
      |   ^~~~~~~~~
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()) {}
      |             ~~~~~~~~~~^~
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:
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 
FAILED--Further testing stopped: Failed the installation of capnp
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.188   
    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.038002
    Thread::Queue       0        3.14    
    threads             0        2.36    
    threads::shared     0        1.68    

build_requires:

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

configure_requires:

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


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

Environment variables:

    LANG = en_US.UTF-8
    PATH = /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/cpansand/bin/linux-gnu:/home/cpansand/bin/sh:/home/cpansand/bin:/usr/games:/home/cpansand/devel:/home/eserte/src/srezic-misc/scripts
    PERL5LIB = /home/cpansand/.cpan/build/2023122810/Bio-Sketch-0.3-4/blib/arch:/home/cpansand/.cpan/build/2023122810/Bio-Sketch-0.3-4/blib/lib:/home/cpansand/.cpan/build/2023122810/Class-Interface-1.01-4/blib/arch:/home/cpansand/.cpan/build/2023122810/Class-Interface-1.01-4/blib/lib
    PERL5OPT = 
    PERL5_CPANPLUS_IS_RUNNING = 1186601
    PERL5_CPAN_IS_RUNNING = 1186601
    PERL5_CPAN_IS_RUNNING_IN_RECURSION = 1146175,1186601
    PERLDOC = -MPod::Perldoc::ToTextOverstrike
    PERL_BATCH = yes
    PERL_CANARY_STABILITY_NOPROMPT = 1
    PERL_CPAN_REPORTER_CONFIG = /var/tmp/cpansmoker-1023/2023122810/cpanreporter_002_config.ini
    PERL_EXTUTILS_AUTOINSTALL = --defaultdeps
    PERL_USE_UNSAFE_INC = 1
    SHELL = /usr/bin/zsh
    TERM = screen
    TMPDIR = /var/tmp/cpansmoker-1023/2023122810

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

    $^X = /opt/perl-5.38.2t/bin/perl
    $UID/$EUID = 1023 / 1023
    $GID = 1023 1023
    $EGID = 1023 1023

Perl module toolchain versions installed:

    Module              Have    
    ------------------- --------
    CPAN                2.36    
    CPAN::Meta          2.150010
    Cwd                 3.89    
    ExtUtils::CBuilder  0.280238
    ExtUtils::Command   7.70    
    ExtUtils::Install   2.22    
    ExtUtils::MakeMaker 7.70    
    ExtUtils::Manifest  1.73    
    ExtUtils::ParseXS   3.51    
    File::Spec          3.88    
    JSON                4.10    
    JSON::PP            4.16    
    Module::Build       0.4234  
    Module::Signature   n/a     
    Parse::CPAN::Meta   2.150010
    Test2               1.302194
    Test::Harness       3.44    
    Test::More          1.302194
    YAML                1.31    
    YAML::Syck          1.34    
    version             0.9929  


--

Summary of my perl5 (revision 5 version 38 subversion 2) configuration:
   
  Platform:
    osname=linux
    osvers=6.6.8-100.fc38.x86_64
    archname=x86_64-linux-thread-multi
    uname='linux fedora39-2gb-hil 6.6.8-100.fc38.x86_64 #1 smp preempt_dynamic thu dec 21 04:01:45 utc 2023 x86_64 gnulinux '
    config_args='-ds -e -Dprefix=/opt/perl-5.38.2t -Dusethreads -Dcf_email=srezic@cpan.org'
    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 -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'
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='13.2.1 20231205 (Red Hat 13.2.1-6)'
    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 /usr/lib64 /usr/local/lib64
    libs=-lpthread -ldb -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -ldl -lm -lcrypt -lutil -lc
    libc=/lib/../lib64/libc.so.6
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version='2.38'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options:
    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_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 Dec 27 2023 08:41:53
  %ENV:
    PERL5LIB="/home/cpansand/.cpan/build/2023122810/Bio-Sketch-0.3-4/blib/arch:/home/cpansand/.cpan/build/2023122810/Bio-Sketch-0.3-4/blib/lib:/home/cpansand/.cpan/build/2023122810/Class-Interface-1.01-4/blib/arch:/home/cpansand/.cpan/build/2023122810/Class-Interface-1.01-4/blib/lib"
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="1186601"
    PERL5_CPAN_IS_RUNNING="1186601"
    PERL5_CPAN_IS_RUNNING_IN_RECURSION="1146175,1186601"
    PERLDOC="-MPod::Perldoc::ToTextOverstrike"
    PERL_BATCH="yes"
    PERL_CANARY_STABILITY_NOPROMPT="1"
    PERL_CPAN_REPORTER_CONFIG="/var/tmp/cpansmoker-1023/2023122810/cpanreporter_002_config.ini"
    PERL_EXTUTILS_AUTOINSTALL="--defaultdeps"
    PERL_USE_UNSAFE_INC="1"
  @INC:
    /home/cpansand/.cpan/build/2023122810/Bio-Sketch-0.3-4/blib/arch
    /home/cpansand/.cpan/build/2023122810/Bio-Sketch-0.3-4/blib/lib
    /home/cpansand/.cpan/build/2023122810/Class-Interface-1.01-4/blib/arch
    /home/cpansand/.cpan/build/2023122810/Class-Interface-1.01-4/blib/lib
    /opt/perl-5.38.2t/lib/site_perl/5.38.2/x86_64-linux-thread-multi
    /opt/perl-5.38.2t/lib/site_perl/5.38.2
    /opt/perl-5.38.2t/lib/5.38.2/x86_64-linux-thread-multi
    /opt/perl-5.38.2t/lib/5.38.2
    .