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
@@ -78,8 +78,7 @@ TEST(CivilTime, FieldsConstruction) {
78
78
  absl::FormatCivilTime(absl::CivilMinute(2015, 1, 2)));
79
79
  EXPECT_EQ("2015-01-01T00:00",
80
80
  absl::FormatCivilTime(absl::CivilMinute(2015, 1)));
81
- EXPECT_EQ("2015-01-01T00:00",
82
- absl::FormatCivilTime(absl::CivilMinute(2015)));
81
+ EXPECT_EQ("2015-01-01T00:00", absl::FormatCivilTime(absl::CivilMinute(2015)));
83
82
 
84
83
  EXPECT_EQ("2015-01-02T03",
85
84
  absl::FormatCivilTime(absl::CivilHour(2015, 1, 2, 3, 4, 5)));
@@ -89,82 +88,63 @@ TEST(CivilTime, FieldsConstruction) {
89
88
  absl::FormatCivilTime(absl::CivilHour(2015, 1, 2, 3)));
90
89
  EXPECT_EQ("2015-01-02T00",
91
90
  absl::FormatCivilTime(absl::CivilHour(2015, 1, 2)));
92
- EXPECT_EQ("2015-01-01T00",
93
- absl::FormatCivilTime(absl::CivilHour(2015, 1)));
94
- EXPECT_EQ("2015-01-01T00",
95
- absl::FormatCivilTime(absl::CivilHour(2015)));
91
+ EXPECT_EQ("2015-01-01T00", absl::FormatCivilTime(absl::CivilHour(2015, 1)));
92
+ EXPECT_EQ("2015-01-01T00", absl::FormatCivilTime(absl::CivilHour(2015)));
96
93
 
97
94
  EXPECT_EQ("2015-01-02",
98
95
  absl::FormatCivilTime(absl::CivilDay(2015, 1, 2, 3, 4, 5)));
99
96
  EXPECT_EQ("2015-01-02",
100
97
  absl::FormatCivilTime(absl::CivilDay(2015, 1, 2, 3, 4)));
101
- EXPECT_EQ("2015-01-02",
102
- absl::FormatCivilTime(absl::CivilDay(2015, 1, 2, 3)));
103
- EXPECT_EQ("2015-01-02",
104
- absl::FormatCivilTime(absl::CivilDay(2015, 1, 2)));
105
- EXPECT_EQ("2015-01-01",
106
- absl::FormatCivilTime(absl::CivilDay(2015, 1)));
107
- EXPECT_EQ("2015-01-01",
108
- absl::FormatCivilTime(absl::CivilDay(2015)));
98
+ EXPECT_EQ("2015-01-02", absl::FormatCivilTime(absl::CivilDay(2015, 1, 2, 3)));
99
+ EXPECT_EQ("2015-01-02", absl::FormatCivilTime(absl::CivilDay(2015, 1, 2)));
100
+ EXPECT_EQ("2015-01-01", absl::FormatCivilTime(absl::CivilDay(2015, 1)));
101
+ EXPECT_EQ("2015-01-01", absl::FormatCivilTime(absl::CivilDay(2015)));
109
102
 
110
103
  EXPECT_EQ("2015-01",
111
104
  absl::FormatCivilTime(absl::CivilMonth(2015, 1, 2, 3, 4, 5)));
112
105
  EXPECT_EQ("2015-01",
113
106
  absl::FormatCivilTime(absl::CivilMonth(2015, 1, 2, 3, 4)));
114
- EXPECT_EQ("2015-01",
115
- absl::FormatCivilTime(absl::CivilMonth(2015, 1, 2, 3)));
116
- EXPECT_EQ("2015-01",
117
- absl::FormatCivilTime(absl::CivilMonth(2015, 1, 2)));
118
- EXPECT_EQ("2015-01",
119
- absl::FormatCivilTime(absl::CivilMonth(2015, 1)));
120
- EXPECT_EQ("2015-01",
121
- absl::FormatCivilTime(absl::CivilMonth(2015)));
107
+ EXPECT_EQ("2015-01", absl::FormatCivilTime(absl::CivilMonth(2015, 1, 2, 3)));
108
+ EXPECT_EQ("2015-01", absl::FormatCivilTime(absl::CivilMonth(2015, 1, 2)));
109
+ EXPECT_EQ("2015-01", absl::FormatCivilTime(absl::CivilMonth(2015, 1)));
110
+ EXPECT_EQ("2015-01", absl::FormatCivilTime(absl::CivilMonth(2015)));
122
111
 
123
112
  EXPECT_EQ("2015",
124
113
  absl::FormatCivilTime(absl::CivilYear(2015, 1, 2, 3, 4, 5)));
125
- EXPECT_EQ("2015",
126
- absl::FormatCivilTime(absl::CivilYear(2015, 1, 2, 3, 4)));
127
- EXPECT_EQ("2015",
128
- absl::FormatCivilTime(absl::CivilYear(2015, 1, 2, 3)));
129
- EXPECT_EQ("2015",
130
- absl::FormatCivilTime(absl::CivilYear(2015, 1, 2)));
131
- EXPECT_EQ("2015",
132
- absl::FormatCivilTime(absl::CivilYear(2015, 1)));
133
- EXPECT_EQ("2015",
134
- absl::FormatCivilTime(absl::CivilYear(2015)));
114
+ EXPECT_EQ("2015", absl::FormatCivilTime(absl::CivilYear(2015, 1, 2, 3, 4)));
115
+ EXPECT_EQ("2015", absl::FormatCivilTime(absl::CivilYear(2015, 1, 2, 3)));
116
+ EXPECT_EQ("2015", absl::FormatCivilTime(absl::CivilYear(2015, 1, 2)));
117
+ EXPECT_EQ("2015", absl::FormatCivilTime(absl::CivilYear(2015, 1)));
118
+ EXPECT_EQ("2015", absl::FormatCivilTime(absl::CivilYear(2015)));
135
119
  }
