grpc 1.84.1 → 1.85.0.pre1

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.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (1005) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +40 -27
  3. data/etc/roots.pem +7940 -6467
  4. data/include/grpc/event_engine/memory_allocator.h +1 -0
  5. data/include/grpc/grpc.h +3 -0
  6. data/include/grpc/grpc_security_constants.h +2 -0
  7. data/include/grpc/impl/channel_arg_names.h +4 -0
  8. data/src/core/call/call_filters.h +10 -10
  9. data/src/core/{lib/security/authorization → call}/evaluate_args.cc +22 -1
  10. data/src/core/{lib/security/authorization → call}/evaluate_args.h +19 -5
  11. data/src/core/call/filter_fusion.h +15 -15
  12. data/src/core/call/interception_chain.h +3 -3
  13. data/src/core/call/metadata_batch.cc +1 -0
  14. data/src/core/call/metadata_batch.h +45 -33
  15. data/src/core/call/parsed_metadata.h +3 -3
  16. data/src/core/call/request_buffer.cc +6 -6
  17. data/src/core/call/request_buffer.h +1 -1
  18. data/src/core/channelz/channel_trace.cc +5 -5
  19. data/src/core/channelz/channel_trace.h +1 -1
  20. data/src/core/channelz/channelz.cc +9 -9
  21. data/src/core/channelz/channelz.h +12 -12
  22. data/src/core/channelz/channelz_registry.cc +10 -10
  23. data/src/core/channelz/ztrace_collector.h +5 -5
  24. data/src/core/client_channel/client_channel.cc +4 -4
  25. data/src/core/client_channel/client_channel_filter.cc +14 -14
  26. data/src/core/client_channel/global_subchannel_pool.cc +4 -4
  27. data/src/core/client_channel/subchannel.cc +24 -23
  28. data/src/core/client_channel/subchannel_stream_client.cc +5 -5
  29. data/src/core/credentials/call/external/aws_external_account_credentials.cc +7 -7
  30. data/src/core/credentials/call/external/aws_request_signer.cc +16 -0
  31. data/src/core/credentials/call/external/external_account_credentials.cc +4 -4
  32. data/src/core/credentials/call/regional_access_boundary_fetcher.cc +9 -9
  33. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +4 -4
  34. data/src/core/credentials/transport/google_default/google_default_credentials.cc +3 -3
  35. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +1 -1
  36. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +9 -9
  37. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +1 -1
  38. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +6 -6
  39. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +3 -3
  40. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +4 -4
  41. data/src/core/credentials/transport/tls/ssl_utils.cc +10 -0
  42. data/src/core/credentials/transport/tls/tls_security_connector.cc +10 -10
  43. data/src/core/credentials/transport/tls/tls_security_connector.h +6 -6
  44. data/src/core/credentials/transport/tls/tls_utils.h +9 -0
  45. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +1 -1
  46. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
  47. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
  48. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +1 -1
  49. data/src/core/ext/filters/http/message_compress/compression_filter.cc +15 -0
  50. data/src/core/ext/filters/rbac/rbac_filter.h +1 -1
  51. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +5 -5
  52. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +30 -21
  53. data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -11
  54. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +14 -11
  55. data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -0
  56. data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -4
  57. data/src/core/ext/transport/chttp2/transport/frame.h +9 -0
  58. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -9
  59. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -2
  60. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +16 -18
  61. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +2 -1
  62. data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +277 -189
  63. data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +40 -17
  64. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +12 -24
  65. data/src/core/ext/transport/chttp2/transport/http2_transport.h +3 -29
  66. data/src/core/ext/transport/chttp2/transport/internal.h +2 -2
  67. data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -2
  68. data/src/core/ext/transport/chttp2/transport/read_context.h +96 -3
  69. data/src/core/ext/transport/chttp2/transport/reclaimer.cc +32 -0
  70. data/src/core/ext/transport/chttp2/transport/reclaimer.h +64 -0
  71. data/src/core/ext/transport/chttp2/transport/security_frame.h +8 -8
  72. data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +17 -9
  73. data/src/core/ext/transport/chttp2/transport/write_cycle.h +23 -3
  74. data/src/core/ext/transport/inproc/inproc_transport.cc +5 -5
  75. data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb.h +137 -73
  76. data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb_minitable.c +45 -25
  77. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb.h +6 -6
  78. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.c +4 -4
  79. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.h +5 -5
  80. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb.h +46 -26
  81. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.c +17 -14
  82. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.h +5 -5
  83. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb.h +5 -5
  84. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.c +3 -3
  85. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.h +5 -5
  86. data/src/core/ext/upb-gen/grpc/health/v1/health.upb.h +329 -0
  87. data/src/core/ext/upb-gen/grpc/health/v1/health.upb_minitable.c +128 -0
  88. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/health/v1/health.upb_minitable.h +8 -5
  89. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb.h +5 -5
  90. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.c +3 -3
  91. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.h +5 -5
  92. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb.h +185 -23
  93. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.c +20 -12
  94. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.h +5 -5
  95. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb.h +58 -42
  96. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.c +17 -12
  97. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.h +5 -5
  98. data/src/core/ext/upbdefs-gen/grpc/channelz/v1/channelz.upbdefs.c +567 -549
  99. data/src/core/ext/upbdefs-gen/grpc/lookup/v1/rls_config.upbdefs.c +182 -0
  100. data/src/core/ext/upbdefs-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upbdefs.h +14 -14
  101. data/src/core/filter/ext_proc/ext_proc_filter.cc +1603 -46
  102. data/src/core/filter/ext_proc/ext_proc_filter.h +55 -22
  103. data/src/core/filter/ext_proc/ext_proc_messages.cc +106 -51
  104. data/src/core/filter/ext_proc/ext_proc_messages.h +36 -9
  105. data/src/core/handshaker/handshaker.cc +4 -4
  106. data/src/core/handshaker/http_connect/http_connect_client_handshaker.cc +3 -3
  107. data/src/core/handshaker/security/pipelined_secure_endpoint.cc +10 -10
  108. data/src/core/handshaker/security/secure_endpoint.cc +13 -13
  109. data/src/core/handshaker/security/security_handshaker.cc +6 -6
  110. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +4 -4
  111. data/src/core/lib/channel/channel_args.cc +20 -0
  112. data/src/core/lib/channel/channel_args.h +17 -17
  113. data/src/core/lib/channel/promise_based_filter.cc +2 -2
  114. data/src/core/lib/channel/promise_based_filter.h +66 -27
  115. data/src/core/lib/debug/trace_flags.cc +2 -0
  116. data/src/core/lib/debug/trace_flags.h +1 -0
  117. data/src/core/lib/event_engine/ares_resolver.cc +14 -14
  118. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +7 -7
  119. data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +4 -4
  120. data/src/core/lib/event_engine/default_event_engine.cc +5 -5
  121. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +9 -9
  122. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +16 -14
  123. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +6 -6
  124. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +3 -3
  125. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1 -1
  126. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +7 -7
  127. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +17 -17
  128. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +3 -3
  129. data/src/core/lib/event_engine/posix_engine/timer.cc +5 -5
  130. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +5 -5
  131. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +3 -3
  132. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +1 -1
  133. data/src/core/lib/event_engine/thread_pool/thread_count.cc +1 -1
  134. data/src/core/lib/event_engine/thread_pool/thread_count.h +3 -3
  135. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +50 -21
  136. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +3 -3
  137. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +3 -3
  138. data/src/core/lib/event_engine/windows/windows_engine.cc +15 -15
  139. data/src/core/lib/event_engine/windows/windows_listener.cc +6 -6
  140. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +6 -6
  141. data/src/core/lib/experiments/experiments.cc +48 -0
  142. data/src/core/lib/experiments/experiments.h +24 -0
  143. data/src/core/lib/iomgr/buffer_list.cc +3 -3
  144. data/src/core/lib/iomgr/buffer_list.h +1 -1
  145. data/src/core/lib/iomgr/combiner.cc +0 -1
  146. data/src/core/lib/iomgr/ev_apple.cc +4 -4
  147. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
  148. data/src/core/lib/iomgr/tcp_client_posix.cc +3 -3
  149. data/src/core/lib/iomgr/tcp_posix.cc +7 -7
  150. data/src/core/lib/promise/activity.cc +1 -1
  151. data/src/core/lib/promise/activity.h +1 -1
  152. data/src/core/lib/promise/arena_promise.h +7 -7
  153. data/src/core/lib/promise/detail/promise_factory.h +8 -8
  154. data/src/core/lib/promise/detail/promise_like.h +4 -4
  155. data/src/core/lib/promise/inter_activity_latch.h +6 -6
  156. data/src/core/lib/promise/inter_activity_pipe.h +1 -1
  157. data/src/core/lib/promise/observable.h +3 -3
  158. data/src/core/lib/promise/party.cc +1 -1
  159. data/src/core/lib/promise/try_seq.h +2 -2
  160. data/src/core/lib/resource_quota/arena.h +3 -3
  161. data/src/core/lib/resource_quota/memory_quota.cc +16 -16
  162. data/src/core/lib/resource_quota/memory_quota.h +1 -1
  163. data/src/core/lib/resource_quota/thread_quota.cc +3 -3
  164. data/src/core/lib/security/authorization/audit_logging.cc +5 -5
  165. data/src/core/lib/security/authorization/authorization_engine.h +1 -1
  166. data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -1
  167. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
  168. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
  169. data/src/core/lib/security/authorization/matchers.h +1 -1
  170. data/src/core/lib/surface/call.cc +8 -7
  171. data/src/core/lib/surface/call.h +3 -3
  172. data/src/core/lib/surface/call_utils.h +4 -0
  173. data/src/core/lib/surface/channel.cc +1 -1
  174. data/src/core/lib/surface/channel.h +1 -1
  175. data/src/core/lib/surface/channel_init.cc +1 -1
  176. data/src/core/lib/surface/init.cc +7 -7
  177. data/src/core/lib/surface/lame_client.cc +1 -1
  178. data/src/core/lib/surface/legacy_channel.cc +2 -2
  179. data/src/core/lib/surface/version.cc +1 -1
  180. data/src/core/lib/transport/transport_framing_endpoint_extension.h +3 -3
  181. data/src/core/load_balancing/autosharding/autosharding.cc +931 -0
  182. data/src/core/load_balancing/autosharding/autosharding.h +78 -0
  183. data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +2 -2
  184. data/src/core/load_balancing/grpclb/load_balancer_api.cc +1 -1
  185. data/src/core/load_balancing/grpclb/load_balancer_api.h +3 -1
  186. data/src/core/load_balancing/health_check_client.cc +7 -7
  187. data/src/core/load_balancing/lb_policy.cc +1 -1
  188. data/src/core/load_balancing/oob_backend_metric.cc +5 -5
  189. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +2 -2
  190. data/src/core/load_balancing/ring_hash/ring_hash.cc +109 -37
  191. data/src/core/load_balancing/rls/rls.cc +23 -17
  192. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +10 -10
  193. data/src/core/load_balancing/xds/cds.cc +6 -5
  194. data/src/core/load_balancing/xds/xds_cluster_impl.cc +2 -2
  195. data/src/core/load_balancing/xds/xds_override_host.cc +10 -10
  196. data/src/core/mitigation_engine/mitigation_engine.h +28 -4
  197. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
  198. data/src/core/resolver/dns/dns_resolver.cc +7 -7
  199. data/src/core/resolver/fake/fake_resolver.cc +5 -5
  200. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +38 -30
  201. data/src/core/server/server.cc +30 -30
  202. data/src/core/server/server.h +4 -3
  203. data/src/core/server/server_config_selector_filter.cc +3 -3
  204. data/src/core/server/xds_server_config_fetcher_legacy.cc +15 -15
  205. data/src/core/telemetry/default_tcp_tracer.cc +1 -1
  206. data/src/core/telemetry/instrument.cc +30 -16
  207. data/src/core/telemetry/instrument.h +3 -3
  208. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +3 -3
  209. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +4 -4
  210. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +2 -2
  211. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
  212. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -1
  213. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +5 -5
  214. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +3 -3
  215. data/src/core/tsi/ssl_transport_security.cc +46 -13
  216. data/src/core/tsi/ssl_transport_security.h +7 -0
  217. data/src/core/tsi/ssl_transport_security_utils.cc +16 -6
  218. data/src/core/util/event_log.cc +3 -3
  219. data/src/core/util/http_client/httpcli.cc +5 -5
  220. data/src/core/util/http_client/httpcli.h +1 -1
  221. data/src/core/util/json/json_object_loader.cc +7 -0
  222. data/src/core/util/json/json_object_loader.h +17 -2
  223. data/src/core/util/latent_see.cc +123 -36
  224. data/src/core/util/latent_see.h +14 -1
  225. data/src/core/util/mpscq.cc +1 -1
  226. data/src/core/util/notification.h +4 -4
  227. data/src/core/util/sync.h +20 -6
  228. data/src/core/util/table.h +20 -22
  229. data/src/core/util/work_serializer.cc +2 -2
  230. data/src/core/xds/grpc/blackboard.cc +4 -3
  231. data/src/core/xds/grpc/certificate_provider_store.cc +2 -2
  232. data/src/core/xds/grpc/streaming_call_promise_wrapper.cc +181 -0
  233. data/src/core/xds/grpc/streaming_call_promise_wrapper.h +213 -0
  234. data/src/core/xds/grpc/xds_bootstrap_grpc_builder.cc +2 -2
  235. data/src/core/xds/grpc/xds_client_grpc.cc +8 -8
  236. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
  237. data/src/core/xds/grpc/xds_endpoint.cc +1 -1
  238. data/src/core/xds/grpc/xds_endpoint_parser.cc +11 -0
  239. data/src/core/xds/grpc/xds_grpc_service_parser.cc +12 -10
  240. data/src/core/xds/grpc/xds_http_ext_proc_filter.cc +17 -14
  241. data/src/core/xds/grpc/xds_matcher.h +2 -2
  242. data/src/core/xds/grpc/xds_transport_grpc.cc +125 -85
  243. data/src/core/xds/grpc/xds_transport_grpc.h +19 -4
  244. data/src/core/xds/xds_client/lrs_client.cc +22 -19
  245. data/src/core/xds/xds_client/xds_client.cc +19 -16
  246. data/src/core/xds/xds_client/xds_transport.h +49 -3
  247. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
  248. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
  249. data/src/ruby/lib/grpc/version.rb +1 -1
  250. data/src/ruby/pb/README.md +1 -1
  251. data/src/ruby/pb/generate_proto_ruby.sh +1 -1
  252. data/third_party/abseil-cpp/absl/algorithm/algorithm.h +34 -2
  253. data/third_party/abseil-cpp/absl/algorithm/container.h +345 -147
  254. data/third_party/abseil-cpp/absl/base/attributes.h +67 -44
  255. data/third_party/abseil-cpp/absl/base/call_once.h +1 -0
  256. data/third_party/abseil-cpp/absl/base/casts.cc +61 -0
  257. data/third_party/abseil-cpp/absl/base/casts.h +135 -2
  258. data/third_party/abseil-cpp/absl/base/config.h +63 -41
  259. data/third_party/abseil-cpp/absl/base/fast_type_id.h +30 -2
  260. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
  261. data/third_party/abseil-cpp/absl/base/internal/hardening.h +136 -0
  262. data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +6 -2
  263. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -4
  264. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
  265. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
  266. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
  267. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +26 -24
  268. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +74 -29
  269. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -11
  270. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
  271. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +5 -1
  272. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
  273. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
  274. data/third_party/abseil-cpp/absl/base/macros.h +76 -37
  275. data/third_party/abseil-cpp/absl/base/nullability.h +5 -5
  276. data/third_party/abseil-cpp/absl/base/optimization.h +4 -5
  277. data/third_party/abseil-cpp/absl/base/options.h +46 -18
  278. data/third_party/abseil-cpp/absl/base/policy_checks.h +5 -5
  279. data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
  280. data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
  281. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +7 -2
  282. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
  283. data/third_party/abseil-cpp/absl/container/btree_map.h +60 -10
  284. data/third_party/abseil-cpp/absl/container/btree_set.h +61 -15
  285. data/third_party/abseil-cpp/absl/container/fixed_array.h +19 -21
  286. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +49 -27
  287. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +50 -26
  288. data/third_party/abseil-cpp/absl/container/inlined_vector.h +42 -36
  289. data/third_party/abseil-cpp/absl/container/internal/btree.h +32 -24
  290. data/third_party/abseil-cpp/absl/container/internal/btree_container.h +30 -22
  291. data/third_party/abseil-cpp/absl/container/internal/common.h +57 -5
  292. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
  293. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +40 -36
  294. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +119 -39
  295. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +14 -2
  296. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +14 -22
  297. data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +52 -52
  298. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +7 -7
  299. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +7 -7
  300. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +32 -40
  301. data/third_party/abseil-cpp/absl/container/internal/layout.h +13 -13
  302. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +95 -72
  303. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +633 -365
  304. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1016 -749
  305. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +0 -1
  306. data/third_party/abseil-cpp/absl/container/node_hash_map.h +58 -35
  307. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +23 -6
  308. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
  309. data/third_party/abseil-cpp/absl/crc/internal/crc.cc +4 -6
  310. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
  311. data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
  312. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
  313. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +304 -188
  314. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
  315. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
  316. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
  317. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
  318. data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc +15 -1
  319. data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -1
  320. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +12 -1
  321. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
  322. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -11
  323. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
  324. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
  325. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +6 -1
  326. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +14 -8
  327. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +48 -38
  328. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
  329. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +63 -118
  330. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +7 -47
  331. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +20 -2
  332. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +83 -149
  333. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
  334. data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
  335. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
  336. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +8 -6
  337. data/third_party/abseil-cpp/absl/flags/declare.h +9 -0
  338. data/third_party/abseil-cpp/absl/flags/flag.h +2 -1
  339. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
  340. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +19 -18
  341. data/third_party/abseil-cpp/absl/flags/internal/flag.h +33 -34
  342. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
  343. data/third_party/abseil-cpp/absl/flags/marshalling.cc +1 -16
  344. data/third_party/abseil-cpp/absl/flags/marshalling.h +2 -28
  345. data/third_party/abseil-cpp/absl/flags/reflection.cc +11 -7
  346. data/third_party/abseil-cpp/absl/flags/usage_config.cc +2 -2
  347. data/third_party/abseil-cpp/absl/functional/any_invocable.h +22 -19
  348. data/third_party/abseil-cpp/absl/functional/bind_front.h +7 -1
  349. data/third_party/abseil-cpp/absl/functional/function_ref.h +125 -20
  350. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +43 -31
  351. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
  352. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +44 -6
  353. data/third_party/abseil-cpp/absl/hash/hash.h +1 -1
  354. data/third_party/abseil-cpp/absl/hash/internal/city.cc +39 -51
  355. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +379 -14
  356. data/third_party/abseil-cpp/absl/hash/internal/hash.h +457 -353
  357. data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
  358. data/third_party/abseil-cpp/absl/log/internal/check_impl.h +2 -1
  359. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +4 -0
  360. data/third_party/abseil-cpp/absl/log/internal/check_op.h +128 -50
  361. data/third_party/abseil-cpp/absl/log/internal/conditions.h +38 -35
  362. data/third_party/abseil-cpp/absl/log/internal/log_impl.h +108 -110
  363. data/third_party/abseil-cpp/absl/log/internal/log_message.cc +10 -6
  364. data/third_party/abseil-cpp/absl/log/internal/log_message.h +19 -1
  365. data/third_party/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
  366. data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -1
  367. data/third_party/abseil-cpp/absl/log/internal/proto.cc +13 -0
  368. data/third_party/abseil-cpp/absl/log/internal/strip.h +30 -31
  369. data/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
  370. data/third_party/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
  371. data/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +30 -30
  372. data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
  373. data/third_party/abseil-cpp/absl/log/log.h +2 -2
  374. data/third_party/abseil-cpp/absl/log/log_entry.cc +263 -0
  375. data/third_party/abseil-cpp/absl/log/log_entry.h +2 -0
  376. data/third_party/abseil-cpp/absl/log/vlog_is_on.h +0 -2
  377. data/third_party/abseil-cpp/absl/memory/memory.h +55 -5
  378. data/third_party/abseil-cpp/absl/meta/type_traits.h +161 -56
  379. data/third_party/abseil-cpp/absl/numeric/int128.h +41 -21
  380. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
  381. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
  382. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +32 -4
  383. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
  384. data/third_party/abseil-cpp/absl/random/beta_distribution.h +2 -2
  385. data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
  386. data/third_party/abseil-cpp/absl/random/discrete_distribution.h +1 -1
  387. data/third_party/abseil-cpp/absl/random/distributions.h +17 -17
  388. data/third_party/abseil-cpp/absl/random/exponential_distribution.h +1 -1
  389. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
  390. data/third_party/abseil-cpp/absl/random/internal/entropy_pool.cc +2 -2
  391. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
  392. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +1 -1
  393. data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
  394. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
  395. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
  396. data/third_party/abseil-cpp/absl/random/internal/platform.h +0 -13
  397. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
  398. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
  399. data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
  400. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +5 -31
  401. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +2 -1
  402. data/third_party/abseil-cpp/absl/random/internal/traits.h +21 -0
  403. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
  404. data/third_party/abseil-cpp/absl/random/mocking_access.h +74 -0
  405. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
  406. data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
  407. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +30 -4
  408. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +225 -63
  409. data/third_party/abseil-cpp/absl/status/status.cc +66 -70
  410. data/third_party/abseil-cpp/absl/status/status.h +254 -23
  411. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +3 -2
  412. data/third_party/abseil-cpp/absl/status/statusor.h +117 -137
  413. data/third_party/abseil-cpp/absl/strings/ascii.h +10 -6
  414. data/third_party/abseil-cpp/absl/strings/cord.cc +41 -17
  415. data/third_party/abseil-cpp/absl/strings/cord.h +26 -17
  416. data/third_party/abseil-cpp/absl/strings/cord_buffer.h +4 -2
  417. data/third_party/abseil-cpp/absl/strings/escaping.cc +305 -125
  418. data/third_party/abseil-cpp/absl/strings/escaping.h +12 -2
  419. data/third_party/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
  420. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +2 -2
  421. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
  422. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +27 -21
  423. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +11 -19
  424. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
  425. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
  426. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
  427. data/third_party/abseil-cpp/absl/strings/internal/escaping.h +2 -24
  428. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -36
  429. data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
  430. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
  431. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
  432. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
  433. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +921 -231
  434. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -16
  435. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +16 -12
  436. data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
  437. data/third_party/abseil-cpp/absl/strings/numbers.cc +477 -8
  438. data/third_party/abseil-cpp/absl/strings/numbers.h +29 -12
  439. data/third_party/abseil-cpp/absl/strings/resize_and_overwrite.h +198 -0
  440. data/third_party/abseil-cpp/absl/strings/str_cat.cc +96 -91
  441. data/third_party/abseil-cpp/absl/strings/str_cat.h +53 -13
  442. data/third_party/abseil-cpp/absl/strings/str_split.h +14 -9
  443. data/third_party/abseil-cpp/absl/strings/string_view.h +10 -716
  444. data/third_party/abseil-cpp/absl/strings/substitute.cc +24 -24
  445. data/third_party/abseil-cpp/absl/strings/substitute.h +2 -2
  446. data/third_party/abseil-cpp/absl/synchronization/barrier.cc +1 -1
  447. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
  448. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +24 -3
  449. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
  450. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
  451. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
  452. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +41 -29
  453. data/third_party/abseil-cpp/absl/synchronization/mutex.h +199 -94
  454. data/third_party/abseil-cpp/absl/synchronization/notification.cc +5 -5
  455. data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
  456. data/third_party/abseil-cpp/absl/time/clock.cc +29 -30
  457. data/third_party/abseil-cpp/absl/time/clock.h +3 -0
  458. data/third_party/abseil-cpp/absl/time/duration.cc +2 -2
  459. data/third_party/abseil-cpp/absl/time/format.cc +3 -10
  460. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
  461. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +131 -91
  462. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
  463. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +185 -0
  464. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
  465. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
  466. data/third_party/abseil-cpp/absl/time/time.cc +4 -4
  467. data/third_party/abseil-cpp/absl/time/time.h +14 -13
  468. data/third_party/abseil-cpp/absl/types/compare.h +64 -63
  469. data/third_party/abseil-cpp/absl/types/internal/span.h +6 -6
  470. data/third_party/abseil-cpp/absl/types/optional.h +31 -4
  471. data/third_party/abseil-cpp/absl/types/optional_ref.h +295 -0
  472. data/third_party/{boringssl-with-bazel/crypto/x509/x_val.cc → abseil-cpp/absl/types/source_location.cc} +4 -14
  473. data/third_party/abseil-cpp/absl/types/source_location.h +172 -0
  474. data/third_party/abseil-cpp/absl/types/span.h +67 -38
  475. data/third_party/abseil-cpp/absl/types/variant.h +75 -18
  476. data/third_party/abseil-cpp/absl/utility/utility.h +112 -16
  477. data/third_party/boringssl-with-bazel/crypto/aes/aes.cc +3 -0
  478. data/third_party/boringssl-with-bazel/crypto/armv8_feature_parsing.h +67 -0
  479. data/third_party/boringssl-with-bazel/crypto/asn1/a_bitstr.cc +143 -105
  480. data/third_party/boringssl-with-bazel/crypto/asn1/a_bool.cc +5 -8
  481. data/third_party/boringssl-with-bazel/crypto/asn1/a_d2i_fp.cc +3 -3
  482. data/third_party/boringssl-with-bazel/crypto/asn1/a_dup.cc +6 -6
  483. data/third_party/boringssl-with-bazel/crypto/asn1/a_gentm.cc +33 -12
  484. data/third_party/boringssl-with-bazel/crypto/asn1/a_i2d_fp.cc +7 -6
  485. data/third_party/boringssl-with-bazel/crypto/asn1/a_int.cc +80 -52
  486. data/third_party/boringssl-with-bazel/crypto/asn1/a_mbstr.cc +7 -4
  487. data/third_party/boringssl-with-bazel/crypto/asn1/a_object.cc +70 -72
  488. data/third_party/boringssl-with-bazel/crypto/asn1/a_strex.cc +38 -42
  489. data/third_party/boringssl-with-bazel/crypto/asn1/a_strnid.cc +41 -39
  490. data/third_party/boringssl-with-bazel/crypto/asn1/a_time.cc +59 -35
  491. data/third_party/boringssl-with-bazel/crypto/asn1/a_type.cc +275 -15
  492. data/third_party/boringssl-with-bazel/crypto/asn1/a_utctm.cc +32 -13
  493. data/third_party/boringssl-with-bazel/crypto/asn1/asn1_lib.cc +128 -30
  494. data/third_party/boringssl-with-bazel/crypto/asn1/asn_pack.cc +10 -10
  495. data/third_party/boringssl-with-bazel/crypto/asn1/f_int.cc +1 -1
  496. data/third_party/boringssl-with-bazel/crypto/asn1/f_string.cc +1 -1
  497. data/third_party/boringssl-with-bazel/crypto/asn1/internal.h +261 -115
  498. data/third_party/boringssl-with-bazel/crypto/asn1/posix_time.cc +8 -5
  499. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_dec.cc +373 -725
  500. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_enc.cc +211 -526
  501. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_fre.cc +22 -19
  502. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_new.cc +26 -24
  503. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_typ.cc +19 -5
  504. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_utl.cc +47 -51
  505. data/third_party/boringssl-with-bazel/crypto/base64/base64.cc +14 -15
  506. data/third_party/boringssl-with-bazel/crypto/bcm_support.h +7 -29
  507. data/third_party/boringssl-with-bazel/crypto/bio/bio.cc +234 -176
  508. data/third_party/boringssl-with-bazel/crypto/bio/bio_mem.cc +72 -86
  509. data/third_party/boringssl-with-bazel/crypto/bio/connect.cc +153 -199
  510. data/third_party/boringssl-with-bazel/crypto/bio/errno.cc +3 -1
  511. data/third_party/boringssl-with-bazel/crypto/bio/fd.cc +56 -55
  512. data/third_party/boringssl-with-bazel/crypto/bio/file.cc +70 -78
  513. data/third_party/boringssl-with-bazel/crypto/bio/hexdump.cc +6 -4
  514. data/third_party/boringssl-with-bazel/crypto/bio/internal.h +69 -17
  515. data/third_party/boringssl-with-bazel/crypto/bio/pair.cc +117 -136
  516. data/third_party/boringssl-with-bazel/crypto/bio/printf.cc +1 -1
  517. data/third_party/boringssl-with-bazel/crypto/bio/socket.cc +116 -50
  518. data/third_party/boringssl-with-bazel/crypto/bio/socket_helper.cc +53 -5
  519. data/third_party/boringssl-with-bazel/crypto/blake2/blake2.cc +9 -5
  520. data/third_party/boringssl-with-bazel/crypto/bn/bn_asn1.cc +2 -2
  521. data/third_party/boringssl-with-bazel/crypto/bn/convert.cc +56 -70
  522. data/third_party/boringssl-with-bazel/crypto/bn/div.cc +102 -0
  523. data/third_party/boringssl-with-bazel/crypto/bn/exponentiation.cc +26 -42
  524. data/third_party/boringssl-with-bazel/crypto/bn/sqrt.cc +93 -0
  525. data/third_party/boringssl-with-bazel/crypto/buf/buf.cc +6 -5
  526. data/third_party/boringssl-with-bazel/crypto/bytestring/asn1_compat.cc +6 -5
  527. data/third_party/boringssl-with-bazel/crypto/bytestring/ber.cc +22 -20
  528. data/third_party/boringssl-with-bazel/crypto/bytestring/cbb.cc +119 -59
  529. data/third_party/boringssl-with-bazel/crypto/bytestring/cbs.cc +115 -31
  530. data/third_party/boringssl-with-bazel/crypto/bytestring/internal.h +79 -24
  531. data/third_party/boringssl-with-bazel/crypto/bytestring/unicode.cc +2 -2
  532. data/third_party/boringssl-with-bazel/crypto/chacha/chacha.cc +5 -3
  533. data/third_party/boringssl-with-bazel/crypto/chacha/internal.h +23 -22
  534. data/third_party/boringssl-with-bazel/crypto/cipher/derive_key.cc +14 -18
  535. data/third_party/boringssl-with-bazel/crypto/cipher/e_aesctrhmac.cc +73 -58
  536. data/third_party/boringssl-with-bazel/crypto/cipher/e_aeseax.cc +132 -70
  537. data/third_party/boringssl-with-bazel/crypto/cipher/e_aesgcmsiv.cc +390 -249
  538. data/third_party/boringssl-with-bazel/crypto/cipher/e_chacha20poly1305.cc +200 -137
  539. data/third_party/boringssl-with-bazel/crypto/cipher/e_des.cc +45 -29
  540. data/third_party/boringssl-with-bazel/crypto/cipher/e_null.cc +9 -5
  541. data/third_party/boringssl-with-bazel/crypto/cipher/e_rc2.cc +43 -28
  542. data/third_party/boringssl-with-bazel/crypto/cipher/e_rc4.cc +7 -5
  543. data/third_party/boringssl-with-bazel/crypto/cipher/e_tls.cc +250 -237
  544. data/third_party/boringssl-with-bazel/crypto/cipher/get_cipher.cc +12 -12
  545. data/third_party/boringssl-with-bazel/crypto/cipher/internal.h +59 -59
  546. data/third_party/boringssl-with-bazel/crypto/cipher/tls_cbc.cc +111 -111
  547. data/third_party/boringssl-with-bazel/crypto/cms/cms.cc +48 -42
  548. data/third_party/boringssl-with-bazel/crypto/conf/conf.cc +69 -63
  549. data/third_party/boringssl-with-bazel/crypto/conf/internal.h +11 -12
  550. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_apple.cc +8 -5
  551. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_fuchsia.cc +6 -1
  552. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_linux.cc +7 -1
  553. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_openbsd.cc +7 -21
  554. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_sysreg.cc +15 -41
  555. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_win.cc +16 -3
  556. data/third_party/boringssl-with-bazel/crypto/cpu_arm_freebsd.cc +4 -2
  557. data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.cc +54 -31
  558. data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.h +79 -101
  559. data/third_party/boringssl-with-bazel/crypto/cpu_intel.cc +51 -45
  560. data/third_party/boringssl-with-bazel/crypto/crypto.cc +26 -55
  561. data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519.cc +28 -25
  562. data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519_tables.h +6 -6
  563. data/third_party/boringssl-with-bazel/crypto/curve25519/internal.h +14 -15
  564. data/third_party/boringssl-with-bazel/crypto/curve25519/spake25519.cc +23 -20
  565. data/third_party/boringssl-with-bazel/crypto/des/des.cc +27 -19
  566. data/third_party/boringssl-with-bazel/crypto/des/internal.h +4 -9
  567. data/third_party/boringssl-with-bazel/crypto/dh/dh_asn1.cc +34 -49
  568. data/third_party/boringssl-with-bazel/crypto/dh/params.cc +44 -41
  569. data/third_party/boringssl-with-bazel/crypto/digest/digest_extra.cc +87 -40
  570. data/third_party/boringssl-with-bazel/crypto/dsa/dsa.cc +237 -260
  571. data/third_party/boringssl-with-bazel/crypto/dsa/dsa_asn1.cc +100 -173
  572. data/third_party/boringssl-with-bazel/crypto/dsa/internal.h +23 -21
  573. data/third_party/boringssl-with-bazel/crypto/ec/ec_asn1.cc +181 -209
  574. data/third_party/boringssl-with-bazel/crypto/ec/ec_derive.cc +26 -28
  575. data/third_party/boringssl-with-bazel/crypto/ec/hash_to_curve.cc +265 -174
  576. data/third_party/boringssl-with-bazel/crypto/ec/internal.h +54 -18
  577. data/third_party/boringssl-with-bazel/crypto/ecdh/ecdh.cc +7 -5
  578. data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_asn1.cc +50 -70
  579. data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_p1363.cc +54 -0
  580. data/third_party/boringssl-with-bazel/crypto/engine/engine.cc +7 -7
  581. data/third_party/boringssl-with-bazel/crypto/err/err.cc +116 -105
  582. data/third_party/boringssl-with-bazel/crypto/err/internal.h +8 -21
  583. data/third_party/boringssl-with-bazel/crypto/evp/evp.cc +238 -166
  584. data/third_party/boringssl-with-bazel/crypto/evp/evp_asn1.cc +202 -234
  585. data/third_party/boringssl-with-bazel/crypto/evp/evp_ctx.cc +260 -159
  586. data/third_party/boringssl-with-bazel/crypto/evp/evp_kem.cc +82 -0
  587. data/third_party/boringssl-with-bazel/crypto/evp/internal.h +292 -137
  588. data/third_party/boringssl-with-bazel/crypto/evp/p_dh.cc +198 -25
  589. data/third_party/boringssl-with-bazel/crypto/evp/p_dsa.cc +333 -0
  590. data/third_party/boringssl-with-bazel/crypto/evp/p_ec.cc +427 -42
  591. data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519.cc +270 -14
  592. data/third_party/boringssl-with-bazel/crypto/evp/p_hkdf.cc +70 -102
  593. data/third_party/boringssl-with-bazel/crypto/evp/p_mldsa.cc +549 -0
  594. data/third_party/boringssl-with-bazel/crypto/evp/p_mlkem.cc +485 -0
  595. data/third_party/boringssl-with-bazel/crypto/evp/p_rsa.cc +666 -158
  596. data/third_party/boringssl-with-bazel/crypto/evp/p_x25519.cc +290 -28
  597. data/third_party/boringssl-with-bazel/crypto/evp/p_xwing.cc +273 -0
  598. data/third_party/boringssl-with-bazel/crypto/evp/pbkdf.cc +14 -7
  599. data/third_party/boringssl-with-bazel/crypto/evp/print.cc +34 -89
  600. data/third_party/boringssl-with-bazel/crypto/evp/scrypt.cc +23 -21
  601. data/third_party/boringssl-with-bazel/crypto/evp/sign.cc +23 -42
  602. data/third_party/boringssl-with-bazel/crypto/ex_data.cc +40 -41
  603. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes.cc.inc +34 -28
  604. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes_nohw.cc.inc +119 -121
  605. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cbc.cc.inc +16 -14
  606. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cfb.cc.inc +12 -10
  607. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ctr.cc.inc +7 -5
  608. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm.cc.inc +39 -29
  609. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm_nohw.cc.inc +15 -13
  610. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/internal.h +193 -177
  611. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/key_wrap.cc.inc +5 -3
  612. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/mode_wrappers.cc.inc +7 -3
  613. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ofb.cc.inc +7 -5
  614. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm.cc +24 -19
  615. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm_interface.h +512 -384
  616. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/add.cc.inc +7 -5
  617. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +63 -44
  618. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bn.cc.inc +40 -37
  619. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bytes.cc.inc +27 -22
  620. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/cmp.cc.inc +9 -7
  621. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/ctx.cc.inc +62 -126
  622. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div.cc.inc +92 -167
  623. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div_extra.cc.inc +15 -12
  624. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/exponentiation.cc.inc +96 -93
  625. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd.cc.inc +73 -92
  626. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd_extra.cc.inc +59 -71
  627. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/generic.cc.inc +54 -57
  628. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/internal.h +333 -255
  629. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/jacobi.cc.inc +12 -19
  630. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery.cc.inc +80 -95
  631. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery_inv.cc.inc +53 -96
  632. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/mul.cc.inc +58 -419
  633. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/prime.cc.inc +164 -213
  634. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/random.cc.inc +27 -26
  635. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.cc.inc +12 -10
  636. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.h +47 -49
  637. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/shift.cc.inc +14 -17
  638. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/sqrt.cc.inc +19 -108
  639. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/aead.cc.inc +427 -105
  640. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/cipher.cc.inc +412 -212
  641. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aes.cc.inc +230 -225
  642. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aesccm.cc.inc +115 -84
  643. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/internal.h +374 -27
  644. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cmac/cmac.cc.inc +28 -23
  645. data/third_party/boringssl-with-bazel/crypto/fipsmodule/delocate.h +36 -40
  646. data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/check.cc.inc +68 -78
  647. data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/dh.cc.inc +154 -196
  648. data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/internal.h +24 -24
  649. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digest.cc.inc +40 -69
  650. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digests.cc.inc +13 -7
  651. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/internal.h +13 -11
  652. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/md32_common.h +86 -81
  653. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digestsign/digestsign.cc.inc +38 -34
  654. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec.cc.inc +187 -196
  655. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_key.cc.inc +196 -154
  656. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_montgomery.cc.inc +65 -125
  657. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/felem.cc.inc +85 -22
  658. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/internal.h +281 -287
  659. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/oct.cc.inc +23 -22
  660. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256.cc.inc +514 -573
  661. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256_internal.h +193 -0
  662. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/scalar.cc.inc +44 -39
  663. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple.cc.inc +58 -90
  664. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple_mul.cc.inc +39 -34
  665. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/util.cc.inc +6 -3
  666. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/wnaf.cc.inc +23 -20
  667. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdh/ecdh.cc.inc +6 -3
  668. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +47 -37
  669. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/internal.h +5 -10
  670. data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/internal.h +38 -0
  671. data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/jitter.cc.inc +463 -0
  672. data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
  673. data/third_party/boringssl-with-bazel/crypto/fipsmodule/hkdf/hkdf.cc.inc +8 -6
  674. data/third_party/boringssl-with-bazel/crypto/fipsmodule/hmac/hmac.cc.inc +19 -16
  675. data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/internal.h +41 -15
  676. data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/keccak.cc.inc +172 -44
  677. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/fips_known_values.inc +5 -5
  678. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/mldsa.cc.inc +1632 -766
  679. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/fips_known_values.inc +5 -5
  680. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/mlkem.cc.inc +740 -436
  681. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
  682. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/ctrdrbg.cc.inc +240 -53
  683. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/internal.h +41 -26
  684. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/rand.cc.inc +221 -218
  685. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/internal.h +64 -67
  686. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/padding.cc.inc +49 -57
  687. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa.cc.inc +247 -234
  688. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa_impl.cc.inc +392 -692
  689. data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/fips.cc.inc +10 -10
  690. data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/self_check.cc.inc +479 -449
  691. data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/internal.h +34 -11
  692. data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +46 -43
  693. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/internal.h +61 -70
  694. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha1.cc.inc +27 -13
  695. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha256.cc.inc +46 -30
  696. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha512.cc.inc +47 -47
  697. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/address.h +98 -73
  698. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.cc.inc +108 -98
  699. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.h +14 -24
  700. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.cc.inc +94 -91
  701. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.h +19 -31
  702. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/params.h +156 -56
  703. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +318 -132
  704. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.cc.inc +234 -81
  705. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.h +20 -34
  706. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.cc.inc +97 -96
  707. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.h +10 -20
  708. data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/internal.h +2 -16
  709. data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/kdf.cc.inc +26 -26
  710. data/third_party/boringssl-with-bazel/crypto/fuzzer_mode.cc +5 -5
  711. data/third_party/boringssl-with-bazel/crypto/hpke/hpke.cc +461 -97
  712. data/third_party/boringssl-with-bazel/crypto/hrss/hrss.cc +153 -149
  713. data/third_party/boringssl-with-bazel/crypto/hrss/internal.h +9 -13
  714. data/third_party/boringssl-with-bazel/crypto/internal.h +531 -394
  715. data/third_party/boringssl-with-bazel/crypto/kyber/internal.h +117 -12
  716. data/third_party/boringssl-with-bazel/crypto/kyber/kyber.cc +59 -58
  717. data/third_party/boringssl-with-bazel/crypto/lhash/internal.h +38 -37
  718. data/third_party/boringssl-with-bazel/crypto/lhash/lhash.cc +68 -65
  719. data/third_party/boringssl-with-bazel/crypto/md4/md4.cc +19 -6
  720. data/third_party/boringssl-with-bazel/crypto/md5/internal.h +6 -9
  721. data/third_party/boringssl-with-bazel/crypto/md5/md5.cc +18 -6
  722. data/third_party/boringssl-with-bazel/crypto/mem.cc +61 -65
  723. data/third_party/boringssl-with-bazel/crypto/mem_internal.h +671 -0
  724. data/third_party/boringssl-with-bazel/crypto/mldsa/mldsa.cc +238 -32
  725. data/third_party/boringssl-with-bazel/crypto/mlkem/mlkem.cc +21 -65
  726. data/third_party/boringssl-with-bazel/crypto/obj/obj.cc +132 -157
  727. data/third_party/boringssl-with-bazel/crypto/obj/obj_dat.h +79 -1
  728. data/third_party/boringssl-with-bazel/crypto/obj/obj_xref.cc +14 -11
  729. data/third_party/boringssl-with-bazel/crypto/params_internal.h +30 -0
  730. data/third_party/boringssl-with-bazel/crypto/pem/internal.h +20 -15
  731. data/third_party/boringssl-with-bazel/crypto/pem/pem_all.cc +20 -19
  732. data/third_party/boringssl-with-bazel/crypto/pem/pem_info.cc +72 -76
  733. data/third_party/boringssl-with-bazel/crypto/pem/pem_lib.cc +215 -217
  734. data/third_party/boringssl-with-bazel/crypto/pem/pem_oth.cc +6 -6
  735. data/third_party/boringssl-with-bazel/crypto/pem/pem_pk8.cc +13 -13
  736. data/third_party/boringssl-with-bazel/crypto/pem/pem_pkey.cc +11 -11
  737. data/third_party/boringssl-with-bazel/crypto/pkcs7/internal.h +12 -17
  738. data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7.cc +29 -27
  739. data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7_x509.cc +55 -49
  740. data/third_party/boringssl-with-bazel/crypto/pkcs8/internal.h +21 -26
  741. data/third_party/boringssl-with-bazel/crypto/pkcs8/p5_pbev2.cc +33 -31
  742. data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8.cc +73 -81
  743. data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8_x509.cc +139 -138
  744. data/third_party/boringssl-with-bazel/crypto/poly1305/internal.h +3 -7
  745. data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305.cc +5 -4
  746. data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_arm.cc +43 -47
  747. data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_vec.cc +29 -26
  748. data/third_party/boringssl-with-bazel/crypto/pool/internal.h +64 -20
  749. data/third_party/boringssl-with-bazel/crypto/pool/pool.cc +177 -157
  750. data/third_party/boringssl-with-bazel/crypto/rand/deterministic.cc +9 -16
  751. data/third_party/boringssl-with-bazel/crypto/rand/fork_detect.cc +70 -42
  752. data/third_party/boringssl-with-bazel/crypto/rand/forkunsafe.cc +7 -7
  753. data/third_party/boringssl-with-bazel/crypto/rand/getentropy.cc +6 -13
  754. data/third_party/boringssl-with-bazel/crypto/rand/internal.h +16 -4
  755. data/third_party/boringssl-with-bazel/crypto/rand/ios.cc +4 -11
  756. data/third_party/boringssl-with-bazel/crypto/rand/rand.cc +11 -9
  757. data/third_party/boringssl-with-bazel/crypto/rand/trusty.cc +4 -11
  758. data/third_party/boringssl-with-bazel/crypto/rand/urandom.cc +16 -195
  759. data/third_party/boringssl-with-bazel/crypto/rand/windows.cc +12 -19
  760. data/third_party/boringssl-with-bazel/crypto/refcount.cc +7 -17
  761. data/third_party/boringssl-with-bazel/crypto/rsa/internal.h +22 -7
  762. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_asn1.cc +199 -78
  763. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_crypt.cc +49 -50
  764. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_extra.cc +11 -0
  765. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_print.cc +4 -6
  766. data/third_party/boringssl-with-bazel/crypto/sha/sha1.cc +3 -0
  767. data/third_party/boringssl-with-bazel/crypto/sha/sha256.cc +3 -1
  768. data/third_party/boringssl-with-bazel/crypto/sha/sha512.cc +6 -4
  769. data/third_party/boringssl-with-bazel/crypto/siphash/siphash.cc +2 -0
  770. data/third_party/boringssl-with-bazel/crypto/slhdsa/slhdsa.cc +43 -6
  771. data/third_party/boringssl-with-bazel/crypto/spake2plus/internal.h +31 -31
  772. data/third_party/boringssl-with-bazel/crypto/spake2plus/spake2plus.cc +1 -1
  773. data/third_party/boringssl-with-bazel/crypto/stack/stack.cc +89 -130
  774. data/third_party/boringssl-with-bazel/crypto/thread.cc +14 -14
  775. data/third_party/boringssl-with-bazel/crypto/thread_none.cc +10 -13
  776. data/third_party/boringssl-with-bazel/crypto/thread_pthread.cc +22 -35
  777. data/third_party/boringssl-with-bazel/crypto/thread_win.cc +29 -40
  778. data/third_party/boringssl-with-bazel/crypto/trust_token/internal.h +81 -88
  779. data/third_party/boringssl-with-bazel/crypto/trust_token/pmbtoken.cc +160 -144
  780. data/third_party/boringssl-with-bazel/crypto/trust_token/trust_token.cc +96 -80
  781. data/third_party/boringssl-with-bazel/crypto/trust_token/voprf.cc +90 -87
  782. data/third_party/boringssl-with-bazel/crypto/x509/a_digest.cc +5 -5
  783. data/third_party/boringssl-with-bazel/crypto/x509/a_sign.cc +51 -48
  784. data/third_party/boringssl-with-bazel/crypto/x509/a_verify.cc +30 -34
  785. data/third_party/boringssl-with-bazel/crypto/x509/algorithm.cc +47 -16
  786. data/third_party/boringssl-with-bazel/crypto/x509/asn1_gen.cc +41 -43
  787. data/third_party/boringssl-with-bazel/crypto/x509/by_dir.cc +183 -237
  788. data/third_party/boringssl-with-bazel/crypto/x509/by_file.cc +29 -30
  789. data/third_party/boringssl-with-bazel/crypto/x509/internal.h +276 -180
  790. data/third_party/boringssl-with-bazel/crypto/x509/name_print.cc +15 -13
  791. data/third_party/boringssl-with-bazel/crypto/x509/policy.cc +415 -525
  792. data/third_party/boringssl-with-bazel/crypto/x509/rsa_pss.cc +94 -271
  793. data/third_party/boringssl-with-bazel/crypto/x509/t_crl.cc +11 -8
  794. data/third_party/boringssl-with-bazel/crypto/x509/t_req.cc +26 -23
  795. data/third_party/boringssl-with-bazel/crypto/x509/t_x509.cc +26 -22
  796. data/third_party/boringssl-with-bazel/crypto/x509/t_x509a.cc +3 -1
  797. data/third_party/boringssl-with-bazel/crypto/x509/v3_akey.cc +69 -76
  798. data/third_party/boringssl-with-bazel/crypto/x509/v3_akeya.cc +2 -2
  799. data/third_party/boringssl-with-bazel/crypto/x509/v3_alt.cc +112 -69
  800. data/third_party/boringssl-with-bazel/crypto/x509/v3_bcons.cc +15 -14
  801. data/third_party/boringssl-with-bazel/crypto/x509/v3_bitst.cc +16 -18
  802. data/third_party/boringssl-with-bazel/crypto/x509/v3_conf.cc +62 -67
  803. data/third_party/boringssl-with-bazel/crypto/x509/v3_cpols.cc +143 -170
  804. data/third_party/boringssl-with-bazel/crypto/x509/v3_crld.cc +121 -165
  805. data/third_party/boringssl-with-bazel/crypto/x509/v3_enum.cc +13 -12
  806. data/third_party/boringssl-with-bazel/crypto/x509/v3_extku.cc +17 -34
  807. data/third_party/boringssl-with-bazel/crypto/x509/v3_genn.cc +20 -10
  808. data/third_party/boringssl-with-bazel/crypto/x509/v3_ia5.cc +22 -18
  809. data/third_party/boringssl-with-bazel/crypto/x509/v3_info.cc +45 -47
  810. data/third_party/boringssl-with-bazel/crypto/x509/v3_int.cc +35 -33
  811. data/third_party/boringssl-with-bazel/crypto/x509/v3_lib.cc +106 -61
  812. data/third_party/boringssl-with-bazel/crypto/x509/v3_ncons.cc +642 -358
  813. data/third_party/boringssl-with-bazel/crypto/x509/v3_ocsp.cc +25 -22
  814. data/third_party/boringssl-with-bazel/crypto/x509/v3_pcons.cc +15 -14
  815. data/third_party/boringssl-with-bazel/crypto/x509/v3_pmaps.cc +16 -15
  816. data/third_party/boringssl-with-bazel/crypto/x509/v3_prn.cc +6 -6
  817. data/third_party/boringssl-with-bazel/crypto/x509/v3_purp.cc +150 -137
  818. data/third_party/boringssl-with-bazel/crypto/x509/v3_skey.cc +23 -26
  819. data/third_party/boringssl-with-bazel/crypto/x509/v3_utl.cc +151 -178
  820. data/third_party/boringssl-with-bazel/crypto/x509/x509.cc +1 -1
  821. data/third_party/boringssl-with-bazel/crypto/x509/x509_att.cc +32 -30
  822. data/third_party/boringssl-with-bazel/crypto/x509/x509_cmp.cc +95 -88
  823. data/third_party/boringssl-with-bazel/crypto/x509/x509_d2.cc +9 -9
  824. data/third_party/boringssl-with-bazel/crypto/x509/x509_def.cc +6 -8
  825. data/third_party/boringssl-with-bazel/crypto/x509/x509_ext.cc +46 -24
  826. data/third_party/boringssl-with-bazel/crypto/x509/x509_lu.cc +211 -195
  827. data/third_party/boringssl-with-bazel/crypto/x509/x509_obj.cc +20 -16
  828. data/third_party/boringssl-with-bazel/crypto/x509/x509_req.cc +37 -46
  829. data/third_party/boringssl-with-bazel/crypto/x509/x509_set.cc +62 -90
  830. data/third_party/boringssl-with-bazel/crypto/x509/x509_trs.cc +18 -13
  831. data/third_party/boringssl-with-bazel/crypto/x509/x509_v3.cc +33 -33
  832. data/third_party/boringssl-with-bazel/crypto/x509/x509_vfy.cc +109 -110
  833. data/third_party/boringssl-with-bazel/crypto/x509/x509_vpm.cc +56 -47
  834. data/third_party/boringssl-with-bazel/crypto/x509/x509cset.cc +27 -40
  835. data/third_party/boringssl-with-bazel/crypto/x509/x509name.cc +77 -67
  836. data/third_party/boringssl-with-bazel/crypto/x509/x509rset.cc +5 -17
  837. data/third_party/boringssl-with-bazel/crypto/x509/x509spki.cc +13 -13
  838. data/third_party/boringssl-with-bazel/crypto/x509/x_algor.cc +131 -24
  839. data/third_party/boringssl-with-bazel/crypto/x509/x_all.cc +72 -39
  840. data/third_party/boringssl-with-bazel/crypto/x509/x_attrib.cc +10 -4
  841. data/third_party/boringssl-with-bazel/crypto/x509/x_crl.cc +77 -44
  842. data/third_party/boringssl-with-bazel/crypto/x509/x_exten.cc +6 -0
  843. data/third_party/boringssl-with-bazel/crypto/x509/x_name.cc +311 -383
  844. data/third_party/boringssl-with-bazel/crypto/x509/x_pubkey.cc +129 -82
  845. data/third_party/boringssl-with-bazel/crypto/x509/x_req.cc +11 -6
  846. data/third_party/boringssl-with-bazel/crypto/x509/x_sig.cc +4 -4
  847. data/third_party/boringssl-with-bazel/crypto/x509/x_spki.cc +11 -1
  848. data/third_party/boringssl-with-bazel/crypto/x509/x_x509.cc +285 -280
  849. data/third_party/boringssl-with-bazel/crypto/x509/x_x509a.cc +60 -60
  850. data/third_party/boringssl-with-bazel/crypto/xwing/xwing.cc +257 -0
  851. data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +301 -0
  852. data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +301 -0
  853. data/third_party/boringssl-with-bazel/gen/crypto/err_data.cc +526 -500
  854. data/third_party/boringssl-with-bazel/include/openssl/aead.h +286 -114
  855. data/third_party/boringssl-with-bazel/include/openssl/aes.h +43 -43
  856. data/third_party/boringssl-with-bazel/include/openssl/asm_base.h +29 -16
  857. data/third_party/boringssl-with-bazel/include/openssl/asn1.h +641 -631
  858. data/third_party/boringssl-with-bazel/include/openssl/asn1t.h +7 -9
  859. data/third_party/boringssl-with-bazel/include/openssl/base.h +34 -54
  860. data/third_party/boringssl-with-bazel/include/openssl/base64.h +30 -30
  861. data/third_party/boringssl-with-bazel/include/openssl/bio.h +373 -316
  862. data/third_party/boringssl-with-bazel/include/openssl/blake2.h +15 -11
  863. data/third_party/boringssl-with-bazel/include/openssl/blowfish.h +10 -3
  864. data/third_party/boringssl-with-bazel/include/openssl/bn.h +298 -306
  865. data/third_party/boringssl-with-bazel/include/openssl/buf.h +14 -14
  866. data/third_party/boringssl-with-bazel/include/openssl/bytestring.h +272 -207
  867. data/third_party/boringssl-with-bazel/include/openssl/cast.h +45 -8
  868. data/third_party/boringssl-with-bazel/include/openssl/chacha.h +3 -3
  869. data/third_party/boringssl-with-bazel/include/openssl/cipher.h +334 -152
  870. data/third_party/boringssl-with-bazel/include/openssl/cmac.h +13 -13
  871. data/third_party/boringssl-with-bazel/include/openssl/cms.h +35 -34
  872. data/third_party/boringssl-with-bazel/include/openssl/conf.h +15 -14
  873. data/third_party/boringssl-with-bazel/include/openssl/crypto.h +15 -13
  874. data/third_party/boringssl-with-bazel/include/openssl/ctrdrbg.h +49 -15
  875. data/third_party/boringssl-with-bazel/include/openssl/curve25519.h +24 -24
  876. data/third_party/boringssl-with-bazel/include/openssl/des.h +22 -16
  877. data/third_party/boringssl-with-bazel/include/openssl/dh.h +95 -95
  878. data/third_party/boringssl-with-bazel/include/openssl/digest.h +140 -71
  879. data/third_party/boringssl-with-bazel/include/openssl/dsa.h +101 -101
  880. data/third_party/boringssl-with-bazel/include/openssl/ec.h +143 -119
  881. data/third_party/boringssl-with-bazel/include/openssl/ec_key.h +97 -97
  882. data/third_party/boringssl-with-bazel/include/openssl/ecdh.h +9 -9
  883. data/third_party/boringssl-with-bazel/include/openssl/ecdsa.h +89 -46
  884. data/third_party/boringssl-with-bazel/include/openssl/engine.h +5 -5
  885. data/third_party/boringssl-with-bazel/include/openssl/err.h +73 -71
  886. data/third_party/boringssl-with-bazel/include/openssl/evp.h +824 -344
  887. data/third_party/boringssl-with-bazel/include/openssl/evp_errors.h +9 -2
  888. data/third_party/boringssl-with-bazel/include/openssl/ex_data.h +27 -32
  889. data/third_party/boringssl-with-bazel/include/openssl/hkdf.h +6 -6
  890. data/third_party/boringssl-with-bazel/include/openssl/hmac.h +31 -31
  891. data/third_party/boringssl-with-bazel/include/openssl/hpke.h +133 -117
  892. data/third_party/boringssl-with-bazel/include/openssl/hrss.h +14 -8
  893. data/third_party/boringssl-with-bazel/include/openssl/kdf.h +20 -19
  894. data/third_party/boringssl-with-bazel/include/openssl/lhash.h +4 -25
  895. data/third_party/boringssl-with-bazel/include/openssl/md4.h +14 -7
  896. data/third_party/boringssl-with-bazel/include/openssl/md5.h +7 -7
  897. data/third_party/boringssl-with-bazel/include/openssl/mem.h +38 -38
  898. data/third_party/boringssl-with-bazel/include/openssl/mldsa.h +380 -24
  899. data/third_party/boringssl-with-bazel/include/openssl/mlkem.h +43 -43
  900. data/third_party/boringssl-with-bazel/include/openssl/nid.h +1297 -2
  901. data/third_party/boringssl-with-bazel/include/openssl/obj.h +49 -49
  902. data/third_party/boringssl-with-bazel/include/openssl/opensslconf.h +30 -0
  903. data/third_party/boringssl-with-bazel/include/openssl/params.h +42 -0
  904. data/third_party/boringssl-with-bazel/include/openssl/pem.h +39 -30
  905. data/third_party/boringssl-with-bazel/include/openssl/pkcs7.h +40 -40
  906. data/third_party/boringssl-with-bazel/include/openssl/pkcs8.h +69 -63
  907. data/third_party/boringssl-with-bazel/include/openssl/poly1305.h +8 -5
  908. data/third_party/boringssl-with-bazel/include/openssl/pool.h +54 -25
  909. data/third_party/boringssl-with-bazel/include/openssl/posix_time.h +6 -6
  910. data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols.h +7866 -0
  911. data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_S.h +585 -0
  912. data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_c.h +305 -0
  913. data/third_party/boringssl-with-bazel/include/openssl/rand.h +18 -18
  914. data/third_party/boringssl-with-bazel/include/openssl/rc4.h +4 -4
  915. data/third_party/boringssl-with-bazel/include/openssl/ripemd.h +15 -10
  916. data/third_party/boringssl-with-bazel/include/openssl/rsa.h +272 -235
  917. data/third_party/boringssl-with-bazel/include/openssl/service_indicator.h +4 -81
  918. data/third_party/boringssl-with-bazel/include/openssl/sha.h +43 -166
  919. data/third_party/boringssl-with-bazel/include/openssl/sha2.h +201 -0
  920. data/third_party/boringssl-with-bazel/include/openssl/slhdsa.h +100 -48
  921. data/third_party/boringssl-with-bazel/include/openssl/span.h +190 -75
  922. data/third_party/boringssl-with-bazel/include/openssl/ssl.h +2168 -1567
  923. data/third_party/boringssl-with-bazel/include/openssl/ssl3.h +11 -69
  924. data/third_party/boringssl-with-bazel/include/openssl/stack.h +135 -80
  925. data/third_party/boringssl-with-bazel/include/openssl/target.h +13 -1
  926. data/third_party/boringssl-with-bazel/include/openssl/thread.h +0 -10
  927. data/third_party/boringssl-with-bazel/include/openssl/tls1.h +31 -310
  928. data/third_party/boringssl-with-bazel/include/openssl/tls_prf.h +47 -0
  929. data/third_party/boringssl-with-bazel/include/openssl/trust_token.h +97 -92
  930. data/third_party/boringssl-with-bazel/include/openssl/type_check.h +1 -1
  931. data/third_party/boringssl-with-bazel/include/openssl/x509.h +1805 -1857
  932. data/third_party/boringssl-with-bazel/include/openssl/x509v3.h +1 -1
  933. data/third_party/boringssl-with-bazel/include/openssl/xwing.h +115 -0
  934. data/third_party/boringssl-with-bazel/ssl/bio_ssl.cc +24 -19
  935. data/third_party/boringssl-with-bazel/ssl/d1_both.cc +59 -57
  936. data/third_party/boringssl-with-bazel/ssl/d1_lib.cc +53 -42
  937. data/third_party/boringssl-with-bazel/ssl/d1_pkt.cc +4 -4
  938. data/third_party/boringssl-with-bazel/ssl/d1_srtp.cc +2 -2
  939. data/third_party/boringssl-with-bazel/ssl/dtls_method.cc +10 -10
  940. data/third_party/boringssl-with-bazel/ssl/dtls_record.cc +6 -6
  941. data/third_party/boringssl-with-bazel/ssl/encrypted_client_hello.cc +61 -71
  942. data/third_party/boringssl-with-bazel/ssl/extensions.cc +967 -366
  943. data/third_party/boringssl-with-bazel/ssl/handoff.cc +77 -38
  944. data/third_party/boringssl-with-bazel/ssl/handshake.cc +63 -30
  945. data/third_party/boringssl-with-bazel/ssl/handshake_client.cc +129 -85
  946. data/third_party/boringssl-with-bazel/ssl/handshake_server.cc +116 -68
  947. data/third_party/boringssl-with-bazel/ssl/internal.h +983 -1207
  948. data/third_party/boringssl-with-bazel/ssl/s3_both.cc +34 -29
  949. data/third_party/boringssl-with-bazel/ssl/s3_lib.cc +4 -3
  950. data/third_party/boringssl-with-bazel/ssl/s3_pkt.cc +12 -12
  951. data/third_party/boringssl-with-bazel/ssl/ssl_aead_ctx.cc +5 -5
  952. data/third_party/boringssl-with-bazel/ssl/ssl_asn1.cc +114 -59
  953. data/third_party/boringssl-with-bazel/ssl/ssl_buffer.cc +17 -18
  954. data/third_party/boringssl-with-bazel/ssl/ssl_cert.cc +99 -61
  955. data/third_party/boringssl-with-bazel/ssl/ssl_cipher.cc +143 -134
  956. data/third_party/boringssl-with-bazel/ssl/ssl_credential.cc +188 -90
  957. data/third_party/boringssl-with-bazel/ssl/ssl_file.cc +132 -225
  958. data/third_party/boringssl-with-bazel/ssl/ssl_key_share.cc +79 -7
  959. data/third_party/boringssl-with-bazel/ssl/ssl_lib.cc +698 -302
  960. data/third_party/boringssl-with-bazel/ssl/ssl_privkey.cc +102 -45
  961. data/third_party/boringssl-with-bazel/ssl/ssl_session.cc +117 -102
  962. data/third_party/boringssl-with-bazel/ssl/ssl_transcript.cc +3 -3
  963. data/third_party/boringssl-with-bazel/ssl/ssl_versions.cc +24 -24
  964. data/third_party/boringssl-with-bazel/ssl/ssl_x509.cc +184 -170
  965. data/third_party/boringssl-with-bazel/ssl/t1_enc.cc +12 -10
  966. data/third_party/boringssl-with-bazel/ssl/tls13_both.cc +86 -54
  967. data/third_party/boringssl-with-bazel/ssl/tls13_client.cc +176 -90
  968. data/third_party/boringssl-with-bazel/ssl/tls13_enc.cc +166 -112
  969. data/third_party/boringssl-with-bazel/ssl/tls13_server.cc +188 -97
  970. data/third_party/boringssl-with-bazel/ssl/tls_method.cc +23 -23
  971. data/third_party/boringssl-with-bazel/ssl/tls_record.cc +17 -14
  972. data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
  973. data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
  974. data/third_party/boringssl-with-bazel/third_party/fiat/curve25519_64_adx.h +37 -33
  975. data/third_party/boringssl-with-bazel/third_party/fiat/p256_64.h +4 -93
  976. data/third_party/boringssl-with-bazel/third_party/fiat/p256_64_msvc.h +4 -69
  977. data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_32.br.c.inc +71 -0
  978. data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_64.br.c.inc +84 -0
  979. data/third_party/boringssl-with-bazel/third_party/fiat/p256_point.br.c.inc +166 -0
  980. metadata +77 -52
  981. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +0 -240
  982. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +0 -56
  983. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +0 -157
  984. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +0 -72
  985. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +0 -181
  986. data/third_party/abseil-cpp/absl/base/internal/identity.h +0 -39
  987. data/third_party/abseil-cpp/absl/base/internal/nullability_deprecated.h +0 -106
  988. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -105
  989. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -50
  990. data/third_party/abseil-cpp/absl/strings/string_view.cc +0 -257
  991. data/third_party/boringssl-with-bazel/crypto/evp/p_dh_asn1.cc +0 -142
  992. data/third_party/boringssl-with-bazel/crypto/evp/p_dsa_asn1.cc +0 -279
  993. data/third_party/boringssl-with-bazel/crypto/evp/p_ec_asn1.cc +0 -286
  994. data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519_asn1.cc +0 -225
  995. data/third_party/boringssl-with-bazel/crypto/evp/p_rsa_asn1.cc +0 -198
  996. data/third_party/boringssl-with-bazel/crypto/evp/p_x25519_asn1.cc +0 -237
  997. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p224-64.cc.inc +0 -1163
  998. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.cc.inc +0 -741
  999. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.h +0 -207
  1000. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/blinding.cc.inc +0 -147
  1001. data/third_party/boringssl-with-bazel/crypto/rand/getrandom_fillin.h +0 -64
  1002. data/third_party/boringssl-with-bazel/crypto/rand/passive.cc +0 -178
  1003. data/third_party/boringssl-with-bazel/crypto/x509/ext_dat.h +0 -92
  1004. data/third_party/boringssl-with-bazel/include/openssl/bcm_public.h +0 -82
  1005. data/third_party/boringssl-with-bazel/include/openssl/experimental/kyber.h +0 -146
