re2 1.23.0 → 1.23.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/README.md +2 -0
  2. package/binding.gyp +3 -2
  3. package/package.json +5 -5
  4. package/vendor/abseil-cpp/CMake/AbseilDll.cmake +25 -4
  5. package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +6 -1
  6. package/vendor/abseil-cpp/CMakeLists.txt +2 -2
  7. package/vendor/abseil-cpp/MODULE.bazel +2 -2
  8. package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +0 -1
  9. package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +0 -2
  10. package/vendor/abseil-cpp/absl/algorithm/container.h +191 -140
  11. package/vendor/abseil-cpp/absl/algorithm/container_test.cc +818 -0
  12. package/vendor/abseil-cpp/absl/base/BUILD.bazel +44 -5
  13. package/vendor/abseil-cpp/absl/base/CMakeLists.txt +42 -3
  14. package/vendor/abseil-cpp/absl/base/attributes.h +5 -1
  15. package/vendor/abseil-cpp/absl/base/call_once_test.cc +10 -10
  16. package/vendor/abseil-cpp/absl/base/casts.cc +61 -0
  17. package/vendor/abseil-cpp/absl/base/casts.h +128 -2
  18. package/vendor/abseil-cpp/absl/base/casts_test.cc +151 -0
  19. package/vendor/abseil-cpp/absl/base/config.h +13 -37
  20. package/vendor/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
  21. package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +4 -0
  22. package/vendor/abseil-cpp/absl/base/internal/nullability_traits.h +71 -0
  23. package/vendor/abseil-cpp/absl/base/internal/nullability_traits_test.cc +98 -0
  24. package/vendor/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
  25. package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +13 -7
  26. package/vendor/abseil-cpp/absl/base/internal/spinlock.h +16 -11
  27. package/vendor/abseil-cpp/absl/base/internal/strerror_test.cc +2 -1
  28. package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +0 -9
  29. package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +0 -6
  30. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -1
  31. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
  32. package/vendor/abseil-cpp/absl/base/macros.h +40 -17
  33. package/vendor/abseil-cpp/absl/base/nullability.h +1 -1
  34. package/vendor/abseil-cpp/absl/base/optimization.h +1 -3
  35. package/vendor/abseil-cpp/absl/base/options.h +1 -27
  36. package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +5 -8
  37. package/vendor/abseil-cpp/absl/cleanup/cleanup.h +4 -0
  38. package/vendor/abseil-cpp/absl/container/BUILD.bazel +195 -2
  39. package/vendor/abseil-cpp/absl/container/CMakeLists.txt +136 -2
  40. package/vendor/abseil-cpp/absl/container/btree_map.h +56 -6
  41. package/vendor/abseil-cpp/absl/container/btree_set.h +52 -6
  42. package/vendor/abseil-cpp/absl/container/btree_test.cc +107 -1
  43. package/vendor/abseil-cpp/absl/container/chunked_queue.h +755 -0
  44. package/vendor/abseil-cpp/absl/container/chunked_queue_benchmark.cc +386 -0
  45. package/vendor/abseil-cpp/absl/container/chunked_queue_test.cc +768 -0
  46. package/vendor/abseil-cpp/absl/container/fixed_array.h +4 -6
  47. package/vendor/abseil-cpp/absl/container/flat_hash_map.h +16 -6
  48. package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +1 -2
  49. package/vendor/abseil-cpp/absl/container/flat_hash_set.h +16 -6
  50. package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +0 -2
  51. package/vendor/abseil-cpp/absl/container/inlined_vector.h +12 -4
  52. package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +21 -0
  53. package/vendor/abseil-cpp/absl/container/internal/btree_container.h +14 -5
  54. package/vendor/abseil-cpp/absl/container/internal/chunked_queue.h +173 -0
  55. package/vendor/abseil-cpp/absl/container/internal/common.h +51 -0
  56. package/vendor/abseil-cpp/absl/container/internal/container_memory.h +7 -1
  57. package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +11 -0
  58. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +0 -2
  59. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +1 -2
  60. package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +0 -14
  61. package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +11 -8
  62. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +3 -4
  63. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +23 -6
  64. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +31 -15
  65. package/vendor/abseil-cpp/absl/container/internal/heterogeneous_lookup_testing.h +80 -0
  66. package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +4 -12
  67. package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +35 -10
  68. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +149 -23
  69. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +120 -126
  70. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +4 -0
  71. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +8 -0
  72. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +14 -59
  73. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +111 -22
  74. package/vendor/abseil-cpp/absl/container/internal/unordered_map_constructor_test.h +53 -112
  75. package/vendor/abseil-cpp/absl/container/internal/unordered_map_lookup_test.h +10 -15
  76. package/vendor/abseil-cpp/absl/container/internal/unordered_map_members_test.h +3 -3
  77. package/vendor/abseil-cpp/absl/container/internal/unordered_map_modifiers_test.h +45 -61
  78. package/vendor/abseil-cpp/absl/container/internal/unordered_set_constructor_test.h +53 -112
  79. package/vendor/abseil-cpp/absl/container/internal/unordered_set_lookup_test.h +6 -9
  80. package/vendor/abseil-cpp/absl/container/internal/unordered_set_members_test.h +3 -3
  81. package/vendor/abseil-cpp/absl/container/internal/unordered_set_modifiers_test.h +25 -31
  82. package/vendor/abseil-cpp/absl/container/linked_hash_map.h +666 -0
  83. package/vendor/abseil-cpp/absl/container/linked_hash_map_benchmark.cc +140 -0
  84. package/vendor/abseil-cpp/absl/container/linked_hash_map_test.cc +987 -0
  85. package/vendor/abseil-cpp/absl/container/linked_hash_set.h +527 -0
  86. package/vendor/abseil-cpp/absl/container/linked_hash_set_benchmark.cc +84 -0
  87. package/vendor/abseil-cpp/absl/container/linked_hash_set_test.cc +947 -0
  88. package/vendor/abseil-cpp/absl/container/node_hash_map.h +17 -6
  89. package/vendor/abseil-cpp/absl/container/node_hash_set.h +16 -5
  90. package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +1 -2
  91. package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +79 -0
  92. package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +79 -0
  93. package/vendor/abseil-cpp/absl/copts/copts.py +17 -4
  94. package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +67 -13
  95. package/vendor/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
  96. package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +31 -0
  97. package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +34 -0
  98. package/vendor/abseil-cpp/absl/debugging/failure_signal_handler.cc +2 -2
  99. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +118 -0
  100. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +71 -0
  101. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +97 -0
  102. package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
  103. package/vendor/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
  104. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +4 -0
  105. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -0
  106. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +1 -1
  107. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +0 -7
  108. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
  109. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +2 -1
  110. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +8 -3
  111. package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +2 -2
  112. package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +35 -67
  113. package/vendor/abseil-cpp/absl/debugging/stacktrace.h +3 -0
  114. package/vendor/abseil-cpp/absl/debugging/stacktrace_benchmark.cc +24 -1
  115. package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +39 -15
  116. package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
  117. package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +25 -40
  118. package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
  119. package/vendor/abseil-cpp/absl/flags/BUILD.bazel +1 -0
  120. package/vendor/abseil-cpp/absl/flags/declare.h +9 -0
  121. package/vendor/abseil-cpp/absl/flags/flag.h +2 -1
  122. package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
  123. package/vendor/abseil-cpp/absl/flags/internal/flag.cc +3 -2
  124. package/vendor/abseil-cpp/absl/flags/marshalling.cc +1 -16
  125. package/vendor/abseil-cpp/absl/flags/parse.cc +4 -2
  126. package/vendor/abseil-cpp/absl/flags/parse_test.cc +1 -1
  127. package/vendor/abseil-cpp/absl/flags/reflection.cc +4 -3
  128. package/vendor/abseil-cpp/absl/functional/BUILD.bazel +4 -0
  129. package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +4 -0
  130. package/vendor/abseil-cpp/absl/functional/any_invocable.h +3 -1
  131. package/vendor/abseil-cpp/absl/functional/function_ref.h +125 -20
  132. package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +122 -9
  133. package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +13 -2
  134. package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +42 -4
  135. package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +11 -0
  136. package/vendor/abseil-cpp/absl/hash/hash_test.cc +5 -2
  137. package/vendor/abseil-cpp/absl/hash/internal/hash.cc +184 -53
  138. package/vendor/abseil-cpp/absl/hash/internal/hash.h +116 -10
  139. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +43 -4
  140. package/vendor/abseil-cpp/absl/log/BUILD.bazel +2 -0
  141. package/vendor/abseil-cpp/absl/log/CMakeLists.txt +35 -1
  142. package/vendor/abseil-cpp/absl/log/check_test_impl.inc +59 -4
  143. package/vendor/abseil-cpp/absl/log/die_if_null.cc +3 -1
  144. package/vendor/abseil-cpp/absl/log/die_if_null.h +24 -3
  145. package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +31 -1
  146. package/vendor/abseil-cpp/absl/log/internal/check_impl.h +2 -1
  147. package/vendor/abseil-cpp/absl/log/internal/check_op.cc +3 -1
  148. package/vendor/abseil-cpp/absl/log/internal/check_op.h +44 -18
  149. package/vendor/abseil-cpp/absl/log/internal/conditions.h +38 -35
  150. package/vendor/abseil-cpp/absl/log/internal/container.h +312 -0
  151. package/vendor/abseil-cpp/absl/log/internal/container_test.cc +254 -0
  152. package/vendor/abseil-cpp/absl/log/internal/log_impl.h +108 -110
  153. package/vendor/abseil-cpp/absl/log/internal/log_message.cc +5 -2
  154. package/vendor/abseil-cpp/absl/log/internal/log_message.h +5 -1
  155. package/vendor/abseil-cpp/absl/log/internal/strip.h +30 -31
  156. package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +19 -19
  157. package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
  158. package/vendor/abseil-cpp/absl/log/log.h +2 -2
  159. package/vendor/abseil-cpp/absl/meta/BUILD.bazel +51 -0
  160. package/vendor/abseil-cpp/absl/meta/CMakeLists.txt +46 -0
  161. package/vendor/abseil-cpp/absl/meta/internal/constexpr_testing.h +73 -0
  162. package/vendor/abseil-cpp/absl/meta/internal/constexpr_testing_test.cc +40 -0
  163. package/vendor/abseil-cpp/absl/meta/internal/requires.h +67 -0
  164. package/vendor/abseil-cpp/absl/meta/internal/requires_test.cc +66 -0
  165. package/vendor/abseil-cpp/absl/meta/type_traits.h +42 -1
  166. package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +14 -0
  167. package/vendor/abseil-cpp/absl/numeric/int128.h +41 -21
  168. package/vendor/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
  169. package/vendor/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
  170. package/vendor/abseil-cpp/absl/numeric/int128_test.cc +52 -5
  171. package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +1 -0
  172. package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +1 -0
  173. package/vendor/abseil-cpp/absl/profiling/hashtable.cc +18 -7
  174. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +1 -0
  175. package/vendor/abseil-cpp/absl/random/internal/fastmath_test.cc +3 -5
  176. package/vendor/abseil-cpp/absl/random/internal/platform.h +0 -13
  177. package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +0 -1
  178. package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +1 -27
  179. package/vendor/abseil-cpp/absl/status/BUILD.bazel +17 -0
  180. package/vendor/abseil-cpp/absl/status/CMakeLists.txt +16 -0
  181. package/vendor/abseil-cpp/absl/status/internal/status_internal.h +4 -2
  182. package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +2 -2
  183. package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +2 -1
  184. package/vendor/abseil-cpp/absl/status/status.cc +4 -0
  185. package/vendor/abseil-cpp/absl/status/status.h +5 -0
  186. package/vendor/abseil-cpp/absl/status/status_matchers.h +48 -0
  187. package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +27 -0
  188. package/vendor/abseil-cpp/absl/status/status_test.cc +1 -0
  189. package/vendor/abseil-cpp/absl/status/statusor.h +1 -1
  190. package/vendor/abseil-cpp/absl/strings/BUILD.bazel +101 -21
  191. package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +99 -5
  192. package/vendor/abseil-cpp/absl/strings/ascii.h +9 -4
  193. package/vendor/abseil-cpp/absl/strings/cord.cc +15 -10
  194. package/vendor/abseil-cpp/absl/strings/cord.h +1 -1
  195. package/vendor/abseil-cpp/absl/strings/escaping.cc +126 -94
  196. package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
  197. package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite_test.cc +95 -0
  198. package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +2 -0
  199. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree_test.cc +8 -8
  200. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +24 -18
  201. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +10 -16
  202. package/vendor/abseil-cpp/absl/strings/internal/escaping.h +9 -7
  203. package/vendor/abseil-cpp/absl/strings/internal/generic_printer.cc +107 -0
  204. package/vendor/abseil-cpp/absl/strings/internal/generic_printer.h +115 -0
  205. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_internal.h +423 -0
  206. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_test.cc +685 -0
  207. package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +0 -12
  208. package/vendor/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
  209. package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +21 -7
  210. package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +495 -8
  211. package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -15
  212. package/vendor/abseil-cpp/absl/strings/numbers.cc +71 -8
  213. package/vendor/abseil-cpp/absl/strings/numbers.h +25 -12
  214. package/vendor/abseil-cpp/absl/strings/numbers_test.cc +70 -0
  215. package/vendor/abseil-cpp/absl/strings/resize_and_overwrite.h +194 -0
  216. package/vendor/abseil-cpp/absl/strings/resize_and_overwrite_test.cc +154 -0
  217. package/vendor/abseil-cpp/absl/strings/str_cat.cc +96 -91
  218. package/vendor/abseil-cpp/absl/strings/str_cat.h +17 -12
  219. package/vendor/abseil-cpp/absl/strings/str_format_test.cc +4 -4
  220. package/vendor/abseil-cpp/absl/strings/str_split.h +1 -1
  221. package/vendor/abseil-cpp/absl/strings/str_split_test.cc +1 -1
  222. package/vendor/abseil-cpp/absl/strings/string_view.h +8 -718
  223. package/vendor/abseil-cpp/absl/strings/string_view_test.cc +1 -1265
  224. package/vendor/abseil-cpp/absl/strings/substitute.cc +24 -24
  225. package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +2 -3
  226. package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +1 -0
  227. package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
  228. package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout_test.cc +15 -5
  229. package/vendor/abseil-cpp/absl/synchronization/mutex.cc +2 -1
  230. package/vendor/abseil-cpp/absl/synchronization/mutex.h +47 -23
  231. package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
  232. package/vendor/abseil-cpp/absl/time/CMakeLists.txt +2 -0
  233. package/vendor/abseil-cpp/absl/time/civil_time_benchmark.cc +1 -2
  234. package/vendor/abseil-cpp/absl/time/civil_time_test.cc +58 -103
  235. package/vendor/abseil-cpp/absl/time/clock.cc +18 -16
  236. package/vendor/abseil-cpp/absl/time/clock_test.cc +2 -2
  237. package/vendor/abseil-cpp/absl/time/duration_benchmark.cc +144 -0
  238. package/vendor/abseil-cpp/absl/time/duration_test.cc +26 -29
  239. package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +7 -1
  240. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +4 -2
  241. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
  242. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +186 -0
  243. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
  244. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
  245. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ensenada +0 -0
  246. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santa_Isabel +0 -0
  247. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tijuana +0 -0
  248. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaNorte +0 -0
  249. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/iso3166.tab +9 -9
  250. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +12 -12
  251. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +47 -47
  252. package/vendor/abseil-cpp/absl/time/time.cc +4 -4
  253. package/vendor/abseil-cpp/absl/time/time.h +10 -10
  254. package/vendor/abseil-cpp/absl/time/time_test.cc +1 -0
  255. package/vendor/abseil-cpp/absl/types/compare.h +62 -61
  256. package/vendor/abseil-cpp/absl/types/compare_test.cc +3 -3
  257. package/vendor/abseil-cpp/absl/types/internal/span.h +1 -0
  258. package/vendor/abseil-cpp/absl/types/optional.h +2 -2
  259. package/vendor/abseil-cpp/absl/types/span.h +10 -2
  260. package/vendor/abseil-cpp/absl/utility/utility.h +13 -0
  261. package/vendor/abseil-cpp/ci/absl_alternate_options.h +0 -1
  262. package/vendor/abseil-cpp/ci/cmake_common.sh +1 -1
  263. package/vendor/abseil-cpp/ci/cmake_install_test.sh +6 -0
  264. package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +1 -0
  265. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +2 -0
  266. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +1 -0
  267. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +1 -0
  268. package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +1 -0
  269. package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +1 -0
  270. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +1 -0
  271. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +6 -0
  272. package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +6 -0
  273. package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +3 -2
  274. package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +5 -0
  275. package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +1 -0
  276. package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -0
  277. package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +6 -1
  278. package/vendor/abseil-cpp/absl/base/internal/identity.h +0 -39
  279. package/vendor/abseil-cpp/absl/strings/string_view.cc +0 -257
  280. package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +0 -380
