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
@@ -17,7 +17,8 @@
17
17
  #include <cstdint>
18
18
 
19
19
  #include "absl/base/config.h"
20
- #include "absl/base/internal/spinlock.h"
20
+ #include "absl/base/const_init.h"
21
+ #include "absl/base/no_destructor.h"
21
22
  #include "absl/container/inlined_vector.h"
22
23
  #include "absl/debugging/stacktrace.h"
23
24
  #include "absl/strings/internal/cord_internal.h"
@@ -34,8 +35,6 @@ namespace absl {
34
35
  ABSL_NAMESPACE_BEGIN
35
36
  namespace cord_internal {
36
37
 
37
- ABSL_CONST_INIT CordzInfo::List CordzInfo::global_list_{absl::kConstInit};
38
-
39
38
  namespace {
40
39
 
41
40
  // CordRepAnalyzer performs the analysis of a cord.
@@ -221,24 +220,32 @@ class CordRepAnalyzer {
221
220
 
222
221
  } // namespace
223
222
 
223
+ CordzInfo::List* CordzInfo::GlobalList() {
224
+ static absl::NoDestructor<CordzInfo::List> list;
225
+ return list.get();
226
+ }
227
+
224
228
  CordzInfo* CordzInfo::Head(const CordzSnapshot& snapshot) {
225
229
  ABSL_ASSERT(snapshot.is_snapshot());
226
230
 
227
- // We can do an 'unsafe' load of 'head', as we are guaranteed that the
228
- // instance it points to is kept alive by the provided CordzSnapshot, so we
229
- // can simply return the current value using an acquire load.
231
+ // We obtain the lock here as we must synchronize the first call into the list
232
+ // with any concurrent 'Untrack()` operation to avoid any read in the list to
233
+ // reorder before the observation of the thread 'untracking a cord' of the
234
+ // delete queue being empty or not. After this all next observations are safe
235
+ // as we have established all subsequent untracks will be queued for delete.
230
236
  // We do enforce in DEBUG builds that the 'head' value is present in the
231
- // delete queue: ODR violations may lead to 'snapshot' and 'global_list_'
237
+ // delete queue: ODR violations may lead to 'snapshot' and 'global_list'
232
238
  // being in different libraries / modules.
233
- CordzInfo* head = global_list_.head.load(std::memory_order_acquire);
234
- ABSL_ASSERT(snapshot.DiagnosticsHandleIsSafeToInspect(head));
235
- return head;
239
+ auto global_list = GlobalList();
240
+ absl::MutexLock l(global_list->mutex);
241
+ ABSL_ASSERT(snapshot.DiagnosticsHandleIsSafeToInspect(global_list->head));
242
+ return global_list->head;
236
243
  }
237
244
 
238
245
  CordzInfo* CordzInfo::Next(const CordzSnapshot& snapshot) const {
239
246
  ABSL_ASSERT(snapshot.is_snapshot());
240
247
 
241
- // Similar to the 'Head()' function, we do not need a mutex here.
248
+ // We do not need a lock here. See also comments in Head().
242
249
  CordzInfo* next = ci_next_.load(std::memory_order_acquire);
243
250
  ABSL_ASSERT(snapshot.DiagnosticsHandleIsSafeToInspect(this));
244
251
  ABSL_ASSERT(snapshot.DiagnosticsHandleIsSafeToInspect(next));
@@ -327,22 +334,21 @@ CordzInfo::~CordzInfo() {
327
334
  }
328
335
 
329
336
  void CordzInfo::Track() {
330
- SpinLockHolder l(list_->mutex);
331
-
332
- CordzInfo* const head = list_->head.load(std::memory_order_acquire);
337
+ absl::MutexLock l(list_->mutex);
338
+ CordzInfo* const head = list_->head;
333
339
  if (head != nullptr) {
334
340
  head->ci_prev_.store(this, std::memory_order_release);
335
341
  }
336
342
  ci_next_.store(head, std::memory_order_release);
337
- list_->head.store(this, std::memory_order_release);
343
+ list_->head = this;
338
344
  }
339
345
 
340
346
  void CordzInfo::Untrack() {
341
347
  ODRCheck();
342
348
  {
343
- SpinLockHolder l(list_->mutex);
349
+ absl::MutexLock l(list_->mutex);
344
350
 
345
- CordzInfo* const head = list_->head.load(std::memory_order_acquire);
351
+ CordzInfo* const head = list_->head;
346
352
  CordzInfo* const next = ci_next_.load(std::memory_order_acquire);
347
353
  CordzInfo* const prev = ci_prev_.load(std::memory_order_acquire);
348
354
 
@@ -356,7 +362,7 @@ void CordzInfo::Untrack() {
356
362
  prev->ci_next_.store(next, std::memory_order_release);
357
363
  } else {
358
364
  ABSL_ASSERT(head == this);
359
- list_->head.store(next, std::memory_order_release);
365
+ list_->head = next;
360
366
  }
361
367
  }
362
368
 
@@ -20,8 +20,8 @@
20
20
  #include <functional>
21
21
 
22
22
  #include "absl/base/config.h"
23
+ #include "absl/base/const_init.h"
23
24
  #include "absl/base/internal/raw_logging.h"
24
- #include "absl/base/internal/spinlock.h"
25
25
  #include "absl/base/thread_annotations.h"
26
26
  #include "absl/strings/internal/cord_internal.h"
27
27
  #include "absl/strings/internal/cordz_functions.h"
@@ -121,12 +121,10 @@ class ABSL_LOCKABLE CordzInfo : public CordzHandle {
121
121
  CordzInfo& operator=(const CordzInfo&) = delete;
122
122
 
123
123
  // Retrieves the oldest existing CordzInfo.
124
- static CordzInfo* Head(const CordzSnapshot& snapshot)
125
- ABSL_NO_THREAD_SAFETY_ANALYSIS;
124
+ static CordzInfo* Head(const CordzSnapshot& snapshot);
126
125
 
127
126
  // Retrieves the next oldest existing CordzInfo older than 'this' instance.
128
- CordzInfo* Next(const CordzSnapshot& snapshot) const
129
- ABSL_NO_THREAD_SAFETY_ANALYSIS;
127
+ CordzInfo* Next(const CordzSnapshot& snapshot) const;
130
128
 
131
129
  // Locks this instance for the update identified by `method`.
132
130
  // Increases the count for `method` in `update_tracker`.
@@ -185,18 +183,15 @@ class ABSL_LOCKABLE CordzInfo : public CordzHandle {
185
183
  int64_t sampling_stride() const { return sampling_stride_; }
186
184
 
187
185
  private:
188
- using SpinLock = absl::base_internal::SpinLock;
189
- using SpinLockHolder = ::absl::base_internal::SpinLockHolder;
190
-
191
186
  // Global cordz info list. CordzInfo stores a pointer to the global list
192
187
  // instance to harden against ODR violations.
193
188
  struct List {
194
- constexpr explicit List(absl::ConstInitType) {}
195
-
196
- SpinLock mutex;
197
- std::atomic<CordzInfo*> head ABSL_GUARDED_BY(mutex){nullptr};
189
+ absl::Mutex mutex;
190
+ CordzInfo* head ABSL_GUARDED_BY(mutex){nullptr};
198
191
  };
199
192
 
193
+ static List* GlobalList();
194
+
200
195
  static constexpr size_t kMaxStackDepth = 64;
201
196
 
202
197
  explicit CordzInfo(CordRep* rep, const CordzInfo* src,
@@ -221,7 +216,7 @@ class ABSL_LOCKABLE CordzInfo : public CordzHandle {
221
216
 
222
217
  void ODRCheck() const {
223
218
  #ifndef NDEBUG
224
- ABSL_RAW_CHECK(list_ == &global_list_, "ODR violation in Cord");
219
+ ABSL_RAW_CHECK(list_ == GlobalList(), "ODR violation in Cord");
225
220
  #endif
226
221
  }
227
222
 
@@ -231,12 +226,11 @@ class ABSL_LOCKABLE CordzInfo : public CordzHandle {
231
226
  static void MaybeTrackCordImpl(InlineData& cord, const InlineData& src,
232
227
  MethodIdentifier method);
233
228
 
234
- ABSL_CONST_INIT static List global_list_;
235
- List* const list_ = &global_list_;
229
+ List* const list_ = GlobalList();
236
230
 
237
231
  // ci_prev_ and ci_next_ require the global list mutex to be held.
238
232
  // Unfortunately we can't use thread annotations such that the thread safety
239
- // analysis understands that list_ and global_list_ are one and the same.
233
+ // analysis understands that list_ and GlobalList() are one and the same.
240
234
  std::atomic<CordzInfo*> ci_prev_{nullptr};
241
235
  std::atomic<CordzInfo*> ci_next_{nullptr};
242
236
 
@@ -17,7 +17,7 @@
17
17
 
18
18
  #include <cassert>
19
19
 
20
- #include "absl/strings/internal/resize_uninitialized.h"
20
+ #include "absl/strings/resize_and_overwrite.h"
21
21
 
22
22
  namespace absl {
23
23
  ABSL_NAMESPACE_BEGIN
@@ -42,12 +42,14 @@ void Base64EscapeInternal(const unsigned char* src, size_t szsrc, String* dest,
42
42
  bool do_padding, const char* base64_chars) {
43
43
  const size_t calc_escaped_size =
44
44
  CalculateBase64EscapedLenInternal(szsrc, do_padding);
45
- STLStringResizeUninitialized(dest, calc_escaped_size);
46
-
47
- const size_t escaped_len = Base64EscapeInternal(
48
- src, szsrc, &(*dest)[0], dest->size(), base64_chars, do_padding);
49
- assert(calc_escaped_size == escaped_len);
50
- dest->erase(escaped_len);
45
+ StringResizeAndOverwrite(
46
+ *dest, calc_escaped_size,
47
+ [src, szsrc, base64_chars, do_padding](char* buf, size_t buf_size) {
48
+ const size_t escaped_len = Base64EscapeInternal(
49
+ src, szsrc, buf, buf_size, base64_chars, do_padding);
50
+ assert(escaped_len == buf_size);
51
+ return escaped_len;
52
+ });
51
53
  }
52
54
 
53
55
  } // namespace strings_internal
@@ -0,0 +1,107 @@
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
+ #include "absl/strings/internal/generic_printer.h"
16
+
17
+ #include <cstddef>
18
+ #include <cstdlib>
19
+ #include <ostream>
20
+ #include <string>
21
+
22
+ #include "absl/base/config.h"
23
+ #include "absl/strings/ascii.h"
24
+ #include "absl/strings/escaping.h"
25
+ #include "absl/strings/str_format.h"
26
+
27
+ namespace absl {
28
+ ABSL_NAMESPACE_BEGIN
29
+ namespace internal_generic_printer {
30
+
31
+ // Out-of-line helper for PrintAsStringWithEscaping.
32
+ std::ostream& PrintEscapedString(std::ostream& os, absl::string_view v) {
33
+ return os << "\"" << absl::CHexEscape(v) << "\"";
34
+ }
35
+
36
+ // Retuns a string representation of 'v', shortened if possible.
37
+ template <class T, class F>
38
+ std::string TryShorten(T v, F strtox) {
39
+ std::string printed =
40
+ absl::StrFormat("%.*g", std::numeric_limits<T>::max_digits10 / 2, v);
41
+ T parsed = strtox(printed.data());
42
+ if (parsed != v) {
43
+ printed =
44
+ absl::StrFormat("%.*g", std::numeric_limits<T>::max_digits10 + 1, v);
45
+ }
46
+ return printed;
47
+ }
48
+
49
+ // Out-of-line helpers for floating point values. These don't necessarily
50
+ // ensure that values are precise, but rather that they are wide enough to
51
+ // represent distinct values. go/c++17std/numeric.limits.members.html
52
+ std::ostream& PrintPreciseFP(std::ostream& os, float v) {
53
+ return os << TryShorten(v, [](const char* buf) {
54
+ char* unused;
55
+ return std::strtof(buf, &unused);
56
+ }) << "f";
57
+ }
58
+ std::ostream& PrintPreciseFP(std::ostream& os, double v) {
59
+ return os << TryShorten(v, [](const char* buf) {
60
+ char* unused;
61
+ return std::strtod(buf, &unused);
62
+ });
63
+ }
64
+ std::ostream& PrintPreciseFP(std::ostream& os, long double v) {
65
+ return os << TryShorten(v, [](const char* buf) {
66
+ char* unused;
67
+ return std::strtold(buf, &unused);
68
+ }) << "L";
69
+ }
70
+
71
+ // Prints a nibble of 'v' in hexadecimal.
72
+ inline char hexnib(int v) {
73
+ return static_cast<char>((v < 10 ? '0' : ('a' - 10)) + v);
74
+ }
75
+
76
+ template <typename T>
77
+ static std::ostream& PrintCharImpl(std::ostream& os, T v) {
78
+ // Specialization for chars: print as 'c' if printable, otherwise
79
+ // hex-escaped.
80
+ return (absl::ascii_isprint(static_cast<unsigned char>(v))
81
+ ? (os << (v == '\'' ? "'\\" : "'") << v)
82
+ : (os << "'\\x" << hexnib((v >> 4) & 0xf) << hexnib(v & 0xf)))
83
+ << "' (0x" << hexnib((v >> 4) & 0xf) << hexnib(v & 0xf) << " "
84
+ << static_cast<int>(v) << ")";
85
+ }
86
+
87
+ std::ostream& PrintChar(std::ostream& os, char c) {
88
+ return PrintCharImpl(os, c);
89
+ }
90
+
91
+ std::ostream& PrintChar(std::ostream& os, signed char c) {
92
+ return PrintCharImpl(os, c);
93
+ }
94
+
95
+ std::ostream& PrintChar(std::ostream& os, unsigned char c) {
96
+ return PrintCharImpl(os, c);
97
+ }
98
+
99
+ std::ostream& PrintByte(std::ostream& os, std::byte b) {
100
+ auto v = std::to_integer<int>(b);
101
+ os << "0x" << hexnib((v >> 4) & 0xf) << hexnib(v & 0xf);
102
+ return os;
103
+ }
104
+
105
+ } // namespace internal_generic_printer
106
+ ABSL_NAMESPACE_END
107
+ } // namespace absl
@@ -0,0 +1,115 @@
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_H_
16
+ #define ABSL_STRINGS_INTERNAL_GENERIC_PRINTER_H_
17
+
18
+ #include "absl/strings/internal/generic_printer_internal.h" // IWYU pragma: export
19
+
20
+ // Helpers for printing objects in generic code.
21
+ //
22
+ // These functions help with streaming in generic code. It may be desirable, for
23
+ // example, to log values from generic functions; however, operator<< may not be
24
+ // overloaded for all types.
25
+ //
26
+ // The helpers in this library use, in order of precedence:
27
+ //
28
+ // 1. std::string and std::string_view are quoted and escaped. (The specific
29
+ // format is not guaranteed to be stable.)
30
+ // 2. A defined AbslStringify() method.
31
+ // 3. absl::log_internal::LogContainer, if the object is a STL container.
32
+ // 4. For std::tuple, std::pair, and std::optional, recursively calls
33
+ // GenericPrint for each element.
34
+ // 5. Floating point values are printed with enough precision for round-trip.
35
+ // 6. char values are quoted, with non-printable values escaped, and the
36
+ // char's numeric value is included.
37
+ // 7. A defined operator<< overload (which should be found by ADL).
38
+ // 8. A defined DebugString() const method.
39
+ // 9. A fallback value with basic information otherwise.
40
+ //
41
+ // Note that the fallback value means that if no formatting conversion is
42
+ // defined, you will not see a compile-time error. This also means that
43
+ // GenericPrint() can safely be used in generic template contexts, and can
44
+ // format any types needed (even though the output will vary).
45
+ //
46
+ // Example usage:
47
+ //
48
+ // // All values after GenericPrint() are formatted:
49
+ // LOG(INFO) << GenericPrint()
50
+ // << int_var // <- printed normally
51
+ // << float_var // <- sufficient precision for round-trip
52
+ // << " unchanged literal text ";
53
+ //
54
+ // // Just one value is formatted:
55
+ // LOG(INFO) << GenericPrint(string("this is quoted and escaped\t\n"))
56
+ // << GenericPrint("but not this, ");
57
+ // << string("and not this.");
58
+ //
59
+ // To make a type loggable with GenericPrint, prefer defining operator<< as a
60
+ // friend function. For example:
61
+ //
62
+ // class TypeToLog {
63
+ // public:
64
+ // string ToString() const; // Many types already implement this.
65
+ // // Define out-of-line if it is complex.
66
+ // friend std::ostream& operator<<(std::ostream& os, const TypeToLog& v) {
67
+ // return os << v.ToString(); // OK to define in-line instead, if simple.
68
+ // }
69
+ // };
70
+ //
71
+ // (Defining operator<< as an inline friend free function allows it to be found
72
+ // by Argument-Dependent Lookup, or ADL, which is the mechanism typically used
73
+ // for operator overload resolution. An inline friend function is the tightest
74
+ // scope possible for overloading the left-hand side of an operator.)
75
+
76
+ #include <ostream>
77
+ #include <utility>
78
+
79
+ namespace absl {
80
+ ABSL_NAMESPACE_BEGIN
81
+ namespace strings_internal {
82
+
83
+ // Helper for logging values in generic code.
84
+ //
85
+ // Example usage:
86
+ //
87
+ // template <typename T>
88
+ // void GenericFunction() {
89
+ // T v1, v2;
90
+ // VLOG(1) << GenericPrint() << v1 << v2; // GenericPrint everything
91
+ // VLOG(1) << GenericPrint(v1) << v2; // GenericPrint just v1
92
+ // }
93
+ //
94
+ inline constexpr internal_generic_printer::GenericPrintAdapterFactory
95
+ GenericPrint{};
96
+
97
+ // Generic printer type: this class can be used, for example, as a template
98
+ // argument to allow users to provide alternative printing strategies.
99
+ //
100
+ // For example, to allow callers to provide a custom strategy:
101
+ //
102
+ // template <typename T, typename PrinterT = GenericPrinter<T>>
103
+ // void GenericFunction() {
104
+ // T value;
105
+ // VLOG(1) << PrinterT{value};
106
+ // }
107
+ //
108
+ template <typename T>
109
+ using GenericPrinter = internal_generic_printer::GenericPrinter<T>;
110
+
111
+ } // namespace strings_internal
112
+ ABSL_NAMESPACE_END
113
+ } // namespace absl
114
+
115
+ #endif // ABSL_STRINGS_INTERNAL_GENERIC_PRINTER_H_