@@ -0,0 +1,198 @@
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
+ // -----------------------------------------------------------------------------
16
+ // File: resize_and_overwrite.h
17
+ // -----------------------------------------------------------------------------
18
+ //
19
+ // This file contains a polyfill for C++23's
20
+ // std::basic_string<CharT,Traits,Allocator>::resize_and_overwrite
21
+ //
22
+ // The polyfill takes the form of a free function:
23
+
24
+ // template<typename T, typename Op>
25
+ // void StringResizeAndOverwrite(T& str, typename T::size_type count, Op op);
26
+ //
27
+ // This avoids the cost of initializing a suitably-sized std::string when it is
28
+ // intended to be used as a char array, for example, to be populated by a
29
+ // C-style API.
30
+ //
31
+ // Example usage:
32
+ //
33
+ // std::string IntToString(int n) {
34
+ // std::string result;
35
+ // constexpr size_t kMaxIntChars = 10;
36
+ // absl::StringResizeAndOverwrite(
37
+ // result, kMaxIntChars, [n](char* buffer, size_t buffer_size) {
38
+ // return snprintf(buffer, buffer_size, "%d", n);
39
+ // });
40
+ // return result;
41
+ // }
42
+ //
43
+ // https://en.cppreference.com/w/cpp/string/basic_string/resize_and_overwrite.html
44
+ // https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1072r10.html
45
+
46
+ #ifndef ABSL_STRINGS_RESIZE_AND_OVERWRITE_H_
47
+ #define ABSL_STRINGS_RESIZE_AND_OVERWRITE_H_
48
+
49
+ #include <cstddef>
50
+ #include <string> // IWYU pragma: keep
51
+ #include <type_traits>
52
+ #include <utility>
53
+
54
+ #include "absl/base/config.h"
55
+ #include "absl/base/dynamic_annotations.h"
56
+ #include "absl/base/internal/hardening.h"
57
+ #include "absl/base/macros.h"
58
+ #include "absl/base/optimization.h"
59
+ #include "absl/base/throw_delegate.h"
60
+
61
+ #if defined(__cpp_lib_string_resize_and_overwrite) && \
62
+ __cpp_lib_string_resize_and_overwrite >= 202110L
63
+ #define ABSL_INTERNAL_HAS_RESIZE_AND_OVERWRITE 1
64
+ #endif
65
+
66
+ namespace absl {
67
+ ABSL_NAMESPACE_BEGIN
68
+
69
+ namespace strings_internal {
70
+
71
+ #ifndef ABSL_INTERNAL_HAS_RESIZE_AND_OVERWRITE
72
+
73
+ inline size_t ProbeResizeAndOverwriteOp(char*, size_t) { return 0; }
74
+
75
+ // Prior to C++23, Google's libc++ backports resize_and_overwrite as
76
+ // __google_nonstandard_backport_resize_and_overwrite
77
+ template <typename T, typename = void>
78
+ struct has__google_nonstandard_backport_resize_and_overwrite : std::false_type {
79
+ };
80
+
81
+ template <typename T>
82
+ struct has__google_nonstandard_backport_resize_and_overwrite<
83
+ T,
84
+ std::void_t<
85
+ decltype(std::declval<T&>()
86
+ .__google_nonstandard_backport_resize_and_overwrite(
87
+ std::declval<size_t>(), ProbeResizeAndOverwriteOp))>>
88
+ : std::true_type {};
89
+
90
+ // Prior to C++23, the version of libstdc++ that shipped with GCC >= 14
91
+ // has __resize_and_overwrite.
92
+ template <typename T, typename = void>
93
+ struct has__resize_and_overwrite : std::false_type {};
94
+
95
+ template <typename T>
96
+ struct has__resize_and_overwrite<
97
+ T, std::void_t<decltype(std::declval<T&>().__resize_and_overwrite(
98
+ std::declval<size_t>(), ProbeResizeAndOverwriteOp))>>
99
+ : std::true_type {};
100
+
101
+ // libc++ used __resize_default_init to achieve uninitialized string resizes
102
+ // before removing it September 2025, in favor of resize_and_overwrite.
103
+ // https://github.com/llvm/llvm-project/commit/92f5d8df361bb1bb6dea88f86faeedfd295ab970
104
+ template <typename T, typename = void>
105
+ struct has__resize_default_init : std::false_type {};
106
+
107
+ template <typename T>
108
+ struct has__resize_default_init<
109
+ T, std::void_t<decltype(std::declval<T&>().__resize_default_init(42))>>
110
+ : std::true_type {};
111
+
112
+ // Prior to C++23, some versions of MSVC have _Resize_and_overwrite.
113
+ template <typename T, typename = void>
114
+ struct has_Resize_and_overwrite : std::false_type {};
115
+
116
+ template <typename T>
117
+ struct has_Resize_and_overwrite<
118
+ T, std::void_t<decltype(std::declval<T&>()._Resize_and_overwrite(
119
+ std::declval<size_t>(), ProbeResizeAndOverwriteOp))>>
120
+ : std::true_type {};
121
+
122
+ #endif // ifndef ABSL_INTERNAL_HAS_RESIZE_AND_OVERWRITE
123
+
124
+ // A less-efficient fallback implementation that uses resize().
125
+ template <typename T, typename Op>
126
+ void StringResizeAndOverwriteFallback(T& str, typename T::size_type n, Op op) {
127
+ if (ABSL_PREDICT_FALSE(n > str.max_size())) {
128
+ ThrowStdLengthError("absl::StringResizeAndOverwrite");
129
+ }
130
+ #ifdef ABSL_HAVE_MEMORY_SANITIZER
131
+ auto old_size = str.size();
132
+ #endif
133
+ str.resize(n);
134
+ #ifdef ABSL_HAVE_MEMORY_SANITIZER
135
+ if (old_size < n) {
136
+ ABSL_ANNOTATE_MEMORY_IS_UNINITIALIZED(str.data() + old_size, n - old_size);
137
+ }
138
+ #endif
139
+ typename T::size_type new_size =
140
+ static_cast<typename T::size_type>(std::move(op)(str.data(), n));
141
+ absl::base_internal::HardeningAssertGE(new_size, typename T::size_type{0});
142
+ absl::base_internal::HardeningAssertLE(new_size, n);
143
+ absl::base_internal::HardeningAssert(str.data()[n] ==
144
+ typename T::value_type{});
145
+ str.erase(new_size);
146
+ }
147
+
148
+ template <typename T, typename Op>
149
+ void StringResizeAndOverwriteImpl(T& str, typename T::size_type n, Op op) {
150
+ #ifdef ABSL_INTERNAL_HAS_RESIZE_AND_OVERWRITE
151
+ str.resize_and_overwrite(n, std::move(op));
152
+ #else
153
+ if constexpr (strings_internal::
154
+ has__google_nonstandard_backport_resize_and_overwrite<
155
+ T>::value) {
156
+ str.__google_nonstandard_backport_resize_and_overwrite(n, std::move(op));
157
+ } else if constexpr (strings_internal::has__resize_and_overwrite<T>::value) {
158
+ str.__resize_and_overwrite(n, std::move(op));
159
+ } else if constexpr (strings_internal::has__resize_default_init<T>::value) {
160
+ str.__resize_default_init(n);
161
+ str.__resize_default_init(
162
+ static_cast<typename T::size_type>(std::move(op)(str.data(), n)));
163
+ } else if constexpr (strings_internal::has_Resize_and_overwrite<T>::value) {
164
+ str._Resize_and_overwrite(n, std::move(op));
165
+ } else {
166
+ strings_internal::StringResizeAndOverwriteFallback(str, n, std::move(op));
167
+ }
168
+ #endif
169
+ }
170
+
171
+ } // namespace strings_internal
172
+
173
+ // Resizes `str` to contain at most `n` characters, using the user-provided
174
+ // operation `op` to modify the possibly indeterminate contents. `op` must
175
+ // return the finalized length of `str`.
176
+ //
177
+ // Invalidates all iterators, pointers, and references into `str`, regardless
178
+ // of whether reallocation occurs.
179
+ //
180
+ // `op(value_type* buf, size_t buf_size)` is allowed to write `value_type{}` to
181
+ // `buf[buf_size]`, which facilitiates interoperation with functions that write
182
+ // a trailing NUL. Please note that this requirement is more strict than
183
+ // `basic_string::resize_and_overwrite()`, which allows writing an abitrary
184
+ // value to `buf[buf_size]`.
185
+ template <typename T, typename Op>
186
+ void StringResizeAndOverwrite(T& str, typename T::size_type n, Op op) {
187
+ strings_internal::StringResizeAndOverwriteImpl(str, n, std::move(op));
188
+ #if defined(ABSL_HAVE_MEMORY_SANITIZER)
189
+ __msan_check_mem_is_initialized(str.data(), str.size());
190
+ #endif
191
+ }
192
+
193
+ ABSL_NAMESPACE_END
194
+ } // namespace absl
195
+
196
+ #undef ABSL_INTERNAL_HAS_RESIZE_AND_OVERWRITE
197
+
198
+ #endif // ABSL_STRINGS_RESIZE_AND_OVERWRITE_H_
@@ -26,7 +26,8 @@
26
26
  #include "absl/base/config.h"