@@ -117,8 +117,8 @@
117
117
  //
118
118
  // LTS releases can be obtained from
119
119
  // https://github.com/abseil/abseil-cpp/releases.
120
- #define ABSL_LTS_RELEASE_VERSION 20250814
121
- #define ABSL_LTS_RELEASE_PATCH_LEVEL 1
120
+ #define ABSL_LTS_RELEASE_VERSION 20260107
121
+ #define ABSL_LTS_RELEASE_PATCH_LEVEL 0
122
122
 
123
123
  // Helper macro to convert a CPP variable to a string literal.
124
124
  #define ABSL_INTERNAL_DO_TOKEN_STR(x) #x
@@ -360,10 +360,10 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
360
360
  // Darwin (macOS and iOS) __APPLE__
361
361
  // Akaros (http://akaros.org) __ros__
362
362
  // Windows _WIN32
363
- // NaCL __native_client__
364
363
  // AsmJS __asmjs__
365
364
  // WebAssembly (Emscripten) __EMSCRIPTEN__
366
365
  // Fuchsia __Fuchsia__
366
+ // WebAssembly (WASI) _WASI_EMULATED_MMAN (implies __wasi__)
367
367
  //
368
368
  // Note that since Android defines both __ANDROID__ and __linux__, one
369
369
  // may probe for either Linux or Android by simply testing for __linux__.
