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
@@ -109,10 +109,10 @@ absl_cc_library(
109
109
  absl::core_headers
110
110
  absl::dynamic_annotations
111
111
  absl::malloc_internal
112
+ absl::nullability
112
113
  absl::raw_logging_internal
113
114
  absl::stacktrace
114
115
  absl::symbolize
115
- absl::tracing_internal
116
116
  absl::time
117
117
  absl::tracing_internal
118
118
  Threads::Threads
@@ -192,6 +192,7 @@ absl_cc_test(
192
192
  absl::core_headers
193
193
  absl::log
194
194
  absl::memory
195
+ absl::random_random
195
196
  absl::time
196
197
  GTest::gmock_main
197
198
  )
@@ -26,7 +26,7 @@ static bool IsZero(void *arg) {
26
26
  }
27
27
 
28
28
  bool Barrier::Block() {
29
- MutexLock l(&this->lock_);
29
+ MutexLock l(this->lock_);
30
30
 
31
31
  this->num_to_block_--;
32
32
  if (this->num_to_block_ < 0) {
@@ -37,7 +37,7 @@ TEST(Barrier, SanityTest) {
37
37
  }
38
38
 
39
39
  // Increment the counter.
40
- absl::MutexLock lock(&mutex);
40
+ absl::MutexLock lock(mutex);
41
41
  ++counter;
42
42
  };
43
43
 
@@ -57,7 +57,7 @@ TEST(Barrier, SanityTest) {
57
57
  // The counter should still be zero since no thread should have
58
58
  // been able to pass the barrier yet.
59
59
  {
60
- absl::MutexLock lock(&mutex);
60
+ absl::MutexLock lock(mutex);
61
61
  EXPECT_EQ(counter, 0);
62
62
  }
63
63
 
@@ -70,6 +70,6 @@ TEST(Barrier, SanityTest) {
70
70
  }
71
71
 
72
72
  // All threads should now have incremented the counter.
73
- absl::MutexLock lock(&mutex);
73
+ absl::MutexLock lock(mutex);
74
74
  EXPECT_EQ(counter, kNumThreads);
75
75
  }
@@ -42,7 +42,7 @@ bool BlockingCounter::DecrementCount() {
42
42
  "BlockingCounter::DecrementCount() called too many times");
43
43
  if (count == 0) {
44
44
  base_internal::TraceSignal(this, TraceObjectKind());
45
- MutexLock l(&lock_);
45
+ MutexLock l(lock_);
46
46
  done_ = true;
47
47
  return true;
48
48
  }
@@ -52,7 +52,7 @@ bool BlockingCounter::DecrementCount() {
52
52
  void BlockingCounter::Wait() {
53
53
  base_internal::TraceWait(this, TraceObjectKind());
54
54
  {
55
- MutexLock l(&this->lock_);
55
+ MutexLock l(this->lock_);
56
56
 
57
57
  // only one thread may call Wait(). To support more than one thread,
58
58
  // implement a counter num_to_exit, like in the Barrier class.
@@ -35,7 +35,7 @@ namespace synchronization_internal {
35
35
  // ThreadIdentity storage is persistent, we maintain a free-list of previously
36
36
  // released ThreadIdentity objects.
37
37
  ABSL_CONST_INIT static base_internal::SpinLock freelist_lock(
38
- absl::kConstInit, base_internal::SCHEDULE_KERNEL_ONLY);
38
+ base_internal::SCHEDULE_KERNEL_ONLY);
39
39
  ABSL_CONST_INIT static base_internal::ThreadIdentity* thread_identity_freelist;
40
40
 
41
41
  // A per-thread destructor for reclaiming associated ThreadIdentity objects.
@@ -60,7 +60,7 @@ static void ReclaimThreadIdentity(void* v) {
60
60
  // association state in this case.
61
61
  base_internal::ClearCurrentThreadIdentity();
62
62
  {
63
- base_internal::SpinLockHolder l(&freelist_lock);
63
+ base_internal::SpinLockHolder l(freelist_lock);
64
64
  identity->next = thread_identity_freelist;
65
65
  thread_identity_freelist = identity;
66
66
  }
@@ -108,7 +108,7 @@ static base_internal::ThreadIdentity* NewThreadIdentity() {
108
108
 
109
109
  {
110
110
  // Re-use a previously released object if possible.
111
- base_internal::SpinLockHolder l(&freelist_lock);
111
+ base_internal::SpinLockHolder l(freelist_lock);
112
112
  if (thread_identity_freelist) {
113
113
  identity = thread_identity_freelist; // Take list-head.
114
114
  thread_identity_freelist = thread_identity_freelist->next;
@@ -31,10 +31,6 @@ namespace absl {
31
31
  ABSL_NAMESPACE_BEGIN
32
32
  namespace synchronization_internal {
33
33
 
34
- #ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
35
- constexpr char FutexWaiter::kName[];
36
- #endif
37
-
38
34
  int FutexWaiter::WaitUntil(std::atomic<int32_t>* v, int32_t val,
39
35
  KernelTimeout t) {
40
36
  #ifdef CLOCK_MONOTONIC
@@ -33,15 +33,15 @@
33
33
  #include "absl/base/internal/low_level_alloc.h"
34
34
  #ifndef ABSL_LOW_LEVEL_ALLOC_MISSING
35
35
 
36
- #include "absl/synchronization/internal/graphcycles.h"
37
-
38
36
  #include <algorithm>
39
37
  #include <array>
40
38
  #include <cinttypes>
41
39
  #include <limits>
40
+
42
41
  #include "absl/base/internal/hide_ptr.h"
43
42
  #include "absl/base/internal/raw_logging.h"
44
43
  #include "absl/base/internal/spinlock.h"
44
+ #include "absl/synchronization/internal/graphcycles.h"
45
45
 
46
46
  // Do not use STL. This module does not use standard memory allocation.
47
47
 
@@ -54,15 +54,14 @@ namespace {
54
54
  // Avoid LowLevelAlloc's default arena since it calls malloc hooks in
55
55
  // which people are doing things like acquiring Mutexes.
56
56
  ABSL_CONST_INIT static absl::base_internal::SpinLock arena_mu(
57
- absl::kConstInit, base_internal::SCHEDULE_KERNEL_ONLY);
57
+ base_internal::SCHEDULE_KERNEL_ONLY);
58
58
  ABSL_CONST_INIT static base_internal::LowLevelAlloc::Arena* arena;
59
59
 
60
60
  static void InitArenaIfNecessary() {
61
- arena_mu.Lock();
61
+ base_internal::SpinLockHolder l(arena_mu);
62
62
  if (arena == nullptr) {
63
63
  arena = base_internal::LowLevelAlloc::NewArena(0);
64
64
  }
65
- arena_mu.Unlock();
66
65
  }
67
66
 
68
67
  // Number of inlined elements in Vec. Hash table implementation
@@ -89,7 +88,7 @@ class Vec {
89
88
  T* end() { return ptr_ + size_; }
90
89
  const T& operator[](uint32_t i) const { return ptr_[i]; }
91
90
  T& operator[](uint32_t i) { return ptr_[i]; }
92
- const T& back() const { return ptr_[size_-1]; }
91
+ const T& back() const { return ptr_[size_ - 1]; }
93
92
  void pop_back() { size_--; }
94
93
 
95
94
  void push_back(const T& v) {
@@ -178,7 +177,7 @@ class NodeSet {
178
177
  }
179
178
  table_[i] = v;
180
179
  // Double when 75% full.
181
- if (occupied_ >= table_.size() - table_.size()/4) Grow();
180
+ if (occupied_ >= table_.size() - table_.size() / 4) Grow();
182
181
  return true;
183
182
  }
184
183
 
@@ -193,7 +192,7 @@ class NodeSet {
193
192
  // Example:
194
193
  // HASH_FOR_EACH(elem, node->out) { ... }
195
194
  #define HASH_FOR_EACH(elem, eset) \
196
- for (int32_t elem, _cursor = 0; (eset).Next(&_cursor, &elem); )
195
+ for (int32_t elem, _cursor = 0; (eset).Next(&_cursor, &elem);)
197
196
  bool Next(int32_t* cursor, int32_t* elem) {
198
197
  while (static_cast<uint32_t>(*cursor) < table_.size()) {
199
198
  int32_t v = table_[static_cast<uint32_t>(*cursor)];
@@ -209,7 +208,7 @@ class NodeSet {
209
208
  private:
210
209
  enum : int32_t { kEmpty = -1, kDel = -2 };
211
210
  Vec<int32_t> table_;
212
- uint32_t occupied_; // Count of non-empty slots (includes deleted slots)
211
+ uint32_t occupied_; // Count of non-empty slots (includes deleted slots)
213
212
 
214
213
  static uint32_t Hash(int32_t a) { return static_cast<uint32_t>(a) * 41; }
215
214
 
@@ -270,25 +269,23 @@ inline GraphId MakeId(int32_t index, uint32_t version) {
270
269
  return g;
271
270
  }
272
271
 
273
- inline int32_t NodeIndex(GraphId id) {
274
- return static_cast<int32_t>(id.handle);
275
- }
272
+ inline int32_t NodeIndex(GraphId id) { return static_cast<int32_t>(id.handle); }
276
273
 
277
274
  inline uint32_t NodeVersion(GraphId id) {
278
275
  return static_cast<uint32_t>(id.handle >> 32);
279
276
  }
280
277
 
281
278
  struct Node {
282
- int32_t rank; // rank number assigned by Pearce-Kelly algorithm
283
- uint32_t version; // Current version number
284
- int32_t next_hash; // Next entry in hash table
285
- bool visited; // Temporary marker used by depth-first-search
286
- uintptr_t masked_ptr; // User-supplied pointer
287
- NodeSet in; // List of immediate predecessor nodes in graph
288
- NodeSet out; // List of immediate successor nodes in graph
289
- int priority; // Priority of recorded stack trace.
290
- int nstack; // Depth of recorded stack trace.
291
- void* stack[40]; // stack[0,nstack-1] holds stack trace for node.
279
+ int32_t rank; // rank number assigned by Pearce-Kelly algorithm
280
+ uint32_t version; // Current version number
281
+ int32_t next_hash; // Next entry in hash table
282
+ bool visited; // Temporary marker used by depth-first-search
283
+ uintptr_t masked_ptr; // User-supplied pointer
284
+ NodeSet in; // List of immediate predecessor nodes in graph
285
+ NodeSet out; // List of immediate successor nodes in graph
286
+ int priority; // Priority of recorded stack trace.
287
+ int nstack; // Depth of recorded stack trace.
288
+ void* stack[40]; // stack[0,nstack-1] holds stack trace for node.
292
289
  };
293
290
 
294
291
  // Hash table for pointer to node index lookups.
@@ -318,7 +315,7 @@ class PointerMap {
318
315
  // Advance through linked list while keeping track of the
319
316
  // predecessor slot that points to the current entry.
320
317
  auto masked = base_internal::HidePtr(ptr);
321
- for (int32_t* slot = &table_[Hash(ptr)]; *slot != -1; ) {
318
+ for (int32_t* slot = &table_[Hash(ptr)]; *slot != -1;) {
322
319
  int32_t index = *slot;
323
320
  Node* n = (*nodes_)[static_cast<uint32_t>(index)];
324
321
  if (n->masked_ptr == masked) {
@@ -381,7 +378,9 @@ GraphCycles::GraphCycles() {
381
378
 
382
379
  GraphCycles::~GraphCycles() {
383
380
  for (auto* node : rep_->nodes_) {
384
- if (node == nullptr) { continue; }
381
+ if (node == nullptr) {
382
+ continue;
383
+ }
385
384
  node->Node::~Node();
386
385
  base_internal::LowLevelAlloc::Free(node);
387
386
  }
@@ -474,8 +473,7 @@ void GraphCycles::RemoveNode(void* ptr) {
474
473
 
475
474
  void* GraphCycles::Ptr(GraphId id) {
476
475
  Node* n = FindNode(rep_, id);
477
- return n == nullptr ? nullptr
478
- : base_internal::UnhidePtr<void>(n->masked_ptr);
476
+ return n == nullptr ? nullptr : base_internal::UnhidePtr<void>(n->masked_ptr);
479
477
  }
480
478
 
481
479
  bool GraphCycles::HasNode(GraphId node) {
@@ -502,8 +500,8 @@ static bool ForwardDFS(GraphCycles::Rep* r, int32_t n, int32_t upper_bound);
502
500
  static void BackwardDFS(GraphCycles::Rep* r, int32_t n, int32_t lower_bound);
503
501
  static void Reorder(GraphCycles::Rep* r);
504
502
  static void Sort(const Vec<Node*>&, Vec<int32_t>* delta);
505
- static void MoveToList(
506
- GraphCycles::Rep* r, Vec<int32_t>* src, Vec<int32_t>* dst);
503
+ static void MoveToList(GraphCycles::Rep* r, Vec<int32_t>* src,
504
+ Vec<int32_t>* dst);
507
505
 
508
506
  bool GraphCycles::InsertEdge(GraphId idx, GraphId idy) {
509
507
  Rep* r = rep_;
@@ -605,9 +603,8 @@ static void Reorder(GraphCycles::Rep* r) {
605
603
 
606
604
  // Produce sorted list of all ranks that will be reassigned.
607
605
  r->merged_.resize(r->deltab_.size() + r->deltaf_.size());
608
- std::merge(r->deltab_.begin(), r->deltab_.end(),
609
- r->deltaf_.begin(), r->deltaf_.end(),
610
- r->merged_.begin());
606
+ std::merge(r->deltab_.begin(), r->deltab_.end(), r->deltaf_.begin(),
607
+ r->deltaf_.end(), r->merged_.begin());
611
608
 
612
609
  // Assign the ranks in order to the collected list.
613
610
  for (uint32_t i = 0; i < r->list_.size(); i++) {
@@ -628,8 +625,8 @@ static void Sort(const Vec<Node*>& nodes, Vec<int32_t>* delta) {
628
625
  std::sort(delta->begin(), delta->end(), cmp);
629
626
  }
630
627
 
631
- static void MoveToList(
632
- GraphCycles::Rep* r, Vec<int32_t>* src, Vec<int32_t>* dst) {
628
+ static void MoveToList(GraphCycles::Rep* r, Vec<int32_t>* src,
629
+ Vec<int32_t>* dst) {
633
630
  for (auto& v : *src) {
634
631
  int32_t w = v;
635
632
  // Replace v entry with its rank
@@ -12,14 +12,13 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #include "absl/synchronization/internal/graphcycles.h"
16
-
17
15
  #include <algorithm>
18
16
  #include <cstdint>
19
17
  #include <vector>
20
18
 
21
- #include "benchmark/benchmark.h"
22
19
  #include "absl/base/internal/raw_logging.h"
20
+ #include "absl/synchronization/internal/graphcycles.h"
21
+ #include "benchmark/benchmark.h"
23
22
 
24
23
  namespace {
25
24
 
@@ -15,6 +15,7 @@
15
15
  #include "absl/synchronization/internal/graphcycles.h"
16
16
 
17
17
  #include <climits>
18
+ #include <cstdint>
18
19
  #include <map>
19
20
  #include <random>
20
21
  #include <unordered_set>
@@ -461,20 +462,20 @@ TEST_F(GraphCyclesTest, ManyEdges) {
461
462
 
462
463
  TEST(GraphCycles, IntegerOverflow) {
463
464
  GraphCycles graph_cycles;
464
- char *buf = (char *)nullptr;
465
- GraphId prev_id = graph_cycles.GetId(buf);
465
+ uintptr_t buf = 0;
466
+ GraphId prev_id = graph_cycles.GetId(reinterpret_cast<void*>(buf));
466
467
  buf += 1;
467
- GraphId id = graph_cycles.GetId(buf);
468
+ GraphId id = graph_cycles.GetId(reinterpret_cast<void*>(buf));
468
469
  ASSERT_TRUE(graph_cycles.InsertEdge(prev_id, id));
469
470
 
470
471
  // INT_MAX / 40 is enough to cause an overflow when multiplied by 41.
471
472
  graph_cycles.TestOnlyAddNodes(INT_MAX / 40);
472
473
 
473
474
  buf += 1;
474
- GraphId newid = graph_cycles.GetId(buf);
475
+ GraphId newid = graph_cycles.GetId(reinterpret_cast<void*>(buf));
475
476
  graph_cycles.HasEdge(prev_id, newid);
476
477
 
477
- graph_cycles.RemoveNode(buf);
478
+ graph_cycles.RemoveNode(reinterpret_cast<void*>(buf));
478
479
  }
479
480
 
480
481
  } // namespace synchronization_internal
@@ -35,11 +35,6 @@ namespace absl {
35
35
  ABSL_NAMESPACE_BEGIN
36
36
  namespace synchronization_internal {
37
37
 
38
- #ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
39
- constexpr uint64_t KernelTimeout::kNoTimeout;
40
- constexpr int64_t KernelTimeout::kMaxNanos;
41
- #endif
42
-
43
38
  int64_t KernelTimeout::SteadyClockNow() {
44
39
  if (!SupportsSteadyClock()) {
45
40
  return absl::GetCurrentTimeNanos();
@@ -58,10 +58,6 @@ class PthreadMutexHolder {
58
58
  };
59
59
  } // namespace
60
60
 
61
- #ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
62
- constexpr char PthreadWaiter::kName[];
63
- #endif
64
-
65
61
  PthreadWaiter::PthreadWaiter() : waiter_count_(0), wakeup_count_(0) {
66
62
  const int err = pthread_mutex_init(&mu_, 0);
67
63
  if (err != 0) {
@@ -33,10 +33,6 @@ namespace absl {
33
33
  ABSL_NAMESPACE_BEGIN
34
34
  namespace synchronization_internal {
35
35
 
36
- #ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
37
- constexpr char SemWaiter::kName[];
38
- #endif
39
-
40
36
  SemWaiter::SemWaiter() : wakeups_(0) {
41
37
  if (sem_init(&sem_, 0, 0) != 0) {
42
38
  ABSL_RAW_LOG(FATAL, "sem_init failed with errno %d\n", errno);
@@ -30,10 +30,6 @@ namespace absl {
30
30
  ABSL_NAMESPACE_BEGIN
31
31
  namespace synchronization_internal {
32
32
 
33
- #ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
34
- constexpr char StdcppWaiter::kName[];
35
- #endif
36
-
37
33
  StdcppWaiter::StdcppWaiter() : waiter_count_(0), wakeup_count_(0) {}
38
34
 
39
35
  bool StdcppWaiter::Wait(KernelTimeout t) {
@@ -46,7 +46,7 @@ class ThreadPool {
46
46
 
47
47
  ~ThreadPool() {
48
48
  {
49
- absl::MutexLock l(&mu_);
49
+ absl::MutexLock l(mu_);
50
50
  for (size_t i = 0; i < threads_.size(); i++) {
51
51
  queue_.push(nullptr); // Shutdown signal.
52
52
  }
@@ -59,7 +59,7 @@ class ThreadPool {
59
59
  // Schedule a function to be run on a ThreadPool thread immediately.
60
60
  void Schedule(absl::AnyInvocable<void()> func) {
61
61
  assert(func != nullptr);
62
- absl::MutexLock l(&mu_);
62
+ absl::MutexLock l(mu_);
63
63
  queue_.push(std::move(func));
64
64
  }
65
65
 
@@ -72,7 +72,7 @@ class ThreadPool {
72
72
  while (true) {
73
73
  absl::AnyInvocable<void()> func;
74
74
  {
75
- absl::MutexLock l(&mu_);
75
+ absl::MutexLock l(mu_);
76
76
  mu_.Await(absl::Condition(this, &ThreadPool::WorkAvailable));
77
77
  func = std::move(queue_.front());
78
78
  queue_.pop();
@@ -21,10 +21,6 @@ namespace absl {
21
21
  ABSL_NAMESPACE_BEGIN
22
22
  namespace synchronization_internal {
23
23
 
24
- #ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
25
- constexpr int WaiterBase::kIdlePeriods;
26
- #endif
27
-
28
24
  void WaiterBase::MaybeBecomeIdle() {
29
25
  base_internal::ThreadIdentity *identity =
30
26
  base_internal::CurrentThreadIdentityIfPresent();
@@ -129,7 +129,10 @@ TYPED_TEST_P(WaiterTest, WaitTimeWoken) {
129
129
  start + absl::Seconds(10))));
130
130
  absl::Duration waited = absl::Now() - start;
131
131
  EXPECT_GE(waited, WithTolerance(absl::Milliseconds(500)));
132
- EXPECT_LT(waited, absl::Seconds(2));
132
+ #ifndef _MSC_VER
133
+ // Skip on MSVC due to flakiness.
134
+ EXPECT_LT(waited, absl::Seconds(2));
135
+ #endif
133
136
  }
134
137
 
135
138
  TYPED_TEST_P(WaiterTest, WaitDurationReached) {
@@ -139,7 +142,10 @@ TYPED_TEST_P(WaiterTest, WaitDurationReached) {
139
142
  absl::synchronization_internal::KernelTimeout(absl::Milliseconds(500))));
140
143
  absl::Duration waited = absl::Now() - start;
141
144
  EXPECT_GE(waited, WithTolerance(absl::Milliseconds(500)));
142
- EXPECT_LT(waited, absl::Seconds(1));
145
+ #ifndef _MSC_VER
146
+ // Skip on MSVC due to flakiness.
147
+ EXPECT_LT(waited, absl::Seconds(1));
148
+ #endif
143
149
  }
144
150
 
145
151
  TYPED_TEST_P(WaiterTest, WaitTimeReached) {
@@ -149,7 +155,10 @@ TYPED_TEST_P(WaiterTest, WaitTimeReached) {
149
155
  start + absl::Milliseconds(500))));
150
156
  absl::Duration waited = absl::Now() - start;
151
157
  EXPECT_GE(waited, WithTolerance(absl::Milliseconds(500)));
152
- EXPECT_LT(waited, absl::Seconds(1));
158
+ #ifndef _MSC_VER
159
+ // Skip on MSVC due to flakiness.
160
+ EXPECT_LT(waited, absl::Seconds(1));
161
+ #endif
153
162
  }
154
163
 
155
164
  REGISTER_TYPED_TEST_SUITE_P(WaiterTest,
@@ -28,10 +28,6 @@ namespace absl {
28
28
  ABSL_NAMESPACE_BEGIN
29
29
  namespace synchronization_internal {
30
30
 
31
- #ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
32
- constexpr char Win32Waiter::kName[];
33
- #endif
34
-
35
31
  class Win32Waiter::WinHelper {
36
32
  public:
37
33
  static SRWLOCK *GetLock(Win32Waiter *w) {
@@ -45,7 +45,7 @@ void ThreadOne(absl::Mutex* mutex, absl::CondVar* condvar,
45
45
  CHECK(!*state) << "*state not initialized";
46
46
 
47
47
  {
48
- absl::MutexLock lock(mutex);
48
+ absl::MutexLock lock(*mutex);
49
49
 
50
50
  notification->Notify();
51
51
  CHECK(notification->HasBeenNotified()) << "invalid Notification";
@@ -64,7 +64,7 @@ void ThreadTwo(absl::Mutex* mutex, absl::CondVar* condvar,
64
64
  notification->WaitForNotification();
65
65
  CHECK(notification->HasBeenNotified()) << "invalid Notification";
66
66
  {
67
- absl::MutexLock lock(mutex);
67
+ absl::MutexLock lock(*mutex);
68
68
  *state = true;
69
69
  condvar->Signal();
70
70
  }
@@ -148,12 +148,12 @@ ABSL_CONST_INIT absl::Mutex early_const_init_mutex(absl::kConstInit);
148
148
  // before the constructors of either grab_lock or check_still_locked are run.)
149
149
  extern absl::Mutex const_init_sanity_mutex;
150
150
  OnConstruction grab_lock([]() ABSL_NO_THREAD_SAFETY_ANALYSIS {
151
- const_init_sanity_mutex.Lock();
151
+ const_init_sanity_mutex.lock();
152
152
  });
153
153
  ABSL_CONST_INIT absl::Mutex const_init_sanity_mutex(absl::kConstInit);
154
154
  OnConstruction check_still_locked([]() ABSL_NO_THREAD_SAFETY_ANALYSIS {
155
155
  const_init_sanity_mutex.AssertHeld();
156
- const_init_sanity_mutex.Unlock();
156
+ const_init_sanity_mutex.unlock();
157
157
  });
158
158
  #endif // defined(__clang__) || !(defined(_MSC_VER) && _MSC_VER > 1900)
159
159