27
27
  #include "absl/base/internal/raw_logging.h"
28
28
  #include "absl/base/nullability.h"
29
- #include "absl/strings/internal/resize_uninitialized.h"
29
+ #include "absl/strings/internal/append_and_overwrite.h"
30
+ #include "absl/strings/resize_and_overwrite.h"
30
31
  #include "absl/strings/string_view.h"
31
32
 
32
33
  namespace absl {
@@ -52,11 +53,6 @@ inline char* absl_nonnull Append(char* absl_nonnull out, const AlphaNum& x) {
52
53
  return after;
53
54
  }
54
55
 
55
- inline void STLStringAppendUninitializedAmortized(std::string* dest,
56
- size_t to_append) {
57
- strings_internal::AppendUninitializedTraits<std::string>::Append(dest,
58
- to_append);
59
- }
60
56
  } // namespace
61
57
 
62
58
  std::string StrCat(const AlphaNum& a, const AlphaNum& b) {
@@ -67,13 +63,14 @@ std::string StrCat(const AlphaNum& a, const AlphaNum& b) {
67
63
  const uint64_t result_size =
68
64
  static_cast<uint64_t>(a.size()) + static_cast<uint64_t>(b.size());
69
65
  ABSL_INTERNAL_CHECK(result_size <= kMaxSize, "size_t overflow");
70
- absl::strings_internal::STLStringResizeUninitialized(
71
- &result, static_cast<size_t>(result_size));
72
- char* const begin = &result[0];
73
- char* out = begin;
74
- out = Append(out, a);
75
- out = Append(out, b);
76
- assert(out == begin + result.size());
66
+ absl::StringResizeAndOverwrite(result, static_cast<size_t>(result_size),
67
+ [&a, &b](char* const begin, size_t buf_size) {
68
+ char* out = begin;
69
+ out = Append(out, a);
70
+ out = Append(out, b);
71
+ assert(out == begin + buf_size);
72
+ return buf_size;
73
+ });
77
74
  return result;
78
75
  }
79
76
 
@@ -86,14 +83,16 @@ std::string StrCat(const AlphaNum& a, const AlphaNum& b, const AlphaNum& c) {
86
83
  static_cast<uint64_t>(b.size()) +
87
84
  static_cast<uint64_t>(c.size());
88
85
  ABSL_INTERNAL_CHECK(result_size <= kMaxSize, "size_t overflow");
89
- strings_internal::STLStringResizeUninitialized(
90
- &result, static_cast<size_t>(result_size));
91
- char* const begin = &result[0];
92
- char* out = begin;
93
- out = Append(out, a);
94
- out = Append(out, b);
95
- out = Append(out, c);
96
- assert(out == begin + result.size());
86
+ absl::StringResizeAndOverwrite(
87
+ result, static_cast<size_t>(result_size),
88
+ [&a, &b, &c](char* const begin, size_t buf_size) {
89
+ char* out = begin;
90
+ out = Append(out, a);
91
+ out = Append(out, b);
92
+ out = Append(out, c);
93
+ assert(out == begin + buf_size);
94
+ return buf_size;
95
+ });
97
96
  return result;
98
97
  }
99
98
 
@@ -103,20 +102,21 @@ std::string StrCat(const AlphaNum& a, const AlphaNum& b, const AlphaNum& c,
103
102
  // Use uint64_t to prevent size_t overflow. We assume it is not possible for
104
103
  // in memory strings to overflow a uint64_t.
105
104
  constexpr uint64_t kMaxSize = uint64_t{std::numeric_limits<size_t>::max()};
106
- const uint64_t result_size = static_cast<uint64_t>(a.size()) +
107
- static_cast<uint64_t>(b.size()) +
108
- static_cast<uint64_t>(c.size()) +
109
- static_cast<uint64_t>(d.size());
105
+ const uint64_t result_size =
106
+ static_cast<uint64_t>(a.size()) + static_cast<uint64_t>(b.size()) +
107
+ static_cast<uint64_t>(c.size()) + static_cast<uint64_t>(d.size());
110
108
  ABSL_INTERNAL_CHECK(result_size <= kMaxSize, "size_t overflow");
111
- strings_internal::STLStringResizeUninitialized(
112
- &result, static_cast<size_t>(result_size));
113
- char* const begin = &result[0];
114
- char* out = begin;
115
- out = Append(out, a);
116
- out = Append(out, b);
117
- out = Append(out, c);
118
- out = Append(out, d);
119
- assert(out == begin + result.size());
109
+ absl::StringResizeAndOverwrite(
110
+ result, static_cast<size_t>(result_size),
111
+ [&a, &b, &c, &d](char* const begin, size_t buf_size) {
112
+ char* out = begin;
113
+ out = Append(out, a);
114
+ out = Append(out, b);
115
+ out = Append(out, c);
116
+ out = Append(out, d);
117
+ assert(out == begin + buf_size);
118
+ return buf_size;
119
+ });
120
120
  return result;
121
121
  }
122
122
 
@@ -133,19 +133,19 @@ std::string CatPieces(std::initializer_list<absl::string_view> pieces) {
133
133
  total_size += piece.size();
134
134
  }
135
135
  ABSL_INTERNAL_CHECK(total_size <= kMaxSize, "size_t overflow");
136
- strings_internal::STLStringResizeUninitialized(
137
- &result, static_cast<size_t>(total_size));
138
-
139
- char* const begin = &result[0];
140
- char* out = begin;
141
- for (absl::string_view piece : pieces) {
142
- const size_t this_size = piece.size();
143
- if (this_size != 0) {
144
- memcpy(out, piece.data(), this_size);
145
- out += this_size;
146
- }
147
- }
148
- assert(out == begin + result.size());
136
+ absl::StringResizeAndOverwrite(result, static_cast<size_t>(total_size),
137
+ [&pieces](char* const begin, size_t buf_size) {
138
+ char* out = begin;
139
+ for (absl::string_view piece : pieces) {
140
+ const size_t this_size = piece.size();
141
+ if (this_size != 0) {
142
+ memcpy(out, piece.data(), this_size);
143
+ out += this_size;
144
+ }
145
+ }
146
+ assert(out == begin + buf_size);
147
+ return buf_size;
148
+ });
149
149
  return result;
150
150
  }
