re2 1.22.2 → 1.23.0

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 (495) hide show
  1. package/README.md +60 -4
  2. package/binding.gyp +5 -1
  3. package/lib/addon.cc +4 -0
  4. package/lib/new.cc +1 -246
  5. package/lib/pattern.cc +252 -0
  6. package/lib/pattern.h +10 -0
  7. package/lib/set.cc +777 -0
  8. package/lib/wrapped_re2_set.h +42 -0
  9. package/package.json +21 -9
  10. package/re2.d.ts +46 -9
  11. package/vendor/abseil-cpp/CMake/AbseilDll.cmake +14 -24
  12. package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +3 -3
  13. package/vendor/abseil-cpp/CMake/README.md +2 -2
  14. package/vendor/abseil-cpp/CMakeLists.txt +3 -3
  15. package/vendor/abseil-cpp/MODULE.bazel +6 -9
  16. package/vendor/abseil-cpp/README.md +6 -8
  17. package/vendor/abseil-cpp/absl/abseil.podspec.gen.py +6 -4
  18. package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +3 -0
  19. package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +1 -0
  20. package/vendor/abseil-cpp/absl/algorithm/container.h +2 -19
  21. package/vendor/abseil-cpp/absl/algorithm/container_test.cc +4 -11
  22. package/vendor/abseil-cpp/absl/base/BUILD.bazel +60 -45
  23. package/vendor/abseil-cpp/absl/base/CMakeLists.txt +57 -38
  24. package/vendor/abseil-cpp/absl/base/attributes.h +76 -7
  25. package/vendor/abseil-cpp/absl/base/attributes_test.cc +43 -0
  26. package/vendor/abseil-cpp/absl/base/call_once.h +11 -12
  27. package/vendor/abseil-cpp/absl/base/config.h +22 -129
  28. package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +0 -4
  29. package/vendor/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
  30. package/vendor/abseil-cpp/absl/base/{internal/fast_type_id_test.cc → fast_type_id_test.cc} +34 -30
  31. package/vendor/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
  32. package/vendor/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
  33. package/vendor/abseil-cpp/absl/base/internal/endian.h +34 -38
  34. package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
  35. package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test.cc +85 -0
  36. package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test_helper.h +97 -0
  37. package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -9
  38. package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
  39. package/vendor/abseil-cpp/absl/base/internal/poison.cc +7 -6
  40. package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +15 -28
  41. package/vendor/abseil-cpp/absl/base/internal/spinlock.h +65 -35
  42. package/vendor/abseil-cpp/absl/base/internal/spinlock_benchmark.cc +2 -2
  43. package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +2 -2
  44. package/vendor/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc +1 -1
  45. package/vendor/abseil-cpp/absl/base/internal/thread_identity_test.cc +4 -4
  46. package/vendor/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
  47. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +4 -0
  48. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
  49. package/vendor/abseil-cpp/absl/base/no_destructor.h +11 -32
  50. package/vendor/abseil-cpp/absl/base/no_destructor_test.cc +0 -4
  51. package/vendor/abseil-cpp/absl/base/nullability.h +83 -72
  52. package/vendor/abseil-cpp/absl/base/nullability_test.cc +25 -64
  53. package/vendor/abseil-cpp/absl/base/options.h +3 -80
  54. package/vendor/abseil-cpp/absl/base/policy_checks.h +7 -7
  55. package/vendor/abseil-cpp/absl/base/raw_logging_test.cc +15 -0
  56. package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +50 -30
  57. package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -1
  58. package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +0 -1
  59. package/vendor/abseil-cpp/absl/cleanup/cleanup.h +1 -3
  60. package/vendor/abseil-cpp/absl/cleanup/cleanup_test.cc +0 -2
  61. package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
  62. package/vendor/abseil-cpp/absl/container/BUILD.bazel +74 -1
  63. package/vendor/abseil-cpp/absl/container/CMakeLists.txt +73 -0
  64. package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +51 -9
  65. package/vendor/abseil-cpp/absl/container/btree_map.h +8 -6
  66. package/vendor/abseil-cpp/absl/container/btree_set.h +8 -6
  67. package/vendor/abseil-cpp/absl/container/btree_test.cc +89 -4
  68. package/vendor/abseil-cpp/absl/container/fixed_array.h +7 -15
  69. package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +17 -0
  70. package/vendor/abseil-cpp/absl/container/flat_hash_map.h +20 -15
  71. package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +8 -14
  72. package/vendor/abseil-cpp/absl/container/flat_hash_set.h +19 -14
  73. package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +46 -0
  74. package/vendor/abseil-cpp/absl/container/inlined_vector.h +7 -6
  75. package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +28 -0
  76. package/vendor/abseil-cpp/absl/container/internal/btree.h +132 -29
  77. package/vendor/abseil-cpp/absl/container/internal/btree_container.h +175 -71
  78. package/vendor/abseil-cpp/absl/container/internal/common.h +43 -0
  79. package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
  80. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +28 -24
  81. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +4 -17
  82. package/vendor/abseil-cpp/absl/container/internal/container_memory.h +80 -17
  83. package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +32 -2
  84. package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +13 -8
  85. package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +1 -52
  86. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +9 -31
  87. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +23 -32
  88. package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +5 -1
  89. package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +11 -23
  90. package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +14 -9
  91. package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +516 -0
  92. package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes_test.cc +259 -0
  93. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +23 -6
  94. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +32 -13
  95. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +8 -8
  96. package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
  97. package/vendor/abseil-cpp/absl/container/internal/layout.h +26 -42
  98. package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
  99. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +1506 -213
  100. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +1095 -1658
  101. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +3 -2
  102. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +31 -29
  103. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +51 -20
  104. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +79 -0
  105. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl_test.cc +66 -0
  106. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +707 -363
  107. package/vendor/abseil-cpp/absl/container/node_hash_map.h +20 -15
  108. package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +0 -3
  109. package/vendor/abseil-cpp/absl/container/node_hash_set.h +18 -13
  110. package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +3 -8
  111. package/vendor/abseil-cpp/absl/copts/AbseilConfigureCopts.cmake +1 -1
  112. package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +9 -20
  113. package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +9 -20
  114. package/vendor/abseil-cpp/absl/copts/copts.py +24 -15
  115. package/vendor/abseil-cpp/absl/crc/BUILD.bazel +3 -0
  116. package/vendor/abseil-cpp/absl/crc/crc32c.cc +0 -4
  117. package/vendor/abseil-cpp/absl/crc/crc32c.h +7 -5
  118. package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +17 -4
  119. package/vendor/abseil-cpp/absl/crc/crc32c_test.cc +30 -0
  120. package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +17 -0
  121. package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
  122. package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
  123. package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
  124. package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +136 -165
  125. package/vendor/abseil-cpp/absl/crc/internal/gen_crc32c_consts.py +90 -0
  126. package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +7 -0
  127. package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +4 -0
  128. package/vendor/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
  129. package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
  130. package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
  131. package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
  132. package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
  133. package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +11 -10
  134. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
  135. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
  136. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
  137. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
  138. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
  139. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
  140. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
  141. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
  142. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
  143. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -14
  144. package/vendor/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
  145. package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +161 -27
  146. package/vendor/abseil-cpp/absl/debugging/stacktrace.h +73 -5
  147. package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +435 -1
  148. package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +55 -63
  149. package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
  150. package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
  151. package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -0
  152. package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +3 -0
  153. package/vendor/abseil-cpp/absl/flags/commandlineflag.h +2 -2
  154. package/vendor/abseil-cpp/absl/flags/flag.h +4 -3
  155. package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
  156. package/vendor/abseil-cpp/absl/flags/internal/flag.cc +14 -13
  157. package/vendor/abseil-cpp/absl/flags/internal/flag.h +34 -34
  158. package/vendor/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
  159. package/vendor/abseil-cpp/absl/flags/internal/registry.h +4 -3
  160. package/vendor/abseil-cpp/absl/flags/internal/usage.cc +2 -2
  161. package/vendor/abseil-cpp/absl/flags/parse.cc +10 -6
  162. package/vendor/abseil-cpp/absl/flags/reflection.cc +9 -7
  163. package/vendor/abseil-cpp/absl/flags/usage.cc +2 -2
  164. package/vendor/abseil-cpp/absl/flags/usage_config.cc +2 -2
  165. package/vendor/abseil-cpp/absl/functional/BUILD.bazel +7 -6
  166. package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +2 -4
  167. package/vendor/abseil-cpp/absl/functional/any_invocable.h +15 -15
  168. package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +10 -42
  169. package/vendor/abseil-cpp/absl/functional/function_ref.h +2 -9
  170. package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +10 -0
  171. package/vendor/abseil-cpp/absl/functional/function_type_benchmark.cc +1 -1
  172. package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +112 -227
  173. package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
  174. package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
  175. package/vendor/abseil-cpp/absl/functional/overload.h +0 -20
  176. package/vendor/abseil-cpp/absl/functional/overload_test.cc +1 -7
  177. package/vendor/abseil-cpp/absl/hash/BUILD.bazel +16 -9
  178. package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +6 -9
  179. package/vendor/abseil-cpp/absl/hash/hash.h +18 -0
  180. package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +3 -0
  181. package/vendor/abseil-cpp/absl/hash/hash_instantiated_test.cc +1 -1
  182. package/vendor/abseil-cpp/absl/hash/hash_test.cc +131 -30
  183. package/vendor/abseil-cpp/absl/hash/hash_testing.h +20 -20
  184. package/vendor/abseil-cpp/absl/hash/internal/hash.cc +129 -17
  185. package/vendor/abseil-cpp/absl/hash/internal/hash.h +326 -362
  186. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +54 -151
  187. package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +14 -2
  188. package/vendor/abseil-cpp/absl/{strings/cord_buffer.cc → hash/internal/weakly_mixed_integer.h} +14 -6
  189. package/vendor/abseil-cpp/absl/log/BUILD.bazel +4 -0
  190. package/vendor/abseil-cpp/absl/log/CMakeLists.txt +7 -0
  191. package/vendor/abseil-cpp/absl/log/check.h +2 -1
  192. package/vendor/abseil-cpp/absl/log/check_test_impl.inc +308 -14
  193. package/vendor/abseil-cpp/absl/log/die_if_null.h +2 -2
  194. package/vendor/abseil-cpp/absl/log/flags_test.cc +7 -0
  195. package/vendor/abseil-cpp/absl/log/globals.h +4 -5
  196. package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +13 -9
  197. package/vendor/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
  198. package/vendor/abseil-cpp/absl/log/internal/check_op.cc +24 -22
  199. package/vendor/abseil-cpp/absl/log/internal/check_op.h +149 -94
  200. package/vendor/abseil-cpp/absl/log/internal/conditions.cc +5 -3
  201. package/vendor/abseil-cpp/absl/log/internal/conditions.h +7 -2
  202. package/vendor/abseil-cpp/absl/log/internal/fnmatch_test.cc +1 -0
  203. package/vendor/abseil-cpp/absl/log/internal/log_message.cc +85 -43
  204. package/vendor/abseil-cpp/absl/log/internal/log_message.h +84 -59
  205. package/vendor/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
  206. package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -0
  207. package/vendor/abseil-cpp/absl/log/internal/proto.cc +3 -2
  208. package/vendor/abseil-cpp/absl/log/internal/proto.h +3 -3
  209. package/vendor/abseil-cpp/absl/log/internal/strip.h +4 -12
  210. package/vendor/abseil-cpp/absl/log/internal/structured.h +3 -7
  211. package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +9 -9
  212. package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
  213. package/vendor/abseil-cpp/absl/log/internal/voidify.h +10 -4
  214. package/vendor/abseil-cpp/absl/log/log.h +48 -35
  215. package/vendor/abseil-cpp/absl/log/log_basic_test_impl.inc +45 -0
  216. package/vendor/abseil-cpp/absl/log/log_entry.cc +241 -19
  217. package/vendor/abseil-cpp/absl/log/log_entry.h +2 -0
  218. package/vendor/abseil-cpp/absl/log/log_format_test.cc +412 -6
  219. package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +20 -0
  220. package/vendor/abseil-cpp/absl/log/log_sink_registry.h +2 -2
  221. package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +15 -2
  222. package/vendor/abseil-cpp/absl/log/scoped_mock_log.h +7 -1
  223. package/vendor/abseil-cpp/absl/log/structured_test.cc +1 -0
  224. package/vendor/abseil-cpp/absl/memory/BUILD.bazel +2 -0
  225. package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
  226. package/vendor/abseil-cpp/absl/meta/type_traits.h +46 -175
  227. package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +1 -478
  228. package/vendor/abseil-cpp/absl/numeric/BUILD.bazel +7 -3
  229. package/vendor/abseil-cpp/absl/numeric/CMakeLists.txt +2 -0
  230. package/vendor/abseil-cpp/absl/numeric/bits.h +68 -2
  231. package/vendor/abseil-cpp/absl/numeric/bits_benchmark.cc +1 -1
  232. package/vendor/abseil-cpp/absl/numeric/bits_test.cc +83 -0
  233. package/vendor/abseil-cpp/absl/numeric/int128.cc +0 -52
  234. package/vendor/abseil-cpp/absl/numeric/int128_benchmark.cc +14 -15
  235. package/vendor/abseil-cpp/absl/numeric/int128_test.cc +13 -8
  236. package/vendor/abseil-cpp/absl/numeric/internal/bits.h +39 -7
  237. package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +47 -0
  238. package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +38 -0
  239. package/vendor/abseil-cpp/absl/profiling/hashtable.cc +124 -0
  240. package/vendor/abseil-cpp/absl/profiling/hashtable.h +40 -0
  241. package/vendor/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
  242. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +462 -0
  243. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +138 -0
  244. package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
  245. package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +7 -3
  246. package/vendor/abseil-cpp/absl/random/BUILD.bazel +6 -4
  247. package/vendor/abseil-cpp/absl/random/CMakeLists.txt +20 -19
  248. package/vendor/abseil-cpp/absl/random/benchmarks.cc +16 -23
  249. package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
  250. package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +7 -2
  251. package/vendor/abseil-cpp/absl/random/distributions.h +6 -8
  252. package/vendor/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
  253. package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +19 -20
  254. package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
  255. package/vendor/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +24 -92
  256. package/vendor/abseil-cpp/absl/{base/inline_variable_test_b.cc → random/internal/entropy_pool.h} +14 -6
  257. package/vendor/abseil-cpp/absl/random/internal/entropy_pool_test.cc +119 -0
  258. package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +6 -7
  259. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
  260. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +39 -0
  261. package/vendor/abseil-cpp/absl/random/internal/randen_benchmarks.cc +8 -6
  262. package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
  263. package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
  264. package/vendor/abseil-cpp/absl/random/internal/seed_material.h +5 -5
  265. package/vendor/abseil-cpp/absl/random/internal/seed_material_test.cc +3 -0
  266. package/vendor/abseil-cpp/absl/random/mock_distributions_test.cc +5 -4
  267. package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +8 -10
  268. package/vendor/abseil-cpp/absl/random/random.h +88 -53
  269. package/vendor/abseil-cpp/absl/random/seed_sequences.cc +6 -2
  270. package/vendor/abseil-cpp/absl/status/BUILD.bazel +26 -0
  271. package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
  272. package/vendor/abseil-cpp/absl/status/internal/status_internal.h +3 -4
  273. package/vendor/abseil-cpp/absl/status/internal/status_matchers.cc +4 -3
  274. package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +194 -32
  275. package/vendor/abseil-cpp/absl/status/status.cc +4 -8
  276. package/vendor/abseil-cpp/absl/status/status.h +8 -8
  277. package/vendor/abseil-cpp/absl/{base/inline_variable_test_a.cc → status/status_benchmark.cc} +20 -10
  278. package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +65 -0
  279. package/vendor/abseil-cpp/absl/status/status_payload_printer.h +2 -2
  280. package/vendor/abseil-cpp/absl/status/statusor.cc +2 -2
  281. package/vendor/abseil-cpp/absl/status/statusor.h +49 -102
  282. package/vendor/abseil-cpp/absl/status/statusor_benchmark.cc +480 -0
  283. package/vendor/abseil-cpp/absl/status/statusor_test.cc +323 -1
  284. package/vendor/abseil-cpp/absl/strings/BUILD.bazel +70 -34
  285. package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +6 -3
  286. package/vendor/abseil-cpp/absl/strings/ascii.cc +9 -9
  287. package/vendor/abseil-cpp/absl/strings/ascii.h +18 -18
  288. package/vendor/abseil-cpp/absl/strings/ascii_benchmark.cc +5 -8
  289. package/vendor/abseil-cpp/absl/strings/charconv.cc +21 -22
  290. package/vendor/abseil-cpp/absl/strings/charconv.h +5 -5
  291. package/vendor/abseil-cpp/absl/strings/charconv_benchmark.cc +1 -2
  292. package/vendor/abseil-cpp/absl/strings/charset_benchmark.cc +1 -1
  293. package/vendor/abseil-cpp/absl/strings/cord.cc +54 -58
  294. package/vendor/abseil-cpp/absl/strings/cord.h +94 -84
  295. package/vendor/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
  296. package/vendor/abseil-cpp/absl/strings/cord_analysis.h +3 -3
  297. package/vendor/abseil-cpp/absl/strings/cord_test.cc +23 -0
  298. package/vendor/abseil-cpp/absl/strings/cordz_test_helpers.h +4 -5
  299. package/vendor/abseil-cpp/absl/strings/escaping.cc +130 -149
  300. package/vendor/abseil-cpp/absl/strings/escaping.h +9 -10
  301. package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +2 -3
  302. package/vendor/abseil-cpp/absl/strings/escaping_test.cc +19 -9
  303. package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  304. package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc +1 -1
  305. package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +6 -10
  306. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
  307. package/vendor/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
  308. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +5 -9
  309. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +2 -4
  310. package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_benchmark.cc +56 -0
  311. package/vendor/abseil-cpp/absl/strings/internal/memutil_benchmark.cc +2 -3
  312. package/vendor/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc +1 -2
  313. package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
  314. package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
  315. package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +1 -6
  316. package/vendor/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
  317. package/vendor/abseil-cpp/absl/strings/internal/str_format/extension_test.cc +3 -2
  318. package/vendor/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
  319. package/vendor/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
  320. package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
  321. package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +7 -2
  322. package/vendor/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
  323. package/vendor/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
  324. package/vendor/abseil-cpp/absl/strings/internal/utf8.h +15 -1
  325. package/vendor/abseil-cpp/absl/strings/internal/utf8_test.cc +196 -3
  326. package/vendor/abseil-cpp/absl/strings/numbers.cc +53 -32
  327. package/vendor/abseil-cpp/absl/strings/numbers.h +87 -58
  328. package/vendor/abseil-cpp/absl/strings/numbers_benchmark.cc +1 -1
  329. package/vendor/abseil-cpp/absl/strings/numbers_test.cc +634 -120
  330. package/vendor/abseil-cpp/absl/strings/str_cat.cc +6 -7
  331. package/vendor/abseil-cpp/absl/strings/str_cat.h +32 -32
  332. package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +25 -1
  333. package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +2 -7
  334. package/vendor/abseil-cpp/absl/strings/str_format.h +18 -18
  335. package/vendor/abseil-cpp/absl/strings/str_format_test.cc +8 -14
  336. package/vendor/abseil-cpp/absl/strings/str_join_benchmark.cc +2 -3
  337. package/vendor/abseil-cpp/absl/strings/str_replace.cc +3 -3
  338. package/vendor/abseil-cpp/absl/strings/str_replace.h +6 -6
  339. package/vendor/abseil-cpp/absl/strings/str_replace_benchmark.cc +2 -3
  340. package/vendor/abseil-cpp/absl/strings/str_split.h +2 -2
  341. package/vendor/abseil-cpp/absl/strings/str_split_benchmark.cc +2 -3
  342. package/vendor/abseil-cpp/absl/strings/string_view.cc +4 -9
  343. package/vendor/abseil-cpp/absl/strings/string_view.h +38 -39
  344. package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +4 -6
  345. package/vendor/abseil-cpp/absl/strings/string_view_test.cc +2 -50
  346. package/vendor/abseil-cpp/absl/strings/strip.h +4 -4
  347. package/vendor/abseil-cpp/absl/strings/substitute.cc +5 -4
  348. package/vendor/abseil-cpp/absl/strings/substitute.h +66 -64
  349. package/vendor/abseil-cpp/absl/strings/substitute_benchmark.cc +158 -0
  350. package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +6 -1
  351. package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +2 -1
  352. package/vendor/abseil-cpp/absl/synchronization/barrier.cc +1 -1
  353. package/vendor/abseil-cpp/absl/synchronization/barrier_test.cc +3 -3
  354. package/vendor/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
  355. package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
  356. package/vendor/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
  357. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
  358. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc +2 -3
  359. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +6 -5
  360. package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
  361. package/vendor/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
  362. package/vendor/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
  363. package/vendor/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
  364. package/vendor/abseil-cpp/absl/synchronization/internal/thread_pool.h +3 -3
  365. package/vendor/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
  366. package/vendor/abseil-cpp/absl/synchronization/internal/waiter_test.cc +12 -3
  367. package/vendor/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
  368. package/vendor/abseil-cpp/absl/synchronization/lifetime_test.cc +4 -4
  369. package/vendor/abseil-cpp/absl/synchronization/mutex.cc +27 -29
  370. package/vendor/abseil-cpp/absl/synchronization/mutex.h +205 -126
  371. package/vendor/abseil-cpp/absl/synchronization/mutex_benchmark.cc +13 -31
  372. package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +183 -169
  373. package/vendor/abseil-cpp/absl/synchronization/notification.cc +5 -5
  374. package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
  375. package/vendor/abseil-cpp/absl/synchronization/notification_test.cc +3 -3
  376. package/vendor/abseil-cpp/absl/time/BUILD.bazel +9 -1
  377. package/vendor/abseil-cpp/absl/time/CMakeLists.txt +3 -1
  378. package/vendor/abseil-cpp/absl/time/civil_time.cc +1 -0
  379. package/vendor/abseil-cpp/absl/time/civil_time_test.cc +134 -0
  380. package/vendor/abseil-cpp/absl/time/clock.cc +11 -14
  381. package/vendor/abseil-cpp/absl/time/duration.cc +14 -9
  382. package/vendor/abseil-cpp/absl/time/duration_test.cc +6 -7
  383. package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +14 -3
  384. package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
  385. package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
  386. package/vendor/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +4 -490
  387. package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.cc +515 -0
  388. package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.h +33 -0
  389. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +41 -4
  390. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +22 -23
  391. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
  392. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +1 -488
  393. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
  394. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coyhaique +0 -0
  395. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tehran +0 -0
  396. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iran +0 -0
  397. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +2 -1
  398. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +1 -1
  399. package/vendor/abseil-cpp/absl/time/time.h +24 -18
  400. package/vendor/abseil-cpp/absl/time/time_test.cc +26 -0
  401. package/vendor/abseil-cpp/absl/types/BUILD.bazel +11 -164
  402. package/vendor/abseil-cpp/absl/types/CMakeLists.txt +23 -167
  403. package/vendor/abseil-cpp/absl/types/any.h +9 -484
  404. package/vendor/abseil-cpp/absl/types/optional.h +7 -747
  405. package/vendor/abseil-cpp/absl/types/span.h +46 -19
  406. package/vendor/abseil-cpp/absl/types/span_test.cc +27 -0
  407. package/vendor/abseil-cpp/absl/types/variant.h +5 -784
  408. package/vendor/abseil-cpp/absl/types/variant_test.cc +43 -2597
  409. package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -41
  410. package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +0 -40
  411. package/vendor/abseil-cpp/absl/utility/utility.h +10 -185
  412. package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -3
  413. package/vendor/abseil-cpp/ci/cmake_common.sh +2 -2
  414. package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +12 -13
  415. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +24 -21
  416. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +12 -12
  417. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +23 -22
  418. package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +20 -19
  419. package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
  420. package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +17 -17
  421. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +10 -10
  422. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +1 -1
  423. package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +1 -1
  424. package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +9 -10
  425. package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +9 -1
  426. package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +14 -6
  427. package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +14 -6
  428. package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +1 -1
  429. package/vendor/re2/.bazelrc +4 -4
  430. package/vendor/re2/.bcr/metadata.template.json +16 -0
  431. package/vendor/re2/.bcr/presubmit.yml +57 -0
  432. package/vendor/re2/.bcr/source.template.json +5 -0
  433. package/vendor/re2/.github/bazel.sh +1 -7
  434. package/vendor/re2/.github/workflows/ci-bazel.yml +5 -5
  435. package/vendor/re2/.github/workflows/ci-cmake.yml +4 -4
  436. package/vendor/re2/.github/workflows/ci.yml +5 -6
  437. package/vendor/re2/.github/workflows/pages.yml +3 -3
  438. package/vendor/re2/.github/workflows/python.yml +29 -24
  439. package/vendor/re2/.github/workflows/release-bazel.yml +42 -0
  440. package/vendor/re2/.github/workflows/release.yml +15 -4
  441. package/vendor/re2/BUILD.bazel +25 -0
  442. package/vendor/re2/CMakeLists.txt +100 -85
  443. package/vendor/re2/CONTRIBUTING.md +0 -1
  444. package/vendor/re2/MODULE.bazel +10 -10
  445. package/vendor/re2/Makefile +1 -1
  446. package/vendor/re2/README.md +259 -0
  447. package/vendor/re2/python/BUILD.bazel +8 -0
  448. package/vendor/re2/python/re2.py +1 -1
  449. package/vendor/re2/python/re2_test.py +6 -0
  450. package/vendor/re2/python/setup.py +3 -3
  451. package/vendor/re2/re2/bitmap256.cc +3 -4
  452. package/vendor/re2/re2/bitstate.cc +15 -10
  453. package/vendor/re2/re2/dfa.cc +1 -2
  454. package/vendor/re2/re2/parse.cc +3 -4
  455. package/vendor/re2/re2/prog.cc +1 -2
  456. package/vendor/re2/re2/prog.h +1 -0
  457. package/vendor/re2/re2/re2.cc +5 -0
  458. package/vendor/re2/re2/re2.h +9 -9
  459. package/vendor/re2/re2/set.cc +6 -0
  460. package/vendor/re2/re2/set.h +5 -0
  461. package/vendor/re2/re2/testing/re2_arg_test.cc +3 -3
  462. package/vendor/re2/re2/testing/re2_test.cc +8 -0
  463. package/vendor/re2/re2/testing/set_test.cc +5 -0
  464. package/vendor/re2/re2/walker-inl.h +1 -1
  465. package/vendor/abseil-cpp/WORKSPACE +0 -76
  466. package/vendor/abseil-cpp/WORKSPACE.bzlmod +0 -19
  467. package/vendor/abseil-cpp/absl/base/inline_variable_test.cc +0 -64
  468. package/vendor/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
  469. package/vendor/abseil-cpp/absl/base/internal/inline_variable_testing.h +0 -46
  470. package/vendor/abseil-cpp/absl/base/internal/invoke.h +0 -241
  471. package/vendor/abseil-cpp/absl/base/internal/nullability_impl.h +0 -69
  472. package/vendor/abseil-cpp/absl/base/invoke_test.cc +0 -331
  473. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -148
  474. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -54
  475. package/vendor/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
  476. package/vendor/abseil-cpp/absl/random/internal/pool_urbg_test.cc +0 -182
  477. package/vendor/abseil-cpp/absl/types/any_exception_safety_test.cc +0 -173
  478. package/vendor/abseil-cpp/absl/types/any_test.cc +0 -778
  479. package/vendor/abseil-cpp/absl/types/bad_any_cast.cc +0 -64
  480. package/vendor/abseil-cpp/absl/types/bad_any_cast.h +0 -75
  481. package/vendor/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
  482. package/vendor/abseil-cpp/absl/types/bad_optional_access.h +0 -78
  483. package/vendor/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
  484. package/vendor/abseil-cpp/absl/types/bad_variant_access.h +0 -82
  485. package/vendor/abseil-cpp/absl/types/internal/optional.h +0 -352
  486. package/vendor/abseil-cpp/absl/types/internal/variant.h +0 -1622
  487. package/vendor/abseil-cpp/absl/types/optional_exception_safety_test.cc +0 -292
  488. package/vendor/abseil-cpp/absl/types/optional_test.cc +0 -1615
  489. package/vendor/abseil-cpp/absl/types/variant_benchmark.cc +0 -222
  490. package/vendor/abseil-cpp/absl/types/variant_exception_safety_test.cc +0 -532
  491. package/vendor/abseil-cpp/absl/utility/internal/if_constexpr.h +0 -70
  492. package/vendor/abseil-cpp/absl/utility/internal/if_constexpr_test.cc +0 -79
  493. package/vendor/abseil-cpp/absl/utility/utility_test.cc +0 -239
  494. package/vendor/re2/.github/workflows/pr.yml +0 -34
  495. package/vendor/re2/README +0 -47
