grpc 1.57.0 → 1.58.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Makefile +534 -284
- data/include/grpc/event_engine/event_engine.h +0 -1
- data/include/grpc/event_engine/memory_allocator.h +2 -2
- data/include/grpc/impl/channel_arg_names.h +371 -0
- data/include/grpc/impl/grpc_types.h +1 -353
- data/include/grpc/module.modulemap +1 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +1 -1
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +2 -1
- data/src/core/ext/filters/client_channel/client_channel.cc +7 -3
- data/src/core/ext/filters/client_channel/http_proxy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +10 -5
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +7 -5
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +5 -3
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +4 -2
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +115 -109
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.h +0 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +7 -2
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +11 -3
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +6 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +8 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +102 -11
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +9 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +4 -1
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc +6 -0
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +41 -14
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +3 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/retry_filter.h +1 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +1 -1
- data/src/core/ext/filters/client_channel/subchannel.cc +9 -5
- data/src/core/ext/filters/client_channel/subchannel.h +8 -2
- data/src/core/ext/filters/deadline/deadline_filter.cc +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +1 -0
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -1
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +1 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +4 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +8 -12
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +357 -358
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -18
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +63 -4
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +7 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +30 -57
- data/src/core/ext/transport/chttp2/transport/parsing.cc +16 -7
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +80 -0
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +55 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +98 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +73 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +81 -89
- data/src/core/ext/transport/inproc/inproc_transport.cc +1 -0
- data/src/core/ext/xds/xds_client_grpc.cc +1 -0
- data/src/core/ext/xds/xds_http_fault_filter.cc +1 -2
- data/src/core/ext/xds/xds_http_fault_filter.h +1 -2
- data/src/core/ext/xds/xds_http_filters.h +2 -4
- data/src/core/ext/xds/xds_http_rbac_filter.cc +3 -8
- data/src/core/ext/xds/xds_http_rbac_filter.h +1 -2
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +1 -2
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +1 -2
- data/src/core/ext/xds/xds_lb_policy_registry.cc +3 -6
- data/src/core/ext/xds/xds_routing.cc +2 -2
- data/src/core/ext/xds/xds_transport_grpc.cc +1 -0
- data/src/core/lib/avl/avl.h +10 -173
- data/src/core/lib/channel/call_tracer.cc +289 -0
- data/src/core/lib/channel/call_tracer.h +35 -0
- data/src/core/lib/channel/channel_args.cc +84 -79
- data/src/core/lib/channel/channel_args.h +29 -17
- data/src/core/lib/channel/connected_channel.cc +0 -1
- data/src/core/lib/channel/promise_based_filter.cc +4 -1
- data/src/core/lib/compression/compression_internal.cc +8 -4
- data/src/core/lib/debug/stats_data.cc +93 -21
- data/src/core/lib/debug/stats_data.h +41 -0
- data/src/core/lib/event_engine/ares_resolver.cc +712 -0
- data/src/core/lib/event_engine/ares_resolver.h +150 -0
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +9 -3
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +2 -2
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +229 -0
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +117 -0
- data/src/core/lib/event_engine/forkable.cc +15 -1
- data/src/core/lib/event_engine/forkable.h +15 -0
- data/src/core/lib/event_engine/grpc_polled_fd.h +73 -0
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +25 -3
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +10 -1
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +197 -0
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +3 -3
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +47 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +12 -1
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +1 -0
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -0
- data/src/core/lib/event_engine/thread_pool/thread_count.cc +58 -0
- data/src/core/lib/event_engine/thread_pool/thread_count.h +161 -0
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +7 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +86 -111
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +15 -61
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +3 -4
- data/src/core/lib/experiments/config.cc +14 -0
- data/src/core/lib/experiments/experiments.cc +141 -304
- data/src/core/lib/experiments/experiments.h +16 -17
- data/src/core/lib/gprpp/ref_counted.h +3 -1
- data/src/core/lib/gprpp/ref_counted_string.cc +44 -0
- data/src/core/lib/gprpp/ref_counted_string.h +146 -0
- data/src/core/lib/gprpp/time.h +2 -2
- data/src/core/lib/gprpp/work_serializer.cc +36 -0
- data/src/core/lib/gprpp/work_serializer.h +5 -0
- data/src/core/lib/http/httpcli_security_connector.cc +1 -0
- data/src/core/lib/iomgr/buffer_list.cc +2 -0
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +7 -22
- data/src/core/lib/iomgr/tcp_posix.cc +3 -3
- data/src/core/lib/promise/detail/basic_seq.h +1 -372
- data/src/core/lib/promise/detail/seq_state.h +2076 -0
- data/src/core/lib/promise/seq.h +19 -2
- data/src/core/lib/promise/sleep.h +5 -10
- data/src/core/lib/promise/try_seq.h +34 -2
- data/src/core/lib/resource_quota/api.cc +1 -0
- data/src/core/lib/resource_quota/arena.cc +2 -0
- data/src/core/lib/resource_quota/arena.h +42 -8
- data/src/core/lib/resource_quota/memory_quota.cc +0 -1
- data/src/core/lib/resource_quota/resource_quota.h +1 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
- data/src/core/lib/security/authorization/rbac_policy.h +1 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +8 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +1 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +17 -0
- data/src/core/lib/security/credentials/jwt/json_token.h +4 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +42 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +1 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +1 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -0
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -0
- data/src/core/lib/security/security_connector/ssl_utils.cc +1 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +8 -5
- data/src/core/lib/security/transport/security_handshaker.cc +1 -0
- data/src/core/lib/security/transport/server_auth_filter.cc +2 -0
- data/src/core/lib/surface/call.cc +32 -8
- data/src/core/lib/surface/channel.cc +1 -0
- data/src/core/lib/surface/completion_queue.cc +10 -0
- data/src/core/lib/surface/init.cc +1 -0
- data/src/core/lib/surface/server.cc +67 -64
- data/src/core/lib/surface/server.h +1 -15
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/tsi/alts/crypt/aes_gcm.cc +27 -2
- data/src/core/tsi/ssl_transport_security.cc +11 -0
- data/src/ruby/lib/grpc/generic/active_call.rb +9 -14
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/test/client.rb +16 -0
- data/src/ruby/spec/generic/rpc_server_spec.rb +3 -3
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -2
- data/third_party/abseil-cpp/absl/base/attributes.h +58 -5
- data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
- data/third_party/abseil-cpp/absl/base/casts.h +8 -8
- data/third_party/abseil-cpp/absl/base/config.h +89 -106
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +26 -1
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +2 -2
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +50 -39
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +2 -1
- data/third_party/abseil-cpp/absl/base/internal/prefetch.h +17 -18
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +32 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +24 -4
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +31 -73
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +9 -8
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +23 -32
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +2 -3
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/policy_checks.h +3 -3
- data/third_party/abseil-cpp/absl/base/prefetch.h +198 -0
- data/third_party/abseil-cpp/absl/container/fixed_array.h +54 -29
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -1
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +167 -79
- 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 +3 -21
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +46 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -0
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +85 -26
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +35 -18
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +70 -29
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +437 -236
- data/third_party/abseil-cpp/absl/crc/crc32c.h +8 -1
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +14 -8
- data/third_party/abseil-cpp/absl/crc/internal/crc.cc +4 -35
- data/third_party/abseil-cpp/absl/crc/internal/crc.h +2 -10
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +1 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +1 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +4 -4
- data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +8 -10
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc +17 -19
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +8 -8
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +2 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +59 -23
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +1 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +43 -19
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -0
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +1 -1
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc +1 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -2
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +16 -15
- data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +1 -1
- data/third_party/abseil-cpp/absl/flags/marshalling.cc +43 -2
- data/third_party/abseil-cpp/absl/flags/marshalling.h +5 -0
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +9 -1
- data/third_party/abseil-cpp/absl/functional/bind_front.h +1 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +3 -3
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +37 -24
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +19 -9
- data/third_party/abseil-cpp/absl/hash/hash.h +7 -4
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +38 -15
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +6 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +48 -373
- data/third_party/abseil-cpp/absl/numeric/bits.h +4 -4
- data/third_party/abseil-cpp/absl/numeric/int128.cc +20 -8
- data/third_party/abseil-cpp/absl/numeric/int128.h +36 -39
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +0 -3
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +47 -30
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +4 -3
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/platform.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +4 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +1 -1
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +1 -1
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +4 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +12 -24
- data/third_party/abseil-cpp/absl/status/status.cc +11 -7
- data/third_party/abseil-cpp/absl/status/status.h +11 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +22 -8
- data/third_party/abseil-cpp/absl/strings/ascii.cc +54 -6
- data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -4
- data/third_party/abseil-cpp/absl/strings/charconv.h +2 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +1 -2
- data/third_party/abseil-cpp/absl/strings/cord.h +32 -5
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +23 -1
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +18 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +2 -5
- data/third_party/abseil-cpp/absl/strings/escaping.cc +10 -32
- data/third_party/abseil-cpp/absl/strings/escaping.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +2 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +0 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +15 -13
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +13 -4
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +8 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +5 -3
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +4 -7
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +8 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +46 -20
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +1 -34
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +23 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +2 -77
- data/third_party/abseil-cpp/absl/strings/internal/memutil.h +4 -112
- data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +10 -31
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -8
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +5 -20
- data/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +56 -6
- data/third_party/abseil-cpp/absl/strings/match.cc +87 -0
- data/third_party/abseil-cpp/absl/strings/match.h +19 -0
- data/third_party/abseil-cpp/absl/strings/numbers.cc +154 -122
- data/third_party/abseil-cpp/absl/strings/numbers.h +1 -6
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +7 -50
- data/third_party/abseil-cpp/absl/strings/str_cat.h +83 -15
- data/third_party/abseil-cpp/absl/strings/str_format.h +6 -3
- data/third_party/abseil-cpp/absl/strings/str_split.cc +9 -6
- data/third_party/abseil-cpp/absl/strings/string_view.cc +26 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +5 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +63 -43
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +111 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.h +63 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +11 -7
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +225 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +122 -114
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +12 -8
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +10 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +167 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.h +60 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +122 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.h +65 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +91 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.h +56 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +19 -113
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +42 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.h +90 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +151 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.h +70 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +407 -411
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +152 -118
- data/third_party/abseil-cpp/absl/time/clock.cc +6 -7
- data/third_party/abseil-cpp/absl/time/duration.cc +24 -26
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +3 -3
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +8 -6
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +6 -3
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +4 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +4 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +322 -295
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +8 -17
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +51 -33
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +7 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +128 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +5 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +34 -34
- data/third_party/abseil-cpp/absl/time/time.cc +9 -2
- data/third_party/abseil-cpp/absl/time/time.h +115 -15
- data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -52
- data/third_party/abseil-cpp/absl/types/internal/span.h +2 -2
- data/third_party/abseil-cpp/absl/types/internal/variant.h +2 -2
- data/third_party/abseil-cpp/absl/types/optional.h +15 -13
- data/third_party/abseil-cpp/absl/types/span.h +1 -2
- data/third_party/boringssl-with-bazel/err_data.c +15 -14
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/bio/errno.c +92 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +4 -48
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +11 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +16 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +3 -7
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.c +93 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +9 -14
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +10 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +37 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +38 -19
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +39 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +4 -7
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +13 -21
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +6 -23
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +2 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +11 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +7 -9
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +22 -20
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +20 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/target.h +50 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +4 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +2 -0
- metadata +41 -33
- data/src/core/lib/promise/detail/basic_join.h +0 -197
- data/src/core/lib/promise/detail/switch.h +0 -1455
- data/src/core/lib/promise/try_join.h +0 -82
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +0 -403
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +0 -62
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm.c +0 -38
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_openbsd.c +0 -31
- data/third_party/re2/util/benchmark.h +0 -156
- data/third_party/re2/util/flags.h +0 -26
- data/third_party/re2/util/malloc_counter.h +0 -19
- data/third_party/re2/util/pcre.cc +0 -1025
- data/third_party/re2/util/pcre.h +0 -681
- data/third_party/re2/util/test.h +0 -50
- data/third_party/upb/upb/mini_table.h +0 -36
- data/third_party/zlib/gzclose.c +0 -25
- data/third_party/zlib/gzlib.c +0 -639
- data/third_party/zlib/gzread.c +0 -650
- data/third_party/zlib/gzwrite.c +0 -677
@@ -211,11 +211,20 @@
|
|
211
211
|
// out of bounds or does other scary things with memory.
|
212
212
|
// NOTE: GCC supports AddressSanitizer(asan) since 4.8.
|
213
213
|
// https://gcc.gnu.org/gcc-4.8/changes.html
|
214
|
-
#if
|
214
|
+
#if defined(ABSL_HAVE_ADDRESS_SANITIZER) && \
|
215
|
+
ABSL_HAVE_ATTRIBUTE(no_sanitize_address)
|
215
216
|
#define ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address))
|
216
|
-
#elif defined(
|
217
|
+
#elif defined(ABSL_HAVE_ADDRESS_SANITIZER) && defined(_MSC_VER) && \
|
218
|
+
_MSC_VER >= 1928
|
217
219
|
// https://docs.microsoft.com/en-us/cpp/cpp/no-sanitize-address
|
218
220
|
#define ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS __declspec(no_sanitize_address)
|
221
|
+
#elif defined(ABSL_HAVE_HWADDRESS_SANITIZER) && ABSL_HAVE_ATTRIBUTE(no_sanitize)
|
222
|
+
// HWAddressSanitizer is a sanitizer similar to AddressSanitizer, which uses CPU
|
223
|
+
// features to detect similar bugs with less CPU and memory overhead.
|
224
|
+
// NOTE: GCC supports HWAddressSanitizer(hwasan) since 11.
|
225
|
+
// https://gcc.gnu.org/gcc-11/changes.html
|
226
|
+
#define ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS \
|
227
|
+
__attribute__((no_sanitize("hwaddress")))
|
219
228
|
#else
|
220
229
|
#define ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS
|
221
230
|
#endif
|
@@ -265,7 +274,7 @@
|
|
265
274
|
//
|
266
275
|
// Tells the ControlFlowIntegrity sanitizer to not instrument a given function.
|
267
276
|
// See https://clang.llvm.org/docs/ControlFlowIntegrity.html for details.
|
268
|
-
#if ABSL_HAVE_ATTRIBUTE(no_sanitize)
|
277
|
+
#if ABSL_HAVE_ATTRIBUTE(no_sanitize) && defined(__llvm__)
|
269
278
|
#define ABSL_ATTRIBUTE_NO_SANITIZE_CFI __attribute__((no_sanitize("cfi")))
|
270
279
|
#else
|
271
280
|
#define ABSL_ATTRIBUTE_NO_SANITIZE_CFI
|
@@ -322,8 +331,8 @@
|
|
322
331
|
// This functionality is supported by GNU linker.
|
323
332
|
#ifndef ABSL_ATTRIBUTE_SECTION_VARIABLE
|
324
333
|
#ifdef _AIX
|
325
|
-
// __attribute__((section(#name))) on AIX is
|
326
|
-
// op which includes an additional integer as part of its syntax indcating
|
334
|
+
// __attribute__((section(#name))) on AIX is achieved by using the `.csect`
|
335
|
+
// psudo op which includes an additional integer as part of its syntax indcating
|
327
336
|
// alignment. If data fall under different alignments then you might get a
|
328
337
|
// compilation error indicating a `Section type conflict`.
|
329
338
|
#define ABSL_ATTRIBUTE_SECTION_VARIABLE(name)
|
@@ -676,6 +685,28 @@
|
|
676
685
|
#define ABSL_DEPRECATED(message)
|
677
686
|
#endif
|
678
687
|
|
688
|
+
// When deprecating Abseil code, it is sometimes necessary to turn off the
|
689
|
+
// warning within Abseil, until the deprecated code is actually removed. The
|
690
|
+
// deprecated code can be surrounded with these directives to acheive that
|
691
|
+
// result.
|
692
|
+
//
|
693
|
+
// class ABSL_DEPRECATED("Use Bar instead") Foo;
|
694
|
+
//
|
695
|
+
// ABSL_INTERNAL_DISABLE_DEPRECATED_DECLARATION_WARNING
|
696
|
+
// Baz ComputeBazFromFoo(Foo f);
|
697
|
+
// ABSL_INTERNAL_RESTORE_DEPRECATED_DECLARATION_WARNING
|
698
|
+
#if defined(__GNUC__) || defined(__clang__)
|
699
|
+
// Clang also supports these GCC pragmas.
|
700
|
+
#define ABSL_INTERNAL_DISABLE_DEPRECATED_DECLARATION_WARNING \
|
701
|
+
_Pragma("GCC diagnostic push") \
|
702
|
+
_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
|
703
|
+
#define ABSL_INTERNAL_RESTORE_DEPRECATED_DECLARATION_WARNING \
|
704
|
+
_Pragma("GCC diagnostic pop")
|
705
|
+
#else
|
706
|
+
#define ABSL_INTERNAL_DISABLE_DEPRECATED_DECLARATION_WARNING
|
707
|
+
#define ABSL_INTERNAL_RESTORE_DEPRECATED_DECLARATION_WARNING
|
708
|
+
#endif // defined(__GNUC__) || defined(__clang__)
|
709
|
+
|
679
710
|
// ABSL_CONST_INIT
|
680
711
|
//
|
681
712
|
// A variable declaration annotated with the `ABSL_CONST_INIT` attribute will
|
@@ -779,4 +810,26 @@
|
|
779
810
|
#define ABSL_ATTRIBUTE_TRIVIAL_ABI
|
780
811
|
#endif
|
781
812
|
|
813
|
+
// ABSL_ATTRIBUTE_NO_UNIQUE_ADDRESS
|
814
|
+
//
|
815
|
+
// Indicates a data member can be optimized to occupy no space (if it is empty)
|
816
|
+
// and/or its tail padding can be used for other members.
|
817
|
+
//
|
818
|
+
// For code that is assured to only build with C++20 or later, prefer using
|
819
|
+
// the standard attribute `[[no_unique_address]]` directly instead of this
|
820
|
+
// macro.
|
821
|
+
//
|
822
|
+
// https://devblogs.microsoft.com/cppblog/msvc-cpp20-and-the-std-cpp20-switch/#c20-no_unique_address
|
823
|
+
// Current versions of MSVC have disabled `[[no_unique_address]]` since it
|
824
|
+
// breaks ABI compatibility, but offers `[[msvc::no_unique_address]]` for
|
825
|
+
// situations when it can be assured that it is desired. Since Abseil does not
|
826
|
+
// claim ABI compatibility in mixed builds, we can offer it unconditionally.
|
827
|
+
#if defined(_MSC_VER) && _MSC_VER >= 1929
|
828
|
+
#define ABSL_ATTRIBUTE_NO_UNIQUE_ADDRESS [[msvc::no_unique_address]]
|
829
|
+
#elif ABSL_HAVE_CPP_ATTRIBUTE(no_unique_address)
|
830
|
+
#define ABSL_ATTRIBUTE_NO_UNIQUE_ADDRESS [[no_unique_address]]
|
831
|
+
#else
|
832
|
+
#define ABSL_ATTRIBUTE_NO_UNIQUE_ADDRESS
|
833
|
+
#endif
|
834
|
+
|
782
835
|
#endif // ABSL_BASE_ATTRIBUTES_H_
|
@@ -149,16 +149,16 @@ using std::bit_cast;
|
|
149
149
|
|
150
150
|
#else // defined(__cpp_lib_bit_cast) && __cpp_lib_bit_cast >= 201806L
|
151
151
|
|
152
|
-
template <
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
152
|
+
template <
|
153
|
+
typename Dest, typename Source,
|
154
|
+
typename std::enable_if<sizeof(Dest) == sizeof(Source) &&
|
155
|
+
std::is_trivially_copyable<Source>::value &&
|
156
|
+
std::is_trivially_copyable<Dest>::value
|
157
157
|
#if !ABSL_HAVE_BUILTIN(__builtin_bit_cast)
|
158
|
-
|
158
|
+
&& std::is_default_constructible<Dest>::value
|
159
159
|
#endif // !ABSL_HAVE_BUILTIN(__builtin_bit_cast)
|
160
|
-
|
161
|
-
|
160
|
+
,
|
161
|
+
int>::type = 0>
|
162
162
|
#if ABSL_HAVE_BUILTIN(__builtin_bit_cast)
|
163
163
|
inline constexpr Dest bit_cast(const Source& source) {
|
164
164
|
return __builtin_bit_cast(Dest, source);
|
@@ -111,8 +111,8 @@
|
|
111
111
|
//
|
112
112
|
// LTS releases can be obtained from
|
113
113
|
// https://github.com/abseil/abseil-cpp/releases.
|
114
|
-
#define ABSL_LTS_RELEASE_VERSION
|
115
|
-
#define ABSL_LTS_RELEASE_PATCH_LEVEL
|
114
|
+
#define ABSL_LTS_RELEASE_VERSION 20230802
|
115
|
+
#define ABSL_LTS_RELEASE_PATCH_LEVEL 0
|
116
116
|
|
117
117
|
// Helper macro to convert a CPP variable to a string literal.
|
118
118
|
#define ABSL_INTERNAL_DO_TOKEN_STR(x) #x
|
@@ -237,15 +237,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
237
237
|
// ABSL_HAVE_STD_IS_TRIVIALLY_DESTRUCTIBLE
|
238
238
|
//
|
239
239
|
// Checks whether `std::is_trivially_destructible<T>` is supported.
|
240
|
-
//
|
241
|
-
// Notes: All supported compilers using libc++ support this feature, as does
|
242
|
-
// gcc >= 4.8.1 using libstdc++, and Visual Studio.
|
243
240
|
#ifdef ABSL_HAVE_STD_IS_TRIVIALLY_DESTRUCTIBLE
|
244
241
|
#error ABSL_HAVE_STD_IS_TRIVIALLY_DESTRUCTIBLE cannot be directly set
|
245
|
-
#elif defined(_LIBCPP_VERSION) || defined(_MSC_VER) || \
|
246
|
-
(defined(__clang__) && __clang_major__ >= 15) || \
|
247
|
-
(!defined(__clang__) && defined(__GLIBCXX__) && \
|
248
|
-
ABSL_INTERNAL_HAVE_MIN_GNUC_VERSION(4, 8))
|
249
242
|
#define ABSL_HAVE_STD_IS_TRIVIALLY_DESTRUCTIBLE 1
|
250
243
|
#endif
|
251
244
|
|
@@ -253,36 +246,26 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
253
246
|
//
|
254
247
|
// Checks whether `std::is_trivially_default_constructible<T>` and
|
255
248
|
// `std::is_trivially_copy_constructible<T>` are supported.
|
249
|
+
#ifdef ABSL_HAVE_STD_IS_TRIVIALLY_CONSTRUCTIBLE
|
250
|
+
#error ABSL_HAVE_STD_IS_TRIVIALLY_CONSTRUCTIBLE cannot be directly set
|
251
|
+
#else
|
252
|
+
#define ABSL_HAVE_STD_IS_TRIVIALLY_CONSTRUCTIBLE 1
|
253
|
+
#endif
|
256
254
|
|
257
255
|
// ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE
|
258
256
|
//
|
259
257
|
// Checks whether `std::is_trivially_copy_assignable<T>` is supported.
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
#if defined(ABSL_HAVE_STD_IS_TRIVIALLY_CONSTRUCTIBLE)
|
264
|
-
#error ABSL_HAVE_STD_IS_TRIVIALLY_CONSTRUCTIBLE cannot be directly set
|
265
|
-
#elif defined(ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE)
|
266
|
-
#error ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE cannot directly set
|
267
|
-
#elif (defined(__clang__) && defined(_LIBCPP_VERSION)) || \
|
268
|
-
(defined(__clang__) && __clang_major__ >= 15) || \
|
269
|
-
(!defined(__clang__) && \
|
270
|
-
((ABSL_INTERNAL_HAVE_MIN_GNUC_VERSION(7, 4) && defined(__GLIBCXX__)) || \
|
271
|
-
(ABSL_INTERNAL_HAVE_MIN_GNUC_VERSION(8, 2) && \
|
272
|
-
defined(_LIBCPP_VERSION)))) || \
|
273
|
-
(defined(_MSC_VER) && !defined(__NVCC__) && !defined(__clang__))
|
274
|
-
#define ABSL_HAVE_STD_IS_TRIVIALLY_CONSTRUCTIBLE 1
|
258
|
+
#ifdef ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE
|
259
|
+
#error ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE cannot be directly set
|
260
|
+
#else
|
275
261
|
#define ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE 1
|
276
262
|
#endif
|
277
263
|
|
278
264
|
// ABSL_HAVE_STD_IS_TRIVIALLY_COPYABLE
|
279
265
|
//
|
280
266
|
// Checks whether `std::is_trivially_copyable<T>` is supported.
|
281
|
-
|
282
|
-
// Notes: Clang 15+ with libc++ supports these features, GCC hasn't been tested.
|
283
|
-
#if defined(ABSL_HAVE_STD_IS_TRIVIALLY_COPYABLE)
|
267
|
+
#ifdef ABSL_HAVE_STD_IS_TRIVIALLY_COPYABLE
|
284
268
|
#error ABSL_HAVE_STD_IS_TRIVIALLY_COPYABLE cannot be directly set
|
285
|
-
#elif defined(__clang__) && (__clang_major__ >= 15)
|
286
269
|
#define ABSL_HAVE_STD_IS_TRIVIALLY_COPYABLE 1
|
287
270
|
#endif
|
288
271
|
|
@@ -429,7 +412,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
429
412
|
defined(__asmjs__) || defined(__wasm__) || defined(__Fuchsia__) || \
|
430
413
|
defined(__sun) || defined(__ASYLO__) || defined(__myriad2__) || \
|
431
414
|
defined(__HAIKU__) || defined(__OpenBSD__) || defined(__NetBSD__) || \
|
432
|
-
defined(__QNX__)
|
415
|
+
defined(__QNX__) || defined(__VXWORKS__) || defined(__hexagon__)
|
433
416
|
#define ABSL_HAVE_MMAP 1
|
434
417
|
#endif
|
435
418
|
|
@@ -441,7 +424,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
441
424
|
#error ABSL_HAVE_PTHREAD_GETSCHEDPARAM cannot be directly set
|
442
425
|
#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
|
443
426
|
defined(_AIX) || defined(__ros__) || defined(__OpenBSD__) || \
|
444
|
-
defined(__NetBSD__)
|
427
|
+
defined(__NetBSD__) || defined(__VXWORKS__)
|
445
428
|
#define ABSL_HAVE_PTHREAD_GETSCHEDPARAM 1
|
446
429
|
#endif
|
447
430
|
|
@@ -460,7 +443,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
460
443
|
// POSIX.1-2001.
|
461
444
|
#ifdef ABSL_HAVE_SCHED_YIELD
|
462
445
|
#error ABSL_HAVE_SCHED_YIELD cannot be directly set
|
463
|
-
#elif defined(__linux__) || defined(__ros__) || defined(__native_client__)
|
446
|
+
#elif defined(__linux__) || defined(__ros__) || defined(__native_client__) || \
|
447
|
+
defined(__VXWORKS__)
|
464
448
|
#define ABSL_HAVE_SCHED_YIELD 1
|
465
449
|
#endif
|
466
450
|
|
@@ -475,7 +459,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
475
459
|
// platforms.
|
476
460
|
#ifdef ABSL_HAVE_SEMAPHORE_H
|
477
461
|
#error ABSL_HAVE_SEMAPHORE_H cannot be directly set
|
478
|
-
#elif defined(__linux__) || defined(__ros__)
|
462
|
+
#elif defined(__linux__) || defined(__ros__) || defined(__VXWORKS__)
|
479
463
|
#define ABSL_HAVE_SEMAPHORE_H 1
|
480
464
|
#endif
|
481
465
|
|
@@ -503,6 +487,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
503
487
|
#elif defined(__Fuchsia__)
|
504
488
|
// Signals don't exist on fuchsia.
|
505
489
|
#elif defined(__native_client__)
|
490
|
+
// Signals don't exist on hexagon/QuRT
|
491
|
+
#elif defined(__hexagon__)
|
506
492
|
#else
|
507
493
|
// other standard libraries
|
508
494
|
#define ABSL_HAVE_ALARM 1
|
@@ -536,41 +522,29 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
536
522
|
#error "absl endian detection needs to be set up for your compiler"
|
537
523
|
#endif
|
538
524
|
|
539
|
-
// macOS < 10.13 and iOS <
|
540
|
-
//
|
541
|
-
//
|
542
|
-
//
|
525
|
+
// macOS < 10.13 and iOS < 12 don't support <any>, <optional>, or <variant>
|
526
|
+
// because the libc++ shared library shipped on the system doesn't have the
|
527
|
+
// requisite exported symbols. See
|
528
|
+
// https://github.com/abseil/abseil-cpp/issues/207 and
|
543
529
|
// https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes
|
544
530
|
//
|
545
531
|
// libc++ spells out the availability requirements in the file
|
546
532
|
// llvm-project/libcxx/include/__config via the #define
|
547
|
-
// _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS.
|
548
|
-
//
|
549
|
-
// Unfortunately, Apple initially mis-stated the requirements as macOS < 10.14
|
550
|
-
// and iOS < 12 in the libc++ headers. This was corrected by
|
533
|
+
// _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS. The set of versions has been
|
534
|
+
// modified a few times, via
|
551
535
|
// https://github.com/llvm/llvm-project/commit/7fb40e1569dd66292b647f4501b85517e9247953
|
552
|
-
//
|
553
|
-
//
|
554
|
-
//
|
555
|
-
#if defined(__APPLE__) &&
|
556
|
-
((
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ < 110000))) || \
|
565
|
-
(_LIBCPP_VERSION < 11000 && /* Pre-XCode 12.5: */ \
|
566
|
-
((defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \
|
567
|
-
__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 101400) || \
|
568
|
-
(defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && \
|
569
|
-
__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 120000) || \
|
570
|
-
(defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) && \
|
571
|
-
__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ < 50000) || \
|
572
|
-
(defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && \
|
573
|
-
__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ < 120000))))
|
536
|
+
// and
|
537
|
+
// https://github.com/llvm/llvm-project/commit/0bc451e7e137c4ccadcd3377250874f641ca514a
|
538
|
+
// The second has the actually correct versions, thus, is what we copy here.
|
539
|
+
#if defined(__APPLE__) && \
|
540
|
+
((defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \
|
541
|
+
__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 101300) || \
|
542
|
+
(defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && \
|
543
|
+
__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 120000) || \
|
544
|
+
(defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) && \
|
545
|
+
__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ < 50000) || \
|
546
|
+
(defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && \
|
547
|
+
__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ < 120000))
|
574
548
|
#define ABSL_INTERNAL_APPLE_CXX17_TYPES_UNAVAILABLE 1
|
575
549
|
#else
|
576
550
|
#define ABSL_INTERNAL_APPLE_CXX17_TYPES_UNAVAILABLE 0
|
@@ -578,73 +552,44 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
578
552
|
|
579
553
|
// ABSL_HAVE_STD_ANY
|
580
554
|
//
|
581
|
-
// Checks whether C++17 std::any is available
|
555
|
+
// Checks whether C++17 std::any is available.
|
582
556
|
#ifdef ABSL_HAVE_STD_ANY
|
583
557
|
#error "ABSL_HAVE_STD_ANY cannot be directly set."
|
584
|
-
#
|
585
|
-
|
586
|
-
#ifdef __has_include
|
587
|
-
#if __has_include(<any>) && defined(__cplusplus) && __cplusplus >= 201703L && \
|
558
|
+
#elif defined(ABSL_INTERNAL_CPLUSPLUS_LANG) && \
|
559
|
+
ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L && \
|
588
560
|
!ABSL_INTERNAL_APPLE_CXX17_TYPES_UNAVAILABLE
|
589
561
|
#define ABSL_HAVE_STD_ANY 1
|
590
562
|
#endif
|
591
|
-
#endif
|
592
563
|
|
593
564
|
// ABSL_HAVE_STD_OPTIONAL
|
594
565
|
//
|
595
566
|
// Checks whether C++17 std::optional is available.
|
596
567
|
#ifdef ABSL_HAVE_STD_OPTIONAL
|
597
568
|
#error "ABSL_HAVE_STD_OPTIONAL cannot be directly set."
|
598
|
-
#
|
599
|
-
|
600
|
-
|
601
|
-
#if __has_include(<optional>) && defined(__cplusplus) && \
|
602
|
-
__cplusplus >= 201703L && !ABSL_INTERNAL_APPLE_CXX17_TYPES_UNAVAILABLE
|
569
|
+
#elif defined(ABSL_INTERNAL_CPLUSPLUS_LANG) && \
|
570
|
+
ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L && \
|
571
|
+
!ABSL_INTERNAL_APPLE_CXX17_TYPES_UNAVAILABLE
|
603
572
|
#define ABSL_HAVE_STD_OPTIONAL 1
|
604
573
|
#endif
|
605
|
-
#endif
|
606
574
|
|
607
575
|
// ABSL_HAVE_STD_VARIANT
|
608
576
|
//
|
609
577
|
// Checks whether C++17 std::variant is available.
|
610
578
|
#ifdef ABSL_HAVE_STD_VARIANT
|
611
579
|
#error "ABSL_HAVE_STD_VARIANT cannot be directly set."
|
612
|
-
#
|
613
|
-
|
614
|
-
|
615
|
-
#if __has_include(<variant>) && defined(__cplusplus) && \
|
616
|
-
__cplusplus >= 201703L && !ABSL_INTERNAL_APPLE_CXX17_TYPES_UNAVAILABLE
|
580
|
+
#elif defined(ABSL_INTERNAL_CPLUSPLUS_LANG) && \
|
581
|
+
ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L && \
|
582
|
+
!ABSL_INTERNAL_APPLE_CXX17_TYPES_UNAVAILABLE
|
617
583
|
#define ABSL_HAVE_STD_VARIANT 1
|
618
584
|
#endif
|
619
|
-
#endif
|
620
585
|
|
621
586
|
// ABSL_HAVE_STD_STRING_VIEW
|
622
587
|
//
|
623
588
|
// Checks whether C++17 std::string_view is available.
|
624
589
|
#ifdef ABSL_HAVE_STD_STRING_VIEW
|
625
590
|
#error "ABSL_HAVE_STD_STRING_VIEW cannot be directly set."
|
626
|
-
#
|
627
|
-
|
628
|
-
#ifdef __has_include
|
629
|
-
#if __has_include(<string_view>) && defined(__cplusplus) && \
|
630
|
-
__cplusplus >= 201703L
|
631
|
-
#define ABSL_HAVE_STD_STRING_VIEW 1
|
632
|
-
#endif
|
633
|
-
#endif
|
634
|
-
|
635
|
-
// For MSVC, `__has_include` is supported in VS 2017 15.3, which is later than
|
636
|
-
// the support for <optional>, <any>, <string_view>, <variant>. So we use
|
637
|
-
// _MSC_VER to check whether we have VS 2017 RTM (when <optional>, <any>,
|
638
|
-
// <string_view>, <variant> is implemented) or higher. Also, `__cplusplus` is
|
639
|
-
// not correctly set by MSVC, so we use `_MSVC_LANG` to check the language
|
640
|
-
// version.
|
641
|
-
// TODO(zhangxy): fix tests before enabling aliasing for `std::any`.
|
642
|
-
#if defined(_MSC_VER) && _MSC_VER >= 1910 && \
|
643
|
-
((defined(_MSVC_LANG) && _MSVC_LANG > 201402) || \
|
644
|
-
(defined(__cplusplus) && __cplusplus > 201402))
|
645
|
-
// #define ABSL_HAVE_STD_ANY 1
|
646
|
-
#define ABSL_HAVE_STD_OPTIONAL 1
|
647
|
-
#define ABSL_HAVE_STD_VARIANT 1
|
591
|
+
#elif defined(ABSL_INTERNAL_CPLUSPLUS_LANG) && \
|
592
|
+
ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L
|
648
593
|
#define ABSL_HAVE_STD_STRING_VIEW 1
|
649
594
|
#endif
|
650
595
|
|
@@ -816,6 +761,20 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
816
761
|
#define ABSL_HAVE_HWADDRESS_SANITIZER 1
|
817
762
|
#endif
|
818
763
|
|
764
|
+
// ABSL_HAVE_DATAFLOW_SANITIZER
|
765
|
+
//
|
766
|
+
// Dataflow Sanitizer (or DFSAN) is a generalised dynamic data flow analysis.
|
767
|
+
#ifdef ABSL_HAVE_DATAFLOW_SANITIZER
|
768
|
+
#error "ABSL_HAVE_DATAFLOW_SANITIZER cannot be directly set."
|
769
|
+
#elif defined(DATAFLOW_SANITIZER)
|
770
|
+
// GCC provides no method for detecting the presence of the standalone
|
771
|
+
// DataFlowSanitizer (-fsanitize=dataflow), so GCC users of -fsanitize=dataflow
|
772
|
+
// should also use -DDATAFLOW_SANITIZER.
|
773
|
+
#define ABSL_HAVE_DATAFLOW_SANITIZER 1
|
774
|
+
#elif ABSL_HAVE_FEATURE(dataflow_sanitizer)
|
775
|
+
#define ABSL_HAVE_DATAFLOW_SANITIZER 1
|
776
|
+
#endif
|
777
|
+
|
819
778
|
// ABSL_HAVE_LEAK_SANITIZER
|
820
779
|
//
|
821
780
|
// LeakSanitizer (or lsan) is a detector of memory leaks.
|
@@ -830,7 +789,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
830
789
|
#ifdef ABSL_HAVE_LEAK_SANITIZER
|
831
790
|
#error "ABSL_HAVE_LEAK_SANITIZER cannot be directly set."
|
832
791
|
#elif defined(LEAK_SANITIZER)
|
833
|
-
// GCC provides no method for detecting the
|
792
|
+
// GCC provides no method for detecting the presence of the standalone
|
834
793
|
// LeakSanitizer (-fsanitize=leak), so GCC users of -fsanitize=leak should also
|
835
794
|
// use -DLEAK_SANITIZER.
|
836
795
|
#define ABSL_HAVE_LEAK_SANITIZER 1
|
@@ -878,7 +837,9 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
878
837
|
// RTTI support.
|
879
838
|
#ifdef ABSL_INTERNAL_HAS_RTTI
|
880
839
|
#error ABSL_INTERNAL_HAS_RTTI cannot be directly set
|
881
|
-
#elif
|
840
|
+
#elif (defined(__GNUC__) && defined(__GXX_RTTI)) || \
|
841
|
+
(defined(_MSC_VER) && defined(_CPPRTTI)) || \
|
842
|
+
(!defined(__GNUC__) && !defined(_MSC_VER))
|
882
843
|
#define ABSL_INTERNAL_HAS_RTTI 1
|
883
844
|
#endif // !defined(__GNUC__) || defined(__GXX_RTTI)
|
884
845
|
|
@@ -889,7 +850,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
889
850
|
#error ABSL_INTERNAL_HAVE_SSE cannot be directly set
|
890
851
|
#elif defined(__SSE__)
|
891
852
|
#define ABSL_INTERNAL_HAVE_SSE 1
|
892
|
-
#elif defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 1)
|
853
|
+
#elif (defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 1)) && \
|
854
|
+
!defined(_M_ARM64EC)
|
893
855
|
// MSVC only defines _M_IX86_FP for x86 32-bit code, and _M_IX86_FP >= 1
|
894
856
|
// indicates that at least SSE was targeted with the /arch:SSE option.
|
895
857
|
// All x86-64 processors support SSE, so support can be assumed.
|
@@ -904,7 +866,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
904
866
|
#error ABSL_INTERNAL_HAVE_SSE2 cannot be directly set
|
905
867
|
#elif defined(__SSE2__)
|
906
868
|
#define ABSL_INTERNAL_HAVE_SSE2 1
|
907
|
-
#elif defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 2)
|
869
|
+
#elif (defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 2)) && \
|
870
|
+
!defined(_M_ARM64EC)
|
908
871
|
// MSVC only defines _M_IX86_FP for x86 32-bit code, and _M_IX86_FP >= 2
|
909
872
|
// indicates that at least SSE2 was targeted with the /arch:SSE2 option.
|
910
873
|
// All x86-64 processors support SSE2, so support can be assumed.
|
@@ -951,4 +914,24 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
951
914
|
#define ABSL_HAVE_CONSTANT_EVALUATED 1
|
952
915
|
#endif
|
953
916
|
|
917
|
+
// ABSL_INTERNAL_EMSCRIPTEN_VERSION combines Emscripten's three version macros
|
918
|
+
// into an integer that can be compared against.
|
919
|
+
#ifdef ABSL_INTERNAL_EMSCRIPTEN_VERSION
|
920
|
+
#error ABSL_INTERNAL_EMSCRIPTEN_VERSION cannot be directly set
|
921
|
+
#endif
|
922
|
+
#ifdef __EMSCRIPTEN__
|
923
|
+
#include <emscripten/version.h>
|
924
|
+
#ifdef __EMSCRIPTEN_major__
|
925
|
+
#if __EMSCRIPTEN_minor__ >= 1000
|
926
|
+
#error __EMSCRIPTEN_minor__ is too big to fit in ABSL_INTERNAL_EMSCRIPTEN_VERSION
|
927
|
+
#endif
|
928
|
+
#if __EMSCRIPTEN_tiny__ >= 1000
|
929
|
+
#error __EMSCRIPTEN_tiny__ is too big to fit in ABSL_INTERNAL_EMSCRIPTEN_VERSION
|
930
|
+
#endif
|
931
|
+
#define ABSL_INTERNAL_EMSCRIPTEN_VERSION \
|
932
|
+
((__EMSCRIPTEN_major__)*1000000 + (__EMSCRIPTEN_minor__)*1000 + \
|
933
|
+
(__EMSCRIPTEN_tiny__))
|
934
|
+
#endif
|
935
|
+
#endif
|
936
|
+
|
954
937
|
#endif // ABSL_BASE_CONFIG_H_
|
@@ -46,6 +46,7 @@
|
|
46
46
|
#define ABSL_BASE_DYNAMIC_ANNOTATIONS_H_
|
47
47
|
|
48
48
|
#include <stddef.h>
|
49
|
+
#include <stdint.h>
|
49
50
|
|
50
51
|
#include "absl/base/attributes.h"
|
51
52
|
#include "absl/base/config.h"
|
@@ -53,6 +54,10 @@
|
|
53
54
|
#include "absl/base/macros.h"
|
54
55
|
#endif
|
55
56
|
|
57
|
+
#ifdef ABSL_HAVE_HWADDRESS_SANITIZER
|
58
|
+
#include <sanitizer/hwasan_interface.h>
|
59
|
+
#endif
|
60
|
+
|
56
61
|
// TODO(rogeeff): Remove after the backward compatibility period.
|
57
62
|
#include "absl/base/internal/dynamic_annotations.h" // IWYU pragma: export
|
58
63
|
|
@@ -111,7 +116,7 @@
|
|
111
116
|
|
112
117
|
#if ABSL_INTERNAL_RACE_ANNOTATIONS_ENABLED == 1
|
113
118
|
// Some of the symbols used in this section (e.g. AnnotateBenignRaceSized) are
|
114
|
-
// defined by the compiler-based
|
119
|
+
// defined by the compiler-based sanitizer implementation, not by the Abseil
|
115
120
|
// library. Therefore they do not use ABSL_INTERNAL_C_SYMBOL.
|
116
121
|
|
117
122
|
// -------------------------------------------------------------
|
@@ -456,6 +461,26 @@ ABSL_NAMESPACE_END
|
|
456
461
|
|
457
462
|
#endif // ABSL_HAVE_ADDRESS_SANITIZER
|
458
463
|
|
464
|
+
// -------------------------------------------------------------------------
|
465
|
+
// HWAddress sanitizer annotations
|
466
|
+
|
467
|
+
#ifdef __cplusplus
|
468
|
+
namespace absl {
|
469
|
+
#ifdef ABSL_HAVE_HWADDRESS_SANITIZER
|
470
|
+
// Under HWASAN changes the tag of the pointer.
|
471
|
+
template <typename T>
|
472
|
+
T* HwasanTagPointer(T* ptr, uintptr_t tag) {
|
473
|
+
return reinterpret_cast<T*>(__hwasan_tag_pointer(ptr, tag));
|
474
|
+
}
|
475
|
+
#else
|
476
|
+
template <typename T>
|
477
|
+
T* HwasanTagPointer(T* ptr, uintptr_t) {
|
478
|
+
return ptr;
|
479
|
+
}
|
480
|
+
#endif
|
481
|
+
} // namespace absl
|
482
|
+
#endif
|
483
|
+
|
459
484
|
// -------------------------------------------------------------------------
|
460
485
|
// Undefine the macros intended only for this file.
|
461
486
|
|
@@ -72,7 +72,7 @@ namespace base_internal {
|
|
72
72
|
// Platform specific logic extracted from
|
73
73
|
// https://chromium.googlesource.com/linux-syscall-support/+/master/linux_syscall_support.h
|
74
74
|
inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
|
75
|
-
|
75
|
+
off_t offset) noexcept {
|
76
76
|
#if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) || \
|
77
77
|
defined(__m68k__) || defined(__sh__) || \
|
78
78
|
(defined(__hppa__) && !defined(__LP64__)) || \
|
@@ -102,7 +102,7 @@ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
|
|
102
102
|
#else
|
103
103
|
return reinterpret_cast<void*>(
|
104
104
|
syscall(SYS_mmap2, start, length, prot, flags, fd,
|
105
|
-
static_cast<
|
105
|
+
static_cast<unsigned long>(offset / pagesize))); // NOLINT
|
106
106
|
#endif
|
107
107
|
#elif defined(__s390x__)
|
108
108
|
// On s390x, mmap() arguments are passed in memory.
|