@@ -374,12 +374,13 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
374
374
  // POSIX.1-2001.
375
375
  #ifdef ABSL_HAVE_MMAP
376
376
  #error ABSL_HAVE_MMAP cannot be directly set
377
- #elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
378
- defined(_AIX) || defined(__ros__) || defined(__native_client__) || \
379
- defined(__asmjs__) || defined(__EMSCRIPTEN__) || defined(__Fuchsia__) || \
380
- defined(__sun) || defined(__myriad2__) || defined(__HAIKU__) || \
381
- defined(__OpenBSD__) || defined(__NetBSD__) || defined(__QNX__) || \
382
- defined(__VXWORKS__) || defined(__hexagon__) || defined(__XTENSA__)
377
+ #elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
378
+ defined(_AIX) || defined(__ros__) || defined(__asmjs__) || \
379
+ defined(__EMSCRIPTEN__) || defined(__Fuchsia__) || defined(__sun) || \
380
+ defined(__myriad2__) || defined(__HAIKU__) || defined(__OpenBSD__) || \
381
+ defined(__NetBSD__) || defined(__QNX__) || defined(__VXWORKS__) || \
382
+ defined(__hexagon__) || defined(__XTENSA__) || \
383
+ defined(_WASI_EMULATED_MMAN)
383
384
  #define ABSL_HAVE_MMAP 1