@@ -34,7 +34,7 @@ namespace absl {
34
34
  ABSL_NAMESPACE_BEGIN
35
35
  namespace log_internal {
36
36
 
37
- class ABSL_MUST_USE_RESULT AsLiteralImpl final {
37
+ class [[nodiscard]] AsLiteralImpl final {
38
38
  public:
39
39
  explicit AsLiteralImpl(absl::string_view str ABSL_ATTRIBUTE_LIFETIME_BOUND)
40
40
  : str_(str) {}
@@ -66,7 +66,7 @@ enum class StructuredStringType {
66
66
  // Structured log data for a string and associated structured proto field,
67
67
  // both of which must outlive this object.
68
68
  template <StructuredStringType str_type>
69
- class ABSL_MUST_USE_RESULT AsStructuredStringTypeImpl final {
69
+ class [[nodiscard]] AsStructuredStringTypeImpl final {
70
70
  public:
71
71
  constexpr AsStructuredStringTypeImpl(
72
72
  absl::string_view str ABSL_ATTRIBUTE_LIFETIME_BOUND,
@@ -105,7 +105,7 @@ using AsStructuredNotLiteralImpl =
105
105
  // Structured log data for a stringifyable type T and associated structured
106
106
  // proto field, both of which must outlive this object.
107
107
  template <typename T>
108
- class ABSL_MUST_USE_RESULT AsStructuredValueImpl final {
108
+ class [[nodiscard]] AsStructuredValueImpl final {
109
109
  public:
110
110
  using ValueFormatter = absl::AnyInvocable<std::string(T) const>;
111
111
 
@@ -139,8 +139,6 @@ class ABSL_MUST_USE_RESULT AsStructuredValueImpl final {
139
139
  }
140
140
  };
141
141
 
142
- #ifdef ABSL_HAVE_CLASS_TEMPLATE_ARGUMENT_DEDUCTION
143
-
144
142
  // Template deduction guide so `AsStructuredValueImpl(42, data)` works
145
143
  // without specifying the template type.
146
144
  template <typename T>
@@ -155,8 +153,6 @@ AsStructuredValueImpl(
155
153
  typename AsStructuredValueImpl<T>::ValueFormatter value_formatter)
156
154
  -> AsStructuredValueImpl<T>;
157
155
 
158
- #endif // ABSL_HAVE_CLASS_TEMPLATE_ARGUMENT_DEDUCTION
159
-
160
156
  } // namespace log_internal
161
157
  ABSL_NAMESPACE_END
162
158
  } // namespace absl
@@ -90,16 +90,16 @@ struct VModuleInfo final {
90
90
  // To avoid problems with the heap checker which calls into `VLOG`, `mutex` must
91
91
  // be a `SpinLock` that prevents fiber scheduling instead of a `Mutex`.
92
92
  ABSL_CONST_INIT absl::base_internal::SpinLock mutex(
93
- absl::kConstInit, absl::base_internal::SCHEDULE_KERNEL_ONLY);
93
+ absl::base_internal::SCHEDULE_KERNEL_ONLY);
94
94
 
95
95
  // `GetUpdateSitesMutex()` serializes updates to all of the sites (i.e. those in
96
96
  // `site_list_head`) themselves.
97
- absl::Mutex* GetUpdateSitesMutex() {
97
+ absl::Mutex& GetUpdateSitesMutex() {
98
98
  // Chromium requires no global destructors, so we can't use the
99
99
  // absl::kConstInit idiom since absl::Mutex as a non-trivial destructor.
100
100
  static absl::NoDestructor<absl::Mutex> update_sites_mutex ABSL_ACQUIRED_AFTER(
101
101
  mutex);
102
- return update_sites_mutex.get();
102
+ return *update_sites_mutex;
103
103
  }
104
104
 
105
105
  ABSL_CONST_INIT int global_v ABSL_GUARDED_BY(mutex) = 0;
@@ -222,7 +222,7 @@ int PrependVModuleLocked(absl::string_view module_pattern, int log_level)
222
222
  } // namespace
223
223
 
224
224
  int VLogLevel(absl::string_view file) ABSL_LOCKS_EXCLUDED(mutex) {
225
- absl::base_internal::SpinLockHolder l(&mutex);
225
+ absl::base_internal::SpinLockHolder l(mutex);
226
226
  return VLogLevel(file, vmodule_info, global_v);
227
227
  }
228
228
 
@@ -267,7 +267,7 @@ void UpdateVLogSites() ABSL_UNLOCK_FUNCTION(mutex)
267
267
  // have to wait on all updates in order to acquire `mutex` and initialize
268
268
  // themselves.
269
269
  absl::MutexLock ul(GetUpdateSitesMutex());
270
- mutex.Unlock();
270
+ mutex.unlock();
271
271
  VLogSite* n = site_list_head.load(std::memory_order_seq_cst);
272
272
  // Because sites are added to the list in the order they are executed, there
273
273
  // tend to be clusters of entries with the same file.
@@ -299,7 +299,7 @@ void UpdateVModule(absl::string_view vmodule)
299
299
  if (!absl::SimpleAtoi(glob_level.substr(eq + 1), &level)) continue;
300
300
  glob_levels.emplace_back(glob, level);
301
301
  }
302
- mutex.Lock(); // Unlocked by UpdateVLogSites().
302
+ mutex.lock(); // unlocked by UpdateVLogSites().
303
303
  get_vmodule_info().clear();
304
304
  for (const auto& it : glob_levels) {
305
305
  const absl::string_view glob = it.first;
@@ -311,10 +311,10 @@ void UpdateVModule(absl::string_view vmodule)
311
311
 
312
312
  int UpdateGlobalVLogLevel(int v)
313
313
  ABSL_LOCKS_EXCLUDED(mutex, GetUpdateSitesMutex()) {
314
- mutex.Lock(); // Unlocked by UpdateVLogSites().
314
+ mutex.lock(); // unlocked by UpdateVLogSites().
315
315
  const int old_global_v = global_v;
316
316
  if (v == global_v) {
317
- mutex.Unlock();
317
+ mutex.unlock();
318
318
  return old_global_v;
319
319
  }
320
320
  global_v = v;
@@ -324,7 +324,7 @@ int UpdateGlobalVLogLevel(int v)
324
324
 
325
325
  int PrependVModule(absl::string_view module_pattern, int log_level)
326
326
  ABSL_LOCKS_EXCLUDED(mutex, GetUpdateSitesMutex()) {
327
- mutex.Lock(); // Unlocked by UpdateVLogSites().
327
+ mutex.lock(); // unlocked by UpdateVLogSites().
328
328
  int old_v = PrependVModuleLocked(module_pattern, log_level);
329
329
  UpdateVLogSites();
330
330
  return old_v;
@@ -34,6 +34,7 @@
34
34
 
35
35
  #include "absl/base/attributes.h"
36
36
  #include "absl/base/config.h"
37
+ #include "absl/base/nullability.h"
37
38
  #include "absl/base/optimization.h"
38
39
  #include "absl/base/thread_annotations.h"
39
40
  #include "absl/strings/string_view.h"
@@ -45,7 +46,7 @@ namespace log_internal {
45
46
  class SyntheticBinary;
46
47
  class VLogSite;
47
48
 
48
- int RegisterAndInitialize(VLogSite* v);
49
+ int RegisterAndInitialize(VLogSite* absl_nonnull v);
49
50
  void UpdateVLogSites();
50
51
  constexpr int kUseFlag = (std::numeric_limits<int16_t>::min)();
51
52
 
@@ -60,7 +61,7 @@ constexpr int kUseFlag = (std::numeric_limits<int16_t>::min)();
60
61
  class VLogSite final {
61
62
  public:
62
63
  // `f` must not be destroyed until the program exits.
63
- explicit constexpr VLogSite(const char* f)
64
+ explicit constexpr VLogSite(const char* absl_nonnull f)
64
65
  : file_(f), v_(kUninitialized), next_(nullptr) {}
65
66
  VLogSite(const VLogSite&) = delete;
66
67
  VLogSite& operator=(const VLogSite&) = delete;
@@ -93,7 +94,7 @@ class VLogSite final {
93
94
  }
94
95
 
95
96
  private:
96
- friend int log_internal::RegisterAndInitialize(VLogSite* v);
97
+ friend int log_internal::RegisterAndInitialize(VLogSite* absl_nonnull v);
97
98
  friend void log_internal::UpdateVLogSites();
98
99
  friend class log_internal::SyntheticBinary;
99
100
  static constexpr int kUninitialized = (std::numeric_limits<int>::max)();
@@ -116,7 +117,7 @@ class VLogSite final {
116
117
  ABSL_ATTRIBUTE_NOINLINE bool SlowIsEnabled5(int stale_v);
117
118
 
118
119
  // This object is too size-sensitive to use absl::string_view.
119
- const char* const file_;
120
+ const char* absl_nonnull const file_;
120
121
  std::atomic<int> v_;
121
122
  std::atomic<VLogSite*> next_;
122
123
  };
@@ -130,7 +131,7 @@ int VLogLevel(absl::string_view file);
130
131
  // Registers a site `v` to get updated as `vmodule` and `v` change. Also
131
132
  // initializes the site based on their current values, and returns that result.
132
133
  // Does not allocate memory.
133
- int RegisterAndInitialize(VLogSite* v);
134
+ int RegisterAndInitialize(VLogSite* absl_nonnull v);
134
135
 
135
136
  // Allocates memory.
136
137
  void UpdateVLogSites();
@@ -154,7 +155,8 @@ int PrependVModule(absl::string_view module_pattern, int log_level);
154
155
  void OnVLogVerbosityUpdate(std::function<void()> cb);
155
156
 
156
157
  // Does not allocate memory.
157
- VLogSite* SetVModuleListHeadForTestOnly(VLogSite* v);
158
+ VLogSite* absl_nullable SetVModuleListHeadForTestOnly(
159
+ VLogSite* absl_nullable v);
158
160
 
159
161
  } // namespace log_internal
160
162
  ABSL_NAMESPACE_END
@@ -16,13 +16,15 @@
16
16
  // File: log/internal/voidify.h
17
17
  // -----------------------------------------------------------------------------
18
18
  //
19
- // This class is used to explicitly ignore values in the conditional logging
20
- // macros. This avoids compiler warnings like "value computed is not used" and
21
- // "statement has no effect".
19
+ // This class does the dispatching of the completed `absl::LogEntry` to
20
+ // applicable `absl::LogSink`s, and is used to explicitly ignore values in the
21
+ // conditional logging macros. This avoids compiler warnings like "value
22
+ // computed is not used" and "statement has no effect".
22
23
 
23
24
  #ifndef ABSL_LOG_INTERNAL_VOIDIFY_H_
24
25
  #define ABSL_LOG_INTERNAL_VOIDIFY_H_
25
26
 
27
+ #include "absl/base/attributes.h"
26
28
  #include "absl/base/config.h"
27
29
 
28
30
  namespace absl {
@@ -34,7 +36,11 @@ class Voidify final {
34
36
  // This has to be an operator with a precedence lower than << but higher than
35
37
  // ?:
36
38
  template <typename T>
37
- void operator&&(const T&) const&& {}
39
+ ABSL_ATTRIBUTE_COLD void operator&&(T&& message) const&& {
40
+ // The dispatching of the completed `absl::LogEntry` to applicable
41
+ // `absl::LogSink`s happens here.
42
+ message.Flush();
43
+ }
38
44
  };
39
45
 
40
46
  } // namespace log_internal
@@ -34,6 +34,13 @@
34
34
  // running registered error handlers.
35
35
  // * The `DFATAL` pseudo-severity level is defined as `FATAL` in debug mode and
36
36
  // as `ERROR` otherwise.
37
+ // * The `DO_NOT_SUBMIT` pseudo-severity level is an alias for `ERROR`, and is
38
+ // intended for debugging statements that won't be submitted. The name is
39
+ // chosen to be easy to spot in review and with tools in order to ensure that
40
+ // such statements aren't inadvertently checked in.
41
+ // The contract is that **it may not be checked in**, meaning that no
42
+ // in-contract uses will be affected if we decide in the future to remove it
43
+ // or change what it does.
37
44
  // Some preprocessor shenanigans are used to ensure that e.g. `LOG(INFO)` has
38
45
  // the same meaning even if a local symbol or preprocessor macro named `INFO` is
39
46
  // defined. To specify a severity level using an expression instead of a
@@ -194,6 +201,8 @@
194
201
  // LOG(INFO) << std::hex << 0xdeadbeef; // logs "0xdeadbeef"
195
202
  // LOG(INFO) << 0xdeadbeef; // logs "3735928559"
196
203
 
204
+ // SKIP_ABSL_INLINE_NAMESPACE_CHECK
205
+
197
206
  #ifndef ABSL_LOG_LOG_H_
198
207
  #define ABSL_LOG_LOG_H_
199
208
 
@@ -260,44 +269,55 @@
260
269
  ABSL_LOG_INTERNAL_DLOG_IF_IMPL(_##severity, condition)
261
270
 
262
271
  // LOG_EVERY_N
272
+ // LOG_FIRST_N
273
+ // LOG_EVERY_POW_2
274
+ // LOG_EVERY_N_SEC
263
275
  //
264
- // An instance of `LOG_EVERY_N` increments a hidden zero-initialized counter
265
- // every time execution passes through it and logs the specified message when
266
- // the counter's value is a multiple of `n`, doing nothing otherwise. Each
267
- // instance has its own counter. The counter's value can be logged by streaming
268
- // the symbol `COUNTER`. `LOG_EVERY_N` is thread-safe.
269
- // Example:
276
+ // These "stateful" macros log conditionally based on a hidden counter or timer.
277
+ // When the condition is false and no logging is done, streamed operands aren't
278
+ // evaluated either. Each instance has its own state (i.e. counter, timer)
279
+ // that's independent of other instances of the macros. The macros in this
280
+ // family are thread-safe in the sense that they are meant to be called
281
+ // concurrently and will not invoke undefined behavior, however their
282
+ // implementation prioritizes efficiency over exactness and may occasionally log
283
+ // more or less often than specified.
284
+ //
285
+ // * `LOG_EVERY_N` logs the first time and once every `n` times thereafter.
286
+ // * `LOG_FIRST_N` logs the first `n` times and then stops.
287
+ // * `LOG_EVERY_POW_2` logs the first, second, fourth, eighth, etc. times.
288
+ // * `LOG_EVERY_N_SEC` logs the first time and no more than once every `n`
289
+ // seconds thereafter. `n` is passed as a floating point value.
290
+ //
291
+ // The `LOG_IF`... variations with an extra condition evaluate the specified
292
+ // condition first and short-circuit if it is false. For example, an evaluation
293
+ // of `LOG_IF_FIRST_N` does not count against the first `n` if the specified
294
+ // condition is false. Stateful `VLOG`... variations likewise short-circuit
295
+ // if `VLOG` is disabled.
296
+ //
297
+ // An approximate count of the number of times a particular instance's stateful
298
+ // condition has been evaluated (i.e. excluding those where a specified `LOG_IF`
299
+ // condition was false) can be included in the logged message by streaming the
300
+ // symbol `COUNTER`.
301
+ //
302
+ // The `n` parameter need not be a constant. Conditional logging following a
303
+ // change to `n` isn't fully specified, but it should converge on the new value
304
+ // within roughly `max(old_n, new_n)` evaluations or seconds.
305
+ //
306
+ // Examples:
270
307
  //
271
308
  // LOG_EVERY_N(WARNING, 1000) << "Got a packet with a bad CRC (" << COUNTER
272
309
  // << " total)";
310
+ //
311
+ // LOG_EVERY_N_SEC(INFO, 2.5) << "Got " << COUNTER << " cookies so far";
312
+ //
313
+ // LOG_IF_EVERY_N(INFO, (size > 1024), 10) << "Got the " << COUNTER
314
+ // << "th big cookie";
273
315
  #define LOG_EVERY_N(severity, n) \
274
316
  ABSL_LOG_INTERNAL_LOG_EVERY_N_IMPL(_##severity, n)
275
-
276
- // LOG_FIRST_N
277
- //
278
- // `LOG_FIRST_N` behaves like `LOG_EVERY_N` except that the specified message is
279
- // logged when the counter's value is less than `n`. `LOG_FIRST_N` is
280
- // thread-safe.
281
317
  #define LOG_FIRST_N(severity, n) \
282
318
  ABSL_LOG_INTERNAL_LOG_FIRST_N_IMPL(_##severity, n)
283
-
284
- // LOG_EVERY_POW_2
285
- //
286
- // `LOG_EVERY_POW_2` behaves like `LOG_EVERY_N` except that the specified
287
- // message is logged when the counter's value is a power of 2.
288
- // `LOG_EVERY_POW_2` is thread-safe.
289
319
  #define LOG_EVERY_POW_2(severity) \
290
320
  ABSL_LOG_INTERNAL_LOG_EVERY_POW_2_IMPL(_##severity)
291
-
292
- // LOG_EVERY_N_SEC
293
- //
294
- // An instance of `LOG_EVERY_N_SEC` uses a hidden state variable to log the
295
- // specified message at most once every `n_seconds`. A hidden counter of
296
- // executions (whether a message is logged or not) is also maintained and can be
297
- // logged by streaming the symbol `COUNTER`. `LOG_EVERY_N_SEC` is thread-safe.
298
- // Example:
299
- //
300
- // LOG_EVERY_N_SEC(INFO, 2.5) << "Got " << COUNTER << " cookies so far";
301
321
  #define LOG_EVERY_N_SEC(severity, n_seconds) \
302
322
  ABSL_LOG_INTERNAL_LOG_EVERY_N_SEC_IMPL(_##severity, n_seconds)
303
323
 
@@ -328,13 +348,6 @@
328
348
  #define VLOG_EVERY_N_SEC(severity, n_seconds) \
329
349
  ABSL_LOG_INTERNAL_VLOG_EVERY_N_SEC_IMPL(severity, n_seconds)
330
350
 
331
- // `LOG_IF_EVERY_N` and friends behave as the corresponding `LOG_EVERY_N`
332
- // but neither increment a counter nor log a message if condition is false (as
333
- // `LOG_IF`).
334
- // Example:
335
- //
336
- // LOG_IF_EVERY_N(INFO, (size > 1024), 10) << "Got the " << COUNTER
337
- // << "th big cookie";
338
351
  #define LOG_IF_EVERY_N(severity, condition, n) \
339
352
  ABSL_LOG_INTERNAL_LOG_IF_EVERY_N_IMPL(_##severity, condition, n)
340
353
  #define LOG_IF_FIRST_N(severity, condition, n) \
@@ -13,6 +13,8 @@
13
13
  // See the License for the specific language governing permissions and
14
14
  // limitations under the License.
15
15
 
16
+ // SKIP_ABSL_INLINE_NAMESPACE_CHECK
17
+
16
18
  // The testcases in this file are expected to pass or be skipped with any value
17
19
  // of ABSL_MIN_LOG_LEVEL
18
20
 
@@ -92,6 +94,7 @@ TEST_P(BasicLogTest, Info) {
92
94
  absl::log_internal::ScopedMinLogLevel scoped_min_log_level(GetParam());
93
95
 
94
96
  absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
97
+ EXPECT_CALL(test_sink, Send).Times(0);
95
98
 
96
99
  const int log_line = __LINE__ + 1;
97
100
  auto do_log = [] { ABSL_TEST_LOG(INFO) << "hello world"; };
@@ -123,6 +126,7 @@ TEST_P(BasicLogTest, Warning) {
123
126
  absl::log_internal::ScopedMinLogLevel scoped_min_log_level(GetParam());
124
127
 
125
128
  absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
129
+ EXPECT_CALL(test_sink, Send).Times(0);
126
130
 
127
131
  const int log_line = __LINE__ + 1;
128
132
  auto do_log = [] { ABSL_TEST_LOG(WARNING) << "hello world"; };
@@ -154,6 +158,7 @@ TEST_P(BasicLogTest, Error) {
154
158
  absl::log_internal::ScopedMinLogLevel scoped_min_log_level(GetParam());
155
159
 
156
160
  absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
161
+ EXPECT_CALL(test_sink, Send).Times(0);
157
162
 
158
163
  const int log_line = __LINE__ + 1;
159
164
  auto do_log = [] { ABSL_TEST_LOG(ERROR) << "hello world"; };
@@ -181,6 +186,38 @@ TEST_P(BasicLogTest, Error) {
181
186
  do_log();
182
187
  }
183
188
 
189
+ TEST_P(BasicLogTest, DoNotSubmit) {
190
+ absl::log_internal::ScopedMinLogLevel scoped_min_log_level(GetParam());
191
+
192
+ absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
193
+ EXPECT_CALL(test_sink, Send).Times(0);
194
+
195
+ const int log_line = __LINE__ + 1;
196
+ auto do_log = [] { ABSL_TEST_LOG(DO_NOT_SUBMIT) << "hello world"; };
197
+
198
+ if (LoggingEnabledAt(absl::LogSeverity::kError)) {
199
+ EXPECT_CALL(
200
+ test_sink,
201
+ Send(AllOf(
202
+ SourceFilename(Eq(__FILE__)),
203
+ SourceBasename(Eq("log_basic_test_impl.inc")),
204
+ SourceLine(Eq(log_line)), Prefix(IsTrue()),
205
+ LogSeverity(Eq(absl::LogSeverity::kError)),
206
+ Timestamp(InMatchWindow()),
207
+ ThreadID(Eq(absl::base_internal::GetTID())),
208
+ TextMessage(Eq("hello world")),
209
+ Verbosity(Eq(absl::LogEntry::kNoVerbosityLevel)),
210
+ ENCODED_MESSAGE(MatchesEvent(
211
+ Eq(__FILE__), Eq(log_line), InMatchWindow(),
212
+ Eq(logging::proto::ERROR), Eq(absl::base_internal::GetTID()),
213
+ ElementsAre(ValueWithLiteral(Eq("hello world"))))),
214
+ Stacktrace(IsEmpty()))));
215
+ }
216
+
217
+ test_sink.StartCapturingLogs();
218
+ do_log();
219
+ }
220
+
184
221
  #if GTEST_HAS_DEATH_TEST
185
222
  using BasicLogDeathTest = BasicLogTest;
186
223
 
@@ -200,6 +237,7 @@ TEST_P(BasicLogDeathTest, Fatal) {
200
237
  {
201
238
  absl::ScopedMockLog test_sink(
202
239
  absl::MockLogDefault::kDisallowUnexpected);
240
+ EXPECT_CALL(test_sink, Send).Times(0);
203
241
 
204
242
  EXPECT_CALL(test_sink, Send)
205
243
  .Times(AnyNumber())
@@ -266,6 +304,7 @@ TEST_P(BasicLogDeathTest, QFatal) {
266
304
  {
267
305
  absl::ScopedMockLog test_sink(
268
306
  absl::MockLogDefault::kDisallowUnexpected);
307
+ EXPECT_CALL(test_sink, Send).Times(0);
269
308
 
270
309
  EXPECT_CALL(test_sink, Send)
271
310
  .Times(AnyNumber())
@@ -303,6 +342,7 @@ TEST_P(BasicLogTest, DFatal) {
303
342
  absl::log_internal::ScopedMinLogLevel scoped_min_log_level(GetParam());
304
343
 
305
344
  absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
345
+ EXPECT_CALL(test_sink, Send).Times(0);
306
346
 
307
347
  const int log_line = __LINE__ + 1;
308
348
  auto do_log = [] { ABSL_TEST_LOG(DFATAL) << "hello world"; };
@@ -342,6 +382,7 @@ TEST_P(BasicLogDeathTest, DFatal) {
342
382
  {
343
383
  absl::ScopedMockLog test_sink(
344
384
  absl::MockLogDefault::kDisallowUnexpected);
385
+ EXPECT_CALL(test_sink, Send).Times(0);
345
386
 
346
387
  EXPECT_CALL(test_sink, Send)
347
388
  .Times(AnyNumber())
@@ -423,6 +464,7 @@ TEST_P(BasicLogTest, Level) {
423
464
  for (auto severity : {absl::LogSeverity::kInfo, absl::LogSeverity::kWarning,
424
465
  absl::LogSeverity::kError}) {
425
466
  absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
467
+ EXPECT_CALL(test_sink, Send).Times(0);
426
468
 
427
469
  const int log_line = __LINE__ + 2;
428
470
  auto do_log = [severity] {
@@ -473,6 +515,7 @@ TEST_P(BasicLogDeathTest, Level) {
473
515
  {
474
516
  absl::ScopedMockLog test_sink(
475
517
  absl::MockLogDefault::kDisallowUnexpected);
518
+ EXPECT_CALL(test_sink, Send).Times(0);
476
519
 
477
520
  EXPECT_CALL(test_sink, Send)
478
521
  .Times(AnyNumber())
@@ -534,6 +577,7 @@ TEST_P(BasicLogTest, LevelClampsNegativeValues) {
534
577
  }
535
578
 
536
579
  absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
580
+ EXPECT_CALL(test_sink, Send).Times(0);
537
581
 
538
582
  EXPECT_CALL(test_sink, Send(LogSeverity(Eq(absl::LogSeverity::kInfo))));
539
583
 
@@ -550,6 +594,7 @@ TEST_P(BasicLogTest, LevelClampsLargeValues) {
550
594
  }
551
595
 
552
596
  absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
597
+ EXPECT_CALL(test_sink, Send).Times(0);
553
598
 
554
599
  EXPECT_CALL(test_sink, Send(LogSeverity(Eq(absl::LogSeverity::kError))));
555
600