151
151
 
@@ -160,49 +160,51 @@ std::string CatPieces(std::initializer_list<absl::string_view> pieces) {
160
160
 
161
161
  void AppendPieces(std::string* absl_nonnull dest,
162
162
  std::initializer_list<absl::string_view> pieces) {
163
- size_t old_size = dest->size();
164
163
  size_t to_append = 0;
165
164
  for (absl::string_view piece : pieces) {
166
165
  ASSERT_NO_OVERLAP(*dest, piece);
167
166
  to_append += piece.size();
168
167
  }
169
- STLStringAppendUninitializedAmortized(dest, to_append);
170
-
171
- char* const begin = &(*dest)[0];
172
- char* out = begin + old_size;
173
- for (absl::string_view piece : pieces) {
174
- const size_t this_size = piece.size();
175
- if (this_size != 0) {
176
- memcpy(out, piece.data(), this_size);
177
- out += this_size;
178
- }
179
- }
180
- assert(out == begin + dest->size());
168
+ StringAppendAndOverwrite(*dest, to_append,
169
+ [&pieces](char* const buf, size_t buf_size) {
170
+ char* out = buf;
171
+ for (absl::string_view piece : pieces) {
172
+ const size_t this_size = piece.size();
173
+ if (this_size != 0) {
174
+ memcpy(out, piece.data(), this_size);
175
+ out += this_size;
176
+ }
177
+ }
178
+ assert(out == buf + buf_size);
179
+ return buf_size;
180
+ });
181
181
  }
182
182
 
183
183
  } // namespace strings_internal