384
385
  #endif
385
386
 
@@ -455,8 +456,6 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
455
456
  // WASI doesn't support signals
456
457
  #elif defined(__Fuchsia__)
457
458
  // Signals don't exist on fuchsia.
458
- #elif defined(__native_client__)
459
- // Signals don't exist on hexagon/QuRT
460
459
  #elif defined(__hexagon__)
461
460
  #else
462
461
  // other standard libraries
@@ -527,20 +526,11 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
527
526
  #define ABSL_USES_STD_ANY 1
528
527
  #define ABSL_HAVE_STD_OPTIONAL 1
529
528
  #define ABSL_USES_STD_OPTIONAL 1
529
+ #define ABSL_HAVE_STD_STRING_VIEW 1
530
+ #define ABSL_USES_STD_STRING_VIEW 1
530
531
  #define ABSL_HAVE_STD_VARIANT 1
531
532
  #define ABSL_USES_STD_VARIANT 1
532
533
 
533
- // ABSL_HAVE_STD_STRING_VIEW
534
- //
535
- // Deprecated: always defined to 1.
536
- // std::string_view was added in C++17, which means all versions of C++
537
- // supported by Abseil have it.
538
- #ifdef ABSL_HAVE_STD_STRING_VIEW
539
- #error "ABSL_HAVE_STD_STRING_VIEW cannot be directly set."
540
- #else
541
- #define ABSL_HAVE_STD_STRING_VIEW 1
542
- #endif
543
-
544
534
  // ABSL_HAVE_STD_ORDERING
545
535
  //
546
536
  // Checks whether C++20 std::{partial,weak,strong}_ordering are available.
@@ -557,20 +547,6 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
557
547
  #define ABSL_HAVE_STD_ORDERING 1
558
548
  #endif
559
549
 
560
- // ABSL_USES_STD_STRING_VIEW
561
- //
562
- // Indicates whether absl::string_view is an alias for std::string_view.
563
- #if !defined(ABSL_OPTION_USE_STD_STRING_VIEW)
564
- #error options.h is misconfigured.
565
- #elif ABSL_OPTION_USE_STD_STRING_VIEW == 0
566
- #undef ABSL_USES_STD_STRING_VIEW
567
- #elif ABSL_OPTION_USE_STD_STRING_VIEW == 1 || \
568
- ABSL_OPTION_USE_STD_STRING_VIEW == 2
569
- #define ABSL_USES_STD_STRING_VIEW 1
570
- #else
571
- #error options.h is misconfigured.
572
- #endif
573
-
574
550
  // ABSL_USES_STD_ORDERING
575
551
  //
576
552
  // Indicates whether absl::{partial,weak,strong}_ordering are aliases for the
@@ -756,7 +732,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
756
732
  #ifdef ABSL_INTERNAL_HAS_CXA_DEMANGLE
757
733
  #error ABSL_INTERNAL_HAS_CXA_DEMANGLE cannot be directly set
758
734
  #elif defined(OS_ANDROID) && (defined(__i386__) || defined(__x86_64__))
759
- #define ABSL_INTERNAL_HAS_CXA_DEMANGLE 0
735
+ #undef ABSL_INTERNAL_HAS_CXA_DEMANGLE
760
736
  #elif defined(__GNUC__)
761
737
  #define ABSL_INTERNAL_HAS_CXA_DEMANGLE 1
762
738
  #elif defined(__clang__) && !defined(_MSC_VER)
@@ -89,7 +89,7 @@
89
89
  #endif
90
90
 
91
91
  // Memory annotations are also made available to LLVM's Memory Sanitizer
92
- #if defined(ABSL_HAVE_MEMORY_SANITIZER) && !defined(__native_client__)
92
+ #if defined(ABSL_HAVE_MEMORY_SANITIZER)
93
93
  #define ABSL_INTERNAL_MEMORY_ANNOTATIONS_ENABLED 1
94
94
  #endif
95
95
 
@@ -60,6 +60,10 @@ template <typename IteratorTag, typename Iterator>
60
60
  using IsAtLeastIterator =
61
61
  std::is_convertible<IteratorConcept<Iterator>, IteratorTag>;
62
62
 
63
+ template <typename Iterator>
64
+ using IsAtLeastInputIterator =
65
+ IsAtLeastIterator<std::input_iterator_tag, Iterator>;
66
+
63
67
  template <typename Iterator>
64
68
  using IsAtLeastForwardIterator =
65
69
  IsAtLeastIterator<std::forward_iterator_tag, Iterator>;
