re2 1.23.0 → 1.23.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/README.md +2 -0
  2. package/binding.gyp +3 -2
  3. package/package.json +5 -5
  4. package/vendor/abseil-cpp/CMake/AbseilDll.cmake +25 -4
  5. package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +6 -1
  6. package/vendor/abseil-cpp/CMakeLists.txt +2 -2
  7. package/vendor/abseil-cpp/MODULE.bazel +2 -2
  8. package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +0 -1
  9. package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +0 -2
  10. package/vendor/abseil-cpp/absl/algorithm/container.h +191 -140
  11. package/vendor/abseil-cpp/absl/algorithm/container_test.cc +818 -0
  12. package/vendor/abseil-cpp/absl/base/BUILD.bazel +44 -5
  13. package/vendor/abseil-cpp/absl/base/CMakeLists.txt +42 -3
  14. package/vendor/abseil-cpp/absl/base/attributes.h +5 -1
  15. package/vendor/abseil-cpp/absl/base/call_once_test.cc +10 -10
  16. package/vendor/abseil-cpp/absl/base/casts.cc +61 -0
  17. package/vendor/abseil-cpp/absl/base/casts.h +128 -2
  18. package/vendor/abseil-cpp/absl/base/casts_test.cc +151 -0
  19. package/vendor/abseil-cpp/absl/base/config.h +13 -37
  20. package/vendor/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
  21. package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +4 -0
  22. package/vendor/abseil-cpp/absl/base/internal/nullability_traits.h +71 -0
  23. package/vendor/abseil-cpp/absl/base/internal/nullability_traits_test.cc +98 -0
  24. package/vendor/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
  25. package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +13 -7
  26. package/vendor/abseil-cpp/absl/base/internal/spinlock.h +16 -11
  27. package/vendor/abseil-cpp/absl/base/internal/strerror_test.cc +2 -1
  28. package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +0 -9
  29. package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +0 -6
  30. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -1
  31. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
  32. package/vendor/abseil-cpp/absl/base/macros.h +40 -17
  33. package/vendor/abseil-cpp/absl/base/nullability.h +1 -1
  34. package/vendor/abseil-cpp/absl/base/optimization.h +1 -3
  35. package/vendor/abseil-cpp/absl/base/options.h +1 -27
  36. package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +5 -8
  37. package/vendor/abseil-cpp/absl/cleanup/cleanup.h +4 -0
  38. package/vendor/abseil-cpp/absl/container/BUILD.bazel +195 -2
  39. package/vendor/abseil-cpp/absl/container/CMakeLists.txt +136 -2
  40. package/vendor/abseil-cpp/absl/container/btree_map.h +56 -6
  41. package/vendor/abseil-cpp/absl/container/btree_set.h +52 -6
  42. package/vendor/abseil-cpp/absl/container/btree_test.cc +107 -1
  43. package/vendor/abseil-cpp/absl/container/chunked_queue.h +755 -0
  44. package/vendor/abseil-cpp/absl/container/chunked_queue_benchmark.cc +386 -0
  45. package/vendor/abseil-cpp/absl/container/chunked_queue_test.cc +768 -0
  46. package/vendor/abseil-cpp/absl/container/fixed_array.h +4 -6
  47. package/vendor/abseil-cpp/absl/container/flat_hash_map.h +16 -6
  48. package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +1 -2
  49. package/vendor/abseil-cpp/absl/container/flat_hash_set.h +16 -6
  50. package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +0 -2
  51. package/vendor/abseil-cpp/absl/container/inlined_vector.h +12 -4
  52. package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +21 -0
  53. package/vendor/abseil-cpp/absl/container/internal/btree_container.h +14 -5
  54. package/vendor/abseil-cpp/absl/container/internal/chunked_queue.h +173 -0
  55. package/vendor/abseil-cpp/absl/container/internal/common.h +51 -0
  56. package/vendor/abseil-cpp/absl/container/internal/container_memory.h +7 -1
  57. package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +11 -0
  58. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +0 -2
  59. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +1 -2
  60. package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +0 -14
  61. package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +11 -8
  62. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +3 -4
  63. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +23 -6
  64. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +31 -15
  65. package/vendor/abseil-cpp/absl/container/internal/heterogeneous_lookup_testing.h +80 -0
  66. package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +4 -12
  67. package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +35 -10
  68. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +149 -23
  69. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +120 -126
  70. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +4 -0
  71. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +8 -0
  72. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +14 -59
  73. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +111 -22
  74. package/vendor/abseil-cpp/absl/container/internal/unordered_map_constructor_test.h +53 -112
  75. package/vendor/abseil-cpp/absl/container/internal/unordered_map_lookup_test.h +10 -15
  76. package/vendor/abseil-cpp/absl/container/internal/unordered_map_members_test.h +3 -3
  77. package/vendor/abseil-cpp/absl/container/internal/unordered_map_modifiers_test.h +45 -61
  78. package/vendor/abseil-cpp/absl/container/internal/unordered_set_constructor_test.h +53 -112
  79. package/vendor/abseil-cpp/absl/container/internal/unordered_set_lookup_test.h +6 -9
  80. package/vendor/abseil-cpp/absl/container/internal/unordered_set_members_test.h +3 -3
  81. package/vendor/abseil-cpp/absl/container/internal/unordered_set_modifiers_test.h +25 -31
  82. package/vendor/abseil-cpp/absl/container/linked_hash_map.h +666 -0
  83. package/vendor/abseil-cpp/absl/container/linked_hash_map_benchmark.cc +140 -0
  84. package/vendor/abseil-cpp/absl/container/linked_hash_map_test.cc +987 -0
  85. package/vendor/abseil-cpp/absl/container/linked_hash_set.h +527 -0
  86. package/vendor/abseil-cpp/absl/container/linked_hash_set_benchmark.cc +84 -0
  87. package/vendor/abseil-cpp/absl/container/linked_hash_set_test.cc +947 -0
  88. package/vendor/abseil-cpp/absl/container/node_hash_map.h +17 -6
  89. package/vendor/abseil-cpp/absl/container/node_hash_set.h +16 -5
  90. package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +1 -2
  91. package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +79 -0
  92. package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +79 -0
  93. package/vendor/abseil-cpp/absl/copts/copts.py +17 -4
  94. package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +67 -13
  95. package/vendor/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
  96. package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +31 -0
  97. package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +34 -0
  98. package/vendor/abseil-cpp/absl/debugging/failure_signal_handler.cc +2 -2
  99. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +118 -0
  100. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +71 -0
  101. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +97 -0
  102. package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
  103. package/vendor/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
  104. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +4 -0
  105. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -0
  106. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +1 -1
  107. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +0 -7
  108. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
  109. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +2 -1
  110. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +8 -3
  111. package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +2 -2
  112. package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +35 -67
  113. package/vendor/abseil-cpp/absl/debugging/stacktrace.h +3 -0
  114. package/vendor/abseil-cpp/absl/debugging/stacktrace_benchmark.cc +24 -1
  115. package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +39 -15
  116. package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
  117. package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +25 -40
  118. package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
  119. package/vendor/abseil-cpp/absl/flags/BUILD.bazel +1 -0
  120. package/vendor/abseil-cpp/absl/flags/declare.h +9 -0
  121. package/vendor/abseil-cpp/absl/flags/flag.h +2 -1
  122. package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
  123. package/vendor/abseil-cpp/absl/flags/internal/flag.cc +3 -2
  124. package/vendor/abseil-cpp/absl/flags/marshalling.cc +1 -16
  125. package/vendor/abseil-cpp/absl/flags/parse.cc +4 -2
  126. package/vendor/abseil-cpp/absl/flags/parse_test.cc +1 -1
  127. package/vendor/abseil-cpp/absl/flags/reflection.cc +4 -3
  128. package/vendor/abseil-cpp/absl/functional/BUILD.bazel +4 -0
  129. package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +4 -0
  130. package/vendor/abseil-cpp/absl/functional/any_invocable.h +3 -1
  131. package/vendor/abseil-cpp/absl/functional/function_ref.h +125 -20
  132. package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +122 -9
  133. package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +13 -2
  134. package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +42 -4
  135. package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +11 -0
  136. package/vendor/abseil-cpp/absl/hash/hash_test.cc +5 -2
  137. package/vendor/abseil-cpp/absl/hash/internal/hash.cc +184 -53
  138. package/vendor/abseil-cpp/absl/hash/internal/hash.h +116 -10
  139. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +43 -4
  140. package/vendor/abseil-cpp/absl/log/BUILD.bazel +2 -0
  141. package/vendor/abseil-cpp/absl/log/CMakeLists.txt +35 -1
  142. package/vendor/abseil-cpp/absl/log/check_test_impl.inc +59 -4
  143. package/vendor/abseil-cpp/absl/log/die_if_null.cc +3 -1
  144. package/vendor/abseil-cpp/absl/log/die_if_null.h +24 -3
  145. package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +31 -1
  146. package/vendor/abseil-cpp/absl/log/internal/check_impl.h +2 -1
  147. package/vendor/abseil-cpp/absl/log/internal/check_op.cc +3 -1
  148. package/vendor/abseil-cpp/absl/log/internal/check_op.h +44 -18
  149. package/vendor/abseil-cpp/absl/log/internal/conditions.h +38 -35
  150. package/vendor/abseil-cpp/absl/log/internal/container.h +312 -0
  151. package/vendor/abseil-cpp/absl/log/internal/container_test.cc +254 -0
  152. package/vendor/abseil-cpp/absl/log/internal/log_impl.h +108 -110
  153. package/vendor/abseil-cpp/absl/log/internal/log_message.cc +5 -2
  154. package/vendor/abseil-cpp/absl/log/internal/log_message.h +5 -1
  155. package/vendor/abseil-cpp/absl/log/internal/strip.h +30 -31
  156. package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +19 -19
  157. package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
  158. package/vendor/abseil-cpp/absl/log/log.h +2 -2
  159. package/vendor/abseil-cpp/absl/meta/BUILD.bazel +51 -0
  160. package/vendor/abseil-cpp/absl/meta/CMakeLists.txt +46 -0
  161. package/vendor/abseil-cpp/absl/meta/internal/constexpr_testing.h +73 -0
  162. package/vendor/abseil-cpp/absl/meta/internal/constexpr_testing_test.cc +40 -0
  163. package/vendor/abseil-cpp/absl/meta/internal/requires.h +67 -0
  164. package/vendor/abseil-cpp/absl/meta/internal/requires_test.cc +66 -0
  165. package/vendor/abseil-cpp/absl/meta/type_traits.h +42 -1
  166. package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +14 -0
  167. package/vendor/abseil-cpp/absl/numeric/int128.h +41 -21
  168. package/vendor/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
  169. package/vendor/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
  170. package/vendor/abseil-cpp/absl/numeric/int128_test.cc +52 -5
  171. package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +1 -0
  172. package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +1 -0
  173. package/vendor/abseil-cpp/absl/profiling/hashtable.cc +18 -7
  174. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +1 -0
  175. package/vendor/abseil-cpp/absl/random/internal/fastmath_test.cc +3 -5
  176. package/vendor/abseil-cpp/absl/random/internal/platform.h +0 -13
  177. package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +0 -1
  178. package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +1 -27
  179. package/vendor/abseil-cpp/absl/status/BUILD.bazel +17 -0
  180. package/vendor/abseil-cpp/absl/status/CMakeLists.txt +16 -0
  181. package/vendor/abseil-cpp/absl/status/internal/status_internal.h +4 -2
  182. package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +2 -2
  183. package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +2 -1
  184. package/vendor/abseil-cpp/absl/status/status.cc +4 -0
  185. package/vendor/abseil-cpp/absl/status/status.h +5 -0
  186. package/vendor/abseil-cpp/absl/status/status_matchers.h +48 -0
  187. package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +27 -0
  188. package/vendor/abseil-cpp/absl/status/status_test.cc +1 -0
  189. package/vendor/abseil-cpp/absl/status/statusor.h +1 -1
  190. package/vendor/abseil-cpp/absl/strings/BUILD.bazel +101 -21
  191. package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +99 -5
  192. package/vendor/abseil-cpp/absl/strings/ascii.h +9 -4
  193. package/vendor/abseil-cpp/absl/strings/cord.cc +15 -10
  194. package/vendor/abseil-cpp/absl/strings/cord.h +1 -1
  195. package/vendor/abseil-cpp/absl/strings/escaping.cc +126 -94
  196. package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
  197. package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite_test.cc +95 -0
  198. package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +2 -0
  199. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree_test.cc +8 -8
  200. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +24 -18
  201. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +10 -16
  202. package/vendor/abseil-cpp/absl/strings/internal/escaping.h +9 -7
  203. package/vendor/abseil-cpp/absl/strings/internal/generic_printer.cc +107 -0
  204. package/vendor/abseil-cpp/absl/strings/internal/generic_printer.h +115 -0
  205. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_internal.h +423 -0
  206. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_test.cc +685 -0
  207. package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +0 -12
  208. package/vendor/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
  209. package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +21 -7
  210. package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +495 -8
  211. package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -15
  212. package/vendor/abseil-cpp/absl/strings/numbers.cc +71 -8
  213. package/vendor/abseil-cpp/absl/strings/numbers.h +25 -12
  214. package/vendor/abseil-cpp/absl/strings/numbers_test.cc +70 -0
  215. package/vendor/abseil-cpp/absl/strings/resize_and_overwrite.h +194 -0
  216. package/vendor/abseil-cpp/absl/strings/resize_and_overwrite_test.cc +154 -0
  217. package/vendor/abseil-cpp/absl/strings/str_cat.cc +96 -91
  218. package/vendor/abseil-cpp/absl/strings/str_cat.h +17 -12
  219. package/vendor/abseil-cpp/absl/strings/str_format_test.cc +4 -4
  220. package/vendor/abseil-cpp/absl/strings/str_split.h +1 -1
  221. package/vendor/abseil-cpp/absl/strings/str_split_test.cc +1 -1
  222. package/vendor/abseil-cpp/absl/strings/string_view.h +8 -718
  223. package/vendor/abseil-cpp/absl/strings/string_view_test.cc +1 -1265
  224. package/vendor/abseil-cpp/absl/strings/substitute.cc +24 -24
  225. package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +2 -3
  226. package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +1 -0
  227. package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
  228. package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout_test.cc +15 -5
  229. package/vendor/abseil-cpp/absl/synchronization/mutex.cc +2 -1
  230. package/vendor/abseil-cpp/absl/synchronization/mutex.h +47 -23
  231. package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
  232. package/vendor/abseil-cpp/absl/time/CMakeLists.txt +2 -0
  233. package/vendor/abseil-cpp/absl/time/civil_time_benchmark.cc +1 -2
  234. package/vendor/abseil-cpp/absl/time/civil_time_test.cc +58 -103
  235. package/vendor/abseil-cpp/absl/time/clock.cc +18 -16
  236. package/vendor/abseil-cpp/absl/time/clock_test.cc +2 -2
  237. package/vendor/abseil-cpp/absl/time/duration_benchmark.cc +144 -0
  238. package/vendor/abseil-cpp/absl/time/duration_test.cc +26 -29
  239. package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +7 -1
  240. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +4 -2
  241. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
  242. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +186 -0
  243. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
  244. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
  245. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ensenada +0 -0
  246. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santa_Isabel +0 -0
  247. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tijuana +0 -0
  248. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaNorte +0 -0
  249. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/iso3166.tab +9 -9
  250. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +12 -12
  251. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +47 -47
  252. package/vendor/abseil-cpp/absl/time/time.cc +4 -4
  253. package/vendor/abseil-cpp/absl/time/time.h +10 -10
  254. package/vendor/abseil-cpp/absl/time/time_test.cc +1 -0
  255. package/vendor/abseil-cpp/absl/types/compare.h +62 -61
  256. package/vendor/abseil-cpp/absl/types/compare_test.cc +3 -3
  257. package/vendor/abseil-cpp/absl/types/internal/span.h +1 -0
  258. package/vendor/abseil-cpp/absl/types/optional.h +2 -2
  259. package/vendor/abseil-cpp/absl/types/span.h +10 -2
  260. package/vendor/abseil-cpp/absl/utility/utility.h +13 -0
  261. package/vendor/abseil-cpp/ci/absl_alternate_options.h +0 -1
  262. package/vendor/abseil-cpp/ci/cmake_common.sh +1 -1
  263. package/vendor/abseil-cpp/ci/cmake_install_test.sh +6 -0
  264. package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +1 -0
  265. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +2 -0
  266. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +1 -0
  267. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +1 -0
  268. package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +1 -0
  269. package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +1 -0
  270. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +1 -0
  271. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +6 -0
  272. package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +6 -0
  273. package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +3 -2
  274. package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +5 -0
  275. package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +1 -0
  276. package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -0
  277. package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +6 -1
  278. package/vendor/abseil-cpp/absl/base/internal/identity.h +0 -39
  279. package/vendor/abseil-cpp/absl/strings/string_view.cc +0 -257
  280. package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +0 -380
