grpc 1.84.0 → 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.
- checksums.yaml +4 -4
- data/Makefile +40 -27
- data/include/grpc/event_engine/memory_allocator.h +1 -0
- data/include/grpc/grpc.h +3 -0
- data/include/grpc/grpc_security_constants.h +2 -0
- data/include/grpc/impl/channel_arg_names.h +4 -0
- data/src/core/call/call_filters.h +10 -10
- data/src/core/{lib/security/authorization → call}/evaluate_args.cc +22 -1
- data/src/core/{lib/security/authorization → call}/evaluate_args.h +19 -5
- data/src/core/call/filter_fusion.h +15 -15
- data/src/core/call/interception_chain.h +3 -3
- data/src/core/call/metadata_batch.cc +1 -0
- data/src/core/call/metadata_batch.h +45 -33
- data/src/core/call/parsed_metadata.h +3 -3
- data/src/core/call/request_buffer.cc +6 -6
- data/src/core/call/request_buffer.h +1 -1
- data/src/core/channelz/channel_trace.cc +5 -5
- data/src/core/channelz/channel_trace.h +1 -1
- data/src/core/channelz/channelz.cc +9 -9
- data/src/core/channelz/channelz.h +12 -12
- data/src/core/channelz/channelz_registry.cc +10 -10
- data/src/core/channelz/ztrace_collector.h +5 -5
- data/src/core/client_channel/client_channel.cc +4 -4
- data/src/core/client_channel/client_channel_filter.cc +14 -14
- data/src/core/client_channel/global_subchannel_pool.cc +4 -4
- data/src/core/client_channel/subchannel.cc +24 -23
- data/src/core/client_channel/subchannel_stream_client.cc +5 -5
- data/src/core/credentials/call/external/aws_external_account_credentials.cc +7 -7
- data/src/core/credentials/call/external/aws_request_signer.cc +16 -0
- data/src/core/credentials/call/external/external_account_credentials.cc +4 -4
- data/src/core/credentials/call/regional_access_boundary_fetcher.cc +9 -9
- data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +4 -4
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +3 -3
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +1 -1
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +9 -9
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +1 -1
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +6 -6
- data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +3 -3
- data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +4 -4
- data/src/core/credentials/transport/tls/ssl_utils.cc +10 -0
- data/src/core/credentials/transport/tls/tls_security_connector.cc +10 -10
- data/src/core/credentials/transport/tls/tls_security_connector.h +6 -6
- data/src/core/credentials/transport/tls/tls_utils.h +9 -0
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +1 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +1 -1
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +15 -0
- data/src/core/ext/filters/rbac/rbac_filter.h +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +5 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +30 -21
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -11
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +14 -11
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -4
- data/src/core/ext/transport/chttp2/transport/frame.h +9 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -9
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -2
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +16 -18
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +2 -1
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +277 -189
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +40 -17
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +12 -24
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +3 -29
- data/src/core/ext/transport/chttp2/transport/internal.h +2 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -2
- data/src/core/ext/transport/chttp2/transport/read_context.h +96 -3
- data/src/core/ext/transport/chttp2/transport/reclaimer.cc +32 -0
- data/src/core/ext/transport/chttp2/transport/reclaimer.h +64 -0
- data/src/core/ext/transport/chttp2/transport/security_frame.h +8 -8
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +17 -9
- data/src/core/ext/transport/chttp2/transport/write_cycle.h +23 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +5 -5
- data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb.h +137 -73
- data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb_minitable.c +45 -25
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb.h +6 -6
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb.h +46 -26
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.c +17 -14
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/grpc/health/v1/health.upb.h +329 -0
- data/src/core/ext/upb-gen/grpc/health/v1/health.upb_minitable.c +128 -0
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/health/v1/health.upb_minitable.h +8 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb.h +185 -23
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.c +20 -12
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb.h +58 -42
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.c +17 -12
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.h +5 -5
- data/src/core/ext/upbdefs-gen/grpc/channelz/v1/channelz.upbdefs.c +567 -549
- data/src/core/ext/upbdefs-gen/grpc/lookup/v1/rls_config.upbdefs.c +182 -0
- data/src/core/ext/upbdefs-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upbdefs.h +14 -14
- data/src/core/filter/ext_proc/ext_proc_filter.cc +1603 -46
- data/src/core/filter/ext_proc/ext_proc_filter.h +55 -22
- data/src/core/filter/ext_proc/ext_proc_messages.cc +106 -51
- data/src/core/filter/ext_proc/ext_proc_messages.h +36 -9
- data/src/core/handshaker/handshaker.cc +4 -4
- data/src/core/handshaker/http_connect/http_connect_client_handshaker.cc +3 -3
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +10 -10
- data/src/core/handshaker/security/secure_endpoint.cc +13 -13
- data/src/core/handshaker/security/security_handshaker.cc +6 -6
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +4 -4
- data/src/core/lib/channel/channel_args.cc +20 -0
- data/src/core/lib/channel/channel_args.h +17 -17
- data/src/core/lib/channel/promise_based_filter.cc +2 -2
- data/src/core/lib/channel/promise_based_filter.h +66 -27
- data/src/core/lib/debug/trace_flags.cc +2 -0
- data/src/core/lib/debug/trace_flags.h +1 -0
- data/src/core/lib/event_engine/ares_resolver.cc +14 -14
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +7 -7
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +4 -4
- data/src/core/lib/event_engine/default_event_engine.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +9 -9
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +16 -14
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +6 -6
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +3 -3
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +7 -7
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +17 -17
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +3 -3
- data/src/core/lib/event_engine/posix_engine/timer.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +3 -3
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.cc +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.h +3 -3
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +50 -21
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +3 -3
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +3 -3
- data/src/core/lib/event_engine/windows/windows_engine.cc +15 -15
- data/src/core/lib/event_engine/windows/windows_listener.cc +6 -6
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +6 -6
- data/src/core/lib/experiments/experiments.cc +48 -0
- data/src/core/lib/experiments/experiments.h +24 -0
- data/src/core/lib/iomgr/buffer_list.cc +3 -3
- data/src/core/lib/iomgr/buffer_list.h +1 -1
- data/src/core/lib/iomgr/combiner.cc +0 -1
- data/src/core/lib/iomgr/ev_apple.cc +4 -4
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
- data/src/core/lib/iomgr/tcp_client_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_posix.cc +7 -7
- data/src/core/lib/promise/activity.cc +1 -1
- data/src/core/lib/promise/activity.h +1 -1
- data/src/core/lib/promise/arena_promise.h +7 -7
- data/src/core/lib/promise/detail/promise_factory.h +8 -8
- data/src/core/lib/promise/detail/promise_like.h +4 -4
- data/src/core/lib/promise/inter_activity_latch.h +6 -6
- data/src/core/lib/promise/inter_activity_pipe.h +1 -1
- data/src/core/lib/promise/observable.h +3 -3
- data/src/core/lib/promise/party.cc +1 -1
- data/src/core/lib/promise/try_seq.h +2 -2
- data/src/core/lib/resource_quota/arena.h +3 -3
- data/src/core/lib/resource_quota/memory_quota.cc +16 -16
- data/src/core/lib/resource_quota/memory_quota.h +1 -1
- data/src/core/lib/resource_quota/thread_quota.cc +3 -3
- data/src/core/lib/security/authorization/audit_logging.cc +5 -5
- data/src/core/lib/security/authorization/authorization_engine.h +1 -1
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
- data/src/core/lib/security/authorization/matchers.h +1 -1
- data/src/core/lib/surface/call.cc +8 -7
- data/src/core/lib/surface/call.h +3 -3
- data/src/core/lib/surface/call_utils.h +4 -0
- data/src/core/lib/surface/channel.cc +1 -1
- data/src/core/lib/surface/channel.h +1 -1
- data/src/core/lib/surface/channel_init.cc +1 -1
- data/src/core/lib/surface/init.cc +7 -7
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/legacy_channel.cc +2 -2
- data/src/core/lib/surface/version.cc +1 -1
- data/src/core/lib/transport/transport_framing_endpoint_extension.h +3 -3
- data/src/core/load_balancing/autosharding/autosharding.cc +931 -0
- data/src/core/load_balancing/autosharding/autosharding.h +78 -0
- data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +2 -2
- data/src/core/load_balancing/grpclb/load_balancer_api.cc +1 -1
- data/src/core/load_balancing/grpclb/load_balancer_api.h +3 -1
- data/src/core/load_balancing/health_check_client.cc +7 -7
- data/src/core/load_balancing/lb_policy.cc +1 -1
- data/src/core/load_balancing/oob_backend_metric.cc +5 -5
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +2 -2
- data/src/core/load_balancing/ring_hash/ring_hash.cc +109 -37
- data/src/core/load_balancing/rls/rls.cc +23 -17
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +10 -10
- data/src/core/load_balancing/xds/cds.cc +6 -5
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +2 -2
- data/src/core/load_balancing/xds/xds_override_host.cc +10 -10
- data/src/core/mitigation_engine/mitigation_engine.h +28 -4
- data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
- data/src/core/resolver/dns/dns_resolver.cc +7 -7
- data/src/core/resolver/fake/fake_resolver.cc +5 -5
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +38 -30
- data/src/core/server/server.cc +30 -30
- data/src/core/server/server.h +4 -3
- data/src/core/server/server_config_selector_filter.cc +3 -3
- data/src/core/server/xds_server_config_fetcher_legacy.cc +15 -15
- data/src/core/telemetry/default_tcp_tracer.cc +1 -1
- data/src/core/telemetry/instrument.cc +30 -16
- data/src/core/telemetry/instrument.h +3 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +3 -3
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +4 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +2 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -1
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +5 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +3 -3
- data/src/core/tsi/ssl_transport_security.cc +46 -13
- data/src/core/tsi/ssl_transport_security.h +7 -0
- data/src/core/tsi/ssl_transport_security_utils.cc +16 -6
- data/src/core/util/event_log.cc +3 -3
- data/src/core/util/http_client/httpcli.cc +5 -5
- data/src/core/util/http_client/httpcli.h +1 -1
- data/src/core/util/json/json_object_loader.cc +7 -0
- data/src/core/util/json/json_object_loader.h +17 -2
- data/src/core/util/latent_see.cc +123 -36
- data/src/core/util/latent_see.h +14 -1
- data/src/core/util/mpscq.cc +1 -1
- data/src/core/util/notification.h +4 -4
- data/src/core/util/sync.h +20 -6
- data/src/core/util/table.h +20 -22
- data/src/core/util/work_serializer.cc +2 -2
- data/src/core/xds/grpc/blackboard.cc +4 -3
- data/src/core/xds/grpc/certificate_provider_store.cc +2 -2
- data/src/core/xds/grpc/streaming_call_promise_wrapper.cc +181 -0
- data/src/core/xds/grpc/streaming_call_promise_wrapper.h +213 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc_builder.cc +2 -2
- data/src/core/xds/grpc/xds_client_grpc.cc +8 -8
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
- data/src/core/xds/grpc/xds_endpoint.cc +1 -1
- data/src/core/xds/grpc/xds_endpoint_parser.cc +11 -0
- data/src/core/xds/grpc/xds_grpc_service_parser.cc +12 -10
- data/src/core/xds/grpc/xds_http_ext_proc_filter.cc +17 -14
- data/src/core/xds/grpc/xds_matcher.h +2 -2
- data/src/core/xds/grpc/xds_transport_grpc.cc +125 -85
- data/src/core/xds/grpc/xds_transport_grpc.h +19 -4
- data/src/core/xds/xds_client/lrs_client.cc +22 -19
- data/src/core/xds/xds_client/xds_client.cc +19 -16
- data/src/core/xds/xds_client/xds_transport.h +49 -3
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/README.md +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -1
- data/third_party/abseil-cpp/absl/algorithm/algorithm.h +34 -2
- data/third_party/abseil-cpp/absl/algorithm/container.h +345 -147
- data/third_party/abseil-cpp/absl/base/attributes.h +67 -44
- data/third_party/abseil-cpp/absl/base/call_once.h +1 -0
- data/third_party/abseil-cpp/absl/base/casts.cc +61 -0
- data/third_party/abseil-cpp/absl/base/casts.h +135 -2
- data/third_party/abseil-cpp/absl/base/config.h +63 -41
- data/third_party/abseil-cpp/absl/base/fast_type_id.h +30 -2
- data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/base/internal/hardening.h +136 -0
- data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +6 -2
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -4
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +26 -24
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +74 -29
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -11
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +5 -1
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
- data/third_party/abseil-cpp/absl/base/macros.h +76 -37
- data/third_party/abseil-cpp/absl/base/nullability.h +5 -5
- data/third_party/abseil-cpp/absl/base/optimization.h +4 -5
- data/third_party/abseil-cpp/absl/base/options.h +46 -18
- data/third_party/abseil-cpp/absl/base/policy_checks.h +5 -5
- data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
- data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +7 -2
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
- data/third_party/abseil-cpp/absl/container/btree_map.h +60 -10
- data/third_party/abseil-cpp/absl/container/btree_set.h +61 -15
- data/third_party/abseil-cpp/absl/container/fixed_array.h +19 -21
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +49 -27
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +50 -26
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +42 -36
- data/third_party/abseil-cpp/absl/container/internal/btree.h +32 -24
- data/third_party/abseil-cpp/absl/container/internal/btree_container.h +30 -22
- data/third_party/abseil-cpp/absl/container/internal/common.h +57 -5
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +40 -36
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +119 -39
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +14 -2
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +14 -22
- data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +52 -52
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +7 -7
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +7 -7
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +32 -40
- data/third_party/abseil-cpp/absl/container/internal/layout.h +13 -13
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +95 -72
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +633 -365
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1016 -749
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +0 -1
- data/third_party/abseil-cpp/absl/container/node_hash_map.h +58 -35
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +23 -6
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc.cc +4 -6
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +304 -188
- data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
- data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc +15 -1
- data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +12 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -11
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +14 -8
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +48 -38
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +63 -118
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +7 -47
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +20 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +83 -149
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
- data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +8 -6
- data/third_party/abseil-cpp/absl/flags/declare.h +9 -0
- data/third_party/abseil-cpp/absl/flags/flag.h +2 -1
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +19 -18
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +33 -34
- data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
- data/third_party/abseil-cpp/absl/flags/marshalling.cc +1 -16
- data/third_party/abseil-cpp/absl/flags/marshalling.h +2 -28
- data/third_party/abseil-cpp/absl/flags/reflection.cc +11 -7
- data/third_party/abseil-cpp/absl/flags/usage_config.cc +2 -2
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +22 -19
- data/third_party/abseil-cpp/absl/functional/bind_front.h +7 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +125 -20
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +43 -31
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +44 -6
- data/third_party/abseil-cpp/absl/hash/hash.h +1 -1
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +39 -51
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +379 -14
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +457 -353
- data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
- data/third_party/abseil-cpp/absl/log/internal/check_impl.h +2 -1
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +4 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +128 -50
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +38 -35
- data/third_party/abseil-cpp/absl/log/internal/log_impl.h +108 -110
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +10 -6
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +19 -1
- data/third_party/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -1
- data/third_party/abseil-cpp/absl/log/internal/proto.cc +13 -0
- data/third_party/abseil-cpp/absl/log/internal/strip.h +30 -31
- data/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
- data/third_party/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +30 -30
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
- data/third_party/abseil-cpp/absl/log/log.h +2 -2
- data/third_party/abseil-cpp/absl/log/log_entry.cc +263 -0
- data/third_party/abseil-cpp/absl/log/log_entry.h +2 -0
- data/third_party/abseil-cpp/absl/log/vlog_is_on.h +0 -2
- data/third_party/abseil-cpp/absl/memory/memory.h +55 -5
- data/third_party/abseil-cpp/absl/meta/type_traits.h +161 -56
- data/third_party/abseil-cpp/absl/numeric/int128.h +41 -21
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +32 -4
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +2 -2
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
- data/third_party/abseil-cpp/absl/random/discrete_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/distributions.h +17 -17
- data/third_party/abseil-cpp/absl/random/exponential_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
- data/third_party/abseil-cpp/absl/random/internal/entropy_pool.cc +2 -2
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
- data/third_party/abseil-cpp/absl/random/internal/platform.h +0 -13
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +5 -31
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +2 -1
- data/third_party/abseil-cpp/absl/random/internal/traits.h +21 -0
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
- data/third_party/abseil-cpp/absl/random/mocking_access.h +74 -0
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +30 -4
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +225 -63
- data/third_party/abseil-cpp/absl/status/status.cc +66 -70
- data/third_party/abseil-cpp/absl/status/status.h +254 -23
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +3 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +117 -137
- data/third_party/abseil-cpp/absl/strings/ascii.h +10 -6
- data/third_party/abseil-cpp/absl/strings/cord.cc +41 -17
- data/third_party/abseil-cpp/absl/strings/cord.h +26 -17
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +4 -2
- data/third_party/abseil-cpp/absl/strings/escaping.cc +305 -125
- data/third_party/abseil-cpp/absl/strings/escaping.h +12 -2
- data/third_party/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +27 -21
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +11 -19
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
- data/third_party/abseil-cpp/absl/strings/internal/escaping.h +2 -24
- data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -36
- data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +921 -231
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -16
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +16 -12
- data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
- data/third_party/abseil-cpp/absl/strings/numbers.cc +477 -8
- data/third_party/abseil-cpp/absl/strings/numbers.h +29 -12
- data/third_party/abseil-cpp/absl/strings/resize_and_overwrite.h +198 -0
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +96 -91
- data/third_party/abseil-cpp/absl/strings/str_cat.h +53 -13
- data/third_party/abseil-cpp/absl/strings/str_split.h +14 -9
- data/third_party/abseil-cpp/absl/strings/string_view.h +10 -716
- data/third_party/abseil-cpp/absl/strings/substitute.cc +24 -24
- data/third_party/abseil-cpp/absl/strings/substitute.h +2 -2
- data/third_party/abseil-cpp/absl/synchronization/barrier.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +24 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +41 -29
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +199 -94
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +5 -5
- data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
- data/third_party/abseil-cpp/absl/time/clock.cc +29 -30
- data/third_party/abseil-cpp/absl/time/clock.h +3 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +2 -2
- data/third_party/abseil-cpp/absl/time/format.cc +3 -10
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +131 -91
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +185 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
- data/third_party/abseil-cpp/absl/time/time.cc +4 -4
- data/third_party/abseil-cpp/absl/time/time.h +14 -13
- data/third_party/abseil-cpp/absl/types/compare.h +64 -63
- data/third_party/abseil-cpp/absl/types/internal/span.h +6 -6
- data/third_party/abseil-cpp/absl/types/optional.h +31 -4
- data/third_party/abseil-cpp/absl/types/optional_ref.h +295 -0
- data/third_party/{boringssl-with-bazel/crypto/x509/x_val.cc → abseil-cpp/absl/types/source_location.cc} +4 -14
- data/third_party/abseil-cpp/absl/types/source_location.h +172 -0
- data/third_party/abseil-cpp/absl/types/span.h +67 -38
- data/third_party/abseil-cpp/absl/types/variant.h +75 -18
- data/third_party/abseil-cpp/absl/utility/utility.h +112 -16
- data/third_party/boringssl-with-bazel/crypto/aes/aes.cc +3 -0
- data/third_party/boringssl-with-bazel/crypto/armv8_feature_parsing.h +67 -0
- data/third_party/boringssl-with-bazel/crypto/asn1/a_bitstr.cc +143 -105
- data/third_party/boringssl-with-bazel/crypto/asn1/a_bool.cc +5 -8
- data/third_party/boringssl-with-bazel/crypto/asn1/a_d2i_fp.cc +3 -3
- data/third_party/boringssl-with-bazel/crypto/asn1/a_dup.cc +6 -6
- data/third_party/boringssl-with-bazel/crypto/asn1/a_gentm.cc +33 -12
- data/third_party/boringssl-with-bazel/crypto/asn1/a_i2d_fp.cc +7 -6
- data/third_party/boringssl-with-bazel/crypto/asn1/a_int.cc +80 -52
- data/third_party/boringssl-with-bazel/crypto/asn1/a_mbstr.cc +7 -4
- data/third_party/boringssl-with-bazel/crypto/asn1/a_object.cc +70 -72
- data/third_party/boringssl-with-bazel/crypto/asn1/a_strex.cc +38 -42
- data/third_party/boringssl-with-bazel/crypto/asn1/a_strnid.cc +41 -39
- data/third_party/boringssl-with-bazel/crypto/asn1/a_time.cc +59 -35
- data/third_party/boringssl-with-bazel/crypto/asn1/a_type.cc +275 -15
- data/third_party/boringssl-with-bazel/crypto/asn1/a_utctm.cc +32 -13
- data/third_party/boringssl-with-bazel/crypto/asn1/asn1_lib.cc +128 -30
- data/third_party/boringssl-with-bazel/crypto/asn1/asn_pack.cc +10 -10
- data/third_party/boringssl-with-bazel/crypto/asn1/f_int.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/asn1/f_string.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/asn1/internal.h +261 -115
- data/third_party/boringssl-with-bazel/crypto/asn1/posix_time.cc +8 -5
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_dec.cc +373 -725
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_enc.cc +211 -526
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_fre.cc +22 -19
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_new.cc +26 -24
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_typ.cc +19 -5
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_utl.cc +47 -51
- data/third_party/boringssl-with-bazel/crypto/base64/base64.cc +14 -15
- data/third_party/boringssl-with-bazel/crypto/bcm_support.h +7 -29
- data/third_party/boringssl-with-bazel/crypto/bio/bio.cc +234 -176
- data/third_party/boringssl-with-bazel/crypto/bio/bio_mem.cc +72 -86
- data/third_party/boringssl-with-bazel/crypto/bio/connect.cc +153 -199
- data/third_party/boringssl-with-bazel/crypto/bio/errno.cc +3 -1
- data/third_party/boringssl-with-bazel/crypto/bio/fd.cc +56 -55
- data/third_party/boringssl-with-bazel/crypto/bio/file.cc +70 -78
- data/third_party/boringssl-with-bazel/crypto/bio/hexdump.cc +6 -4
- data/third_party/boringssl-with-bazel/crypto/bio/internal.h +69 -17
- data/third_party/boringssl-with-bazel/crypto/bio/pair.cc +117 -136
- data/third_party/boringssl-with-bazel/crypto/bio/printf.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/bio/socket.cc +116 -50
- data/third_party/boringssl-with-bazel/crypto/bio/socket_helper.cc +53 -5
- data/third_party/boringssl-with-bazel/crypto/blake2/blake2.cc +9 -5
- data/third_party/boringssl-with-bazel/crypto/bn/bn_asn1.cc +2 -2
- data/third_party/boringssl-with-bazel/crypto/bn/convert.cc +56 -70
- data/third_party/boringssl-with-bazel/crypto/bn/div.cc +102 -0
- data/third_party/boringssl-with-bazel/crypto/bn/exponentiation.cc +26 -42
- data/third_party/boringssl-with-bazel/crypto/bn/sqrt.cc +93 -0
- data/third_party/boringssl-with-bazel/crypto/buf/buf.cc +6 -5
- data/third_party/boringssl-with-bazel/crypto/bytestring/asn1_compat.cc +6 -5
- data/third_party/boringssl-with-bazel/crypto/bytestring/ber.cc +22 -20
- data/third_party/boringssl-with-bazel/crypto/bytestring/cbb.cc +119 -59
- data/third_party/boringssl-with-bazel/crypto/bytestring/cbs.cc +115 -31
- data/third_party/boringssl-with-bazel/crypto/bytestring/internal.h +79 -24
- data/third_party/boringssl-with-bazel/crypto/bytestring/unicode.cc +2 -2
- data/third_party/boringssl-with-bazel/crypto/chacha/chacha.cc +5 -3
- data/third_party/boringssl-with-bazel/crypto/chacha/internal.h +23 -22
- data/third_party/boringssl-with-bazel/crypto/cipher/derive_key.cc +14 -18
- data/third_party/boringssl-with-bazel/crypto/cipher/e_aesctrhmac.cc +73 -58
- data/third_party/boringssl-with-bazel/crypto/cipher/e_aeseax.cc +132 -70
- data/third_party/boringssl-with-bazel/crypto/cipher/e_aesgcmsiv.cc +390 -249
- data/third_party/boringssl-with-bazel/crypto/cipher/e_chacha20poly1305.cc +200 -137
- data/third_party/boringssl-with-bazel/crypto/cipher/e_des.cc +45 -29
- data/third_party/boringssl-with-bazel/crypto/cipher/e_null.cc +9 -5
- data/third_party/boringssl-with-bazel/crypto/cipher/e_rc2.cc +43 -28
- data/third_party/boringssl-with-bazel/crypto/cipher/e_rc4.cc +7 -5
- data/third_party/boringssl-with-bazel/crypto/cipher/e_tls.cc +250 -237
- data/third_party/boringssl-with-bazel/crypto/cipher/get_cipher.cc +12 -12
- data/third_party/boringssl-with-bazel/crypto/cipher/internal.h +59 -59
- data/third_party/boringssl-with-bazel/crypto/cipher/tls_cbc.cc +111 -111
- data/third_party/boringssl-with-bazel/crypto/cms/cms.cc +48 -42
- data/third_party/boringssl-with-bazel/crypto/conf/conf.cc +69 -63
- data/third_party/boringssl-with-bazel/crypto/conf/internal.h +11 -12
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_apple.cc +8 -5
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_fuchsia.cc +6 -1
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_linux.cc +7 -1
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_openbsd.cc +7 -21
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_sysreg.cc +15 -41
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_win.cc +16 -3
- data/third_party/boringssl-with-bazel/crypto/cpu_arm_freebsd.cc +4 -2
- data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.cc +54 -31
- data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.h +79 -101
- data/third_party/boringssl-with-bazel/crypto/cpu_intel.cc +51 -45
- data/third_party/boringssl-with-bazel/crypto/crypto.cc +26 -55
- data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519.cc +28 -25
- data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519_tables.h +6 -6
- data/third_party/boringssl-with-bazel/crypto/curve25519/internal.h +14 -15
- data/third_party/boringssl-with-bazel/crypto/curve25519/spake25519.cc +23 -20
- data/third_party/boringssl-with-bazel/crypto/des/des.cc +27 -19
- data/third_party/boringssl-with-bazel/crypto/des/internal.h +4 -9
- data/third_party/boringssl-with-bazel/crypto/dh/dh_asn1.cc +34 -49
- data/third_party/boringssl-with-bazel/crypto/dh/params.cc +44 -41
- data/third_party/boringssl-with-bazel/crypto/digest/digest_extra.cc +87 -40
- data/third_party/boringssl-with-bazel/crypto/dsa/dsa.cc +237 -260
- data/third_party/boringssl-with-bazel/crypto/dsa/dsa_asn1.cc +100 -173
- data/third_party/boringssl-with-bazel/crypto/dsa/internal.h +23 -21
- data/third_party/boringssl-with-bazel/crypto/ec/ec_asn1.cc +181 -209
- data/third_party/boringssl-with-bazel/crypto/ec/ec_derive.cc +26 -28
- data/third_party/boringssl-with-bazel/crypto/ec/hash_to_curve.cc +265 -174
- data/third_party/boringssl-with-bazel/crypto/ec/internal.h +54 -18
- data/third_party/boringssl-with-bazel/crypto/ecdh/ecdh.cc +7 -5
- data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_asn1.cc +50 -70
- data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_p1363.cc +54 -0
- data/third_party/boringssl-with-bazel/crypto/engine/engine.cc +7 -7
- data/third_party/boringssl-with-bazel/crypto/err/err.cc +116 -105
- data/third_party/boringssl-with-bazel/crypto/err/internal.h +8 -21
- data/third_party/boringssl-with-bazel/crypto/evp/evp.cc +238 -166
- data/third_party/boringssl-with-bazel/crypto/evp/evp_asn1.cc +202 -234
- data/third_party/boringssl-with-bazel/crypto/evp/evp_ctx.cc +260 -159
- data/third_party/boringssl-with-bazel/crypto/evp/evp_kem.cc +82 -0
- data/third_party/boringssl-with-bazel/crypto/evp/internal.h +292 -137
- data/third_party/boringssl-with-bazel/crypto/evp/p_dh.cc +198 -25
- data/third_party/boringssl-with-bazel/crypto/evp/p_dsa.cc +333 -0
- data/third_party/boringssl-with-bazel/crypto/evp/p_ec.cc +427 -42
- data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519.cc +270 -14
- data/third_party/boringssl-with-bazel/crypto/evp/p_hkdf.cc +70 -102
- data/third_party/boringssl-with-bazel/crypto/evp/p_mldsa.cc +549 -0
- data/third_party/boringssl-with-bazel/crypto/evp/p_mlkem.cc +485 -0
- data/third_party/boringssl-with-bazel/crypto/evp/p_rsa.cc +666 -158
- data/third_party/boringssl-with-bazel/crypto/evp/p_x25519.cc +290 -28
- data/third_party/boringssl-with-bazel/crypto/evp/p_xwing.cc +273 -0
- data/third_party/boringssl-with-bazel/crypto/evp/pbkdf.cc +14 -7
- data/third_party/boringssl-with-bazel/crypto/evp/print.cc +34 -89
- data/third_party/boringssl-with-bazel/crypto/evp/scrypt.cc +23 -21
- data/third_party/boringssl-with-bazel/crypto/evp/sign.cc +23 -42
- data/third_party/boringssl-with-bazel/crypto/ex_data.cc +40 -41
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes.cc.inc +34 -28
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes_nohw.cc.inc +119 -121
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cbc.cc.inc +16 -14
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cfb.cc.inc +12 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ctr.cc.inc +7 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm.cc.inc +39 -29
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm_nohw.cc.inc +15 -13
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/internal.h +193 -177
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/key_wrap.cc.inc +5 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/mode_wrappers.cc.inc +7 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ofb.cc.inc +7 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm.cc +24 -19
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm_interface.h +512 -384
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/add.cc.inc +7 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +63 -44
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bn.cc.inc +40 -37
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bytes.cc.inc +27 -22
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/cmp.cc.inc +9 -7
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/ctx.cc.inc +62 -126
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div.cc.inc +92 -167
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div_extra.cc.inc +15 -12
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/exponentiation.cc.inc +96 -93
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd.cc.inc +73 -92
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd_extra.cc.inc +59 -71
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/generic.cc.inc +54 -57
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/internal.h +333 -255
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/jacobi.cc.inc +12 -19
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery.cc.inc +80 -95
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery_inv.cc.inc +53 -96
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/mul.cc.inc +58 -419
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/prime.cc.inc +164 -213
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/random.cc.inc +27 -26
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.cc.inc +12 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.h +47 -49
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/shift.cc.inc +14 -17
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/sqrt.cc.inc +19 -108
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/aead.cc.inc +427 -105
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/cipher.cc.inc +412 -212
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aes.cc.inc +230 -225
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aesccm.cc.inc +115 -84
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/internal.h +374 -27
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cmac/cmac.cc.inc +28 -23
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/delocate.h +36 -40
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/check.cc.inc +68 -78
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/dh.cc.inc +154 -196
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/internal.h +24 -24
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digest.cc.inc +40 -69
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digests.cc.inc +13 -7
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/internal.h +13 -11
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/md32_common.h +86 -81
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digestsign/digestsign.cc.inc +38 -34
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec.cc.inc +187 -196
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_key.cc.inc +196 -154
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_montgomery.cc.inc +65 -125
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/felem.cc.inc +85 -22
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/internal.h +281 -287
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/oct.cc.inc +23 -22
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256.cc.inc +514 -573
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256_internal.h +193 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/scalar.cc.inc +44 -39
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple.cc.inc +58 -90
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple_mul.cc.inc +39 -34
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/util.cc.inc +6 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/wnaf.cc.inc +23 -20
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdh/ecdh.cc.inc +6 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +47 -37
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/internal.h +5 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/internal.h +38 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/jitter.cc.inc +463 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/hkdf/hkdf.cc.inc +8 -6
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/hmac/hmac.cc.inc +19 -16
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/internal.h +41 -15
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/keccak.cc.inc +172 -44
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/fips_known_values.inc +5 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/mldsa.cc.inc +1632 -766
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/fips_known_values.inc +5 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/mlkem.cc.inc +740 -436
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/ctrdrbg.cc.inc +240 -53
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/internal.h +41 -26
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/rand.cc.inc +221 -218
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/internal.h +64 -67
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/padding.cc.inc +49 -57
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa.cc.inc +247 -234
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa_impl.cc.inc +392 -692
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/fips.cc.inc +10 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/self_check.cc.inc +479 -449
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/internal.h +34 -11
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +46 -43
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/internal.h +61 -70
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha1.cc.inc +27 -13
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha256.cc.inc +46 -30
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha512.cc.inc +47 -47
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/address.h +98 -73
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.cc.inc +108 -98
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.h +14 -24
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.cc.inc +94 -91
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.h +19 -31
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/params.h +156 -56
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +318 -132
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.cc.inc +234 -81
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.h +20 -34
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.cc.inc +97 -96
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.h +10 -20
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/internal.h +2 -16
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/kdf.cc.inc +26 -26
- data/third_party/boringssl-with-bazel/crypto/fuzzer_mode.cc +5 -5
- data/third_party/boringssl-with-bazel/crypto/hpke/hpke.cc +461 -97
- data/third_party/boringssl-with-bazel/crypto/hrss/hrss.cc +153 -149
- data/third_party/boringssl-with-bazel/crypto/hrss/internal.h +9 -13
- data/third_party/boringssl-with-bazel/crypto/internal.h +531 -394
- data/third_party/boringssl-with-bazel/crypto/kyber/internal.h +117 -12
- data/third_party/boringssl-with-bazel/crypto/kyber/kyber.cc +59 -58
- data/third_party/boringssl-with-bazel/crypto/lhash/internal.h +38 -37
- data/third_party/boringssl-with-bazel/crypto/lhash/lhash.cc +68 -65
- data/third_party/boringssl-with-bazel/crypto/md4/md4.cc +19 -6
- data/third_party/boringssl-with-bazel/crypto/md5/internal.h +6 -9
- data/third_party/boringssl-with-bazel/crypto/md5/md5.cc +18 -6
- data/third_party/boringssl-with-bazel/crypto/mem.cc +61 -65
- data/third_party/boringssl-with-bazel/crypto/mem_internal.h +671 -0
- data/third_party/boringssl-with-bazel/crypto/mldsa/mldsa.cc +238 -32
- data/third_party/boringssl-with-bazel/crypto/mlkem/mlkem.cc +21 -65
- data/third_party/boringssl-with-bazel/crypto/obj/obj.cc +132 -157
- data/third_party/boringssl-with-bazel/crypto/obj/obj_dat.h +79 -1
- data/third_party/boringssl-with-bazel/crypto/obj/obj_xref.cc +14 -11
- data/third_party/boringssl-with-bazel/crypto/params_internal.h +30 -0
- data/third_party/boringssl-with-bazel/crypto/pem/internal.h +20 -15
- data/third_party/boringssl-with-bazel/crypto/pem/pem_all.cc +20 -19
- data/third_party/boringssl-with-bazel/crypto/pem/pem_info.cc +72 -76
- data/third_party/boringssl-with-bazel/crypto/pem/pem_lib.cc +215 -217
- data/third_party/boringssl-with-bazel/crypto/pem/pem_oth.cc +6 -6
- data/third_party/boringssl-with-bazel/crypto/pem/pem_pk8.cc +13 -13
- data/third_party/boringssl-with-bazel/crypto/pem/pem_pkey.cc +11 -11
- data/third_party/boringssl-with-bazel/crypto/pkcs7/internal.h +12 -17
- data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7.cc +29 -27
- data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7_x509.cc +55 -49
- data/third_party/boringssl-with-bazel/crypto/pkcs8/internal.h +21 -26
- data/third_party/boringssl-with-bazel/crypto/pkcs8/p5_pbev2.cc +33 -31
- data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8.cc +73 -81
- data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8_x509.cc +139 -138
- data/third_party/boringssl-with-bazel/crypto/poly1305/internal.h +3 -7
- data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305.cc +5 -4
- data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_arm.cc +43 -47
- data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_vec.cc +29 -26
- data/third_party/boringssl-with-bazel/crypto/pool/internal.h +64 -20
- data/third_party/boringssl-with-bazel/crypto/pool/pool.cc +177 -157
- data/third_party/boringssl-with-bazel/crypto/rand/deterministic.cc +9 -16
- data/third_party/boringssl-with-bazel/crypto/rand/fork_detect.cc +70 -42
- data/third_party/boringssl-with-bazel/crypto/rand/forkunsafe.cc +7 -7
- data/third_party/boringssl-with-bazel/crypto/rand/getentropy.cc +6 -13
- data/third_party/boringssl-with-bazel/crypto/rand/internal.h +16 -4
- data/third_party/boringssl-with-bazel/crypto/rand/ios.cc +4 -11
- data/third_party/boringssl-with-bazel/crypto/rand/rand.cc +11 -9
- data/third_party/boringssl-with-bazel/crypto/rand/trusty.cc +4 -11
- data/third_party/boringssl-with-bazel/crypto/rand/urandom.cc +16 -195
- data/third_party/boringssl-with-bazel/crypto/rand/windows.cc +12 -19
- data/third_party/boringssl-with-bazel/crypto/refcount.cc +7 -17
- data/third_party/boringssl-with-bazel/crypto/rsa/internal.h +22 -7
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_asn1.cc +199 -78
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_crypt.cc +49 -50
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_extra.cc +11 -0
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_print.cc +4 -6
- data/third_party/boringssl-with-bazel/crypto/sha/sha1.cc +3 -0
- data/third_party/boringssl-with-bazel/crypto/sha/sha256.cc +3 -1
- data/third_party/boringssl-with-bazel/crypto/sha/sha512.cc +6 -4
- data/third_party/boringssl-with-bazel/crypto/siphash/siphash.cc +2 -0
- data/third_party/boringssl-with-bazel/crypto/slhdsa/slhdsa.cc +43 -6
- data/third_party/boringssl-with-bazel/crypto/spake2plus/internal.h +31 -31
- data/third_party/boringssl-with-bazel/crypto/spake2plus/spake2plus.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/stack/stack.cc +89 -130
- data/third_party/boringssl-with-bazel/crypto/thread.cc +14 -14
- data/third_party/boringssl-with-bazel/crypto/thread_none.cc +10 -13
- data/third_party/boringssl-with-bazel/crypto/thread_pthread.cc +22 -35
- data/third_party/boringssl-with-bazel/crypto/thread_win.cc +29 -40
- data/third_party/boringssl-with-bazel/crypto/trust_token/internal.h +81 -88
- data/third_party/boringssl-with-bazel/crypto/trust_token/pmbtoken.cc +160 -144
- data/third_party/boringssl-with-bazel/crypto/trust_token/trust_token.cc +96 -80
- data/third_party/boringssl-with-bazel/crypto/trust_token/voprf.cc +90 -87
- data/third_party/boringssl-with-bazel/crypto/x509/a_digest.cc +5 -5
- data/third_party/boringssl-with-bazel/crypto/x509/a_sign.cc +51 -48
- data/third_party/boringssl-with-bazel/crypto/x509/a_verify.cc +30 -34
- data/third_party/boringssl-with-bazel/crypto/x509/algorithm.cc +47 -16
- data/third_party/boringssl-with-bazel/crypto/x509/asn1_gen.cc +41 -43
- data/third_party/boringssl-with-bazel/crypto/x509/by_dir.cc +183 -237
- data/third_party/boringssl-with-bazel/crypto/x509/by_file.cc +29 -30
- data/third_party/boringssl-with-bazel/crypto/x509/internal.h +276 -180
- data/third_party/boringssl-with-bazel/crypto/x509/name_print.cc +15 -13
- data/third_party/boringssl-with-bazel/crypto/x509/policy.cc +415 -525
- data/third_party/boringssl-with-bazel/crypto/x509/rsa_pss.cc +94 -271
- data/third_party/boringssl-with-bazel/crypto/x509/t_crl.cc +11 -8
- data/third_party/boringssl-with-bazel/crypto/x509/t_req.cc +26 -23
- data/third_party/boringssl-with-bazel/crypto/x509/t_x509.cc +26 -22
- data/third_party/boringssl-with-bazel/crypto/x509/t_x509a.cc +3 -1
- data/third_party/boringssl-with-bazel/crypto/x509/v3_akey.cc +69 -76
- data/third_party/boringssl-with-bazel/crypto/x509/v3_akeya.cc +2 -2
- data/third_party/boringssl-with-bazel/crypto/x509/v3_alt.cc +112 -69
- data/third_party/boringssl-with-bazel/crypto/x509/v3_bcons.cc +15 -14
- data/third_party/boringssl-with-bazel/crypto/x509/v3_bitst.cc +16 -18
- data/third_party/boringssl-with-bazel/crypto/x509/v3_conf.cc +62 -67
- data/third_party/boringssl-with-bazel/crypto/x509/v3_cpols.cc +143 -170
- data/third_party/boringssl-with-bazel/crypto/x509/v3_crld.cc +121 -165
- data/third_party/boringssl-with-bazel/crypto/x509/v3_enum.cc +13 -12
- data/third_party/boringssl-with-bazel/crypto/x509/v3_extku.cc +17 -34
- data/third_party/boringssl-with-bazel/crypto/x509/v3_genn.cc +20 -10
- data/third_party/boringssl-with-bazel/crypto/x509/v3_ia5.cc +22 -18
- data/third_party/boringssl-with-bazel/crypto/x509/v3_info.cc +45 -47
- data/third_party/boringssl-with-bazel/crypto/x509/v3_int.cc +35 -33
- data/third_party/boringssl-with-bazel/crypto/x509/v3_lib.cc +106 -61
- data/third_party/boringssl-with-bazel/crypto/x509/v3_ncons.cc +642 -358
- data/third_party/boringssl-with-bazel/crypto/x509/v3_ocsp.cc +25 -22
- data/third_party/boringssl-with-bazel/crypto/x509/v3_pcons.cc +15 -14
- data/third_party/boringssl-with-bazel/crypto/x509/v3_pmaps.cc +16 -15
- data/third_party/boringssl-with-bazel/crypto/x509/v3_prn.cc +6 -6
- data/third_party/boringssl-with-bazel/crypto/x509/v3_purp.cc +150 -137
- data/third_party/boringssl-with-bazel/crypto/x509/v3_skey.cc +23 -26
- data/third_party/boringssl-with-bazel/crypto/x509/v3_utl.cc +151 -178
- data/third_party/boringssl-with-bazel/crypto/x509/x509.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/x509/x509_att.cc +32 -30
- data/third_party/boringssl-with-bazel/crypto/x509/x509_cmp.cc +95 -88
- data/third_party/boringssl-with-bazel/crypto/x509/x509_d2.cc +9 -9
- data/third_party/boringssl-with-bazel/crypto/x509/x509_def.cc +6 -8
- data/third_party/boringssl-with-bazel/crypto/x509/x509_ext.cc +46 -24
- data/third_party/boringssl-with-bazel/crypto/x509/x509_lu.cc +211 -195
- data/third_party/boringssl-with-bazel/crypto/x509/x509_obj.cc +20 -16
- data/third_party/boringssl-with-bazel/crypto/x509/x509_req.cc +37 -46
- data/third_party/boringssl-with-bazel/crypto/x509/x509_set.cc +62 -90
- data/third_party/boringssl-with-bazel/crypto/x509/x509_trs.cc +18 -13
- data/third_party/boringssl-with-bazel/crypto/x509/x509_v3.cc +33 -33
- data/third_party/boringssl-with-bazel/crypto/x509/x509_vfy.cc +109 -110
- data/third_party/boringssl-with-bazel/crypto/x509/x509_vpm.cc +56 -47
- data/third_party/boringssl-with-bazel/crypto/x509/x509cset.cc +27 -40
- data/third_party/boringssl-with-bazel/crypto/x509/x509name.cc +77 -67
- data/third_party/boringssl-with-bazel/crypto/x509/x509rset.cc +5 -17
- data/third_party/boringssl-with-bazel/crypto/x509/x509spki.cc +13 -13
- data/third_party/boringssl-with-bazel/crypto/x509/x_algor.cc +131 -24
- data/third_party/boringssl-with-bazel/crypto/x509/x_all.cc +72 -39
- data/third_party/boringssl-with-bazel/crypto/x509/x_attrib.cc +10 -4
- data/third_party/boringssl-with-bazel/crypto/x509/x_crl.cc +77 -44
- data/third_party/boringssl-with-bazel/crypto/x509/x_exten.cc +6 -0
- data/third_party/boringssl-with-bazel/crypto/x509/x_name.cc +311 -383
- data/third_party/boringssl-with-bazel/crypto/x509/x_pubkey.cc +129 -82
- data/third_party/boringssl-with-bazel/crypto/x509/x_req.cc +11 -6
- data/third_party/boringssl-with-bazel/crypto/x509/x_sig.cc +4 -4
- data/third_party/boringssl-with-bazel/crypto/x509/x_spki.cc +11 -1
- data/third_party/boringssl-with-bazel/crypto/x509/x_x509.cc +285 -280
- data/third_party/boringssl-with-bazel/crypto/x509/x_x509a.cc +60 -60
- data/third_party/boringssl-with-bazel/crypto/xwing/xwing.cc +257 -0
- data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +301 -0
- data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +301 -0
- data/third_party/boringssl-with-bazel/gen/crypto/err_data.cc +526 -500
- data/third_party/boringssl-with-bazel/include/openssl/aead.h +286 -114
- data/third_party/boringssl-with-bazel/include/openssl/aes.h +43 -43
- data/third_party/boringssl-with-bazel/include/openssl/asm_base.h +29 -16
- data/third_party/boringssl-with-bazel/include/openssl/asn1.h +641 -631
- data/third_party/boringssl-with-bazel/include/openssl/asn1t.h +7 -9
- data/third_party/boringssl-with-bazel/include/openssl/base.h +34 -54
- data/third_party/boringssl-with-bazel/include/openssl/base64.h +30 -30
- data/third_party/boringssl-with-bazel/include/openssl/bio.h +373 -316
- data/third_party/boringssl-with-bazel/include/openssl/blake2.h +15 -11
- data/third_party/boringssl-with-bazel/include/openssl/blowfish.h +10 -3
- data/third_party/boringssl-with-bazel/include/openssl/bn.h +298 -306
- data/third_party/boringssl-with-bazel/include/openssl/buf.h +14 -14
- data/third_party/boringssl-with-bazel/include/openssl/bytestring.h +272 -207
- data/third_party/boringssl-with-bazel/include/openssl/cast.h +45 -8
- data/third_party/boringssl-with-bazel/include/openssl/chacha.h +3 -3
- data/third_party/boringssl-with-bazel/include/openssl/cipher.h +334 -152
- data/third_party/boringssl-with-bazel/include/openssl/cmac.h +13 -13
- data/third_party/boringssl-with-bazel/include/openssl/cms.h +35 -34
- data/third_party/boringssl-with-bazel/include/openssl/conf.h +15 -14
- data/third_party/boringssl-with-bazel/include/openssl/crypto.h +15 -13
- data/third_party/boringssl-with-bazel/include/openssl/ctrdrbg.h +49 -15
- data/third_party/boringssl-with-bazel/include/openssl/curve25519.h +24 -24
- data/third_party/boringssl-with-bazel/include/openssl/des.h +22 -16
- data/third_party/boringssl-with-bazel/include/openssl/dh.h +95 -95
- data/third_party/boringssl-with-bazel/include/openssl/digest.h +140 -71
- data/third_party/boringssl-with-bazel/include/openssl/dsa.h +101 -101
- data/third_party/boringssl-with-bazel/include/openssl/ec.h +143 -119
- data/third_party/boringssl-with-bazel/include/openssl/ec_key.h +97 -97
- data/third_party/boringssl-with-bazel/include/openssl/ecdh.h +9 -9
- data/third_party/boringssl-with-bazel/include/openssl/ecdsa.h +89 -46
- data/third_party/boringssl-with-bazel/include/openssl/engine.h +5 -5
- data/third_party/boringssl-with-bazel/include/openssl/err.h +73 -71
- data/third_party/boringssl-with-bazel/include/openssl/evp.h +824 -344
- data/third_party/boringssl-with-bazel/include/openssl/evp_errors.h +9 -2
- data/third_party/boringssl-with-bazel/include/openssl/ex_data.h +27 -32
- data/third_party/boringssl-with-bazel/include/openssl/hkdf.h +6 -6
- data/third_party/boringssl-with-bazel/include/openssl/hmac.h +31 -31
- data/third_party/boringssl-with-bazel/include/openssl/hpke.h +133 -117
- data/third_party/boringssl-with-bazel/include/openssl/hrss.h +14 -8
- data/third_party/boringssl-with-bazel/include/openssl/kdf.h +20 -19
- data/third_party/boringssl-with-bazel/include/openssl/lhash.h +4 -25
- data/third_party/boringssl-with-bazel/include/openssl/md4.h +14 -7
- data/third_party/boringssl-with-bazel/include/openssl/md5.h +7 -7
- data/third_party/boringssl-with-bazel/include/openssl/mem.h +38 -38
- data/third_party/boringssl-with-bazel/include/openssl/mldsa.h +380 -24
- data/third_party/boringssl-with-bazel/include/openssl/mlkem.h +43 -43
- data/third_party/boringssl-with-bazel/include/openssl/nid.h +1297 -2
- data/third_party/boringssl-with-bazel/include/openssl/obj.h +49 -49
- data/third_party/boringssl-with-bazel/include/openssl/opensslconf.h +30 -0
- data/third_party/boringssl-with-bazel/include/openssl/params.h +42 -0
- data/third_party/boringssl-with-bazel/include/openssl/pem.h +39 -30
- data/third_party/boringssl-with-bazel/include/openssl/pkcs7.h +40 -40
- data/third_party/boringssl-with-bazel/include/openssl/pkcs8.h +69 -63
- data/third_party/boringssl-with-bazel/include/openssl/poly1305.h +8 -5
- data/third_party/boringssl-with-bazel/include/openssl/pool.h +54 -25
- data/third_party/boringssl-with-bazel/include/openssl/posix_time.h +6 -6
- data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols.h +7866 -0
- data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_S.h +585 -0
- data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_c.h +305 -0
- data/third_party/boringssl-with-bazel/include/openssl/rand.h +18 -18
- data/third_party/boringssl-with-bazel/include/openssl/rc4.h +4 -4
- data/third_party/boringssl-with-bazel/include/openssl/ripemd.h +15 -10
- data/third_party/boringssl-with-bazel/include/openssl/rsa.h +272 -235
- data/third_party/boringssl-with-bazel/include/openssl/service_indicator.h +4 -81
- data/third_party/boringssl-with-bazel/include/openssl/sha.h +43 -166
- data/third_party/boringssl-with-bazel/include/openssl/sha2.h +201 -0
- data/third_party/boringssl-with-bazel/include/openssl/slhdsa.h +100 -48
- data/third_party/boringssl-with-bazel/include/openssl/span.h +190 -75
- data/third_party/boringssl-with-bazel/include/openssl/ssl.h +2168 -1567
- data/third_party/boringssl-with-bazel/include/openssl/ssl3.h +11 -69
- data/third_party/boringssl-with-bazel/include/openssl/stack.h +135 -80
- data/third_party/boringssl-with-bazel/include/openssl/target.h +13 -1
- data/third_party/boringssl-with-bazel/include/openssl/thread.h +0 -10
- data/third_party/boringssl-with-bazel/include/openssl/tls1.h +31 -310
- data/third_party/boringssl-with-bazel/include/openssl/tls_prf.h +47 -0
- data/third_party/boringssl-with-bazel/include/openssl/trust_token.h +97 -92
- data/third_party/boringssl-with-bazel/include/openssl/type_check.h +1 -1
- data/third_party/boringssl-with-bazel/include/openssl/x509.h +1805 -1857
- data/third_party/boringssl-with-bazel/include/openssl/x509v3.h +1 -1
- data/third_party/boringssl-with-bazel/include/openssl/xwing.h +115 -0
- data/third_party/boringssl-with-bazel/ssl/bio_ssl.cc +24 -19
- data/third_party/boringssl-with-bazel/ssl/d1_both.cc +59 -57
- data/third_party/boringssl-with-bazel/ssl/d1_lib.cc +53 -42
- data/third_party/boringssl-with-bazel/ssl/d1_pkt.cc +4 -4
- data/third_party/boringssl-with-bazel/ssl/d1_srtp.cc +2 -2
- data/third_party/boringssl-with-bazel/ssl/dtls_method.cc +10 -10
- data/third_party/boringssl-with-bazel/ssl/dtls_record.cc +6 -6
- data/third_party/boringssl-with-bazel/ssl/encrypted_client_hello.cc +61 -71
- data/third_party/boringssl-with-bazel/ssl/extensions.cc +967 -366
- data/third_party/boringssl-with-bazel/ssl/handoff.cc +77 -38
- data/third_party/boringssl-with-bazel/ssl/handshake.cc +63 -30
- data/third_party/boringssl-with-bazel/ssl/handshake_client.cc +129 -85
- data/third_party/boringssl-with-bazel/ssl/handshake_server.cc +116 -68
- data/third_party/boringssl-with-bazel/ssl/internal.h +983 -1207
- data/third_party/boringssl-with-bazel/ssl/s3_both.cc +34 -29
- data/third_party/boringssl-with-bazel/ssl/s3_lib.cc +4 -3
- data/third_party/boringssl-with-bazel/ssl/s3_pkt.cc +12 -12
- data/third_party/boringssl-with-bazel/ssl/ssl_aead_ctx.cc +5 -5
- data/third_party/boringssl-with-bazel/ssl/ssl_asn1.cc +114 -59
- data/third_party/boringssl-with-bazel/ssl/ssl_buffer.cc +17 -18
- data/third_party/boringssl-with-bazel/ssl/ssl_cert.cc +99 -61
- data/third_party/boringssl-with-bazel/ssl/ssl_cipher.cc +143 -134
- data/third_party/boringssl-with-bazel/ssl/ssl_credential.cc +188 -90
- data/third_party/boringssl-with-bazel/ssl/ssl_file.cc +132 -225
- data/third_party/boringssl-with-bazel/ssl/ssl_key_share.cc +79 -7
- data/third_party/boringssl-with-bazel/ssl/ssl_lib.cc +698 -302
- data/third_party/boringssl-with-bazel/ssl/ssl_privkey.cc +102 -45
- data/third_party/boringssl-with-bazel/ssl/ssl_session.cc +117 -102
- data/third_party/boringssl-with-bazel/ssl/ssl_transcript.cc +3 -3
- data/third_party/boringssl-with-bazel/ssl/ssl_versions.cc +24 -24
- data/third_party/boringssl-with-bazel/ssl/ssl_x509.cc +184 -170
- data/third_party/boringssl-with-bazel/ssl/t1_enc.cc +12 -10
- data/third_party/boringssl-with-bazel/ssl/tls13_both.cc +86 -54
- data/third_party/boringssl-with-bazel/ssl/tls13_client.cc +176 -90
- data/third_party/boringssl-with-bazel/ssl/tls13_enc.cc +166 -112
- data/third_party/boringssl-with-bazel/ssl/tls13_server.cc +188 -97
- data/third_party/boringssl-with-bazel/ssl/tls_method.cc +23 -23
- data/third_party/boringssl-with-bazel/ssl/tls_record.cc +17 -14
- data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/curve25519_64_adx.h +37 -33
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_64.h +4 -93
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_64_msvc.h +4 -69
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_32.br.c.inc +71 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_64.br.c.inc +84 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_point.br.c.inc +166 -0
- metadata +77 -52
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +0 -240
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +0 -56
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +0 -157
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +0 -72
- data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +0 -181
- data/third_party/abseil-cpp/absl/base/internal/identity.h +0 -39
- data/third_party/abseil-cpp/absl/base/internal/nullability_deprecated.h +0 -106
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -105
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -50
- data/third_party/abseil-cpp/absl/strings/string_view.cc +0 -257
- data/third_party/boringssl-with-bazel/crypto/evp/p_dh_asn1.cc +0 -142
- data/third_party/boringssl-with-bazel/crypto/evp/p_dsa_asn1.cc +0 -279
- data/third_party/boringssl-with-bazel/crypto/evp/p_ec_asn1.cc +0 -286
- data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519_asn1.cc +0 -225
- data/third_party/boringssl-with-bazel/crypto/evp/p_rsa_asn1.cc +0 -198
- data/third_party/boringssl-with-bazel/crypto/evp/p_x25519_asn1.cc +0 -237
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p224-64.cc.inc +0 -1163
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.cc.inc +0 -741
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.h +0 -207
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/blinding.cc.inc +0 -147
- data/third_party/boringssl-with-bazel/crypto/rand/getrandom_fillin.h +0 -64
- data/third_party/boringssl-with-bazel/crypto/rand/passive.cc +0 -178
- data/third_party/boringssl-with-bazel/crypto/x509/ext_dat.h +0 -92
- data/third_party/boringssl-with-bazel/include/openssl/bcm_public.h +0 -82
- data/third_party/boringssl-with-bazel/include/openssl/experimental/kyber.h +0 -146
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
#include <utility>
|
|
27
27
|
|
|
28
28
|
#include "absl/base/config.h"
|
|
29
|
+
#include "absl/hash/hash.h"
|
|
29
30
|
#include "absl/memory/memory.h"
|
|
30
31
|
#include "absl/meta/type_traits.h"
|
|
31
32
|
#include "absl/utility/utility.h"
|
|
@@ -43,7 +44,12 @@ ABSL_NAMESPACE_BEGIN
|
|
|
43
44
|
namespace container_internal {
|
|
44
45
|
|
|
45
46
|
template <size_t Alignment>
|
|
46
|
-
struct alignas(Alignment) AlignedType {
|
|
47
|
+
struct alignas(Alignment) AlignedType {
|
|
48
|
+
// When alignment is sufficient for the allocated memory to store pointers,
|
|
49
|
+
// include a pointer member so that swisstable backing arrays end up in the
|
|
50
|
+
// pointer-containing partition for heap partitioning.
|
|
51
|
+
std::conditional_t<(Alignment < alignof(void*)), char, void*> pointer;
|
|
52
|
+
};
|
|
47
53
|
|
|
48
54
|
// Allocates at least n bytes aligned to the specified alignment.
|
|
49
55
|
// Alignment must be a power of 2. It must be positive.
|
|
@@ -57,8 +63,8 @@ void* Allocate(Alloc* alloc, size_t n) {
|
|
|
57
63
|
static_assert(Alignment > 0, "");
|
|
58
64
|
assert(n && "n must be positive");
|
|
59
65
|
using M = AlignedType<Alignment>;
|
|
60
|
-
using A = typename
|
|
61
|
-
using AT = typename
|
|
66
|
+
using A = typename std::allocator_traits<Alloc>::template rebind_alloc<M>;
|
|
67
|
+
using AT = typename std::allocator_traits<Alloc>::template rebind_traits<M>;
|
|
62
68
|
// On macOS, "mem_alloc" is a #define with one argument defined in
|
|
63
69
|
// rpc/types.h, so we can't name the variable "mem_alloc" and initialize it
|
|
64
70
|
// with the "foo(bar)" syntax.
|
|
@@ -75,7 +81,7 @@ template <class Allocator, class ValueType>
|
|
|
75
81
|
constexpr auto IsDestructionTrivial() {
|
|
76
82
|
constexpr bool result =
|
|
77
83
|
std::is_trivially_destructible<ValueType>::value &&
|
|
78
|
-
std::is_same<typename
|
|
84
|
+
std::is_same<typename std::allocator_traits<
|
|
79
85
|
Allocator>::template rebind_alloc<char>,
|
|
80
86
|
std::allocator<char>>::value;
|
|
81
87
|
return std::integral_constant<bool, result>();
|
|
@@ -88,8 +94,8 @@ void Deallocate(Alloc* alloc, void* p, size_t n) {
|
|
|
88
94
|
static_assert(Alignment > 0, "");
|
|
89
95
|
assert(n && "n must be positive");
|
|
90
96
|
using M = AlignedType<Alignment>;
|
|
91
|
-
using A = typename
|
|
92
|
-
using AT = typename
|
|
97
|
+
using A = typename std::allocator_traits<Alloc>::template rebind_alloc<M>;
|
|
98
|
+
using AT = typename std::allocator_traits<Alloc>::template rebind_traits<M>;
|
|
93
99
|
// On macOS, "mem_alloc" is a #define with one argument defined in
|
|
94
100
|
// rpc/types.h, so we can't name the variable "mem_alloc" and initialize it
|
|
95
101
|
// with the "foo(bar)" syntax.
|
|
@@ -104,8 +110,8 @@ namespace memory_internal {
|
|
|
104
110
|
// specified in the tuple.
|
|
105
111
|
template <class Alloc, class T, class Tuple, size_t... I>
|
|
106
112
|
void ConstructFromTupleImpl(Alloc* alloc, T* ptr, Tuple&& t,
|
|
107
|
-
|
|
108
|
-
|
|
113
|
+
std::index_sequence<I...>) {
|
|
114
|
+
std::allocator_traits<Alloc>::construct(
|
|
109
115
|
*alloc, ptr, std::get<I>(std::forward<Tuple>(t))...);
|
|
110
116
|
}
|
|
111
117
|
|
|
@@ -121,14 +127,15 @@ struct WithConstructedImplF {
|
|
|
121
127
|
|
|
122
128
|
template <class T, class Tuple, size_t... Is, class F>
|
|
123
129
|
decltype(std::declval<F>()(std::declval<T>())) WithConstructedImpl(
|
|
124
|
-
Tuple&& t,
|
|
130
|
+
Tuple&& t, std::index_sequence<Is...>, F&& f) {
|
|
125
131
|
return WithConstructedImplF<T, F>{std::forward<F>(f)}(
|
|
126
132
|
std::get<Is>(std::forward<Tuple>(t))...);
|
|
127
133
|
}
|
|
128
134
|
|
|
129
135
|
template <class T, size_t... Is>
|
|
130
|
-
auto TupleRefImpl(T&& t,
|
|
136
|
+
auto TupleRefImpl(T&& t, std::index_sequence<Is...>)
|
|
131
137
|
-> decltype(std::forward_as_tuple(std::get<Is>(std::forward<T>(t))...)) {
|
|
138
|
+
// NOLINTNEXTLINE(bugprone-use-after-move)
|
|
132
139
|
return std::forward_as_tuple(std::get<Is>(std::forward<T>(t))...);
|
|
133
140
|
}
|
|
134
141
|
|
|
@@ -137,11 +144,11 @@ auto TupleRefImpl(T&& t, absl::index_sequence<Is...>)
|
|
|
137
144
|
template <class T>
|
|
138
145
|
auto TupleRef(T&& t) -> decltype(TupleRefImpl(
|
|
139
146
|
std::forward<T>(t),
|
|
140
|
-
|
|
147
|
+
std::make_index_sequence<
|
|
141
148
|
std::tuple_size<typename std::decay<T>::type>::value>())) {
|
|
142
149
|
return TupleRefImpl(
|
|
143
150
|
std::forward<T>(t),
|
|
144
|
-
|
|
151
|
+
std::make_index_sequence<
|
|
145
152
|
std::tuple_size<typename std::decay<T>::type>::value>());
|
|
146
153
|
}
|
|
147
154
|
|
|
@@ -162,7 +169,7 @@ template <class Alloc, class T, class Tuple>
|
|
|
162
169
|
void ConstructFromTuple(Alloc* alloc, T* ptr, Tuple&& t) {
|
|
163
170
|
memory_internal::ConstructFromTupleImpl(
|
|
164
171
|
alloc, ptr, std::forward<Tuple>(t),
|
|
165
|
-
|
|
172
|
+
std::make_index_sequence<
|
|
166
173
|
std::tuple_size<typename std::decay<Tuple>::type>::value>());
|
|
167
174
|
}
|
|
168
175
|
|
|
@@ -173,7 +180,7 @@ decltype(std::declval<F>()(std::declval<T>())) WithConstructed(Tuple&& t,
|
|
|
173
180
|
F&& f) {
|
|
174
181
|
return memory_internal::WithConstructedImpl<T>(
|
|
175
182
|
std::forward<Tuple>(t),
|
|
176
|
-
|
|
183
|
+
std::make_index_sequence<
|
|
177
184
|
std::tuple_size<typename std::decay<Tuple>::type>::value>(),
|
|
178
185
|
std::forward<F>(f));
|
|
179
186
|
}
|
|
@@ -343,11 +350,11 @@ union map_slot_type {
|
|
|
343
350
|
~map_slot_type() = delete;
|
|
344
351
|
using value_type = std::pair<const K, V>;
|
|
345
352
|
using mutable_value_type =
|
|
346
|
-
std::pair<
|
|
353
|
+
std::pair<std::remove_const_t<K>, std::remove_const_t<V>>;
|
|
347
354
|
|
|
348
355
|
value_type value;
|
|
349
356
|
mutable_value_type mutable_value;
|
|
350
|
-
|
|
357
|
+
std::remove_const_t<K> key;
|
|
351
358
|
};
|
|
352
359
|
|
|
353
360
|
template <class K, class V>
|
|
@@ -355,7 +362,7 @@ struct map_slot_policy {
|
|
|
355
362
|
using slot_type = map_slot_type<K, V>;
|
|
356
363
|
using value_type = std::pair<const K, V>;
|
|
357
364
|
using mutable_value_type =
|
|
358
|
-
std::pair<
|
|
365
|
+
std::pair<std::remove_const_t<K>, std::remove_const_t<V>>;
|
|
359
366
|
|
|
360
367
|
private:
|
|
361
368
|
static void emplace(slot_type* slot) {
|
|
@@ -390,11 +397,11 @@ struct map_slot_policy {
|
|
|
390
397
|
static void construct(Allocator* alloc, slot_type* slot, Args&&... args) {
|
|
391
398
|
emplace(slot);
|
|
392
399
|
if (kMutableKeys::value) {
|
|
393
|
-
|
|
394
|
-
|
|
400
|
+
std::allocator_traits<Allocator>::construct(*alloc, &slot->mutable_value,
|
|
401
|
+
std::forward<Args>(args)...);
|
|
395
402
|
} else {
|
|
396
|
-
|
|
397
|
-
|
|
403
|
+
std::allocator_traits<Allocator>::construct(*alloc, &slot->value,
|
|
404
|
+
std::forward<Args>(args)...);
|
|
398
405
|
}
|
|
399
406
|
}
|
|
400
407
|
|
|
@@ -403,11 +410,11 @@ struct map_slot_policy {
|
|
|
403
410
|
static void construct(Allocator* alloc, slot_type* slot, slot_type* other) {
|
|
404
411
|
emplace(slot);
|
|
405
412
|
if (kMutableKeys::value) {
|
|
406
|
-
|
|
413
|
+
std::allocator_traits<Allocator>::construct(
|
|
407
414
|
*alloc, &slot->mutable_value, std::move(other->mutable_value));
|
|
408
415
|
} else {
|
|
409
|
-
|
|
410
|
-
|
|
416
|
+
std::allocator_traits<Allocator>::construct(*alloc, &slot->value,
|
|
417
|
+
std::move(other->value));
|
|
411
418
|
}
|
|
412
419
|
}
|
|
413
420
|
|
|
@@ -416,16 +423,16 @@ struct map_slot_policy {
|
|
|
416
423
|
static void construct(Allocator* alloc, slot_type* slot,
|
|
417
424
|
const slot_type* other) {
|
|
418
425
|
emplace(slot);
|
|
419
|
-
|
|
420
|
-
|
|
426
|
+
std::allocator_traits<Allocator>::construct(*alloc, &slot->value,
|
|
427
|
+
other->value);
|
|
421
428
|
}
|
|
422
429
|
|
|
423
430
|
template <class Allocator>
|
|
424
431
|
static auto destroy(Allocator* alloc, slot_type* slot) {
|
|
425
432
|
if (kMutableKeys::value) {
|
|
426
|
-
|
|
433
|
+
std::allocator_traits<Allocator>::destroy(*alloc, &slot->mutable_value);
|
|
427
434
|
} else {
|
|
428
|
-
|
|
435
|
+
std::allocator_traits<Allocator>::destroy(*alloc, &slot->value);
|
|
429
436
|
}
|
|
430
437
|
return IsDestructionTrivial<Allocator, value_type>();
|
|
431
438
|
}
|
|
@@ -453,35 +460,108 @@ struct map_slot_policy {
|
|
|
453
460
|
}
|
|
454
461
|
|
|
455
462
|
if (kMutableKeys::value) {
|
|
456
|
-
|
|
463
|
+
std::allocator_traits<Allocator>::construct(
|
|
457
464
|
*alloc, &new_slot->mutable_value, std::move(old_slot->mutable_value));
|
|
458
465
|
} else {
|
|
459
|
-
|
|
460
|
-
|
|
466
|
+
std::allocator_traits<Allocator>::construct(*alloc, &new_slot->value,
|
|
467
|
+
std::move(old_slot->value));
|
|
461
468
|
}
|
|
462
469
|
destroy(alloc, old_slot);
|
|
463
470
|
return is_relocatable;
|
|
464
471
|
}
|
|
465
472
|
};
|
|
466
473
|
|
|
474
|
+
// Suppress erroneous uninitialized memory errors on GCC. For example, GCC
|
|
475
|
+
// thinks that the call to slot_array() in find_or_prepare_insert() is reading
|
|
476
|
+
// uninitialized memory, but slot_array is only called there when the table is
|
|
477
|
+
// non-empty and this memory is initialized when the table is non-empty.
|
|
478
|
+
#if !defined(__clang__) && defined(__GNUC__)
|
|
479
|
+
#define ABSL_SWISSTABLE_IGNORE_UNINITIALIZED(x) \
|
|
480
|
+
_Pragma("GCC diagnostic push") \
|
|
481
|
+
_Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") \
|
|
482
|
+
_Pragma("GCC diagnostic ignored \"-Wuninitialized\"") x; \
|
|
483
|
+
_Pragma("GCC diagnostic pop")
|
|
484
|
+
#define ABSL_SWISSTABLE_IGNORE_UNINITIALIZED_RETURN(x) \
|
|
485
|
+
ABSL_SWISSTABLE_IGNORE_UNINITIALIZED(return x)
|
|
486
|
+
#else
|
|
487
|
+
#define ABSL_SWISSTABLE_IGNORE_UNINITIALIZED(x) x
|
|
488
|
+
#define ABSL_SWISSTABLE_IGNORE_UNINITIALIZED_RETURN(x) return x
|
|
489
|
+
#endif
|
|
490
|
+
|
|
491
|
+
// Variadic arguments hash function that ignore the rest of the arguments.
|
|
492
|
+
// Useful for usage with policy traits.
|
|
493
|
+
template <class Hash, bool kIsDefault>
|
|
494
|
+
struct HashElement {
|
|
495
|
+
HashElement(const Hash& h, size_t s) : hash(h), seed(s) {}
|
|
496
|
+
|
|
497
|
+
template <class K, class... Args>
|
|
498
|
+
size_t operator()(const K& key, Args&&...) const {
|
|
499
|
+
if constexpr (kIsDefault) {
|
|
500
|
+
// TODO(b/384509507): resolve `no header providing
|
|
501
|
+
// "absl::hash_internal::SupportsHashWithSeed" is directly included`.
|
|
502
|
+
// Maybe we should make "internal/hash.h" be a separate library.
|
|
503
|
+
return absl::hash_internal::HashWithSeed().hash(hash, key, seed);
|
|
504
|
+
}
|
|
505
|
+
// NOLINTNEXTLINE(clang-diagnostic-sign-conversion)
|
|
506
|
+
return hash(key) ^ seed;
|
|
507
|
+
}
|
|
508
|
+
const Hash& hash;
|
|
509
|
+
size_t seed;
|
|
510
|
+
};
|
|
511
|
+
|
|
512
|
+
// No arguments function hash function for a specific key.
|
|
513
|
+
template <class Hash, class Key, bool kIsDefault>
|
|
514
|
+
struct HashKey {
|
|
515
|
+
HashKey(const Hash& h, const Key& k) : hash(h), key(k) {}
|
|
516
|
+
|
|
517
|
+
size_t operator()(size_t seed) const {
|
|
518
|
+
return HashElement<Hash, kIsDefault>{hash, seed}(key);
|
|
519
|
+
}
|
|
520
|
+
const Hash& hash;
|
|
521
|
+
const Key& key;
|
|
522
|
+
};
|
|
523
|
+
|
|
524
|
+
// Variadic arguments equality function that ignore the rest of the arguments.
|
|
525
|
+
// Useful for usage with policy traits.
|
|
526
|
+
template <class K1, class KeyEqual>
|
|
527
|
+
struct EqualElement {
|
|
528
|
+
template <class K2, class... Args>
|
|
529
|
+
bool operator()(const K2& lhs, Args&&...) const {
|
|
530
|
+
ABSL_SWISSTABLE_IGNORE_UNINITIALIZED_RETURN(eq(lhs, rhs));
|
|
531
|
+
}
|
|
532
|
+
const K1& rhs;
|
|
533
|
+
const KeyEqual& eq;
|
|
534
|
+
};
|
|
535
|
+
|
|
467
536
|
// Type erased function for computing hash of the slot.
|
|
468
|
-
using HashSlotFn = size_t (*)(const void* hash_fn, void* slot);
|
|
537
|
+
using HashSlotFn = size_t (*)(const void* hash_fn, void* slot, size_t seed);
|
|
469
538
|
|
|
470
539
|
// Type erased function to apply `Fn` to data inside of the `slot`.
|
|
471
540
|
// The data is expected to have type `T`.
|
|
472
|
-
template <class Fn, class T>
|
|
473
|
-
size_t TypeErasedApplyToSlotFn(const void* fn, void* slot) {
|
|
541
|
+
template <class Fn, class T, bool kIsDefault>
|
|
542
|
+
size_t TypeErasedApplyToSlotFn(const void* fn, void* slot, size_t seed) {
|
|
474
543
|
const auto* f = static_cast<const Fn*>(fn);
|
|
475
|
-
return
|
|
544
|
+
return HashElement<Fn, kIsDefault>{*f, seed}(*static_cast<const T*>(slot));
|
|
476
545
|
}
|
|
477
546
|
|
|
478
547
|
// Type erased function to apply `Fn` to data inside of the `*slot_ptr`.
|
|
479
548
|
// The data is expected to have type `T`.
|
|
480
|
-
template <class Fn, class T>
|
|
481
|
-
size_t TypeErasedDerefAndApplyToSlotFn(const void* fn, void* slot_ptr
|
|
549
|
+
template <class Fn, class T, bool kIsDefault>
|
|
550
|
+
size_t TypeErasedDerefAndApplyToSlotFn(const void* fn, void* slot_ptr,
|
|
551
|
+
size_t seed) {
|
|
552
|
+
const auto* f = static_cast<const Fn*>(fn);
|
|
553
|
+
const T* slot = *static_cast<T**>(slot_ptr);
|
|
554
|
+
return HashElement<Fn, kIsDefault>{*f, seed}(*slot);
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
// Type erased function to apply `Fn` to data inside of the `slot_ptr->first`.
|
|
558
|
+
// The data is expected to have type `T`.
|
|
559
|
+
template <class Fn, class T, bool kIsDefault>
|
|
560
|
+
size_t TypeErasedDerefAndApplyToSlotFirstFn(const void* fn, void* slot_ptr,
|
|
561
|
+
size_t seed) {
|
|
482
562
|
const auto* f = static_cast<const Fn*>(fn);
|
|
483
|
-
const T* slot = *static_cast<
|
|
484
|
-
return
|
|
563
|
+
const T* slot = *static_cast<T**>(slot_ptr);
|
|
564
|
+
return HashElement<Fn, kIsDefault>{*f, seed}(slot->first);
|
|
485
565
|
}
|
|
486
566
|
|
|
487
567
|
} // namespace container_internal
|
|
@@ -79,6 +79,18 @@ struct StringHash {
|
|
|
79
79
|
size_t operator()(const absl::Cord& v) const {
|
|
80
80
|
return absl::Hash<absl::Cord>{}(v);
|
|
81
81
|
}
|
|
82
|
+
|
|
83
|
+
private:
|
|
84
|
+
friend struct absl::hash_internal::HashWithSeed;
|
|
85
|
+
|
|
86
|
+
size_t hash_with_seed(absl::string_view v, size_t seed) const {
|
|
87
|
+
return absl::hash_internal::HashWithSeed().hash(
|
|
88
|
+
absl::Hash<absl::string_view>{}, v, seed);
|
|
89
|
+
}
|
|
90
|
+
size_t hash_with_seed(const absl::Cord& v, size_t seed) const {
|
|
91
|
+
return absl::hash_internal::HashWithSeed().hash(absl::Hash<absl::Cord>{}, v,
|
|
92
|
+
seed);
|
|
93
|
+
}
|
|
82
94
|
};
|
|
83
95
|
|
|
84
96
|
struct StringEq {
|
|
@@ -187,14 +199,14 @@ template <typename T, typename E = void>
|
|
|
187
199
|
struct HasAbslContainerHash : std::false_type {};
|
|
188
200
|
|
|
189
201
|
template <typename T>
|
|
190
|
-
struct HasAbslContainerHash<T,
|
|
202
|
+
struct HasAbslContainerHash<T, std::void_t<typename T::absl_container_hash>>
|
|
191
203
|
: std::true_type {};
|
|
192
204
|
|
|
193
205
|
template <typename T, typename E = void>
|
|
194
206
|
struct HasAbslContainerEq : std::false_type {};
|
|
195
207
|
|
|
196
208
|
template <typename T>
|
|
197
|
-
struct HasAbslContainerEq<T,
|
|
209
|
+
struct HasAbslContainerEq<T, std::void_t<typename T::absl_container_eq>>
|
|
198
210
|
: std::true_type {};
|
|
199
211
|
|
|
200
212
|
template <typename T, typename E = void>
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include <utility>
|
|
23
23
|
|
|
24
24
|
#include "absl/container/internal/common_policy_traits.h"
|
|
25
|
+
#include "absl/container/internal/container_memory.h"
|
|
25
26
|
#include "absl/meta/type_traits.h"
|
|
26
27
|
|
|
27
28
|
namespace absl {
|
|
@@ -30,14 +31,14 @@ namespace container_internal {
|
|
|
30
31
|
|
|
31
32
|
// Defines how slots are initialized/destroyed/moved.
|
|
32
33
|
template <class Policy, class = void>
|
|
33
|
-
struct hash_policy_traits : common_policy_traits<Policy> {
|
|
34
|
+
struct hash_policy_traits : common_policy_traits<Policy> {
|
|
34
35
|
// The type of the keys stored in the hashtable.
|
|
35
36
|
using key_type = typename Policy::key_type;
|
|
36
37
|
|
|
37
38
|
private:
|
|
38
39
|
struct ReturnKey {
|
|
39
40
|
template <class Key,
|
|
40
|
-
|
|
41
|
+
std::enable_if_t<std::is_lvalue_reference<Key>::value, int> = 0>
|
|
41
42
|
static key_type& Impl(Key&& k, int) {
|
|
42
43
|
return *std::launder(
|
|
43
44
|
const_cast<key_type*>(std::addressof(std::forward<Key>(k))));
|
|
@@ -62,7 +63,7 @@ struct hash_policy_traits : common_policy_traits<Policy> {
|
|
|
62
63
|
struct ConstantIteratorsImpl : std::false_type {};
|
|
63
64
|
|
|
64
65
|
template <class P>
|
|
65
|
-
struct ConstantIteratorsImpl<P,
|
|
66
|
+
struct ConstantIteratorsImpl<P, std::void_t<typename P::constant_iterators>>
|
|
66
67
|
: P::constant_iterators {};
|
|
67
68
|
|
|
68
69
|
public:
|
|
@@ -145,9 +146,7 @@ struct hash_policy_traits : common_policy_traits<Policy> {
|
|
|
145
146
|
return P::value(elem);
|
|
146
147
|
}
|
|
147
148
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
template <class Hash>
|
|
149
|
+
template <class Hash, bool kIsDefault>
|
|
151
150
|
static constexpr HashSlotFn get_hash_slot_fn() {
|
|
152
151
|
// get_hash_slot_fn may return nullptr to signal that non type erased function
|
|
153
152
|
// should be used. GCC warns against comparing function address with nullptr.
|
|
@@ -156,9 +155,9 @@ struct hash_policy_traits : common_policy_traits<Policy> {
|
|
|
156
155
|
// silent error: the address of * will never be NULL [-Werror=address]
|
|
157
156
|
#pragma GCC diagnostic ignored "-Waddress"
|
|
158
157
|
#endif
|
|
159
|
-
return Policy::template get_hash_slot_fn<Hash>() == nullptr
|
|
160
|
-
? &hash_slot_fn_non_type_erased<Hash>
|
|
161
|
-
: Policy::template get_hash_slot_fn<Hash>();
|
|
158
|
+
return Policy::template get_hash_slot_fn<Hash, kIsDefault>() == nullptr
|
|
159
|
+
? &hash_slot_fn_non_type_erased<Hash, kIsDefault>
|
|
160
|
+
: Policy::template get_hash_slot_fn<Hash, kIsDefault>();
|
|
162
161
|
#if defined(__GNUC__) && !defined(__clang__)
|
|
163
162
|
#pragma GCC diagnostic pop
|
|
164
163
|
#endif
|
|
@@ -168,19 +167,12 @@ struct hash_policy_traits : common_policy_traits<Policy> {
|
|
|
168
167
|
static constexpr bool soo_enabled() { return soo_enabled_impl(Rank1{}); }
|
|
169
168
|
|
|
170
169
|
private:
|
|
171
|
-
template <class Hash>
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
const Hash& h;
|
|
178
|
-
};
|
|
179
|
-
|
|
180
|
-
template <class Hash>
|
|
181
|
-
static size_t hash_slot_fn_non_type_erased(const void* hash_fn, void* slot) {
|
|
182
|
-
return Policy::apply(HashElement<Hash>{*static_cast<const Hash*>(hash_fn)},
|
|
183
|
-
Policy::element(static_cast<slot_type*>(slot)));
|
|
170
|
+
template <class Hash, bool kIsDefault>
|
|
171
|
+
static size_t hash_slot_fn_non_type_erased(const void* hash_fn, void* slot,
|
|
172
|
+
size_t seed) {
|
|
173
|
+
return Policy::apply(
|
|
174
|
+
HashElement<Hash, kIsDefault>{*static_cast<const Hash*>(hash_fn), seed},
|
|
175
|
+
Policy::element(static_cast<slot_type*>(slot)));
|
|
184
176
|
}
|
|
185
177
|
|
|
186
178
|
// Use go/ranked-overloads for dispatching. Rank1 is preferred.
|
|
@@ -84,18 +84,13 @@ class NonIterableBitMask {
|
|
|
84
84
|
public:
|
|
85
85
|
explicit NonIterableBitMask(T mask) : mask_(mask) {}
|
|
86
86
|
|
|
87
|
-
explicit operator bool() const { return
|
|
87
|
+
explicit operator bool() const { return mask_ != 0; }
|
|
88
88
|
|
|
89
89
|
// Returns the index of the lowest *abstract* bit set in `self`.
|
|
90
90
|
uint32_t LowestBitSet() const {
|
|
91
91
|
return container_internal::TrailingZeros(mask_) >> Shift;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
// Returns the index of the highest *abstract* bit set in `self`.
|
|
95
|
-
uint32_t HighestBitSet() const {
|
|
96
|
-
return static_cast<uint32_t>((bit_width(mask_) - 1) >> Shift);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
94
|
// Returns the number of trailing zero *abstract* bits.
|
|
100
95
|
uint32_t TrailingZeros() const {
|
|
101
96
|
return container_internal::TrailingZeros(mask_) >> Shift;
|
|
@@ -217,6 +212,9 @@ static_assert(
|
|
|
217
212
|
static_assert(ctrl_t::kDeleted == static_cast<ctrl_t>(-2),
|
|
218
213
|
"ctrl_t::kDeleted must be -2 to make the implementation of "
|
|
219
214
|
"ConvertSpecialToEmptyAndFullToDeleted efficient");
|
|
215
|
+
static_assert(ctrl_t::kEmpty == static_cast<ctrl_t>(-128),
|
|
216
|
+
"ctrl_t::kEmpty must be -128 to use saturated subtraction in"
|
|
217
|
+
" ConvertSpecialToEmptyAndFullToDeleted");
|
|
220
218
|
|
|
221
219
|
// Helpers for checking the state of a control byte.
|
|
222
220
|
inline bool IsEmpty(ctrl_t c) { return c == ctrl_t::kEmpty; }
|
|
@@ -276,8 +274,12 @@ inline __m128i _mm_cmpgt_epi8_fixed(__m128i a, __m128i b) {
|
|
|
276
274
|
|
|
277
275
|
struct GroupSse2Impl {
|
|
278
276
|
static constexpr size_t kWidth = 16; // the number of slots per group
|
|
279
|
-
using
|
|
280
|
-
|
|
277
|
+
// There are only 16 bits, but using uint32_t instead of uint16_t allows for
|
|
278
|
+
// better codegen. In particular, there is no blsr instruction for a 16 bit
|
|
279
|
+
// register, but there is for a 32 bit register (used in BitMask::operator++).
|
|
280
|
+
using MaskInt = uint32_t;
|
|
281
|
+
using BitMaskType = BitMask<MaskInt, kWidth>;
|
|
282
|
+
using NonIterableBitMaskType = NonIterableBitMask<MaskInt, kWidth>;
|
|
281
283
|
|
|
282
284
|
explicit GroupSse2Impl(const ctrl_t* pos) {
|
|
283
285
|
ctrl = _mm_loadu_si128(reinterpret_cast<const __m128i*>(pos));
|
|
@@ -286,64 +288,70 @@ struct GroupSse2Impl {
|
|
|
286
288
|
// Returns a bitmask representing the positions of slots that match hash.
|
|
287
289
|
BitMaskType Match(h2_t hash) const {
|
|
288
290
|
auto match = _mm_set1_epi8(static_cast<char>(hash));
|
|
289
|
-
return BitMaskType(
|
|
290
|
-
static_cast<uint16_t>(_mm_movemask_epi8(_mm_cmpeq_epi8(match, ctrl))));
|
|
291
|
+
return BitMaskType(MoveMask(_mm_cmpeq_epi8(match, ctrl)));
|
|
291
292
|
}
|
|
292
293
|
|
|
293
294
|
// Returns a bitmask representing the positions of empty slots.
|
|
294
295
|
NonIterableBitMaskType MaskEmpty() const {
|
|
295
296
|
#ifdef ABSL_INTERNAL_HAVE_SSSE3
|
|
296
297
|
// This only works because ctrl_t::kEmpty is -128.
|
|
297
|
-
return NonIterableBitMaskType(
|
|
298
|
-
static_cast<uint16_t>(_mm_movemask_epi8(_mm_sign_epi8(ctrl, ctrl))));
|
|
298
|
+
return NonIterableBitMaskType(MoveMask(_mm_sign_epi8(ctrl, ctrl)));
|
|
299
299
|
#else
|
|
300
300
|
auto match = _mm_set1_epi8(static_cast<char>(ctrl_t::kEmpty));
|
|
301
|
-
return NonIterableBitMaskType(
|
|
302
|
-
static_cast<uint16_t>(_mm_movemask_epi8(_mm_cmpeq_epi8(match, ctrl))));
|
|
301
|
+
return NonIterableBitMaskType(MoveMask(_mm_cmpeq_epi8(match, ctrl)));
|
|
303
302
|
#endif
|
|
304
303
|
}
|
|
305
304
|
|
|
306
305
|
// Returns a bitmask representing the positions of full slots.
|
|
307
306
|
// Note: for `is_small()` tables group may contain the "same" slot twice:
|
|
308
307
|
// original and mirrored.
|
|
309
|
-
BitMaskType MaskFull() const {
|
|
310
|
-
return BitMaskType(static_cast<uint16_t>(_mm_movemask_epi8(ctrl) ^ 0xffff));
|
|
311
|
-
}
|
|
308
|
+
BitMaskType MaskFull() const { return BitMaskType(MoveMask(ctrl) ^ 0xffff); }
|
|
312
309
|
|
|
313
310
|
// Returns a bitmask representing the positions of non full slots.
|
|
314
311
|
// Note: this includes: kEmpty, kDeleted, kSentinel.
|
|
315
312
|
// It is useful in contexts when kSentinel is not present.
|
|
316
|
-
auto MaskNonFull() const {
|
|
317
|
-
return BitMaskType(static_cast<uint16_t>(_mm_movemask_epi8(ctrl)));
|
|
318
|
-
}
|
|
313
|
+
auto MaskNonFull() const { return BitMaskType(MoveMask(ctrl)); }
|
|
319
314
|
|
|
320
315
|
// Returns a bitmask representing the positions of empty or deleted slots.
|
|
321
316
|
NonIterableBitMaskType MaskEmptyOrDeleted() const {
|
|
322
317
|
auto special = _mm_set1_epi8(static_cast<char>(ctrl_t::kSentinel));
|
|
323
|
-
return NonIterableBitMaskType(
|
|
324
|
-
|
|
318
|
+
return NonIterableBitMaskType(
|
|
319
|
+
MoveMask(_mm_cmpgt_epi8_fixed(special, ctrl)));
|
|
325
320
|
}
|
|
326
321
|
|
|
327
|
-
// Returns the
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
322
|
+
// Returns a bitmask representing the positions of full or sentinel slots.
|
|
323
|
+
// Note: for `is_small()` tables group may contain the "same" slot twice:
|
|
324
|
+
// original and mirrored.
|
|
325
|
+
NonIterableBitMaskType MaskFullOrSentinel() const {
|
|
326
|
+
auto special = _mm_set1_epi8(static_cast<char>(ctrl_t::kSentinel) - 1);
|
|
327
|
+
return NonIterableBitMaskType(
|
|
328
|
+
MoveMask(_mm_cmpgt_epi8_fixed(ctrl, special)));
|
|
332
329
|
}
|
|
333
330
|
|
|
334
331
|
void ConvertSpecialToEmptyAndFullToDeleted(ctrl_t* dst) const {
|
|
332
|
+
// Take advantage of the fact that kEmpty is already the smallest signed
|
|
333
|
+
// char value, and using a saturated subtraction will not affect it.
|
|
334
|
+
// All special values have the MSB set, so after an AND with MSBS, we
|
|
335
|
+
// are left with -128 for special values and 0 for full. After applying
|
|
336
|
+
// subs 2, we arrive at the result of -128(kEmpty) for special and
|
|
337
|
+
// -2(kDeleted) for full.
|
|
335
338
|
auto msbs = _mm_set1_epi8(static_cast<char>(-128));
|
|
336
|
-
auto
|
|
337
|
-
|
|
338
|
-
auto res = _mm_or_si128(_mm_shuffle_epi8(x126, ctrl), msbs);
|
|
339
|
-
#else
|
|
340
|
-
auto zero = _mm_setzero_si128();
|
|
341
|
-
auto special_mask = _mm_cmpgt_epi8_fixed(zero, ctrl);
|
|
342
|
-
auto res = _mm_or_si128(msbs, _mm_andnot_si128(special_mask, x126));
|
|
343
|
-
#endif
|
|
339
|
+
auto twos = _mm_set1_epi8(static_cast<char>(2));
|
|
340
|
+
auto res = _mm_subs_epi8(_mm_and_si128(msbs, ctrl), twos);
|
|
344
341
|
_mm_storeu_si128(reinterpret_cast<__m128i*>(dst), res);
|
|
345
342
|
}
|
|
346
343
|
|
|
344
|
+
static MaskInt MoveMask(__m128i xmm) {
|
|
345
|
+
auto mask = static_cast<MaskInt>(_mm_movemask_epi8(xmm));
|
|
346
|
+
#ifdef __clang__
|
|
347
|
+
// TODO(b/472522597): Without the inline asm, clang ends up generating an
|
|
348
|
+
// unnecessary movzx to zero the upper bits of the output, but those bits
|
|
349
|
+
// are already zero. See https://godbolt.org/z/G6xW1Ecbx.
|
|
350
|
+
asm("" : "+r"(mask)); // NOLINT
|
|
351
|
+
#endif
|
|
352
|
+
return mask;
|
|
353
|
+
}
|
|
354
|
+
|
|
347
355
|
__m128i ctrl;
|
|
348
356
|
};
|
|
349
357
|
#endif // ABSL_INTERNAL_RAW_HASH_SET_HAVE_SSE2
|
|
@@ -406,17 +414,13 @@ struct GroupAArch64Impl {
|
|
|
406
414
|
return NonIterableBitMaskType(mask);
|
|
407
415
|
}
|
|
408
416
|
|
|
409
|
-
|
|
410
|
-
uint64_t mask =
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
// produced bitfield. We then count number of trailing zeros.
|
|
417
|
-
// Clang and GCC optimize countr_zero to rbit+clz without any check for 0,
|
|
418
|
-
// so we should be fine.
|
|
419
|
-
return static_cast<uint32_t>(countr_zero(mask)) >> 3;
|
|
417
|
+
NonIterableBitMaskType MaskFullOrSentinel() const {
|
|
418
|
+
uint64_t mask = vget_lane_u64(
|
|
419
|
+
vreinterpret_u64_u8(
|
|
420
|
+
vcgt_s8(vreinterpret_s8_u8(ctrl),
|
|
421
|
+
vdup_n_s8(static_cast<int8_t>(ctrl_t::kSentinel) - 1))),
|
|
422
|
+
0);
|
|
423
|
+
return NonIterableBitMaskType(mask);
|
|
420
424
|
}
|
|
421
425
|
|
|
422
426
|
void ConvertSpecialToEmptyAndFullToDeleted(ctrl_t* dst) const {
|
|
@@ -481,12 +485,8 @@ struct GroupPortableImpl {
|
|
|
481
485
|
return NonIterableBitMaskType((ctrl & ~(ctrl << 7)) & kMsbs8Bytes);
|
|
482
486
|
}
|
|
483
487
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
// kDeleted. We lower all other bits and count number of trailing zeros.
|
|
487
|
-
constexpr uint64_t bits = 0x0101010101010101ULL;
|
|
488
|
-
return static_cast<uint32_t>(countr_zero((ctrl | ~(ctrl >> 7)) & bits) >>
|
|
489
|
-
3);
|
|
488
|
+
auto MaskFullOrSentinel() const {
|
|
489
|
+
return NonIterableBitMaskType((~ctrl | (ctrl << 7)) & kMsbs8Bytes);
|
|
490
490
|
}
|
|
491
491
|
|
|
492
492
|
void ConvertSpecialToEmptyAndFullToDeleted(ctrl_t* dst) const {
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include <cstdint>
|
|
23
23
|
#include <functional>
|
|
24
24
|
#include <limits>
|
|
25
|
+
#include <utility>
|
|
25
26
|
|
|
26
27
|
#include "absl/base/attributes.h"
|
|
27
28
|
#include "absl/base/config.h"
|
|
@@ -86,7 +87,6 @@ void HashtablezInfo::PrepareForSampling(int64_t stride,
|
|
|
86
87
|
total_probe_length.store(0, std::memory_order_relaxed);
|
|
87
88
|
hashes_bitwise_or.store(0, std::memory_order_relaxed);
|
|
88
89
|
hashes_bitwise_and.store(~size_t{}, std::memory_order_relaxed);
|
|
89
|
-
hashes_bitwise_xor.store(0, std::memory_order_relaxed);
|
|
90
90
|
max_reserve.store(0, std::memory_order_relaxed);
|
|
91
91
|
|
|
92
92
|
create_time = absl::Now();
|
|
@@ -94,8 +94,9 @@ void HashtablezInfo::PrepareForSampling(int64_t stride,
|
|
|
94
94
|
// The inliner makes hardcoded skip_count difficult (especially when combined
|
|
95
95
|
// with LTO). We use the ability to exclude stacks by regex when encoding
|
|
96
96
|
// instead.
|
|
97
|
-
depth =
|
|
98
|
-
|
|
97
|
+
depth = static_cast<unsigned>(
|
|
98
|
+
absl::GetStackTrace(stack, HashtablezInfo::kMaxStackDepth,
|
|
99
|
+
/* skip_count= */ 0));
|
|
99
100
|
inline_element_size = inline_element_size_value;
|
|
100
101
|
key_size = key_size_value;
|
|
101
102
|
value_size = value_size_value;
|
|
@@ -147,7 +148,7 @@ HashtablezInfo* SampleSlow(SamplingState& next_sample,
|
|
|
147
148
|
size_t value_size, uint16_t soo_capacity) {
|
|
148
149
|
if (ABSL_PREDICT_FALSE(ShouldForceSampling())) {
|
|
149
150
|
next_sample.next_sample = 1;
|
|
150
|
-
const int64_t old_stride = exchange(next_sample.sample_stride, 1);
|
|
151
|
+
const int64_t old_stride = std::exchange(next_sample.sample_stride, 1);
|
|
151
152
|
HashtablezInfo* result = GlobalHashtablezSampler().Register(
|
|
152
153
|
old_stride, inline_element_size, key_size, value_size, soo_capacity);
|
|
153
154
|
return result;
|
|
@@ -229,8 +230,8 @@ void RecordStorageChangedSlow(HashtablezInfo* info, size_t size,
|
|
|
229
230
|
}
|
|
230
231
|
}
|
|
231
232
|
|
|
232
|
-
void
|
|
233
|
-
|
|
233
|
+
void RecordInsertMissSlow(HashtablezInfo* info, size_t hash,
|
|
234
|
+
size_t distance_from_desired) {
|
|
234
235
|
// SwissTables probe in groups of 16, so scale this to count items probes and
|
|
235
236
|
// not offset from desired.
|
|
236
237
|
size_t probe_length = distance_from_desired;
|
|
@@ -242,7 +243,6 @@ void RecordInsertSlow(HashtablezInfo* info, size_t hash,
|
|
|
242
243
|
|
|
243
244
|
info->hashes_bitwise_and.fetch_and(hash, std::memory_order_relaxed);
|
|
244
245
|
info->hashes_bitwise_or.fetch_or(hash, std::memory_order_relaxed);
|
|
245
|
-
info->hashes_bitwise_xor.fetch_xor(hash, std::memory_order_relaxed);
|
|
246
246
|
info->max_probe_length.store(
|
|
247
247
|
std::max(info->max_probe_length.load(std::memory_order_relaxed),
|
|
248
248
|
probe_length),
|