@@ -0,0 +1,71 @@
1
+ // Copyright 2025 The Abseil Authors
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #ifndef ABSL_BASE_INTERNAL_NULLABILITY_TRAITS_H_
16
+ #define ABSL_BASE_INTERNAL_NULLABILITY_TRAITS_H_
17
+
18
+ #include <type_traits>
19
+
20
+ #include "absl/base/config.h"
21
+ #include "absl/base/nullability.h"
22
+
23
+ namespace absl {
24
+ ABSL_NAMESPACE_BEGIN
25
+ namespace base_internal {
26
+
27
+ // `value` is true if the type `T` is compatible with nullability annotations
28
+ // (is a raw pointer, a smart pointer, or marked with
29
+ // ABSL_NULLABILITY_COMPATIBLE). Prefer to use the higher-level
30
+ // `AddNonnullIfCompatible` if that is sufficient.
31
+ //
32
+ // NOTE: This should not be used to detect if the compiler is Clang (since
33
+ // Clang is the only compiler that supports nullability annotations).
34
+ #if defined(__clang__) && !defined(__OBJC__) && \
35
+ ABSL_HAVE_FEATURE(nullability_on_classes)
36
+ template <class T, class = void>
37
+ struct IsNullabilityCompatibleType {
38
+ constexpr static bool value = false;
39
+ };
40
+
41
+ template <class T>
42
+ struct IsNullabilityCompatibleType<T, std::void_t<absl_nullable T>> {
43
+ constexpr static bool value = true;
44
+ };
45
+ #else
46
+ // False when absl_nullable is a no-op (for non-Clang compilers or Objective-C.)
47
+ template <class T, class = void>
48
+ struct IsNullabilityCompatibleType {
49
+ constexpr static bool value = false;
50
+ };
51
+ #endif
52
+
53
+ // A trait to add `absl_nonnull` to a type if it is compatible with nullability
54
+ // annotations.
55
+ template <typename T, bool ShouldAdd = IsNullabilityCompatibleType<T>::value>
56
+ struct AddNonnullIfCompatible;
57
+
58
+ template <typename T>
59
+ struct AddNonnullIfCompatible<T, false> {
60
+ using type = T;
61
+ };
62
+ template <typename T>
63
+ struct AddNonnullIfCompatible<T, true> {
64
+ using type = absl_nonnull T;
65
+ };
66
+
67
+ } // namespace base_internal
68
+ ABSL_NAMESPACE_END
69
+ } // namespace absl
70
+
71
+ #endif // ABSL_BASE_INTERNAL_NULLABILITY_TRAITS_H_
@@ -0,0 +1,98 @@
1
+ // Copyright 2025 The Abseil Authors
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #include "absl/base/internal/nullability_traits.h"
16
+
17
+ #include <memory>
18
+ #include <type_traits>
19
+
20
+ #include "gtest/gtest.h"
21
+ #include "absl/base/config.h"
22
+ #include "absl/base/nullability.h"
23
+
24
+ namespace absl {
25
+ ABSL_NAMESPACE_BEGIN
26
+ namespace base_internal {
27
+ namespace {
28
+
29
+ struct NotSmartPtr {
30
+ int* x;
31
+ };
32
+
33
+ class ABSL_NULLABILITY_COMPATIBLE MySmartPtr : std::unique_ptr<int> {};
34
+
35
+ // The IsNullabilityCompatibleType trait value can only be true when we define
36
+ // `absl_nullable` (isn't a no-op).
37
+ #if defined(__clang__) && !defined(__OBJC__) && \
38
+ ABSL_HAVE_FEATURE(nullability_on_classes)
39
+ #define EXPECT_TRUE_IF_SUPPORTED EXPECT_TRUE
40
+ #else
41
+ #define EXPECT_TRUE_IF_SUPPORTED EXPECT_FALSE
42
+ #endif
43
+
44
+ TEST(NullabilityTraitsTest, IsNullabilityEligibleTypePrimitives) {
45
+ EXPECT_FALSE(IsNullabilityCompatibleType<int>::value);
46
+ EXPECT_FALSE(IsNullabilityCompatibleType<int*&>::value);
47
+
48
+ EXPECT_TRUE_IF_SUPPORTED(IsNullabilityCompatibleType<int*>::value);
49
+ EXPECT_TRUE_IF_SUPPORTED(IsNullabilityCompatibleType<int**>::value);
50
+ EXPECT_TRUE_IF_SUPPORTED(IsNullabilityCompatibleType<int* const>::value);
51
+ EXPECT_TRUE_IF_SUPPORTED(IsNullabilityCompatibleType<const int*>::value);
52
+ EXPECT_TRUE_IF_SUPPORTED(IsNullabilityCompatibleType<void (*)(int)>::value);
53
+ }
54
+
55
+ TEST(NullabilityTraitsTest, IsNullabilityCompatibleTypeAliases) {
56
+ using MyInt = int;
57
+ using MyIntPtr = int*;
58
+ EXPECT_FALSE(IsNullabilityCompatibleType<MyInt>::value);
59
+ EXPECT_TRUE_IF_SUPPORTED(IsNullabilityCompatibleType<MyIntPtr>::value);
60
+ }
61
+
62
+ TEST(NullabilityTraitsTest, IsNullabilityCompatibleTypeSmartPointers) {
63
+ EXPECT_TRUE_IF_SUPPORTED(
64
+ IsNullabilityCompatibleType<std::unique_ptr<int>>::value);
65
+ EXPECT_TRUE_IF_SUPPORTED(
66
+ IsNullabilityCompatibleType<std::shared_ptr<int>>::value);
67
+
68
+ EXPECT_FALSE(IsNullabilityCompatibleType<NotSmartPtr>::value);
69
+ EXPECT_TRUE_IF_SUPPORTED(IsNullabilityCompatibleType<NotSmartPtr*>::value);
70
+ EXPECT_TRUE_IF_SUPPORTED(IsNullabilityCompatibleType<MySmartPtr>::value);
71
+ }
72
+
73
+ #undef EXPECT_TRUE_IF_SUPPORTED
74
+
75
+ TEST(NullabilityTraitsTest, AddNonnullIfCompatiblePassThroughPrimitives) {
76
+ EXPECT_TRUE((std::is_same_v<AddNonnullIfCompatible<int>::type, int>));
77
+ EXPECT_TRUE((std::is_same_v<AddNonnullIfCompatible<int*>::type, int*>));
78
+ EXPECT_TRUE(
79
+ (std::is_same_v<AddNonnullIfCompatible<int* const>::type, int* const>));
80
+ }
81
+
82
+ TEST(NullabilityTraitsTest, AddNonnullIfCompatiblePassThroughSmartPointers) {
83
+ EXPECT_TRUE(
84
+ (std::is_same_v<AddNonnullIfCompatible<std::unique_ptr<int>>::type,
85
+ std::unique_ptr<int>>));
86
+ EXPECT_TRUE(
87
+ (std::is_same_v<AddNonnullIfCompatible<std::shared_ptr<int>>::type,
88
+ std::shared_ptr<int>>));
89
+ EXPECT_TRUE(
90
+ (std::is_same_v<AddNonnullIfCompatible<NotSmartPtr>::type, NotSmartPtr>));
91
+ EXPECT_TRUE(
92
+ (std::is_same_v<AddNonnullIfCompatible<MySmartPtr>::type, MySmartPtr>));
93
+ }
94
+
95
+ } // namespace
96
+ } // namespace base_internal
97
+ ABSL_NAMESPACE_END
98
+ } // namespace absl
@@ -41,9 +41,8 @@
41
41
  //