136
120
 
137
121
  TEST(CivilTime, FieldsConstructionLimits) {
138
122
  const int kIntMax = std::numeric_limits<int>::max();
139
- EXPECT_EQ("2038-01-19T03:14:07",
140
- absl::FormatCivilTime(absl::CivilSecond(
141
- 1970, 1, 1, 0, 0, kIntMax)));
142
- EXPECT_EQ("6121-02-11T05:21:07",
143
- absl::FormatCivilTime(absl::CivilSecond(
144
- 1970, 1, 1, 0, kIntMax, kIntMax)));
123
+ EXPECT_EQ("2038-01-19T03:14:07", absl::FormatCivilTime(absl::CivilSecond(
124
+ 1970, 1, 1, 0, 0, kIntMax)));
125
+ EXPECT_EQ("6121-02-11T05:21:07", absl::FormatCivilTime(absl::CivilSecond(
126
+ 1970, 1, 1, 0, kIntMax, kIntMax)));
145
127
  EXPECT_EQ("251104-11-20T12:21:07",
146
- absl::FormatCivilTime(absl::CivilSecond(
147
- 1970, 1, 1, kIntMax, kIntMax, kIntMax)));
128
+ absl::FormatCivilTime(
129
+ absl::CivilSecond(1970, 1, 1, kIntMax, kIntMax, kIntMax)));
148
130
  EXPECT_EQ("6130715-05-30T12:21:07",
149
- absl::FormatCivilTime(absl::CivilSecond(
150
- 1970, 1, kIntMax, kIntMax, kIntMax, kIntMax)));
131
+ absl::FormatCivilTime(absl::CivilSecond(1970, 1, kIntMax, kIntMax,
132
+ kIntMax, kIntMax)));
151
133
  EXPECT_EQ("185087685-11-26T12:21:07",
152
134
  absl::FormatCivilTime(absl::CivilSecond(
153
135
  1970, kIntMax, kIntMax, kIntMax, kIntMax, kIntMax)));
154
136
 
155
137
  const int kIntMin = std::numeric_limits<int>::min();
156
- EXPECT_EQ("1901-12-13T20:45:52",
157
- absl::FormatCivilTime(absl::CivilSecond(
158
- 1970, 1, 1, 0, 0, kIntMin)));
159
- EXPECT_EQ("-2182-11-20T18:37:52",
160
- absl::FormatCivilTime(absl::CivilSecond(
161
- 1970, 1, 1, 0, kIntMin, kIntMin)));
138
+ EXPECT_EQ("1901-12-13T20:45:52", absl::FormatCivilTime(absl::CivilSecond(
139
+ 1970, 1, 1, 0, 0, kIntMin)));
140
+ EXPECT_EQ("-2182-11-20T18:37:52", absl::FormatCivilTime(absl::CivilSecond(
141
+ 1970, 1, 1, 0, kIntMin, kIntMin)));
162
142
  EXPECT_EQ("-247165-02-11T10:37:52",
163
- absl::FormatCivilTime(absl::CivilSecond(
164
- 1970, 1, 1, kIntMin, kIntMin, kIntMin)));
143
+ absl::FormatCivilTime(
144
+ absl::CivilSecond(1970, 1, 1, kIntMin, kIntMin, kIntMin)));
165
145
  EXPECT_EQ("-6126776-08-01T10:37:52",
166
- absl::FormatCivilTime(absl::CivilSecond(
167
- 1970, 1, kIntMin, kIntMin, kIntMin, kIntMin)));
146
+ absl::FormatCivilTime(absl::CivilSecond(1970, 1, kIntMin, kIntMin,
147
+ kIntMin, kIntMin)));
168
148
  EXPECT_EQ("-185083747-10-31T10:37:52",
169
149
  absl::FormatCivilTime(absl::CivilSecond(
170
150
  1970, kIntMin, kIntMin, kIntMin, kIntMin, kIntMin)));
