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
@@ -14,11 +14,11 @@
14
14
  # limitations under the License.
15
15
  #
16
16
 
17
+ load("@rules_cc//cc:cc_library.bzl", "cc_library")
17
18
  load(
18
19
  "//absl:copts/configure_copts.bzl",
19
20
  "ABSL_DEFAULT_COPTS",
20
21
  "ABSL_DEFAULT_LINKOPTS",
21
- "ABSL_TEST_COPTS",
22
22
  )
23
23
 
24
24
  package(
@@ -40,47 +40,7 @@ cc_library(
40
40
  copts = ABSL_DEFAULT_COPTS,
41
41
  linkopts = ABSL_DEFAULT_LINKOPTS,
42
42
  deps = [
43
- "//absl/base:base_internal",
44
43
  "//absl/base:config",
45
44
  "//absl/meta:type_traits",
46
45
  ],
47
46
  )
48
-
49
- cc_test(
50
- name = "utility_test",
51
- srcs = ["utility_test.cc"],
52
- copts = ABSL_TEST_COPTS,
53
- linkopts = ABSL_DEFAULT_LINKOPTS,
54
- deps = [
55
- ":utility",
56
- "//absl/base:core_headers",
57
- "//absl/memory",
58
- "//absl/strings",
59
- "@googletest//:gtest",
60
- "@googletest//:gtest_main",
61
- ],
62
- )
63
-
64
- cc_library(
65
- name = "if_constexpr",
66
- hdrs = [
67
- "internal/if_constexpr.h",
68
- ],
69
- copts = ABSL_DEFAULT_COPTS,
70
- linkopts = ABSL_DEFAULT_LINKOPTS,
71
- deps = [
72
- "//absl/base:config",
73
- ],
74
- )
75
-
76
- cc_test(
77
- name = "if_constexpr_test",
78
- srcs = ["internal/if_constexpr_test.cc"],
79
- copts = ABSL_TEST_COPTS,
80
- linkopts = ABSL_DEFAULT_LINKOPTS,
81
- deps = [
82
- ":if_constexpr",
83
- "@googletest//:gtest",
84
- "@googletest//:gtest_main",
85
- ],
86
- )
@@ -22,47 +22,7 @@ absl_cc_library(
22
22
  COPTS
23
23
  ${ABSL_DEFAULT_COPTS}
24
24
  DEPS
25
- absl::base_internal
26
25
  absl::config
27
26
  absl::type_traits
28
27
  PUBLIC
29
28
  )
30
-
31
- absl_cc_test(
32
- NAME
33
- utility_test
34
- SRCS
35
- "utility_test.cc"
36
- COPTS
37
- ${ABSL_TEST_COPTS}
38
- DEPS
39
- absl::utility
40
- absl::core_headers
41
- absl::memory
42
- absl::strings
43
- GTest::gmock_main
44
- )
45
-
46
- absl_cc_library(
47
- NAME
48
- if_constexpr
49
- HDRS
50
- "internal/if_constexpr.h"
51
- COPTS
52
- ${ABSL_DEFAULT_COPTS}
53
- DEPS
54
- absl::config
55
- PUBLIC
56
- )
57
-
58
- absl_cc_test(
59
- NAME
60
- if_constexpr_test
61
- SRCS
62
- "internal/if_constexpr_test.cc"
63
- COPTS
64
- ${ABSL_TEST_COPTS}
65
- DEPS
66
- absl::if_constexpr
67
- GTest::gmock_main
68
- )
@@ -11,25 +11,6 @@
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- //
15
- // This header file contains C++14 versions of standard <utility> header
16
- // abstractions available within C++17, and are designed to be drop-in
17
- // replacement for code compliant with C++14 and C++17.
18
- //
19
- // The following abstractions are defined:
20
- //
21
- // * apply<Functor, Tuple> == std::apply<Functor, Tuple>
22
- // * exchange<T> == std::exchange<T>
23
- // * make_from_tuple<T> == std::make_from_tuple<T>
24
- //
25
- // This header file also provides the tag types `in_place_t`, `in_place_type_t`,
26
- // and `in_place_index_t`, as well as the constant `in_place`, and
27
- // `constexpr` `std::move()` and `std::forward()` implementations in C++11.
28
- //
29
- // References:
30
- //
31
- // https://en.cppreference.com/w/cpp/utility/apply
32
- // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3658.html
33
14
 
34
15
  #ifndef ABSL_UTILITY_UTILITY_H_
35
16
  #define ABSL_UTILITY_UTILITY_H_
@@ -40,8 +21,8 @@
40
21
  #include <utility>
41
22
 
42
23
  #include "absl/base/config.h"
43
- #include "absl/base/internal/inline_variable.h"
44
- #include "absl/base/internal/invoke.h"
24
+
25
+ // TODO(b/290784225): Include what you use cleanup required.
45
26
  #include "absl/meta/type_traits.h"
46
27
 
47
28
  namespace absl {
@@ -51,179 +32,23 @@ ABSL_NAMESPACE_BEGIN
51
32
  // abstractions for platforms that had not yet provided them. Those
52
33
  // platforms are no longer supported. New code should simply use the
53
34
  // the ones from std directly.
35
+ using std::apply;
54
36
  using std::exchange;
55
37
  using std::forward;
38
+ using std::in_place;
39
+ using std::in_place_index;
40
+ using std::in_place_index_t;
41
+ using std::in_place_t;
42
+ using std::in_place_type;
43
+ using std::in_place_type_t;
56
44
  using std::index_sequence;
57
45
  using std::index_sequence_for;
58
46
  using std::integer_sequence;
47
+ using std::make_from_tuple;
59
48
  using std::make_index_sequence;
60
49
  using std::make_integer_sequence;
61
50
  using std::move;
62
51
 
63
- namespace utility_internal {
64
-
65
- template <typename T>
66
- struct InPlaceTypeTag {
67
- explicit InPlaceTypeTag() = delete;
68
- InPlaceTypeTag(const InPlaceTypeTag&) = delete;
69
- InPlaceTypeTag& operator=(const InPlaceTypeTag&) = delete;
70
- };
71
-
72
- template <size_t I>
73
- struct InPlaceIndexTag {
74
- explicit InPlaceIndexTag() = delete;
75
- InPlaceIndexTag(const InPlaceIndexTag&) = delete;
76
- InPlaceIndexTag& operator=(const InPlaceIndexTag&) = delete;
77
- };
78
-
79
- } // namespace utility_internal
80
-
81
- // Tag types
82
-
83
- #ifdef ABSL_USES_STD_OPTIONAL
84
-
85
- using std::in_place_t;
86
- using std::in_place;
87
-
88
- #else // ABSL_USES_STD_OPTIONAL
89
-
90
- // in_place_t
91
- //
92
- // Tag type used to specify in-place construction, such as with
93
- // `absl::optional`, designed to be a drop-in replacement for C++17's
94
- // `std::in_place_t`.
95
- struct in_place_t {};
96
-
97
- ABSL_INTERNAL_INLINE_CONSTEXPR(in_place_t, in_place, {});
98
-
99
- #endif // ABSL_USES_STD_OPTIONAL
100
-
101
- #if defined(ABSL_USES_STD_ANY) || defined(ABSL_USES_STD_VARIANT)
102
- using std::in_place_type;
103
- using std::in_place_type_t;
104
- #else
105
-
106
- // in_place_type_t
107
- //
108
- // Tag type used for in-place construction when the type to construct needs to
109
- // be specified, such as with `absl::any`, designed to be a drop-in replacement
110
- // for C++17's `std::in_place_type_t`.
111
- template <typename T>
112
- using in_place_type_t = void (*)(utility_internal::InPlaceTypeTag<T>);
113
-
114
- template <typename T>
115
- void in_place_type(utility_internal::InPlaceTypeTag<T>) {}
116
- #endif // ABSL_USES_STD_ANY || ABSL_USES_STD_VARIANT
117
-
118
- #ifdef ABSL_USES_STD_VARIANT
119
- using std::in_place_index;
120
- using std::in_place_index_t;
121
- #else
122
-
123
- // in_place_index_t
124
- //
125
- // Tag type used for in-place construction when the type to construct needs to
126
- // be specified, such as with `absl::any`, designed to be a drop-in replacement
127
- // for C++17's `std::in_place_index_t`.
128
- template <size_t I>
129
- using in_place_index_t = void (*)(utility_internal::InPlaceIndexTag<I>);
130
-
131
- template <size_t I>
132
- void in_place_index(utility_internal::InPlaceIndexTag<I>) {}
133
- #endif // ABSL_USES_STD_VARIANT
134
-
135
- namespace utility_internal {
136
- // Helper method for expanding tuple into a called method.
137
- template <typename Functor, typename Tuple, std::size_t... Indexes>
138
- auto apply_helper(Functor&& functor, Tuple&& t, index_sequence<Indexes...>)
139
- -> decltype(absl::base_internal::invoke(
140
- absl::forward<Functor>(functor),
141
- std::get<Indexes>(absl::forward<Tuple>(t))...)) {
142
- return absl::base_internal::invoke(
143
- absl::forward<Functor>(functor),
144
- std::get<Indexes>(absl::forward<Tuple>(t))...);
145
- }
146
-
147
- } // namespace utility_internal
148
-
149
- // apply
150
- //
151
- // Invokes a Callable using elements of a tuple as its arguments.
152
- // Each element of the tuple corresponds to an argument of the call (in order).
153
- // Both the Callable argument and the tuple argument are perfect-forwarded.
154
- // For member-function Callables, the first tuple element acts as the `this`
155
- // pointer. `absl::apply` is designed to be a drop-in replacement for C++17's
156
- // `std::apply`. Unlike C++17's `std::apply`, this is not currently `constexpr`.
157
- //
158
- // Example:
159
- //
160
- // class Foo {
161
- // public:
162
- // void Bar(int);
163
- // };
164
- // void user_function1(int, std::string);
165
- // void user_function2(std::unique_ptr<Foo>);
166
- // auto user_lambda = [](int, int) {};
167
- //
168
- // int main()
169
- // {
170
- // std::tuple<int, std::string> tuple1(42, "bar");
171
- // // Invokes the first user function on int, std::string.
172
- // absl::apply(&user_function1, tuple1);
173
- //
174
- // std::tuple<std::unique_ptr<Foo>> tuple2(absl::make_unique<Foo>());
175
- // // Invokes the user function that takes ownership of the unique
176
- // // pointer.
177
- // absl::apply(&user_function2, std::move(tuple2));
178
- //
179
- // auto foo = absl::make_unique<Foo>();
180
- // std::tuple<Foo*, int> tuple3(foo.get(), 42);
181
- // // Invokes the method Bar on foo with one argument, 42.
182
- // absl::apply(&Foo::Bar, tuple3);
183
- //
184
- // std::tuple<int, int> tuple4(8, 9);
185
- // // Invokes a lambda.
186
- // absl::apply(user_lambda, tuple4);
187
- // }
188
- template <typename Functor, typename Tuple>
189
- auto apply(Functor&& functor, Tuple&& t)
190
- -> decltype(utility_internal::apply_helper(
191
- absl::forward<Functor>(functor), absl::forward<Tuple>(t),
192
- absl::make_index_sequence<std::tuple_size<
193
- typename std::remove_reference<Tuple>::type>::value>{})) {
194
- return utility_internal::apply_helper(
195
- absl::forward<Functor>(functor), absl::forward<Tuple>(t),
196
- absl::make_index_sequence<std::tuple_size<
197
- typename std::remove_reference<Tuple>::type>::value>{});
198
- }
199
-
200
- namespace utility_internal {
201
- template <typename T, typename Tuple, size_t... I>
202
- T make_from_tuple_impl(Tuple&& tup, absl::index_sequence<I...>) {
203
- return T(std::get<I>(std::forward<Tuple>(tup))...);
204
- }
205
- } // namespace utility_internal
206
-
207
- // make_from_tuple
208
- //
209
- // Given the template parameter type `T` and a tuple of arguments
210
- // `std::tuple(arg0, arg1, ..., argN)` constructs an object of type `T` as if by
211
- // calling `T(arg0, arg1, ..., argN)`.
212
- //
213
- // Example:
214
- //
215
- // std::tuple<const char*, size_t> args("hello world", 5);
216
- // auto s = absl::make_from_tuple<std::string>(args);
217
- // assert(s == "hello");
218
- //
219
- template <typename T, typename Tuple>
220
- constexpr T make_from_tuple(Tuple&& tup) {
221
- return utility_internal::make_from_tuple_impl<T>(
222
- std::forward<Tuple>(tup),
223
- absl::make_index_sequence<
224
- std::tuple_size<absl::decay_t<Tuple>>::value>{});
225
- }
226
-
227
52
  ABSL_NAMESPACE_END
228
53
  } // namespace absl
229
54
 
@@ -15,13 +15,12 @@
15
15
  // Alternate options.h file, used in continuous integration testing to exercise
16
16
  // option settings not used by default.
17
17
 
18
+ // SKIP_ABSL_INLINE_NAMESPACE_CHECK
19
+
18
20
  #ifndef ABSL_CI_ABSL_ALTERNATE_OPTIONS_H_
19
21
  #define ABSL_CI_ABSL_ALTERNATE_OPTIONS_H_
20
22
 
21
- #define ABSL_OPTION_USE_STD_ANY 0
22
- #define ABSL_OPTION_USE_STD_OPTIONAL 0
23
23
  #define ABSL_OPTION_USE_STD_STRING_VIEW 0
24
- #define ABSL_OPTION_USE_STD_VARIANT 0
25
24
  #define ABSL_OPTION_USE_STD_ORDERING 0
26
25
  #define ABSL_OPTION_USE_INLINE_NAMESPACE 1
27
26
  #define ABSL_OPTION_INLINE_NAMESPACE_NAME ns
@@ -13,7 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  # The commit of GoogleTest to be used in the CMake tests in this directory.
16
- # Keep this in sync with the commit in the WORKSPACE file.
17
- readonly ABSL_GOOGLETEST_VERSION="1.15.2"
16
+ # Keep this in sync with the commit in the MODULE.bazel file.
17
+ readonly ABSL_GOOGLETEST_VERSION="1.17.0"
18
18
 
19
19
  readonly ABSL_GOOGLETEST_DOWNLOAD_URL="https://github.com/google/googletest/releases/download/v${ABSL_GOOGLETEST_VERSION}/googletest-${ABSL_GOOGLETEST_VERSION}.tar.gz"
@@ -25,7 +25,7 @@ if [[ -z ${ABSEIL_ROOT:-} ]]; then
25
25
  fi
26
26
 
27
27
  if [[ -z ${STD:-} ]]; then
28
- STD="c++14 c++17 c++20"
28
+ STD="c++17 c++20"
29
29
  fi
30
30
 
31
31
  if [[ -z ${COMPILATION_MODE:-} ]]; then
@@ -51,12 +51,12 @@ if [[ ${USE_BAZEL_CACHE:-0} -ne 0 ]]; then
51
51
  BAZEL_EXTRA_ARGS="--remote_cache=https://storage.googleapis.com/absl-bazel-remote-cache/${container_key} --google_credentials=/keystore/73103_absl-bazel-remote-cache ${BAZEL_EXTRA_ARGS:-}"
52
52
  fi
53
53
 
54
- # Avoid depending on external sites like GitHub by checking --distdir for
55
- # external dependencies first.
56
- # https://docs.bazel.build/versions/master/guide.html#distdir
57
- if [[ ${KOKORO_GFILE_DIR:-} ]] && [[ -d "${KOKORO_GFILE_DIR}/distdir" ]]; then
58
- DOCKER_EXTRA_ARGS="--mount type=bind,source=${KOKORO_GFILE_DIR}/distdir,target=/distdir,readonly ${DOCKER_EXTRA_ARGS:-}"
59
- BAZEL_EXTRA_ARGS="--distdir=/distdir ${BAZEL_EXTRA_ARGS:-}"
54
+ # Use Bazel Vendor mode to reduce reliance on external dependencies.
55
+ # See https://bazel.build/external/vendor and the Dockerfile for
56
+ # an explaination of how this works.
57
+ if [[ ${KOKORO_GFILE_DIR:-} ]] && [[ -f "${KOKORO_GFILE_DIR}/distdir/abseil-cpp_vendor.tar.gz" ]]; then
58
+ DOCKER_EXTRA_ARGS="--mount type=bind,source=${KOKORO_GFILE_DIR}/distdir,target=/distdir,readonly --env=BAZEL_VENDOR_ARCHIVE=/distdir/abseil-cpp_vendor.tar.gz ${DOCKER_EXTRA_ARGS:-}"
59
+ BAZEL_EXTRA_ARGS="--vendor_dir=/abseil-cpp_vendor ${BAZEL_EXTRA_ARGS:-}"
60
60
  fi
61
61
 
62
62
  for std in ${STD}; do
@@ -69,26 +69,25 @@ for std in ${STD}; do
69
69
  --workdir=/abseil-cpp \
70
70
  --cap-add=SYS_PTRACE \
71
71
  --rm \
72
- -e CC="/opt/llvm/clang/bin/clang" \
73
- -e BAZEL_CXXOPTS="-std=${std}:-nostdinc++" \
74
- -e BAZEL_LINKOPTS="-L/opt/llvm/clang/lib/aarch64-unknown-linux-gnu:-lc++:-lc++abi:-lm:-Wl,-rpath=/opt/llvm/clang/lib/aarch64-unknown-linux-gnu" \
75
- -e CPLUS_INCLUDE_PATH="/opt/llvm/clang/include/aarch64-unknown-linux-gnu/c++/v1:/opt/llvm/clang/include/c++/v1" \
76
72
  ${DOCKER_EXTRA_ARGS:-} \
77
73
  ${DOCKER_CONTAINER} \
78
- /bin/sh -c "
74
+ /bin/bash --login -c "
79
75
  cp -r /abseil-cpp-ro/* /abseil-cpp/
80
76
  if [ -n \"${ALTERNATE_OPTIONS:-}\" ]; then
81
77
  cp ${ALTERNATE_OPTIONS:-} absl/base/options.h || exit 1
82
78
  fi
83
79
  /usr/local/bin/bazel test ... \
80
+ --action_env=CC=clang-19 \
84
81
  --compilation_mode=\"${compilation_mode}\" \
85
82
  --copt=\"${exceptions_mode}\" \
86
83
  --copt=\"-DGTEST_REMOVE_LEGACY_TEST_CASEAPI_=1\" \
87
84
  --copt=-Werror \
85
+ --cxxopt=-std=${std} \
86
+ --cxxopt=-stdlib=libc++ \
88
87
  --define=\"absl=1\" \
89
- --enable_bzlmod=true \
90
88
  --features=external_include_paths \
91
89
  --keep_going \
90
+ --linkopt=-stdlib=libc++ \
92
91
  --show_timestamps \
93
92
  --test_env=\"GTEST_INSTALL_FAILURE_SIGNAL_HANDLER=1\" \
94
93
  --test_env=\"TZDIR=/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo\" \
@@ -25,7 +25,7 @@ if [[ -z ${ABSEIL_ROOT:-} ]]; then
25
25
  fi
26
26
 
27
27
  if [[ -z ${STD:-} ]]; then
28
- STD="c++14 c++17 c++20"
28
+ STD="c++17 c++20 c++23"
29
29
  fi
30
30
 
31
31
  if [[ -z ${COMPILATION_MODE:-} ]]; then
@@ -59,6 +59,9 @@ if [[ ${KOKORO_GFILE_DIR:-} ]] && [[ -d "${KOKORO_GFILE_DIR}/distdir" ]]; then
59
59
  BAZEL_EXTRA_ARGS="--distdir=/distdir ${BAZEL_EXTRA_ARGS:-}"
60
60
  fi
61
61
 
62
+ # https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html#available-checks
63
+ readonly UBSAN_CHECKS="float-divide-by-zero,nullability,undefined"
64
+
62
65
  for std in ${STD}; do
63
66
  for compilation_mode in ${COMPILATION_MODE}; do
64
67
  for exceptions_mode in ${EXCEPTIONS_MODE}; do
@@ -68,35 +71,35 @@ for std in ${STD}; do
68
71
  --workdir=/abseil-cpp \
69
72
  --cap-add=SYS_PTRACE \
70
73
  --rm \
71
- -e CC="/opt/llvm/clang/bin/clang" \
72
- -e BAZEL_CXXOPTS="-std=${std}:-nostdinc++" \
73
- -e BAZEL_LINKOPTS="-L/opt/llvm/libcxx/lib:-lc++:-lc++abi:-lm:-Wl,-rpath=/opt/llvm/libcxx/lib" \
74
- -e CPLUS_INCLUDE_PATH="/opt/llvm/libcxx/include/c++/v1" \
75
74
  ${DOCKER_EXTRA_ARGS:-} \
76
75
  ${DOCKER_CONTAINER} \
76
+ /bin/bash --login -c "
77
77
  /usr/local/bin/bazel test ... \
78
- --compilation_mode="${compilation_mode}" \
79
- --copt="${exceptions_mode}" \
80
- --copt="-DGTEST_REMOVE_LEGACY_TEST_CASEAPI_=1" \
81
- --copt="-fsanitize=address" \
82
- --copt="-fsanitize=float-divide-by-zero" \
83
- --copt="-fsanitize=nullability" \
84
- --copt="-fsanitize=undefined" \
85
- --copt="-fno-sanitize-blacklist" \
78
+ --action_env=\"CC=/opt/llvm/clang/bin/clang\" \
79
+ --action_env=\"BAZEL_CXXOPTS=-std=${std}:-nostdinc++\" \
80
+ --action_env=\"BAZEL_LINKOPTS=-L/opt/llvm/libcxx/lib:-lc++:-lc++abi:-lm:-Wl,-rpath=/opt/llvm/libcxx/lib\" \
81
+ --action_env=\"CPLUS_INCLUDE_PATH=/opt/llvm/libcxx/include/c++/v1\" \
82
+ --compilation_mode=\"${compilation_mode}\" \
83
+ --copt=\"${exceptions_mode}\" \
84
+ --copt=\"-DGTEST_REMOVE_LEGACY_TEST_CASEAPI_=1\" \
85
+ --copt=\"-fsanitize=address\" \
86
+ --copt=\"-fsanitize=${UBSAN_CHECKS}\" \
87
+ --copt=\"-fno-sanitize-recover=${UBSAN_CHECKS}\" \
88
+ --copt=\"-fno-sanitize-blacklist\" \
86
89
  --copt=-Werror \
87
90
  --enable_bzlmod=true \
88
91
  --features=external_include_paths \
89
92
  --keep_going \
90
- --linkopt="-fsanitize=address" \
91
- --linkopt="-fsanitize-link-c++-runtime" \
93
+ --linkopt=\"-fsanitize=address\" \
94
+ --linkopt=\"-fsanitize-link-c++-runtime\" \
92
95
  --show_timestamps \
93
- --test_env="ASAN_SYMBOLIZER_PATH=/opt/llvm/clang/bin/llvm-symbolizer" \
94
- --test_env="TZDIR=/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo" \
95
- --test_env="UBSAN_OPTIONS=print_stacktrace=1" \
96
- --test_env="UBSAN_SYMBOLIZER_PATH=/opt/llvm/clang/bin/llvm-symbolizer" \
96
+ --test_env=\"ASAN_SYMBOLIZER_PATH=/opt/llvm/clang/bin/llvm-symbolizer\" \
97
+ --test_env=\"TZDIR=/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo\" \
98
+ --test_env=\"UBSAN_OPTIONS=print_stacktrace=1\" \
99
+ --test_env=\"UBSAN_SYMBOLIZER_PATH=/opt/llvm/clang/bin/llvm-symbolizer\" \
97
100
  --test_output=errors \
98
- --test_tag_filters="-benchmark,-noasan" \
99
- ${BAZEL_EXTRA_ARGS:-}
101
+ --test_tag_filters=\"-benchmark,-noasan\" \
102
+ ${BAZEL_EXTRA_ARGS:-}"
100
103
  done
101
104
  done
102
105
  done
@@ -25,7 +25,7 @@ if [[ -z ${ABSEIL_ROOT:-} ]]; then
25
25
  fi
26
26
 
27
27
  if [[ -z ${STD:-} ]]; then
28
- STD="c++14 c++17 c++20"
28
+ STD="c++17 c++20 c++23"
29
29
  fi
30
30
 
31
31
  if [[ -z ${COMPILATION_MODE:-} ]]; then
@@ -51,12 +51,12 @@ if [[ ${USE_BAZEL_CACHE:-0} -ne 0 ]]; then
51
51
  BAZEL_EXTRA_ARGS="--remote_cache=https://storage.googleapis.com/absl-bazel-remote-cache/${container_key} --google_credentials=/keystore/73103_absl-bazel-remote-cache ${BAZEL_EXTRA_ARGS:-}"
52
52
  fi
53
53
 
54
- # Avoid depending on external sites like GitHub by checking --distdir for
55
- # external dependencies first.
56
- # https://docs.bazel.build/versions/master/guide.html#distdir
57
- if [[ ${KOKORO_GFILE_DIR:-} ]] && [[ -d "${KOKORO_GFILE_DIR}/distdir" ]]; then
58
- DOCKER_EXTRA_ARGS="--mount type=bind,source=${KOKORO_GFILE_DIR}/distdir,target=/distdir,readonly ${DOCKER_EXTRA_ARGS:-}"
59
- BAZEL_EXTRA_ARGS="--distdir=/distdir ${BAZEL_EXTRA_ARGS:-}"
54
+ # Use Bazel Vendor mode to reduce reliance on external dependencies.
55
+ # See https://bazel.build/external/vendor and the Dockerfile for
56
+ # an explaination of how this works.
57
+ if [[ ${KOKORO_GFILE_DIR:-} ]] && [[ -f "${KOKORO_GFILE_DIR}/distdir/abseil-cpp_vendor.tar.gz" ]]; then
58
+ DOCKER_EXTRA_ARGS="--mount type=bind,source=${KOKORO_GFILE_DIR}/distdir,target=/distdir,readonly --env=BAZEL_VENDOR_ARCHIVE=/distdir/abseil-cpp_vendor.tar.gz ${DOCKER_EXTRA_ARGS:-}"
59
+ BAZEL_EXTRA_ARGS="--vendor_dir=/abseil-cpp_vendor ${BAZEL_EXTRA_ARGS:-}"
60
60
  fi
61
61
 
62
62
  for std in ${STD}; do
@@ -69,18 +69,18 @@ for std in ${STD}; do
69
69
  --workdir=/abseil-cpp \
70
70
  --cap-add=SYS_PTRACE \
71
71
  --rm \
72
- -e CC="/opt/llvm/clang/bin/clang" \
73
- -e BAZEL_CXXOPTS="-std=${std}:-nostdinc++" \
74
- -e BAZEL_LINKOPTS="-L/opt/llvm/libcxx/lib:-lc++:-lc++abi:-lm:-Wl,-rpath=/opt/llvm/libcxx/lib" \
75
- -e CPLUS_INCLUDE_PATH="/opt/llvm/libcxx/include/c++/v1" \
76
72
  ${DOCKER_EXTRA_ARGS:-} \
77
73
  ${DOCKER_CONTAINER} \
78
- /bin/sh -c "
74
+ /bin/bash --login -c "
79
75
  cp -r /abseil-cpp-ro/* /abseil-cpp/
80
76
  if [ -n \"${ALTERNATE_OPTIONS:-}\" ]; then
81
77
  cp ${ALTERNATE_OPTIONS:-} absl/base/options.h || exit 1
82
78
  fi
83
79
  /usr/local/bin/bazel test ... \
80
+ --action_env=CC=/opt/llvm/clang/bin/clang \
81
+ --action_env=BAZEL_CXXOPTS=-std=${std}:-nostdinc++ \
82
+ --action_env=BAZEL_LINKOPTS=-L/opt/llvm/libcxx/lib:-lc++:-lc++abi:-lm:-Wl,-rpath=/opt/llvm/libcxx/lib \
83
+ --action_env=CPLUS_INCLUDE_PATH=/opt/llvm/libcxx/include/c++/v1 \
84
84
  --compilation_mode=\"${compilation_mode}\" \
85
85
  --copt=\"${exceptions_mode}\" \
86
86
  --copt=\"-DGTEST_REMOVE_LEGACY_TEST_CASEAPI_=1\" \
@@ -25,7 +25,7 @@ if [[ -z ${ABSEIL_ROOT:-} ]]; then
25
25
  fi
26
26
 
27
27
  if [[ -z ${STD:-} ]]; then
28
- STD="c++14 c++17 c++20"
28
+ STD="c++17 c++20 c++23"
29
29
  fi
30
30
 
31
31
  if [[ -z ${COMPILATION_MODE:-} ]]; then
@@ -51,12 +51,12 @@ if [[ ${USE_BAZEL_CACHE:-0} -ne 0 ]]; then
51
51
  BAZEL_EXTRA_ARGS="--remote_cache=https://storage.googleapis.com/absl-bazel-remote-cache/${container_key} --google_credentials=/keystore/73103_absl-bazel-remote-cache ${BAZEL_EXTRA_ARGS:-}"
52
52
  fi
53
53
 
54
- # Avoid depending on external sites like GitHub by checking --distdir for
55
- # external dependencies first.
56
- # https://docs.bazel.build/versions/master/guide.html#distdir
57
- if [[ ${KOKORO_GFILE_DIR:-} ]] && [[ -d "${KOKORO_GFILE_DIR}/distdir" ]]; then
58
- DOCKER_EXTRA_ARGS="--mount type=bind,source=${KOKORO_GFILE_DIR}/distdir,target=/distdir,readonly ${DOCKER_EXTRA_ARGS:-}"
59
- BAZEL_EXTRA_ARGS="--distdir=/distdir ${BAZEL_EXTRA_ARGS:-}"
54
+ # Use Bazel Vendor mode to reduce reliance on external dependencies.
55
+ # See https://bazel.build/external/vendor and the Dockerfile for
56
+ # an explaination of how this works.
57
+ if [[ ${KOKORO_GFILE_DIR:-} ]] && [[ -f "${KOKORO_GFILE_DIR}/distdir/abseil-cpp_vendor.tar.gz" ]]; then
58
+ DOCKER_EXTRA_ARGS="--mount type=bind,source=${KOKORO_GFILE_DIR}/distdir,target=/distdir,readonly --env=BAZEL_VENDOR_ARCHIVE=/distdir/abseil-cpp_vendor.tar.gz ${DOCKER_EXTRA_ARGS:-}"
59
+ BAZEL_EXTRA_ARGS="--vendor_dir=/abseil-cpp_vendor ${BAZEL_EXTRA_ARGS:-}"
60
60
  fi
61
61
 
62
62
  for std in ${STD}; do
@@ -68,30 +68,31 @@ for std in ${STD}; do
68
68
  --workdir=/abseil-cpp \
69
69
  --cap-add=SYS_PTRACE \
70
70
  --rm \
71
- -e CC="/opt/llvm/clang/bin/clang" \
72
- -e BAZEL_CXXOPTS="-std=${std}:-nostdinc++" \
73
- -e BAZEL_LINKOPTS="-L/opt/llvm/libcxx-tsan/lib:-lc++:-lc++abi:-lm:-Wl,-rpath=/opt/llvm/libcxx-tsan/lib" \
74
- -e CPLUS_INCLUDE_PATH="/opt/llvm/libcxx-tsan/include/c++/v1" \
75
71
  ${DOCKER_EXTRA_ARGS:-} \
76
72
  ${DOCKER_CONTAINER} \
73
+ /bin/bash --login -c "
77
74
  /usr/local/bin/bazel test ... \
78
- --build_tag_filters="-notsan" \
79
- --compilation_mode="${compilation_mode}" \
80
- --copt="${exceptions_mode}" \
81
- --copt="-DGTEST_REMOVE_LEGACY_TEST_CASEAPI_=1" \
82
- --copt="-fsanitize=thread" \
83
- --copt="-fno-sanitize-blacklist" \
75
+ --action_env=\"CC=/opt/llvm/clang/bin/clang\" \
76
+ --action_env=\"BAZEL_CXXOPTS=-std=${std}:-nostdinc++\" \
77
+ --action_env=\"BAZEL_LINKOPTS=-L/opt/llvm/libcxx-tsan/lib:-lc++:-lc++abi:-lm:-Wl,-rpath=/opt/llvm/libcxx-tsan/lib\" \
78
+ --action_env=\"CPLUS_INCLUDE_PATH=/opt/llvm/libcxx-tsan/include/c++/v1\" \
79
+ --build_tag_filters=\"-notsan\" \
80
+ --compilation_mode=\"${compilation_mode}\" \
81
+ --copt=\"${exceptions_mode}\" \
82
+ --copt=\"-DGTEST_REMOVE_LEGACY_TEST_CASEAPI_=1\" \
83
+ --copt=\"-fsanitize=thread\" \
84
+ --copt=\"-fno-sanitize-blacklist\" \
84
85
  --copt=-Werror \
85
86
  --enable_bzlmod=true \
86
87
  --features=external_include_paths \
87
88
  --keep_going \
88
- --linkopt="-fsanitize=thread" \
89
+ --linkopt=\"-fsanitize=thread\" \
89
90
  --show_timestamps \
90
- --test_env="TSAN_SYMBOLIZER_PATH=/opt/llvm/clang/bin/llvm-symbolizer" \
91
- --test_env="TZDIR=/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo" \
91
+ --test_env=\"TSAN_SYMBOLIZER_PATH=/opt/llvm/clang/bin/llvm-symbolizer\" \
92
+ --test_env=\"TZDIR=/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo\" \
92
93
  --test_output=errors \
93
- --test_tag_filters="-benchmark,-notsan" \
94
- ${BAZEL_EXTRA_ARGS:-}
94
+ --test_tag_filters=\"-benchmark,-notsan\" \
95
+ ${BAZEL_EXTRA_ARGS:-}"
95
96
  done
96
97
  done
97
98
  done