42
42
  // This preprocessor token is also defined in raw_io.cc. If you need to copy
43
43
  // this, consider moving both to config.h instead.
44
- #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
45
- defined(__hexagon__) || defined(__Fuchsia__) || \
46
- defined(__native_client__) || defined(__OpenBSD__) || \
44
+ #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
45
+ defined(__hexagon__) || defined(__Fuchsia__) || defined(__OpenBSD__) || \
47
46
  defined(__EMSCRIPTEN__) || defined(__ASYLO__)
48
47
 
49
48
  #include <unistd.h>
@@ -158,7 +157,7 @@ void RawLogVA(absl::LogSeverity severity, const char* file, int line,
158
157
  #endif
159
158
 
160
159
  #ifdef ABSL_MIN_LOG_LEVEL
161
- if (severity < static_cast<absl::LogSeverity>(ABSL_MIN_LOG_LEVEL) &&
160
+ if (severity < static_cast<absl::LogSeverityAtLeast>(ABSL_MIN_LOG_LEVEL) &&
162
161
  severity < absl::LogSeverity::kFatal) {
163
162
  enabled = false;
164
163
  }
@@ -71,17 +71,23 @@ void RegisterSpinLockProfiler(void (*fn)(const void *contendedlock,
71
71
  }
72
72
 
73
73
  // Monitor the lock to see if its value changes within some time period
74
- // (adaptive_spin_count loop iterations). The last value read from the lock
74
+ // (adaptive_spin_count_ loop iterations). The last value read from the lock
75
75
  // is returned from the method.
76
+ ABSL_CONST_INIT std::atomic<int> SpinLock::adaptive_spin_count_{0};
76
77
  uint32_t SpinLock::SpinLoop() {
77
78
  // We are already in the slow path of SpinLock, initialize the
78
79
  // adaptive_spin_count here.
79
- ABSL_CONST_INIT static absl::once_flag init_adaptive_spin_count;
80
- ABSL_CONST_INIT static int adaptive_spin_count = 0;
81
- LowLevelCallOnce(&init_adaptive_spin_count,
82
- []() { adaptive_spin_count = NumCPUs() > 1 ? 1000 : 1; });
83
-
84
- int c = adaptive_spin_count;
80
+ if (adaptive_spin_count_.load(std::memory_order_relaxed) == 0) {
81
+ int current_spin_count = 0;
82
+ int new_spin_count = NumCPUs() > 1 ? 1000 : 1;
83
+ // If this fails, the value will remain unchanged. We may not spin for the
84
+ // intended duration, but that is still safe. We will try again on the next
85
+ // call to SpinLoop.
86
+ adaptive_spin_count_.compare_exchange_weak(
87
+ current_spin_count, new_spin_count, std::memory_order_relaxed,
88
+ std::memory_order_relaxed);
89
+ }
90
+ int c = adaptive_spin_count_.load(std::memory_order_relaxed);
85
91
  uint32_t lock_value;
86
92
  do {
87
93
  lock_value = lockword_.load(std::memory_order_relaxed);
@@ -31,6 +31,7 @@
31
31
 
32
32
  #include <atomic>
33
33
  #include <cstdint>
34
+ #include <mutex>
34
35
  #include <type_traits>
35
36
 
36
37
  #include "absl/base/attributes.h"
@@ -47,6 +48,7 @@ namespace tcmalloc {
47
48
  namespace tcmalloc_internal {
48
49
 
49
50
  class AllocationGuardSpinLockHolder;
51
+ class Static;
50
52
 
51
53
  } // namespace tcmalloc_internal
52
54
  } // namespace tcmalloc
@@ -173,6 +175,16 @@ class ABSL_LOCKABLE ABSL_ATTRIBUTE_WARN_UNUSED SpinLock {
173
175
  // Provide access to protected method above. Use for testing only.
174
176
  friend struct SpinLockTest;
175
177
  friend class tcmalloc::tcmalloc_internal::AllocationGuardSpinLockHolder;
178
+ friend class tcmalloc::tcmalloc_internal::Static;
179
+
180
+ static int GetAdaptiveSpinCount() {
181
+ return adaptive_spin_count_.load(std::memory_order_relaxed);
182
+ }
183
+ static void SetAdaptiveSpinCount(int count) {
184
+ adaptive_spin_count_.store(count, std::memory_order_relaxed);
185
+ }
186
+
187
+ static std::atomic<int> adaptive_spin_count_;
176
188
 
177
189
  private:
178
190
  // lockword_ is used to store the following:
@@ -236,25 +248,18 @@ class ABSL_LOCKABLE ABSL_ATTRIBUTE_WARN_UNUSED SpinLock {
236
248
 
237
249
  // Corresponding locker object that arranges to acquire a spinlock for
238
250
  // the duration of a C++ scope.
239
- class ABSL_SCOPED_LOCKABLE [[nodiscard]] SpinLockHolder {
251
+ class ABSL_SCOPED_LOCKABLE [[nodiscard]] SpinLockHolder
252
+ : public std::lock_guard<SpinLock> {
240
253
  public:
241
254
  inline explicit SpinLockHolder(
242
255
  SpinLock& l ABSL_INTERNAL_ATTRIBUTE_CAPTURED_BY(this))
243
256
  ABSL_EXCLUSIVE_LOCK_FUNCTION(l)
244
- : lock_(l) {
245
- l.lock();
246
- }
257
+ : std::lock_guard<SpinLock>(l) {}
247
258
  ABSL_DEPRECATE_AND_INLINE()
248
259
  inline explicit SpinLockHolder(SpinLock* l) ABSL_EXCLUSIVE_LOCK_FUNCTION(l)
249
260
  : SpinLockHolder(*l) {}
250
261
 
251
- inline ~SpinLockHolder() ABSL_UNLOCK_FUNCTION() { lock_.unlock(); }
252
-
253
- SpinLockHolder(const SpinLockHolder&) = delete;
254
- SpinLockHolder& operator=(const SpinLockHolder&) = delete;
255
-
256
- private:
257
- SpinLock& lock_;
262
+ inline ~SpinLockHolder() ABSL_UNLOCK_FUNCTION() = default;
258
263
  };
259
264
 
260
265
  // Register a hook for profiling support.
@@ -39,7 +39,8 @@ TEST(StrErrorTest, ValidErrorCode) {
39
39
  TEST(StrErrorTest, InvalidErrorCode) {
40
40
  errno = ERANGE;
41
41
  EXPECT_THAT(absl::base_internal::StrError(-1),
42
- AnyOf(Eq("No error information"), Eq("Unknown error -1")));
42
+ AnyOf(Eq("No error information"), Eq("Unknown error -1"),
43
+ Eq("Unknown error")));
43
44
  EXPECT_THAT(errno, Eq(ERANGE));
44
45
  }
45
46
 
@@ -456,15 +456,6 @@ pid_t GetTID() { return getthrid(); }
456
456
 
457
457
  pid_t GetTID() { return static_cast<pid_t>(_lwp_self()); }
458
458
 
459
- #elif defined(__native_client__)
460
-
461
- pid_t GetTID() {
462
- auto* thread = pthread_self();
463
- static_assert(sizeof(pid_t) == sizeof(thread),
464
- "In NaCL int expected to be the same size as a pointer");
465
- return reinterpret_cast<pid_t>(thread);
466
- }
467
-
468
459
  #elif defined(__Fuchsia__)
469
460
 
470
461
  pid_t GetTID() {
@@ -39,12 +39,6 @@ TEST(SysinfoTest, NumCPUs) {
39
39
 
40
40
  TEST(SysinfoTest, GetTID) {
41
41
  EXPECT_EQ(GetTID(), GetTID()); // Basic compile and equality test.
42
- #ifdef __native_client__
43
- // Native Client has a race condition bug that leads to memory
44
- // exhaustion when repeatedly creating and joining threads.
45
- // https://bugs.chromium.org/p/nativeclient/issues/detail?id=1027
46
- return;
47
- #endif
48
42
  // Test that TIDs are unique to each thread.
49
43
  // Uses a few loops to exercise implementations that reallocate IDs.
50
44
  for (int i = 0; i < 10; ++i) {
@@ -62,7 +62,7 @@ double UnscaledCycleClock::Frequency() {
62
62
 
63
63
  int64_t UnscaledCycleClock::Now() {
64
64
  #ifdef __GLIBC__
65
- return __ppc_get_timebase();
65
+ return static_cast<int64_t>(__ppc_get_timebase());
66
66
  #else
67
67
  #ifdef __powerpc64__
68
68
  int64_t tbr;
@@ -34,7 +34,7 @@
34
34
  // CycleClock that runs at atleast 1 MHz. We've found some Android
35
35
  // ARM64 devices where this is not the case, so we disable it by
36
36
  // default on Android ARM64.
37
- #if defined(__native_client__) || (defined(__APPLE__)) || \
37
+ #if defined(__APPLE__) || \
38
38
  (defined(__ANDROID__) && defined(__aarch64__))
39
39
  #define ABSL_USE_UNSCALED_CYCLECLOCK_DEFAULT 0
40
40
  #else
@@ -169,42 +169,65 @@ ABSL_NAMESPACE_END
169
169
  #define ABSL_INTERNAL_RETHROW do {} while (false)
170
170
  #endif // ABSL_HAVE_EXCEPTIONS
171
171
 
172
- // ABSL_DEPRECATE_AND_INLINE()
172
+ // ABSL_REFACTOR_INLINE
173
+ //
174
+ // Marks a function or type for automated refactoring by go/cpp-inliner. It can
175
+ // be used on inline function definitions or type aliases in header files and
176
+ // should be combined with the `[[deprecated]]` attribute.
173
177
  //
174
- // Marks a function or type alias as deprecated and tags it to be picked up for
175
- // automated refactoring by go/cpp-inliner. It can added to inline function
176
- // definitions or type aliases. It should only be used within a header file. It
177
- // differs from `ABSL_DEPRECATED` in the following ways:
178
+ // Using `ABSL_REFACTOR_INLINE` differs from using the `[[deprecated]]` alone in
179
+ // the following ways:
178
180
  //
179
181
  // 1. New uses of the function or type will be discouraged via Tricorder
180
182
  // warnings.
181
183
  // 2. If enabled via `METADATA`, automated changes will be sent out inlining the
182
184
  // functions's body or replacing the type where it is used.
183
185
  //
184
- // For example:
186
+ // Examples:
185
187
  //
186
- // ABSL_DEPRECATE_AND_INLINE() inline int OldFunc(int x) {
188
+ // [[deprecated("Use NewFunc() instead")]] ABSL_REFACTOR_INLINE
189
+ // inline int OldFunc(int x) {
187
190
  // return NewFunc(x, 0);
188
191
  // }
189
192
  //
190
- // will mark `OldFunc` as deprecated, and the go/cpp-inliner service will
191
- // replace calls to `OldFunc(x)` with calls to `NewFunc(x, 0)`. Once all calls
192
- // to `OldFunc` have been replaced, `OldFunc` can be deleted.
193
+ // using OldType [[deprecated("Use NewType instead")]] ABSL_REFACTOR_INLINE =
194
+ // NewType;
195
+ //
196
+ // will mark `OldFunc` and `OldType` as deprecated, and the go/cpp-inliner
197
+ // service will replace calls to `OldFunc(x)` with calls to `NewFunc(x, 0)` and
198
+ // `OldType` with `NewType`. Once all replacements have been completed, the old
199
+ // function or type can be deleted.
193
200
  //
194
201
  // See go/cpp-inliner for more information.
195
202
  //
196
203
  // Note: go/cpp-inliner is Google-internal service for automated refactoring.
197
204
  // While open-source users do not have access to this service, the macro is
198
- // provided for compatibility, and so that users receive deprecation warnings.
199
- #if ABSL_HAVE_CPP_ATTRIBUTE(deprecated) && \
200
- ABSL_HAVE_CPP_ATTRIBUTE(clang::annotate)
201
- #define ABSL_DEPRECATE_AND_INLINE() [[deprecated, clang::annotate("inline-me")]]
202
- #elif ABSL_HAVE_CPP_ATTRIBUTE(deprecated)
203
- #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]]
205
+ // provided for compatibility.
206
+ #if ABSL_HAVE_CPP_ATTRIBUTE(clang::annotate)
207
+ #define ABSL_REFACTOR_INLINE [[clang::annotate("inline-me")]]
204
208
  #else
205
- #define ABSL_DEPRECATE_AND_INLINE()
209
+ #define ABSL_REFACTOR_INLINE
206
210
  #endif
207
211
 
212
+ // ABSL_DEPRECATE_AND_INLINE()
213
+ //
214
+ // This is the original macro used by go/cpp-inliner that combines
215
+ // [[deprecated]] and ABSL_REFACTOR_INLINE.
216
+ //
217
+ // Examples:
218
+ //
219
+ // ABSL_DEPRECATE_AND_INLINE() inline int OldFunc(int x) {
220
+ // return NewFunc(x, 0);
221
+ // }
222
+ //
223
+ // using OldType ABSL_DEPRECATE_AND_INLINE() = NewType;
224
+ //
225
+ // The combination of `[[deprecated("Use X instead")]]` and
226
+ // `ABSL_REFACTOR_INLINE` is preferred because it provides a more informative
227
+ // deprecation message to developers, especially those that do not have access
228
+ // to the automated refactoring capabilities of go/cpp-inliner.
229
+ #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
230
+
208
231
  // Requires the compiler to prove that the size of the given object is at least
209
232
  // the expected amount.
210
233
  #if ABSL_HAVE_ATTRIBUTE(diagnose_if) && ABSL_HAVE_BUILTIN(__builtin_object_size)
@@ -81,7 +81,7 @@
81
81
  // const Employee* absl_nonnull e;
82
82
  //
83
83
  // // A non-null pointer to a const nullable pointer to an `Employee`.
84
- // Employee* absl_nullable const* absl_nonnull e = nullptr;
84
+ // Employee* absl_nullable const* absl_nonnull e;
85
85
  //
86
86
  // // A non-null function pointer.
87
87
  // void (*absl_nonnull func)(int, double);
@@ -53,9 +53,7 @@
53
53
  // ABSL_BLOCK_TAIL_CALL_OPTIMIZATION();
54
54
  // return result;
55
55
  // }
56
- #if defined(__pnacl__)
57
- #define ABSL_BLOCK_TAIL_CALL_OPTIMIZATION() if (volatile int x = 0) { (void)x; }
58
- #elif defined(__clang__)
56
+ #if defined(__clang__)
59
57
  // Clang will not tail call given inline volatile assembly.
60
58
  #define ABSL_BLOCK_TAIL_CALL_OPTIMIZATION() __asm__ __volatile__("")
61
59
  #elif defined(__GNUC__)
@@ -73,32 +73,6 @@
73
73
  // Type Compatibility Options
74
74
  // -----------------------------------------------------------------------------
75
75
 
76
- // ABSL_OPTION_USE_STD_STRING_VIEW
77
- //
78
- // This option controls whether absl::string_view is implemented as an alias to
79
- // std::string_view, or as an independent implementation.
80
- //
81
- // A value of 0 means to use Abseil's implementation. This requires only C++11
82
- // support, and is expected to work on every toolchain we support.
83
- //
84
- // A value of 1 means to use an alias to std::string_view. This requires that
85
- // all code using Abseil is built in C++17 mode or later.
86
- //
87
- // A value of 2 means to detect the C++ version being used to compile Abseil,
88
- // and use an alias only if a working std::string_view is available. This
89
- // option is useful when you are building your program from source. It should
90
- // not be used otherwise -- for example, if you are distributing Abseil in a
91
- // binary package manager -- since in mode 2, absl::string_view will name a
92
- // different type, with a different mangled name and binary layout, depending on
93
- // the compiler flags passed by the end user. For more info, see
94
- // https://abseil.io/about/design/dropin-types.
95
- //
96
- // User code should not inspect this macro. To check in the preprocessor if
97
- // absl::string_view is a typedef of std::string_view, use the feature macro
98
- // ABSL_USES_STD_STRING_VIEW.
99
-
100
- #define ABSL_OPTION_USE_STD_STRING_VIEW 2
101
-
102
76
  // ABSL_OPTION_USE_STD_ORDERING
103
77
  //
104
78
  // This option controls whether absl::{partial,weak,strong}_ordering are
@@ -149,7 +123,7 @@
149
123
  // allowed.
150
124
 
151
125
  #define ABSL_OPTION_USE_INLINE_NAMESPACE 1
152
- #define ABSL_OPTION_INLINE_NAMESPACE_NAME lts_20250814
126
+ #define ABSL_OPTION_INLINE_NAMESPACE_NAME lts_20260107
153
127
 
154
128
  // ABSL_OPTION_HARDENED
155
129
  //
@@ -271,16 +271,13 @@ TEST(SpinLockWithThreads, DoesNotDeadlock) {
271
271
  }
272
272
  };
273
273
 
274
+ int num_threads = base_internal::NumCPUs() * 2;
274
275
  SpinLock stack_cooperative_spinlock;
275
276
  SpinLock stack_noncooperative_spinlock(base_internal::SCHEDULE_KERNEL_ONLY);
276
- Helper::DeadlockTest(&stack_cooperative_spinlock,
277
- base_internal::NumCPUs() * 2);
278
- Helper::DeadlockTest(&stack_noncooperative_spinlock,
279
- base_internal::NumCPUs() * 2);
280
- Helper::DeadlockTest(&static_cooperative_spinlock,
281
- base_internal::NumCPUs() * 2);
282
- Helper::DeadlockTest(&static_noncooperative_spinlock,
283
- base_internal::NumCPUs() * 2);
277
+ Helper::DeadlockTest(&stack_cooperative_spinlock, num_threads);
278
+ Helper::DeadlockTest(&stack_noncooperative_spinlock, num_threads);
279
+ Helper::DeadlockTest(&static_cooperative_spinlock, num_threads);
280
+ Helper::DeadlockTest(&static_noncooperative_spinlock, num_threads);
284
281
  }
285
282
 
286
283
  TEST(SpinLockTest, IsCooperative) {
@@ -19,6 +19,10 @@
19
19
  // `absl::Cleanup` implements the scope guard idiom, invoking the contained
20
20
  // callback's `operator()() &&` on scope exit.
21
21
  //
22
+ // This class doesn't allocate or take any locks, and is safe to use in a signal
23
+ // handler. Of course the callback with which it is constructed also must be
24
+ // signal safe in order for this to be useful.
25
+ //
22
26
  // Example:
23
27
  //
24
28
  // ```