@@ -173,14 +153,10 @@ TEST(CivilTime, FieldsConstructionLimits) {
173
153
  TEST(CivilTime, RangeLimits) {
174
154
  const absl::civil_year_t kYearMax =
175
155
  std::numeric_limits<absl::civil_year_t>::max();
176
- EXPECT_EQ(absl::CivilYear(kYearMax),
177
- absl::CivilYear::max());
178
- EXPECT_EQ(absl::CivilMonth(kYearMax, 12),
179
- absl::CivilMonth::max());
180
- EXPECT_EQ(absl::CivilDay(kYearMax, 12, 31),
181
- absl::CivilDay::max());
182
- EXPECT_EQ(absl::CivilHour(kYearMax, 12, 31, 23),
183
- absl::CivilHour::max());
156
+ EXPECT_EQ(absl::CivilYear(kYearMax), absl::CivilYear::max());
157
+ EXPECT_EQ(absl::CivilMonth(kYearMax, 12), absl::CivilMonth::max());
158
+ EXPECT_EQ(absl::CivilDay(kYearMax, 12, 31), absl::CivilDay::max());
159
+ EXPECT_EQ(absl::CivilHour(kYearMax, 12, 31, 23), absl::CivilHour::max());
184
160
  EXPECT_EQ(absl::CivilMinute(kYearMax, 12, 31, 23, 59),
185
161
  absl::CivilMinute::max());
186
162
  EXPECT_EQ(absl::CivilSecond(kYearMax, 12, 31, 23, 59, 59),
@@ -188,16 +164,11 @@ TEST(CivilTime, RangeLimits) {
188
164
 
189
165
  const absl::civil_year_t kYearMin =
190
166
  std::numeric_limits<absl::civil_year_t>::min();
191
- EXPECT_EQ(absl::CivilYear(kYearMin),
192
- absl::CivilYear::min());
193
- EXPECT_EQ(absl::CivilMonth(kYearMin, 1),
194
- absl::CivilMonth::min());
195
- EXPECT_EQ(absl::CivilDay(kYearMin, 1, 1),
196
- absl::CivilDay::min());
197
- EXPECT_EQ(absl::CivilHour(kYearMin, 1, 1, 0),
198
- absl::CivilHour::min());
199
- EXPECT_EQ(absl::CivilMinute(kYearMin, 1, 1, 0, 0),
200
- absl::CivilMinute::min());
167
+ EXPECT_EQ(absl::CivilYear(kYearMin), absl::CivilYear::min());
168
+ EXPECT_EQ(absl::CivilMonth(kYearMin, 1), absl::CivilMonth::min());
169
+ EXPECT_EQ(absl::CivilDay(kYearMin, 1, 1), absl::CivilDay::min());
170
+ EXPECT_EQ(absl::CivilHour(kYearMin, 1, 1, 0), absl::CivilHour::min());
171
+ EXPECT_EQ(absl::CivilMinute(kYearMin, 1, 1, 0, 0), absl::CivilMinute::min());
201
172
  EXPECT_EQ(absl::CivilSecond(kYearMin, 1, 1, 0, 0, 0),
202
173
  absl::CivilSecond::min());
203
174
  }
@@ -250,8 +221,7 @@ TEST(CivilTime, ImplicitCrossAlignment) {
250
221
  (std::is_convertible<absl::CivilSecond, absl::CivilMinute>::value));
251
222
  EXPECT_FALSE(
252
223
  (std::is_convertible<absl::CivilSecond, absl::CivilHour>::value));
253
- EXPECT_FALSE(
254
- (std::is_convertible<absl::CivilSecond, absl::CivilDay>::value));
224
+ EXPECT_FALSE((std::is_convertible<absl::CivilSecond, absl::CivilDay>::value));
255
225
  EXPECT_FALSE(
256
226
  (std::is_convertible<absl::CivilSecond, absl::CivilMonth>::value));
257
227
  EXPECT_FALSE(
@@ -259,27 +229,20 @@ TEST(CivilTime, ImplicitCrossAlignment) {
259
229
 
260
230
  EXPECT_FALSE(
261
231
  (std::is_convertible<absl::CivilMinute, absl::CivilHour>::value));
262
- EXPECT_FALSE(
263
- (std::is_convertible<absl::CivilMinute, absl::CivilDay>::value));
232
+ EXPECT_FALSE((std::is_convertible<absl::CivilMinute, absl::CivilDay>::value));
264
233
  EXPECT_FALSE(
265
234
  (std::is_convertible<absl::CivilMinute, absl::CivilMonth>::value));
266
235
  EXPECT_FALSE(
267
236
  (std::is_convertible<absl::CivilMinute, absl::CivilYear>::value));
268
237
 
269
- EXPECT_FALSE(
270
- (std::is_convertible<absl::CivilHour, absl::CivilDay>::value));
271
- EXPECT_FALSE(
272
- (std::is_convertible<absl::CivilHour, absl::CivilMonth>::value));
273
- EXPECT_FALSE(
274
- (std::is_convertible<absl::CivilHour, absl::CivilYear>::value));
238
+ EXPECT_FALSE((std::is_convertible<absl::CivilHour, absl::CivilDay>::value));
239
+ EXPECT_FALSE((std::is_convertible<absl::CivilHour, absl::CivilMonth>::value));
240
+ EXPECT_FALSE((std::is_convertible<absl::CivilHour, absl::CivilYear>::value));
275
241
 
276
- EXPECT_FALSE(
277
- (std::is_convertible<absl::CivilDay, absl::CivilMonth>::value));
278
- EXPECT_FALSE(
279
- (std::is_convertible<absl::CivilDay, absl::CivilYear>::value));
242
+ EXPECT_FALSE((std::is_convertible<absl::CivilDay, absl::CivilMonth>::value));
243
+ EXPECT_FALSE((std::is_convertible<absl::CivilDay, absl::CivilYear>::value));
280
244
 
281
- EXPECT_FALSE(
282
- (std::is_convertible<absl::CivilMonth, absl::CivilYear>::value));
245
+ EXPECT_FALSE((std::is_convertible<absl::CivilMonth, absl::CivilYear>::value));
283
246
  }
284
247
 
285
248
  TEST(CivilTime, ExplicitCrossAlignment) {
@@ -417,8 +380,7 @@ TEST(CivilTime, Relational) {
417
380
  // Tests the relational operators of two different civil-time types.
418
381
  TEST_RELATIONAL(absl::CivilDay(2014, 1, 1),
419
382
  absl::CivilMinute(2014, 1, 1, 1, 1));
420
- TEST_RELATIONAL(absl::CivilDay(2014, 1, 1),
421
- absl::CivilMonth(2014, 2));
383
+ TEST_RELATIONAL(absl::CivilDay(2014, 1, 1), absl::CivilMonth(2014, 2));
422
384
 
423
385
  #undef TEST_RELATIONAL
424
386
  }
@@ -812,8 +774,7 @@ TEST(CivilTime, ParseEdgeCases) {
812
774
  EXPECT_EQ("-9223372036854775808-01-01T00:00", absl::FormatCivilTime(mm));
813
775
 
814
776
  absl::CivilHour hh;
815
- EXPECT_TRUE(
816
- absl::ParseLenientCivilTime("9223372036854775807-12-31T23", &hh));
777
+ EXPECT_TRUE(absl::ParseLenientCivilTime("9223372036854775807-12-31T23", &hh));
817
778
  EXPECT_EQ("9223372036854775807-12-31T23", absl::FormatCivilTime(hh));
818
779
  EXPECT_TRUE(
819
780
  absl::ParseLenientCivilTime("-9223372036854775808-01-01T00", &hh));
@@ -1181,19 +1142,13 @@ TEST(CivilTime, LeapYears) {
1181
1142
  int day;
1182
1143
  } leap_day; // The date of the day after Feb 28.
1183
1144
  } kLeapYearTable[]{
1184
- {1900, 365, {3, 1}},
1185
- {1999, 365, {3, 1}},
1145
+ {1900, 365, {3, 1}}, {1999, 365, {3, 1}},
1186
1146
  {2000, 366, {2, 29}}, // leap year
1187
- {2001, 365, {3, 1}},
1188
- {2002, 365, {3, 1}},
1189
- {2003, 365, {3, 1}},
1190
- {2004, 366, {2, 29}}, // leap year
1191
- {2005, 365, {3, 1}},
1192
- {2006, 365, {3, 1}},
1193
- {2007, 365, {3, 1}},
1194
- {2008, 366, {2, 29}}, // leap year
1195
- {2009, 365, {3, 1}},
1196
- {2100, 365, {3, 1}},
1147
+ {2001, 365, {3, 1}}, {2002, 365, {3, 1}},
1148
+ {2003, 365, {3, 1}}, {2004, 366, {2, 29}}, // leap year
1149
+ {2005, 365, {3, 1}}, {2006, 365, {3, 1}},
1150
+ {2007, 365, {3, 1}}, {2008, 366, {2, 29}}, // leap year
1151
+ {2009, 365, {3, 1}}, {2100, 365, {3, 1}},
1197
1152
  };
1198
1153
 
1199
1154
  for (int i = 0; i < ABSL_ARRAYSIZE(kLeapYearTable); ++i) {
@@ -1223,7 +1178,7 @@ TEST(CivilTime, FirstThursdayInMonth) {
1223
1178
 
1224
1179
  // Bonus: Date of Thanksgiving in the United States
1225
1180
  // Rule: Fourth Thursday of November
1226
- const absl::CivilDay thanksgiving = thursday + 7 * 3;
1181
+ const absl::CivilDay thanksgiving = thursday + 7 * 3;
1227
1182
  EXPECT_EQ("2014-11-27", absl::FormatCivilTime(thanksgiving));
1228
1183
  }
1229
1184
 
@@ -125,7 +125,7 @@ class UnscaledCycleClockWrapperForGetCurrentTime {
125
125
  // spin-delay tuning.
126
126
 
127
127
  // Acquire seqlock (*seq) and return the value to be written to unlock.
128
- static inline uint64_t SeqAcquire(std::atomic<uint64_t> *seq) {
128
+ static inline uint64_t SeqAcquire(std::atomic<uint64_t>* seq) {
129
129
  uint64_t x = seq->fetch_add(1, std::memory_order_relaxed);
130
130
 
131
131
  // We put a release fence between update to *seq and writes to shared data.
@@ -140,7 +140,7 @@ static inline uint64_t SeqAcquire(std::atomic<uint64_t> *seq) {
140
140
 
141
141
  // Release seqlock (*seq) by writing x to it---a value previously returned by
142
142
  // SeqAcquire.
143
- static inline void SeqRelease(std::atomic<uint64_t> *seq, uint64_t x) {
143
+ static inline void SeqRelease(std::atomic<uint64_t>* seq, uint64_t x) {
144
144
  // The unlock store to *seq must have release ordering so that all
145
145
  // updates to shared data must finish before this store.
146
146
  seq->store(x, std::memory_order_release); // release lock for readers
@@ -218,7 +218,7 @@ ABSL_CONST_INIT static TimeState time_state;
218
218
  // assumed to be complete resyncs, which shouldn't happen. If they do, a full
219
219
  // reinitialization of the outer algorithm should occur.)
220
220
  static int64_t GetCurrentTimeNanosFromKernel(uint64_t last_cycleclock,
221
- uint64_t *cycleclock)
221
+ uint64_t* cycleclock)
222
222
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(time_state.lock) {
223
223
  uint64_t local_approx_syscall_time_in_cycles = // local copy
224
224
  time_state.approx_syscall_time_in_cycles.load(std::memory_order_relaxed);
@@ -274,8 +274,8 @@ static int64_t GetCurrentTimeNanosSlowPath() ABSL_ATTRIBUTE_COLD;
274
274
  // Read the contents of *atomic into *sample.
275
275
  // Each field is read atomically, but to maintain atomicity between fields,
276
276
  // the access must be done under a lock.
277
- static void ReadTimeSampleAtomic(const struct TimeSampleAtomic *atomic,
278
- struct TimeSample *sample) {
277
+ static void ReadTimeSampleAtomic(const struct TimeSampleAtomic* atomic,
278
+ struct TimeSample* sample) {
279
279
  sample->base_ns = atomic->base_ns.load(std::memory_order_relaxed);
280
280
  sample->base_cycles = atomic->base_cycles.load(std::memory_order_relaxed);
281
281
  sample->nsscaled_per_cycle =
@@ -338,18 +338,20 @@ int64_t GetCurrentTimeNanos() {
338
338
  // to the same shared data.
339
339
  seq_read0 = time_state.seq.load(std::memory_order_acquire);
340
340
 
341
- base_ns = time_state.last_sample.base_ns.load(std::memory_order_relaxed);
341
+ // The algorithm does not require that the following four loads be ordered
342
+ // with respect to one another; it requires only that they precede the load of
343
+ // time_state.seq below them. Nevertheless, we mark each of them as an
344
+ // acquire-load, rather than using a barrier immediately before the
345
+ // time_state.seq load, because the former is likely faster on most CPUs of
346
+ // interest. Architectures that may see a regression because of this approach
347
+ // include PowerPC and MIPS.
348
+ base_ns = time_state.last_sample.base_ns.load(std::memory_order_acquire);
342
349
  base_cycles =
343
- time_state.last_sample.base_cycles.load(std::memory_order_relaxed);
350
+ time_state.last_sample.base_cycles.load(std::memory_order_acquire);
344
351
  nsscaled_per_cycle =
345
- time_state.last_sample.nsscaled_per_cycle.load(std::memory_order_relaxed);
352
+ time_state.last_sample.nsscaled_per_cycle.load(std::memory_order_acquire);
346
353
  min_cycles_per_sample = time_state.last_sample.min_cycles_per_sample.load(
347
- std::memory_order_relaxed);
348
-
349
- // This acquire fence pairs with the release fence in SeqAcquire. Since it
350
- // is sequenced between reads of shared data and seq_read1, the reads of
351
- // shared data are effectively acquiring.
352
- std::atomic_thread_fence(std::memory_order_acquire);
354
+ std::memory_order_acquire);
353
355
 
354
356
  // The shared-data reads are effectively acquire ordered, and the
355
357
  // shared-data writes are effectively release ordered. Therefore if our
@@ -397,7 +399,7 @@ static uint64_t SafeDivideAndScale(uint64_t a, uint64_t b) {
397
399
 
398
400
  static uint64_t UpdateLastSample(
399
401
  uint64_t now_cycles, uint64_t now_ns, uint64_t delta_cycles,
400
- const struct TimeSample *sample) ABSL_ATTRIBUTE_COLD;
402
+ const struct TimeSample* sample) ABSL_ATTRIBUTE_COLD;
401
403
 
402
404
  // The slow path of GetCurrentTimeNanos(). This is taken while gathering
403
405
  // initial samples, when enough time has elapsed since the last sample, and if
@@ -454,7 +456,7 @@ static int64_t GetCurrentTimeNanosSlowPath()
454
456
  // for readers. Returns the new estimated time.
455
457
  static uint64_t UpdateLastSample(uint64_t now_cycles, uint64_t now_ns,
456
458
  uint64_t delta_cycles,
457
- const struct TimeSample *sample)
459
+ const struct TimeSample* sample)
458
460
  ABSL_EXCLUSIVE_LOCKS_REQUIRED(time_state.lock) {
459
461
  uint64_t estimated_base_ns = now_ns;
460
462
  uint64_t lock_value =
@@ -114,8 +114,8 @@ TEST(SleepFor, Bounded) {
114
114
  EXPECT_TRUE(AssertSleepForBounded(d, early, late, timeout,
115
115
  AlarmPolicy::kWithoutAlarm));
116
116
  #if defined(ABSL_HAVE_ALARM)
117
- EXPECT_TRUE(AssertSleepForBounded(d, early, late, timeout,
118
- AlarmPolicy::kWithAlarm));
117
+ EXPECT_TRUE(
118
+ AssertSleepForBounded(d, early, late, timeout, AlarmPolicy::kWithAlarm));
119
119
  #endif
120
120
  }
121
121
 
@@ -358,6 +358,150 @@ void BM_Duration_ToInt64Hours(benchmark::State& state) {
358
358
  }
359
359
  BENCHMARK(BM_Duration_ToInt64Hours);
360
360
 
361
+ //
362
+ // ToDoubleXYZ
363
+ //
364
+ void BM_Duration_ToDoubleNanoseconds(benchmark::State& state) {
365
+ absl::Duration d = absl::Seconds(100000);
366
+ while (state.KeepRunning()) {
367
+ benchmark::DoNotOptimize(d);
368
+ double result = absl::ToDoubleNanoseconds(d);
369
+ benchmark::DoNotOptimize(result);
370
+ }
371
+ }
372
+ BENCHMARK(BM_Duration_ToDoubleNanoseconds);
373
+
374
+ void BM_Duration_ToDoubleMicroseconds(benchmark::State& state) {
375
+ absl::Duration d = absl::Seconds(100000);
376
+ while (state.KeepRunning()) {
377
+ benchmark::DoNotOptimize(d);
378
+ double result = absl::ToDoubleMicroseconds(d);
379
+ benchmark::DoNotOptimize(result);
380
+ }
381
+ }
382
+ BENCHMARK(BM_Duration_ToDoubleMicroseconds);
383
+
384
+ void BM_Duration_ToDoubleMilliseconds(benchmark::State& state) {
385
+ absl::Duration d = absl::Seconds(100000);
386
+ while (state.KeepRunning()) {
387
+ benchmark::DoNotOptimize(d);
388
+ double result = absl::ToDoubleMilliseconds(d);
389
+ benchmark::DoNotOptimize(result);
390
+ }
391
+ }
392
+ BENCHMARK(BM_Duration_ToDoubleMilliseconds);
393
+
394
+ void BM_Duration_ToDoubleSeconds(benchmark::State& state) {
395
+ absl::Duration d = absl::Seconds(100000);
396
+ while (state.KeepRunning()) {
397
+ benchmark::DoNotOptimize(d);
398
+ double result = absl::ToDoubleSeconds(d);
399
+ benchmark::DoNotOptimize(result);
400
+ }
401
+ }
402
+ BENCHMARK(BM_Duration_ToDoubleSeconds);
403
+
404
+ void BM_Duration_ToDoubleMinutes(benchmark::State& state) {
405
+ absl::Duration d = absl::Seconds(100000);
406
+ while (state.KeepRunning()) {
407
+ benchmark::DoNotOptimize(d);
408
+ double result = absl::ToDoubleMinutes(d);
409
+ benchmark::DoNotOptimize(result);
410
+ }
411
+ }
412
+ BENCHMARK(BM_Duration_ToDoubleMinutes);
413
+
414
+ void BM_Duration_ToDoubleHours(benchmark::State& state) {
415
+ absl::Duration d = absl::Seconds(100000);
416
+ while (state.KeepRunning()) {
417
+ benchmark::DoNotOptimize(d);
418
+ double result = absl::ToDoubleHours(d);
419
+ benchmark::DoNotOptimize(result);
420
+ }
421
+ }
422
+ BENCHMARK(BM_Duration_ToDoubleHours);
423
+
424
+ //
425
+ // ToDoubleXYZ Latency
426
+ //
427
+ void BM_Duration_ToDoubleNanoseconds_Latency(benchmark::State& state) {
428
+ absl::Duration d1 = absl::Seconds(100000);
429
+ absl::Duration d2 = absl::Seconds(100000);
430
+ double result = 1;
431
+ while (state.KeepRunning()) {
432
+ benchmark::DoNotOptimize(d1);
433
+ benchmark::DoNotOptimize(d2);
434
+ benchmark::DoNotOptimize(result);
435
+ result = absl::ToDoubleNanoseconds(result < 0 ? d1 : d2);
436
+ }
437
+ }
438
+ BENCHMARK(BM_Duration_ToDoubleNanoseconds_Latency);
439
+
440
+ void BM_Duration_ToDoubleMicroseconds_Latency(benchmark::State& state) {
441
+ absl::Duration d1 = absl::Seconds(100000);
442
+ absl::Duration d2 = absl::Seconds(100000);
443
+ double result = 1;
444
+ while (state.KeepRunning()) {
445
+ benchmark::DoNotOptimize(d1);
446
+ benchmark::DoNotOptimize(d2);
447
+ benchmark::DoNotOptimize(result);
448
+ result = absl::ToDoubleMicroseconds(result < 0 ? d1 : d2);
449
+ }
450
+ }
451
+ BENCHMARK(BM_Duration_ToDoubleMicroseconds_Latency);
452
+
453
+ void BM_Duration_ToDoubleMilliseconds_Latency(benchmark::State& state) {
454
+ absl::Duration d1 = absl::Seconds(100000);
455
+ absl::Duration d2 = absl::Seconds(100000);
456
+ double result = 1;
457
+ while (state.KeepRunning()) {
458
+ benchmark::DoNotOptimize(d1);
459
+ benchmark::DoNotOptimize(d2);
460
+ benchmark::DoNotOptimize(result);
461
+ result = absl::ToDoubleMilliseconds(result < 0 ? d1 : d2);
462
+ }
463
+ }
464
+ BENCHMARK(BM_Duration_ToDoubleMilliseconds_Latency);
465
+
466
+ void BM_Duration_ToDoubleSeconds_Latency(benchmark::State& state) {
467
+ absl::Duration d1 = absl::Seconds(100000);
468
+ absl::Duration d2 = absl::Seconds(100000);
469
+ double result = 1;
470
+ while (state.KeepRunning()) {
471
+ benchmark::DoNotOptimize(d1);
472
+ benchmark::DoNotOptimize(d2);
473
+ benchmark::DoNotOptimize(result);
474
+ result = absl::ToDoubleSeconds(result < 0 ? d1 : d2);
475
+ }
476
+ }
477
+ BENCHMARK(BM_Duration_ToDoubleSeconds_Latency);
478
+
479
+ void BM_Duration_ToDoubleMinutes_Latency(benchmark::State& state) {
480
+ absl::Duration d1 = absl::Seconds(100000);
481
+ absl::Duration d2 = absl::Seconds(100000);
482
+ double result = 1;
483
+ while (state.KeepRunning()) {
484
+ benchmark::DoNotOptimize(d1);
485
+ benchmark::DoNotOptimize(d2);
486
+ benchmark::DoNotOptimize(result);
487
+ result = absl::ToDoubleMinutes(result < 0 ? d1 : d2);
488
+ }
489
+ }
490
+ BENCHMARK(BM_Duration_ToDoubleMinutes_Latency);
491
+
492
+ void BM_Duration_ToDoubleHours_Latency(benchmark::State& state) {
493
+ absl::Duration d1 = absl::Seconds(100000);
494
+ absl::Duration d2 = absl::Seconds(100000);
495
+ double result = 1;
496
+ while (state.KeepRunning()) {
497
+ benchmark::DoNotOptimize(d1);
498
+ benchmark::DoNotOptimize(d2);
499
+ benchmark::DoNotOptimize(result);
500
+ result = absl::ToDoubleHours(result < 0 ? d1 : d2);
501
+ }
502
+ }
503
+ BENCHMARK(BM_Duration_ToDoubleHours_Latency);
504
+
361
505
  //
362
506
  // To/FromTimespec
363
507
  //
@@ -57,8 +57,7 @@ absl::Duration ApproxYears(int64_t n) { return absl::Hours(n) * 365 * 24; }
57
57
  // timespec ts1, ts2;
58
58
  // EXPECT_THAT(ts1, TimespecMatcher(ts2));
59
59
  MATCHER_P(TimespecMatcher, ts, "") {
60
- if (ts.tv_sec == arg.tv_sec && ts.tv_nsec == arg.tv_nsec)
61
- return true;
60
+ if (ts.tv_sec == arg.tv_sec && ts.tv_nsec == arg.tv_nsec) return true;
62
61
  *result_listener << "expected: {" << ts.tv_sec << ", " << ts.tv_nsec << "} ";
63
62
  *result_listener << "actual: {" << arg.tv_sec << ", " << arg.tv_nsec << "}";
64
63
  return false;
@@ -68,8 +67,7 @@ MATCHER_P(TimespecMatcher, ts, "") {
68
67
  // timeval tv1, tv2;
69
68
  // EXPECT_THAT(tv1, TimevalMatcher(tv2));
70
69
  MATCHER_P(TimevalMatcher, tv, "") {
71
- if (tv.tv_sec == arg.tv_sec && tv.tv_usec == arg.tv_usec)
72
- return true;
70
+ if (tv.tv_sec == arg.tv_sec && tv.tv_usec == arg.tv_usec) return true;
73
71
  *result_listener << "expected: {" << tv.tv_sec << ", " << tv.tv_usec << "} ";
74
72
  *result_listener << "actual: {" << arg.tv_sec << ", " << arg.tv_usec << "}";
75
73
  return false;
@@ -223,12 +221,12 @@ TEST(Duration, ToConversionDeprecated) {
223
221
 
224
222
  template <int64_t N>
225
223
  void TestFromChronoBasicEquality() {
226
- using std::chrono::nanoseconds;
224
+ using std::chrono::hours;
227
225
  using std::chrono::microseconds;
228
226
  using std::chrono::milliseconds;
229
- using std::chrono::seconds;
230
227
  using std::chrono::minutes;
231
- using std::chrono::hours;
228
+ using std::chrono::nanoseconds;
229
+ using std::chrono::seconds;
232
230
 
233
231
  static_assert(absl::Nanoseconds(N) == absl::FromChrono(nanoseconds(N)), "");
234
232
  static_assert(absl::Microseconds(N) == absl::FromChrono(microseconds(N)), "");
@@ -288,12 +286,12 @@ TEST(Duration, FromChrono) {
288
286
 
289
287
  template <int64_t N>
290
288
  void TestToChrono() {
291
- using std::chrono::nanoseconds;
289
+ using std::chrono::hours;
292
290
  using std::chrono::microseconds;
293
291
  using std::chrono::milliseconds;
294
- using std::chrono::seconds;
295
292
  using std::chrono::minutes;
296
- using std::chrono::hours;
293
+ using std::chrono::nanoseconds;
294
+ using std::chrono::seconds;
297
295
 
298
296
  EXPECT_EQ(nanoseconds(N), absl::ToChronoNanoseconds(absl::Nanoseconds(N)));
299
297
  EXPECT_EQ(microseconds(N), absl::ToChronoMicroseconds(absl::Microseconds(N)));
@@ -320,12 +318,12 @@ void TestToChrono() {
320
318
  }
321
319
 
322
320
  TEST(Duration, ToChrono) {
323
- using std::chrono::nanoseconds;
321
+ using std::chrono::hours;
324
322
  using std::chrono::microseconds;
325
323
  using std::chrono::milliseconds;
326
- using std::chrono::seconds;
327
324
  using std::chrono::minutes;
328
- using std::chrono::hours;
325
+ using std::chrono::nanoseconds;
326
+ using std::chrono::seconds;
329
327
 
330
328
  TestToChrono<kint64min>();
331
329
  TestToChrono<-1>();
@@ -546,18 +544,18 @@ TEST(Duration, InfinityMultiplication) {
546
544
  const absl::Duration sec_min = absl::Seconds(kint64min);
547
545
  const absl::Duration inf = absl::InfiniteDuration();
548
546
 
549
- #define TEST_INF_MUL_WITH_TYPE(T) \
550
- EXPECT_EQ(inf, inf * static_cast<T>(2)); \
551
- EXPECT_EQ(-inf, inf * static_cast<T>(-2)); \
552
- EXPECT_EQ(-inf, -inf * static_cast<T>(2)); \
553
- EXPECT_EQ(inf, -inf * static_cast<T>(-2)); \
554
- EXPECT_EQ(inf, inf * static_cast<T>(0)); \
555
- EXPECT_EQ(-inf, -inf * static_cast<T>(0)); \
556
- EXPECT_EQ(inf, sec_max * static_cast<T>(2)); \
557
- EXPECT_EQ(inf, sec_min * static_cast<T>(-2)); \
558
- EXPECT_EQ(inf, (sec_max / static_cast<T>(2)) * static_cast<T>(3)); \
559
- EXPECT_EQ(-inf, sec_max * static_cast<T>(-2)); \
560
- EXPECT_EQ(-inf, sec_min * static_cast<T>(2)); \
547
+ #define TEST_INF_MUL_WITH_TYPE(T) \
548
+ EXPECT_EQ(inf, inf* static_cast<T>(2)); \
549
+ EXPECT_EQ(-inf, inf* static_cast<T>(-2)); \
550
+ EXPECT_EQ(-inf, -inf* static_cast<T>(2)); \
551
+ EXPECT_EQ(inf, -inf* static_cast<T>(-2)); \
552
+ EXPECT_EQ(inf, inf* static_cast<T>(0)); \
553
+ EXPECT_EQ(-inf, -inf* static_cast<T>(0)); \
554
+ EXPECT_EQ(inf, sec_max* static_cast<T>(2)); \
555
+ EXPECT_EQ(inf, sec_min* static_cast<T>(-2)); \
556
+ EXPECT_EQ(inf, (sec_max / static_cast<T>(2)) * static_cast<T>(3)); \
557
+ EXPECT_EQ(-inf, sec_max* static_cast<T>(-2)); \
558
+ EXPECT_EQ(-inf, sec_min* static_cast<T>(2)); \
561
559
  EXPECT_EQ(-inf, (sec_min / static_cast<T>(2)) * static_cast<T>(3));
562
560
 
563
561
  TEST_INF_MUL_WITH_TYPE(int64_t); // NOLINT(readability/function)
@@ -932,9 +930,9 @@ TEST(Duration, RelationalOperators) {
932
930
  #ifdef ABSL_INTERNAL_TIME_HAS_THREE_WAY_COMPARISON
933
931
 
934
932
  TEST(Duration, SpaceshipOperators) {
935
- #define TEST_REL_OPS(UNIT) \
933
+ #define TEST_REL_OPS(UNIT) \
936
934
  static_assert(UNIT(2) <=> UNIT(2) == std::strong_ordering::equal, ""); \
937
- static_assert(UNIT(1) <=> UNIT(2) == std::strong_ordering::less, ""); \
935
+ static_assert(UNIT(1) <=> UNIT(2) == std::strong_ordering::less, ""); \
938
936
  static_assert(UNIT(3) <=> UNIT(2) == std::strong_ordering::greater, "");
939
937
 
940
938
  TEST_REL_OPS(absl::Nanoseconds);
@@ -1159,8 +1157,7 @@ TEST(Duration, Multiplication) {
1159
1157
  EXPECT_EQ(0, absl::Nanoseconds(-1) / absl::Seconds(1)); // Actual -1e-9
1160
1158
 
1161
1159
  // Tests identity a = (a/b)*b + a%b
1162
- #define TEST_MOD_IDENTITY(a, b) \
1163
- EXPECT_EQ((a), ((a) / (b))*(b) + ((a)%(b)))
1160
+ #define TEST_MOD_IDENTITY(a, b) EXPECT_EQ((a), ((a) / (b)) * (b) + ((a) % (b)))
1164
1161
 
1165
1162
  TEST_MOD_IDENTITY(absl::Seconds(0), absl::Seconds(2));
1166
1163
  TEST_MOD_IDENTITY(absl::Seconds(1), absl::Seconds(1));
@@ -59,7 +59,13 @@ cc_library(
59
59
  "src/time_zone_posix.h",
60
60
  "src/tzfile.h",
61
61
  "src/zone_info_source.cc",
62
- ],
62
+ ] + select({
63
+ "@platforms//os:windows": [
64
+ "src/time_zone_name_win.cc",
65
+ "src/time_zone_name_win.h",
66
+ ],
67
+ "//conditions:default": [],
68
+ }),
63
69
  hdrs = [
64
70
  "include/cctz/time_zone.h",
65
71
  "include/cctz/zone_info_source.h",
@@ -13,12 +13,14 @@
13
13
  // limitations under the License.
14
14
 
15
15
  #if !defined(HAS_STRPTIME)
16
- #if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(__VXWORKS__)
16
+ #if defined(_MSC_VER) || defined(__MINGW32__) || defined(__VXWORKS__)
17
+ #define HAS_STRPTIME 0
18
+ #else
17
19
  #define HAS_STRPTIME 1 // Assume everyone else has strptime().
18
20
  #endif
19
21
  #endif
20
22
 
21
- #if defined(HAS_STRPTIME) && HAS_STRPTIME
23
+ #if HAS_STRPTIME
22
24
  #if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
23
25
  #define _XOPEN_SOURCE 500 // Exposes definitions for SUSv2 (UNIX 98).
24
26
  #endif