184
184
 
185
185
  void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a) {
186
186
  ASSERT_NO_OVERLAP(*dest, a);
187
- std::string::size_type old_size = dest->size();
188
- STLStringAppendUninitializedAmortized(dest, a.size());
189
- char* const begin = &(*dest)[0];
190
- char* out = begin + old_size;
191
- out = Append(out, a);
192
- assert(out == begin + dest->size());
187
+ strings_internal::StringAppendAndOverwrite(
188
+ *dest, a.size(), [&a](char* const buf, size_t buf_size) {
189
+ char* out = buf;
190
+ out = Append(out, a);
191
+ assert(out == buf + buf_size);
192
+ return buf_size;
193
+ });
193
194
  }
194
195
 
195
196
  void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a,
196
197
  const AlphaNum& b) {
197
198
  ASSERT_NO_OVERLAP(*dest, a);
198
199
  ASSERT_NO_OVERLAP(*dest, b);
199
- std::string::size_type old_size = dest->size();
200
- STLStringAppendUninitializedAmortized(dest, a.size() + b.size());
201
- char* const begin = &(*dest)[0];
202
- char* out = begin + old_size;
203
- out = Append(out, a);
204
- out = Append(out, b);
205
- assert(out == begin + dest->size());
200
+ strings_internal::StringAppendAndOverwrite(
201
+ *dest, a.size() + b.size(), [&a, &b](char* const buf, size_t buf_size) {
202
+ char* out = buf;
203
+ out = Append(out, a);
204
+ out = Append(out, b);
205
+ assert(out == buf + buf_size);
206
+ return buf_size;
207
+ });
206
208
  }