@@ -0,0 +1,423 @@
1
+ // Copyright 2025 The Abseil Authors.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #ifndef ABSL_STRINGS_INTERNAL_GENERIC_PRINTER_INTERNAL_H_
16
+ #define ABSL_STRINGS_INTERNAL_GENERIC_PRINTER_INTERNAL_H_
17
+
18
+ #include <cstddef>
19
+ #include <cstdint>
20
+ #include <memory>
21
+ #include <optional>
22
+ #include <ostream>
23
+ #include <string>
24
+ #include <tuple>
25
+ #include <type_traits>
26
+ #include <utility>
27
+ #include <variant>
28
+ #include <vector>
29
+
30
+ #include "absl/base/config.h"
31
+ #include "absl/log/internal/container.h"
32
+ #include "absl/meta/internal/requires.h"
33
+ #include "absl/strings/has_absl_stringify.h"
34
+ #include "absl/strings/str_cat.h"
35
+ #include "absl/strings/string_view.h"
36
+
37
+ // NOTE: we do not want to expand the dependencies of this library. All
38
+ // compatibility detection must be done in a generic way, without having to
39
+ // include the headers of other libraries.
40
+
41
+ // Internal implementation details: see generic_printer.h.
42
+ namespace absl {
43
+ ABSL_NAMESPACE_BEGIN
44
+ namespace internal_generic_printer {
45
+
46
+ template <typename T>
47
+ std::ostream& GenericPrintImpl(std::ostream& os, const T& v);
48
+
49
+ // Scope blocker: we must always use ADL in our predicates below.
50
+ struct Anonymous;
51
+ std::ostream& operator<<(const Anonymous&, const Anonymous&) = delete;
52
+
53
+ // Logging policy for LogContainer. Our SFINAE overload will not fail
54
+ // if the contained type cannot be printed, so make sure to circle back to
55
+ // GenericPrinter.
56
+ struct ContainerLogPolicy {
57
+ void LogOpening(std::ostream& os) const { os << "["; }
58
+ void LogClosing(std::ostream& os) const { os << "]"; }
59
+ void LogFirstSeparator(std::ostream& os) const { os << ""; }
60
+ void LogSeparator(std::ostream& os) const { os << ", "; }
61
+ int64_t MaxElements() const { return 15; }
62
+ template <typename T>
63
+ void Log(std::ostream& os, const T& element) const {
64
+ internal_generic_printer::GenericPrintImpl(os, element);
65
+ }
66
+ void LogEllipsis(std::ostream& os) const { os << "..."; }
67
+ };
68
+
69
+ // Out-of-line helper for PrintAsStringWithEscaping.
70
+ std::ostream& PrintEscapedString(std::ostream& os, absl::string_view v);
71
+
72
+ // Trait to recognize a string, possibly with a custom allocator.
73
+ template <class T>
74
+ inline constexpr bool is_any_string = false;
75
+ template <class A>
76
+ inline constexpr bool
77
+ is_any_string<std::basic_string<char, std::char_traits<char>, A>> = true;
78
+
79
+ // Trait to recognize a supported pointer. Below are documented reasons why
80
+ // raw pointers and std::shared_ptr are not currently supported.
81
+ // See also http://b/239459272#comment9 and the discussion in the comment
82
+ // threads of cl/485200996.
83
+ //
84
+ // The tl;dr:
85
+ // 1. Pointers that logically represent an object (or nullptr) are safe to print
86
+ // out.
87
+ // 2. Pointers that may represent some other concept (delineating memory bounds,
88
+ // overridden managed-memory deleters to mimic RAII, ...) may be unsafe to
89
+ // print out.
90
+ //
91
+ // raw pointers:
92
+ // - A pointer one-past the last element of an array
93
+ // - Non-null but non-dereferenceable: https://gcc.godbolt.org/z/sqsqGvKbP
94
+ //
95
+ // `std::shared_ptr`:
96
+ // - "Aliasing" / similar to raw pointers: https://gcc.godbolt.org/z/YbWPzvhae
97
+ template <class T, class = void>
98
+ inline constexpr bool is_supported_ptr = false;
99
+ // `std::unique_ptr` has the same theoretical risks as raw pointers, but those
100
+ // risks are far less likely (typically requiring a custom deleter), and the
101
+ // benefits of supporting unique_ptr outweigh the costs.
102
+ // - Note: `std::unique_ptr<T[]>` cannot safely be and is not dereferenced.
103
+ template <class A, class... Deleter>
104
+ inline constexpr bool is_supported_ptr<std::unique_ptr<A, Deleter...>> = true;
105
+ // `ArenaSafeUniquePtr` is at least as safe as `std::unique_ptr`.
106
+ template <class T>
107
+ inline constexpr bool is_supported_ptr<
108
+ T,
109
+ // Check for `ArenaSafeUniquePtr` without having to include its header here.
110
+ // This does match any type named `ArenaSafeUniquePtr`, regardless of the
111
+ // namespace it is defined in, but it's pretty plausible that any such type
112
+ // would be a fork.
113
+ decltype(T().~ArenaSafeUniquePtr())> = true;
114
+
115
+ // Specialization for floats: print floating point types using their
116
+ // max_digits10 precision. This ensures each distinct underlying values
117
+ // can be represented uniquely, even though it's not (strictly speaking)
118
+ // the most precise representation.
119
+ std::ostream& PrintPreciseFP(std::ostream& os, float v);
120
+ std::ostream& PrintPreciseFP(std::ostream& os, double v);
121
+ std::ostream& PrintPreciseFP(std::ostream& os, long double v);
122
+
123
+ std::ostream& PrintChar(std::ostream& os, char c);
124
+ std::ostream& PrintChar(std::ostream& os, signed char c);
125
+ std::ostream& PrintChar(std::ostream& os, unsigned char c);
126
+
127
+ std::ostream& PrintByte(std::ostream& os, std::byte b);
128
+
129
+ template <class... Ts>
130
+ std::ostream& PrintTuple(std::ostream& os, const std::tuple<Ts...>& tuple) {
131
+ absl::string_view sep = "";
132
+ const auto print_one = [&](const auto& v) {
133
+ os << sep;
134
+ (GenericPrintImpl)(os, v);
135
+ sep = ", ";
136
+ };
137
+ os << "<";
138
+ std::apply([&](const auto&... v) { (print_one(v), ...); }, tuple);
139
+ os << ">";
140
+ return os;
141
+ }
142
+
143
+ template <typename T, typename U>
144
+ std::ostream& PrintPair(std::ostream& os, const std::pair<T, U>& p) {
145
+ os << "<";
146
+ (GenericPrintImpl)(os, p.first);
147
+ os << ", ";
148
+ (GenericPrintImpl)(os, p.second);
149
+ os << ">";
150
+ return os;
151
+ }
152
+
153
+ template <typename T>
154
+ std::ostream& PrintOptionalLike(std::ostream& os, const T& v) {
155
+ if (v.has_value()) {
156
+ os << "<";
157
+ (GenericPrintImpl)(os, *v);
158
+ os << ">";
159
+ } else {
160
+ (GenericPrintImpl)(os, std::nullopt);
161
+ }
162
+ return os;
163
+ }
164
+
165
+ template <typename... Ts>
166
+ std::ostream& PrintVariant(std::ostream& os, const std::variant<Ts...>& v) {
167
+ os << "(";
168
+ os << "'(index = " << v.index() << ")' ";
169
+
170
+ // NOTE(derekbailey): This may throw a std::bad_variant_access if the variant
171
+ // is "valueless", which only occurs if exceptions are thrown. This is
172
+ // non-relevant when not using exceptions, but it is worth mentioning if that
173
+ // invariant is ever changed.
174
+ std::visit([&](const auto& arg) { (GenericPrintImpl)(os, arg); }, v);
175
+ os << ")";
176
+ return os;
177
+ }
178
+
179
+ template <typename StatusOrLike>
180
+ std::ostream& PrintStatusOrLike(std::ostream& os, const StatusOrLike& v) {
181
+ os << "<";
182
+ if (v.ok()) {
183
+ os << "OK: ";
184
+ (GenericPrintImpl)(os, *v);
185
+ } else {
186
+ (GenericPrintImpl)(os, v.status());
187
+ }
188
+ os << ">";
189
+ return os;
190
+ }
191
+
192
+ template <typename SmartPointer>
193
+ std::ostream& PrintSmartPointerContents(std::ostream& os,
194
+ const SmartPointer& v) {
195
+ os << "<";
196
+ if (v == nullptr) {
197
+ (GenericPrintImpl)(os, nullptr);
198
+ } else {
199
+ // Cast to void* so that every type (e.g. `char*`) is printed as an address.
200
+ os << absl::implicit_cast<const void*>(v.get()) << " pointing to ";
201
+
202
+ if constexpr (meta_internal::Requires<SmartPointer>(
203
+ [](auto&& p) -> decltype(p[0]) {})) {
204
+ // e.g. std::unique_ptr<int[]>, which only has operator[]
205
+ os << "an array";
206
+ } else if constexpr (std::is_object_v<
207
+ typename SmartPointer::element_type>) {
208
+ (GenericPrintImpl)(os, *v);
209
+ } else {
210
+ // e.g. std::unique_ptr<void, MyCustomDeleter>
211
+ os << "a non-object type";
212
+ }
213
+ }
214
+ os << ">";
215
+ return os;
216
+ }
217
+
218
+ template <typename T>
219
+ std::ostream& GenericPrintImpl(std::ostream& os, const T& v) {
220
+ if constexpr (is_any_string<T> || std::is_same_v<T, absl::string_view>) {
221
+ // Specialization for strings: prints with plausible quoting and escaping.
222
+ return PrintEscapedString(os, v);
223
+ } else if constexpr (absl::HasAbslStringify<T>::value) {
224
+ // If someone has specified `AbslStringify`, we should prefer that.
225
+ return os << absl::StrCat(v);
226
+ } else if constexpr (meta_internal::Requires<const T>(
227
+ [&](auto&& w)
228
+ -> decltype((
229
+ PrintTuple)(std::declval<std::ostream&>(),
230
+ w)) {})) {
231
+ // For tuples, use `< elem0, ..., elemN >`.
232
+ return (PrintTuple)(os, v);
233
+
234
+ } else if constexpr (meta_internal::Requires<const T>(
235
+ [&](auto&& w)
236
+ -> decltype((
237
+ PrintPair)(std::declval<std::ostream&>(),
238
+ w)) {})) {
239
+ // For pairs, use `< first, second >`.
240
+ return (PrintPair)(os, v);
241
+
242
+ } else if constexpr (meta_internal::Requires<const T>(
243
+ [&](auto&& w)
244
+ -> decltype((
245
+ PrintVariant)(std::declval<std::ostream&>(),
246
+ w)) {})) {
247
+ // For std::variant, use `std::visit(v)`
248
+ return (PrintVariant)(os, v);
249
+ } else if constexpr (is_supported_ptr<T>) {
250
+ return (PrintSmartPointerContents)(os, v);
251
+ } else if constexpr (meta_internal::Requires<const T>(
252
+ [&](auto&& w) -> decltype(w.ok(), w.status(), *w) {
253
+ })) {
254
+ return (PrintStatusOrLike)(os, v);
255
+ } else if constexpr (meta_internal::Requires<const T>(
256
+ [&](auto&& w) -> decltype(w.has_value(), *w) {})) {
257
+ return (PrintOptionalLike)(os, v);
258
+ } else if constexpr (std::is_same_v<T, std::nullopt_t>) {
259
+ // Specialization for nullopt.
260
+ return os << "nullopt";
261
+
262
+ } else if constexpr (std::is_same_v<T, std::nullptr_t>) {
263
+ // Specialization for nullptr.
264
+ return os << "nullptr";
265
+
266
+ } else if constexpr (std::is_floating_point_v<T>) {
267
+ // For floating point print with enough precision for a roundtrip.
268
+ return PrintPreciseFP(os, v);
269
+
270
+ } else if constexpr (std::is_same_v<T, char> ||
271
+ std::is_same_v<T, signed char> ||
272
+ std::is_same_v<T, unsigned char>) {
273
+ // Chars are printed as the char (if a printable char) and the integral
274
+ // representation in hex and decimal.
275
+ return PrintChar(os, v);
276
+
277
+ } else if constexpr (std::is_same_v<T, std::byte>) {
278
+ return PrintByte(os, v);
279
+
280
+ } else if constexpr (std::is_same_v<T, bool> ||
281
+ std::is_same_v<T,
282
+ typename std::vector<bool>::reference> ||
283
+ std::is_same_v<
284
+ T, typename std::vector<bool>::const_reference>) {
285
+ return os << (v ? "true" : "false");
286
+
287
+ } else if constexpr (meta_internal::Requires<const T>(
288
+ [&](auto&& w)
289
+ -> decltype(ProtobufInternalGetEnumDescriptor(
290
+ w)) {})) {
291
+ os << static_cast<std::underlying_type_t<T>>(v);
292
+ if (auto* desc =
293
+ ProtobufInternalGetEnumDescriptor(T{})->FindValueByNumber(v)) {
294
+ os << "(" << desc->name() << ")";
295
+ }
296
+ return os;
297
+ } else if constexpr (!std::is_enum_v<T> &&
298
+ meta_internal::Requires<const T>(
299
+ [&](auto&& w) -> decltype(absl::StrCat(w)) {})) {
300
+ return os << absl::StrCat(v);
301
+
302
+ } else if constexpr (meta_internal::Requires<const T>(
303
+ [&](auto&& w)
304
+ -> decltype(std::declval<std::ostream&>()
305
+ << log_internal::LogContainer(w)) {
306
+ })) {
307
+ // For containers, use `[ elem0, ..., elemN ]` with a max of 15.
308
+ return os << log_internal::LogContainer(v, ContainerLogPolicy());
309
+
310
+ } else if constexpr (meta_internal::Requires<const T>(
311
+ [&](auto&& w)
312
+ -> decltype(std::declval<std::ostream&>() << w) {
313
+ })) {
314
+ // Streaming
315
+ return os << v;
316
+
317
+ } else if constexpr (meta_internal::Requires<const T>(
318
+ [&](auto&& w)
319
+ -> decltype(std::declval<std::ostream&>()
320
+ << w.DebugString()) {})) {
321
+ // DebugString
322
+ return os << v.DebugString();
323
+
324
+ } else if constexpr (std::is_enum_v<T>) {
325
+ // In case the underlying type is some kind of char, we have to recurse.
326
+ return GenericPrintImpl(os, static_cast<std::underlying_type_t<T>>(v));
327
+
328
+ } else {
329
+ // Default: we don't have anything to stream the value.
330
+ return os << "[unprintable value of size " << sizeof(T) << " @" << &v
331
+ << "]";
332
+ }
333
+ }
334
+
335
+ // GenericPrinter always has a valid operator<<. It defers to the disjuction
336
+ // above.
337
+ template <typename T>
338
+ class GenericPrinter {
339
+ public:
340
+ explicit GenericPrinter(const T& value) : value_(value) {}
341
+
342
+ private:
343
+ friend std::ostream& operator<<(std::ostream& os, const GenericPrinter& gp) {
344
+ return internal_generic_printer::GenericPrintImpl(os, gp.value_);
345
+ }
346
+ const T& value_;
347
+ };
348
+
349
+ struct GenericPrintStreamAdapter {
350
+ template <class StreamT>
351
+ struct Impl {
352
+ // Stream operator: this object will adapt to the underlying stream type,
353
+ // but only if the Impl is an rvalue. For example, this works:
354
+ // std::cout << GenericPrint() << foo;
355
+ // but not:
356
+ // auto adapter = (std::cout << GenericPrint());
357
+ // adapter << foo;
358
+ template <typename T>
359
+ Impl&& operator<<(const T& value) && {
360
+ os << internal_generic_printer::GenericPrinter<T>(value);
361
+ return std::move(*this);
362
+ }
363
+
364
+ // Inhibit using a stack variable for the adapter:
365
+ template <typename T>
366
+ Impl& operator<<(const T& value) & = delete;
367
+
368
+ // Detects a Flush() method, for LogMessage compatibility.
369
+ template <typename T>
370
+ class HasFlushMethod {
371
+ private:
372
+ template <typename C>
373
+ static std::true_type Test(decltype(&C::Flush));
374
+ template <typename C>
375
+ static std::false_type Test(...);
376
+
377
+ public:
378
+ static constexpr bool value = decltype(Test<T>(nullptr))::value;
379
+ };
380
+
381
+ // LogMessage compatibility requires a Flush() method.
382
+ void Flush() {
383
+ if constexpr (HasFlushMethod<StreamT>::value) {
384
+ os.Flush();
385
+ }
386
+ }
387
+
388
+ StreamT& os;
389
+ };
390
+
391
+ // If Impl is evaluated on the RHS of an 'operator&&', and 'lhs && Impl.os'
392
+ // implicitly converts to void, then it's fine for Impl to do so, too. This
393
+ // will create precisely as many objects as 'lhs && Impl.os', so we should
394
+ // both observe any side effects, and avoid observing multiple side
395
+ // effects. (See absl::log_internal::Voidify for an example of why this might
396
+ // be useful.)
397
+ template <typename LHS, typename RHS>
398
+ friend auto operator&&(LHS&& lhs, Impl<RHS>&& rhs)
399
+ -> decltype(lhs && rhs.os) {
400
+ return lhs && rhs.os;
401
+ }
402
+
403
+ template <class StreamT>
404
+ friend Impl<StreamT> operator<<(StreamT& os, GenericPrintStreamAdapter&&) {
405
+ return Impl<StreamT>{os};
406
+ }
407
+ };
408
+
409
+ struct GenericPrintAdapterFactory {
410
+ internal_generic_printer::GenericPrintStreamAdapter operator()() const {
411
+ return internal_generic_printer::GenericPrintStreamAdapter{};
412
+ }
413
+ template <typename T>
414
+ internal_generic_printer::GenericPrinter<T> operator()(const T& value) const {
415
+ return internal_generic_printer::GenericPrinter<T>{value};
416
+ }
417
+ };
418
+
419
+ } // namespace internal_generic_printer
420
+ ABSL_NAMESPACE_END
421
+ } // namespace absl
422
+
423
+ #endif // ABSL_STRINGS_INTERNAL_GENERIC_PRINTER_INTERNAL_H_