207
209
 
208
210
  void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a,
@@ -210,14 +212,16 @@ void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a,
210
212
  ASSERT_NO_OVERLAP(*dest, a);
211
213
  ASSERT_NO_OVERLAP(*dest, b);
212
214
  ASSERT_NO_OVERLAP(*dest, c);
213
- std::string::size_type old_size = dest->size();
214
- STLStringAppendUninitializedAmortized(dest, a.size() + b.size() + c.size());
215
- char* const begin = &(*dest)[0];
216
- char* out = begin + old_size;
217
- out = Append(out, a);
218
- out = Append(out, b);
219
- out = Append(out, c);
220
- assert(out == begin + dest->size());
215
+ strings_internal::StringAppendAndOverwrite(
216
+ *dest, a.size() + b.size() + c.size(),
217
+ [&a, &b, &c](char* const buf, size_t buf_size) {
218
+ char* out = buf;
219
+ out = Append(out, a);
220
+ out = Append(out, b);
221
+ out = Append(out, c);
222
+ assert(out == buf + buf_size);
223
+ return buf_size;
224
+ });
221
225
  }
222
226
 
223
227
  void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a,
@@ -226,16 +230,17 @@ void StrAppend(std::string* absl_nonnull dest, const AlphaNum& a,
226
230
  ASSERT_NO_OVERLAP(*dest, b);
227
231
  ASSERT_NO_OVERLAP(*dest, c);
228
232
  ASSERT_NO_OVERLAP(*dest, d);
229
- std::string::size_type old_size = dest->size();
230
- STLStringAppendUninitializedAmortized(
231
- dest, a.size() + b.size() + c.size() + d.size());
232
- char* const begin = &(*dest)[0];
233
- char* out = begin + old_size;
234
- out = Append(out, a);
235
- out = Append(out, b);
236
- out = Append(out, c);
237
- out = Append(out, d);
238
- assert(out == begin + dest->size());
233
+ strings_internal::StringAppendAndOverwrite(
234
+ *dest, a.size() + b.size() + c.size() + d.size(),
235
+ [&a, &b, &c, &d](char* const buf, size_t buf_size) {
236
+ char* out = buf;
237
+ out = Append(out, a);
238
+ out = Append(out, b);
239
+ out = Append(out, c);
240
+ out = Append(out, d);
241
+ assert(out == buf + buf_size);
242
+ return buf_size;
243
+ });
239
244
  }
240
245
 
241
246
  ABSL_NAMESPACE_END
@@ -43,6 +43,13 @@
43
43
  // Floating point numbers are formatted with six-digit precision, which is
44
44
  // the default for "std::cout <<" or printf "%g" (the same as "%.6g").
45
45
  //
46
+ // Floating point values can also be converted to a string which, if passed to
47
+ // `strtod()`, would produce the exact same original double (except in case of
48
+ // NaN; all NaNs are considered the same value) by passing the number to
49
+ // absl::HighPrecision. HighPrecision tries to keep the string short but
50
+ // it's not guaranteed to be as short as possible.
51
+ // See http://go/faster-double-strcat
52
+ //
46
53
  // You can convert to hexadecimal output rather than decimal output using the
47
54
  // `Hex` type contained here. To do so, pass `Hex(my_int)` as a parameter to
48
55
  // `StrCat()` or `StrAppend()`. You may specify a minimum hex field width using
@@ -106,9 +113,9 @@
106
113
  #include "absl/base/port.h"
107
114
  #include "absl/meta/type_traits.h"
108
115
  #include "absl/strings/has_absl_stringify.h"
109
- #include "absl/strings/internal/resize_uninitialized.h"
110
116
  #include "absl/strings/internal/stringify_sink.h"
111
117
  #include "absl/strings/numbers.h"
118
+ #include "absl/strings/resize_and_overwrite.h"
112
119
  #include "absl/strings/string_view.h"
113
120
 
114
121
  #if !defined(ABSL_USES_STD_STRING_VIEW)
@@ -304,6 +311,35 @@ struct Dec {
304
311
  }
305
312
  };
306
313
 
314
+ // -----------------------------------------------------------------------------
315
+ // HighPrecision
316
+ // -----------------------------------------------------------------------------
317
+ //
318
+ // Converts floating point values to a string which, if passed to
319
+ // `absl::SimpleAtof`/`absl::SimpleAtod`, would produce the exact same original
320
+ // floating point value (except in case of NaN; all NaNs are considered the same
321
+ // value). Tries to keep the string short but it's not guaranteed to be as short
322
+ // as possible.
323
+ //
324
+ // HighPrecision is conisderably slower than the default formatting, so only use
325
+ // it if you need the string to convert back to the same floating-point value.
326
+
327
+ inline strings_internal::AlphaNumBuffer<numbers_internal::kFastToBufferSize>
328
+ HighPrecision(float f) {
329
+ strings_internal::AlphaNumBuffer<numbers_internal::kFastToBufferSize> result;
330
+ result.size =
331
+ strlen(numbers_internal::RoundTripFloatToBuffer(f, &result.data[0]));
332
+ return result;
333
+ }
334
+
335
+ inline strings_internal::AlphaNumBuffer<numbers_internal::kFastToBufferSize>
336
+ HighPrecision(double d) {
337
+ strings_internal::AlphaNumBuffer<numbers_internal::kFastToBufferSize> result;
338
+ result.size =
339
+ strlen(numbers_internal::RoundTripDoubleToBuffer(d, &result.data[0]));
340
+ return result;
341
+ }
342
+
307
343
  // -----------------------------------------------------------------------------
308
344
  // AlphaNum
309
345
  // -----------------------------------------------------------------------------
@@ -471,23 +507,27 @@ std::string IntegerToString(Integer i) {
471
507
  // with 22 bytes (including NULL at the end).
472
508
  constexpr size_t kMaxDigits10 = 22;
473
509
  std::string result;
474
- strings_internal::STLStringResizeUninitialized(&result, kMaxDigits10);
475
- char* start = &result[0];
476
- // note: this can be optimized to not write last zero.
477
- char* end = numbers_internal::FastIntToBuffer(i, start);
478
- auto size = static_cast<size_t>(end - start);
479
- assert((size < result.size()) &&
480
- "StrCat(Integer) does not fit into kMaxDigits10");
481
- result.erase(size);
510
+ StringResizeAndOverwrite(
511
+ result, kMaxDigits10, [i](char* start, size_t buf_size) {
512
+ // Note: This can be optimized to not write last zero.
513
+ char* end = numbers_internal::FastIntToBuffer(i, start);
514
+ auto size = static_cast<size_t>(end - start);
515
+ ABSL_ASSERT(size < buf_size);
516
+ return size;
517
+ });
482
518
  return result;
483
519
  }
520
+
484
521
  template <typename Float>
485
522
  std::string FloatToString(Float f) {
486
523
  std::string result;
487
- strings_internal::STLStringResizeUninitialized(
488
- &result, numbers_internal::kSixDigitsToBufferSize);
489
- char* start = &result[0];
490
- result.erase(numbers_internal::SixDigitsToBuffer(f, start));
524
+ StringResizeAndOverwrite(result, numbers_internal::kSixDigitsToBufferSize,
525
+ [f](char* start, size_t buf_size) {
526
+ size_t size =
527
+ numbers_internal::SixDigitsToBuffer(f, start);
528
+ ABSL_ASSERT(size < buf_size);
529
+ return size;
530
+ });
491
531
  return result;
492
532
  }
493
533
 
@@ -127,7 +127,7 @@ class ByString {
127
127
  absl::string_view Find(absl::string_view text, size_t pos) const;
128
128
 
129
129
  private:
130
- const std::string delimiter_;
130
+ std::string delimiter_;
131
131
  };
132
132
 
133
133
  // ByAsciiWhitespace
@@ -277,7 +277,7 @@ template <typename Delimiter>
277
277
  class MaxSplitsImpl {
278
278
  public:
279
279
  MaxSplitsImpl(Delimiter delimiter, int limit)
280
- : delimiter_(delimiter), limit_(limit), count_(0) {}
280
+ : delimiter_(std::move(delimiter)), limit_(limit), count_(0) {}
281
281
  absl::string_view Find(absl::string_view text, size_t pos) {
282
282
  if (count_++ == limit_) {
283
283
  return absl::string_view(text.data() + text.size(),
@@ -382,7 +382,7 @@ struct SkipEmpty {
382
382
  // // v[0] == " a ", v[1] == " ", v[2] == "b"
383
383
  struct SkipWhitespace {
384
384
  bool operator()(absl::string_view sp) const {
385
- sp = absl::StripAsciiWhitespace(sp);
385
+ sp = absl::StripLeadingAsciiWhitespace(sp);
386
386
  return !sp.empty();
387
387
  }
388
388
  };
@@ -390,7 +390,7 @@ struct SkipWhitespace {
390
390
  template <typename T>
391
391
  using EnableSplitIfString =
392
392
  typename std::enable_if<std::is_same<T, std::string>::value ||
393
- std::is_same<T, const std::string>::value,
393
+ std::is_same<T, const std::string>::value,
394
394
  int>::type;
395
395
 
396
396
  //------------------------------------------------------------------------------
@@ -399,11 +399,16 @@ using EnableSplitIfString =
399
399
 
400
400
  // StrSplit()
401
401
  //
402
- // Splits a given string based on the provided `Delimiter` object, returning the
403
- // elements within the type specified by the caller. Optionally, you may pass a
404
- // `Predicate` to `StrSplit()` indicating whether to include or exclude the
405
- // resulting element within the final result set. (See the overviews for
406
- // Delimiters and Predicates above.)
402
+ // Splits a string into a sequence of substrings identified by `Delimiter`. The
403
+ // input is processed sequentially from beginning to end, and each resulting
404
+ // substring is filtered by an optional `Predicate` before inclusion in the
405
+ // result set. `StrSplit()` returns a lazy range that preserves the substrings
406
+ // original order and is convertible to the collection type specified by the
407
+ // caller.
408
+ //
409
+ // Optionally, you may pass a `Predicate` to `StrSplit()` indicating whether to
410
+ // include or exclude the resulting element within the final result set. (See
411
+ // the overviews for Delimiters and Predicates above.)
407
412
  //
408
413
  // Example:
409
414
  //