grpc 1.73.0 → 1.74.0
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 +38 -17
- data/include/grpc/create_channel_from_endpoint.h +54 -0
- data/include/grpc/credentials.h +11 -5
- data/include/grpc/event_engine/event_engine.h +74 -17
- data/include/grpc/grpc_posix.h +20 -1
- data/include/grpc/impl/channel_arg_names.h +2 -4
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/support/json.h +24 -0
- data/src/core/call/interception_chain.h +7 -11
- data/src/core/channelz/channel_trace.cc +213 -115
- data/src/core/channelz/channel_trace.h +380 -86
- data/src/core/channelz/channelz.cc +270 -181
- data/src/core/channelz/channelz.h +168 -55
- data/src/core/channelz/channelz_registry.cc +2 -1
- data/src/core/channelz/channelz_registry.h +24 -0
- data/src/core/channelz/property_list.cc +357 -0
- data/src/core/channelz/property_list.h +202 -0
- data/src/core/channelz/ztrace_collector.h +3 -2
- data/src/core/client_channel/backup_poller.cc +17 -2
- data/src/core/client_channel/client_channel.cc +17 -28
- data/src/core/client_channel/client_channel_filter.cc +19 -29
- data/src/core/client_channel/config_selector.h +8 -2
- data/src/core/client_channel/dynamic_filters.cc +5 -6
- data/src/core/client_channel/dynamic_filters.h +1 -1
- data/src/core/client_channel/global_subchannel_pool.cc +4 -1
- data/src/core/client_channel/retry_filter.cc +21 -27
- data/src/core/client_channel/retry_filter.h +10 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
- data/src/core/client_channel/retry_filter_legacy_call_data.h +1 -1
- data/src/core/client_channel/retry_interceptor.cc +30 -44
- data/src/core/client_channel/retry_interceptor.h +18 -17
- data/src/core/client_channel/retry_throttle.cc +46 -61
- data/src/core/client_channel/retry_throttle.h +17 -39
- data/src/core/client_channel/subchannel.cc +43 -19
- data/src/core/client_channel/subchannel.h +8 -0
- data/src/core/config/config_vars.cc +2 -0
- data/src/core/config/core_configuration.cc +1 -0
- data/src/core/config/core_configuration.h +11 -0
- data/src/core/credentials/call/call_creds_registry.h +125 -0
- data/src/core/credentials/call/call_creds_registry_init.cc +91 -0
- data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +6 -48
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +86 -0
- data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +74 -0
- data/src/core/credentials/call/jwt_util.cc +70 -0
- data/src/core/credentials/call/jwt_util.h +32 -0
- data/src/core/credentials/transport/channel_creds_registry_init.cc +1 -1
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +72 -4
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +0 -1
- data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -0
- data/src/core/credentials/transport/xds/xds_credentials.cc +0 -3
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +8 -8
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +16 -16
- data/src/core/ext/filters/http/client_authority_filter.cc +2 -4
- data/src/core/ext/filters/http/message_compress/compression_filter.h +25 -22
- data/src/core/ext/filters/http/server/http_server_filter.h +12 -11
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +120 -35
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +162 -115
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -3
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +1239 -3514
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +1008 -1486
- data/src/core/ext/transport/chttp2/transport/flow_control.h +22 -17
- data/src/core/ext/transport/chttp2/transport/frame.cc +10 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +299 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +11 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +12 -1
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1017 -0
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +593 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +19 -22
- data/{third_party/abseil-cpp/absl/strings/cord_buffer.cc → src/core/ext/transport/chttp2/transport/http2_stats_collector.cc} +14 -14
- data/src/core/ext/transport/chttp2/transport/http2_stats_collector.h +33 -0
- data/src/core/ext/transport/chttp2/transport/http2_status.h +6 -1
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +43 -0
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +65 -0
- data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +0 -29
- data/src/core/ext/transport/chttp2/transport/internal.h +18 -8
- data/src/core/ext/transport/chttp2/transport/keepalive.cc +105 -0
- data/src/core/ext/transport/chttp2/transport/keepalive.h +138 -0
- data/src/core/ext/transport/chttp2/transport/message_assembler.h +185 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +19 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +151 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +180 -0
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +5 -9
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +11 -0
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +39 -1
- data/src/core/ext/transport/chttp2/transport/transport_common.cc +19 -0
- data/src/core/ext/transport/chttp2/transport/transport_common.h +27 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +37 -11
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +571 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +120 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +1272 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +312 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +50 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +984 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +226 -0
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +44 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +175 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +82 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +135 -0
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +67 -0
- data/src/core/filter/auth/auth_filters.h +0 -25
- data/src/core/filter/auth/client_auth_filter.cc +0 -118
- data/src/core/filter/filter_args.h +9 -23
- data/src/core/handshaker/handshaker.cc +23 -14
- data/src/core/handshaker/handshaker.h +3 -0
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +3 -1
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +6 -5
- data/src/core/handshaker/security/secure_endpoint.cc +70 -25
- data/src/core/handshaker/security/security_handshaker.cc +4 -1
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +7 -1
- data/src/core/lib/channel/channel_args.cc +15 -0
- data/src/core/lib/channel/channel_args.h +3 -0
- data/src/core/lib/channel/channel_stack.cc +22 -23
- data/src/core/lib/channel/channel_stack.h +9 -7
- data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
- data/src/core/lib/channel/channel_stack_builder_impl.h +2 -7
- data/src/core/lib/channel/promise_based_filter.h +5 -5
- data/src/core/lib/debug/trace_impl.h +0 -1
- data/src/core/lib/event_engine/ares_resolver.cc +165 -46
- data/src/core/lib/event_engine/ares_resolver.h +48 -2
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -4
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +2 -6
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.cc +40 -0
- data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h +60 -0
- data/src/core/lib/event_engine/event_engine.cc +7 -0
- data/src/core/lib/event_engine/extensions/channelz.h +10 -6
- data/src/core/lib/event_engine/grpc_polled_fd.h +5 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +130 -162
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +11 -15
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +75 -117
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +7 -9
- data/src/core/lib/event_engine/posix_engine/event_poller.h +18 -15
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +0 -18
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +124 -0
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +243 -0
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +29 -19
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +6 -2
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +6 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +145 -92
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +333 -116
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +61 -18
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +45 -37
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +6 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +32 -142
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +6 -5
- data/src/core/lib/event_engine/posix_engine/posix_interface.h +211 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +1083 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +281 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc +154 -0
- data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +174 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -719
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +10 -170
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +33 -22
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +13 -11
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +117 -151
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -94
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +26 -25
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +36 -62
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +6 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +7 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +12 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -1
- data/src/core/lib/event_engine/shim.cc +9 -0
- data/src/core/lib/event_engine/shim.h +3 -0
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +7 -3
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +0 -17
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +4 -2
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -2
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +4 -0
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +4 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.h +2 -6
- data/src/core/lib/event_engine/windows/windows_engine.cc +0 -1
- data/src/core/lib/event_engine/windows/windows_engine.h +1 -3
- data/src/core/lib/event_engine/windows/windows_listener.cc +14 -2
- data/src/core/lib/experiments/experiments.cc +45 -93
- data/src/core/lib/experiments/experiments.h +21 -51
- data/src/core/lib/iomgr/endpoint.cc +4 -3
- data/src/core/lib/iomgr/endpoint.h +7 -4
- data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -2
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +7 -2
- data/src/core/lib/iomgr/ev_poll_posix.cc +7 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +4 -6
- data/src/core/lib/iomgr/tcp_posix.cc +12 -6
- data/src/core/lib/iomgr/tcp_windows.cc +3 -2
- data/src/core/lib/promise/activity.h +1 -0
- data/src/core/lib/promise/arena_promise.h +23 -7
- data/src/core/lib/promise/detail/promise_factory.h +10 -0
- data/src/core/lib/promise/detail/promise_like.h +118 -11
- data/src/core/lib/promise/detail/promise_variant.h +50 -0
- data/src/core/lib/promise/detail/seq_state.h +687 -548
- data/src/core/lib/promise/if.h +20 -0
- data/src/core/lib/promise/inter_activity_latch.h +147 -0
- data/src/core/lib/promise/inter_activity_mutex.h +547 -0
- data/src/core/lib/promise/loop.h +65 -3
- data/src/core/lib/promise/map.h +24 -0
- data/src/core/lib/promise/match_promise.h +103 -0
- data/src/core/lib/promise/mpsc.cc +425 -0
- data/src/core/lib/promise/mpsc.h +490 -0
- data/src/core/lib/promise/party.cc +50 -1
- data/src/core/lib/promise/party.h +66 -1
- data/src/core/lib/promise/race.h +31 -0
- data/src/core/lib/promise/seq.h +4 -1
- data/src/core/lib/promise/status_flag.h +7 -0
- data/src/core/lib/promise/try_seq.h +4 -1
- data/src/core/lib/promise/wait_set.cc +28 -0
- data/src/core/lib/promise/wait_set.h +86 -0
- data/src/core/lib/resource_quota/arena.h +19 -0
- data/src/core/lib/slice/slice.h +5 -0
- data/src/core/lib/surface/channel_create.cc +88 -13
- data/src/core/lib/surface/channel_create.h +4 -0
- data/src/core/lib/surface/channel_init.cc +164 -47
- data/src/core/lib/surface/channel_init.h +64 -1
- data/src/core/lib/surface/filter_stack_call.cc +18 -9
- data/src/core/lib/surface/init.cc +6 -15
- data/src/core/lib/surface/legacy_channel.cc +3 -5
- data/src/core/lib/surface/legacy_channel.h +3 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.cc +110 -0
- data/src/core/lib/transport/promise_endpoint.h +307 -0
- data/src/core/load_balancing/child_policy_handler.cc +2 -4
- data/src/core/load_balancing/delegating_helper.h +2 -3
- data/src/core/load_balancing/health_check_client.cc +1 -5
- data/src/core/load_balancing/lb_policy.h +1 -3
- data/src/core/load_balancing/oob_backend_metric.cc +1 -5
- data/src/core/load_balancing/pick_first/pick_first.cc +3 -0
- data/src/core/load_balancing/xds/cds.cc +10 -1
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/core/resolver/xds/xds_config.cc +6 -3
- data/src/core/resolver/xds/xds_config.h +9 -4
- data/src/core/resolver/xds/xds_dependency_manager.cc +21 -6
- data/src/core/resolver/xds/xds_dependency_manager.h +2 -1
- data/src/core/resolver/xds/xds_resolver.cc +31 -11
- data/src/core/server/server.cc +83 -12
- data/src/core/server/server.h +21 -2
- data/src/core/server/xds_server_config_fetcher.cc +63 -25
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/telemetry/context_list_entry.cc +38 -0
- data/src/core/telemetry/context_list_entry.h +42 -12
- data/src/core/telemetry/stats_data.cc +233 -207
- data/src/core/telemetry/stats_data.h +250 -153
- data/src/core/telemetry/tcp_tracer.h +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +11 -3
- data/src/core/tsi/fake_transport_security.cc +17 -0
- data/src/core/tsi/ssl_transport_security.cc +2 -0
- data/src/core/tsi/transport_security_grpc.cc +8 -0
- data/src/core/tsi/transport_security_grpc.h +15 -0
- data/src/core/util/backoff.cc +1 -5
- data/src/core/util/backoff.h +1 -0
- data/src/core/util/down_cast.h +1 -1
- data/src/core/util/function_signature.h +15 -1
- data/src/core/util/http_client/httpcli.cc +12 -5
- data/src/core/util/http_client/httpcli.h +4 -1
- data/src/core/util/latent_see.h +8 -5
- data/src/core/util/log.cc +4 -0
- data/src/core/util/memory_usage.h +268 -0
- data/src/core/util/per_cpu.cc +2 -0
- data/src/core/util/per_cpu.h +7 -0
- data/src/core/util/shared_bit_gen.h +20 -0
- data/src/core/util/single_set_ptr.h +2 -2
- data/src/core/util/upb_utils.h +42 -0
- data/src/core/util/uri.cc +3 -2
- data/src/core/util/useful.h +53 -2
- data/src/core/util/wait_for_single_owner.cc +31 -0
- data/src/core/util/wait_for_single_owner.h +24 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +5 -0
- data/src/core/xds/grpc/xds_client_grpc.cc +6 -2
- data/src/core/xds/grpc/xds_common_types_parser.cc +138 -50
- data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
- data/src/core/xds/grpc/xds_http_filter.h +7 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +22 -0
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -0
- data/src/core/xds/grpc/xds_route_config_parser.cc +15 -38
- data/src/core/xds/grpc/xds_server_grpc.cc +63 -13
- data/src/core/xds/grpc/xds_server_grpc.h +10 -2
- data/src/core/xds/grpc/xds_server_grpc_interface.h +4 -0
- data/src/core/xds/grpc/xds_transport_grpc.cc +18 -0
- data/src/core/xds/xds_client/xds_bootstrap.h +2 -0
- data/src/core/xds/xds_client/xds_client.cc +26 -5
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_call.c +1 -8
- data/src/ruby/ext/grpc/rb_channel.c +72 -568
- data/src/ruby/ext/grpc/rb_channel.h +0 -3
- data/src/ruby/ext/grpc/rb_completion_queue.c +26 -14
- data/src/ruby/ext/grpc/rb_completion_queue.h +1 -7
- data/src/ruby/ext/grpc/rb_grpc.c +9 -5
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
- data/src/ruby/ext/grpc/rb_loader.c +0 -4
- data/src/ruby/ext/grpc/rb_server.c +31 -50
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/core_spec.rb +22 -0
- data/src/ruby/spec/generic/active_call_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +2 -19
- data/third_party/abseil-cpp/absl/base/attributes.h +76 -7
- data/third_party/abseil-cpp/absl/base/call_once.h +11 -12
- data/third_party/abseil-cpp/absl/base/config.h +20 -129
- data/third_party/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
- data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
- data/third_party/abseil-cpp/absl/base/internal/endian.h +34 -38
- data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -5
- data/third_party/abseil-cpp/absl/base/internal/{nullability_impl.h → nullability_deprecated.h} +45 -8
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +0 -9
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -13
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
- data/third_party/abseil-cpp/absl/base/no_destructor.h +11 -32
- data/third_party/abseil-cpp/absl/base/nullability.h +84 -72
- data/third_party/abseil-cpp/absl/base/options.h +3 -80
- data/third_party/abseil-cpp/absl/base/policy_checks.h +7 -7
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +1 -3
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
- data/third_party/abseil-cpp/absl/container/btree_map.h +4 -2
- data/third_party/abseil-cpp/absl/container/btree_set.h +4 -2
- data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -14
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -1
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +8 -5
- data/third_party/abseil-cpp/absl/container/internal/btree.h +132 -29
- data/third_party/abseil-cpp/absl/container/internal/btree_container.h +175 -71
- data/third_party/abseil-cpp/absl/container/internal/common.h +43 -0
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +9 -10
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +1 -8
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +20 -4
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +31 -12
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
- data/third_party/abseil-cpp/absl/container/internal/layout.h +26 -42
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +1354 -183
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +881 -1424
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +80 -0
- data/third_party/abseil-cpp/absl/crc/crc32c.cc +0 -4
- data/third_party/abseil-cpp/absl/crc/crc32c.h +7 -5
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +45 -74
- data/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +144 -27
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +73 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +19 -9
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/flag.h +4 -3
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +7 -6
- data/third_party/abseil-cpp/absl/flags/internal/registry.h +4 -3
- data/third_party/abseil-cpp/absl/flags/reflection.cc +2 -3
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +8 -10
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -9
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +110 -226
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
- data/third_party/abseil-cpp/absl/hash/hash.h +18 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -5
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -61
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +25 -68
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +2 -6
- data/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
- data/third_party/abseil-cpp/absl/log/check.h +2 -1
- data/third_party/abseil-cpp/absl/log/globals.h +4 -5
- data/third_party/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +22 -22
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +65 -62
- data/third_party/abseil-cpp/absl/log/internal/conditions.cc +5 -3
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +7 -2
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +85 -43
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +84 -59
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -0
- data/third_party/abseil-cpp/absl/log/internal/proto.cc +3 -2
- data/third_party/abseil-cpp/absl/log/internal/proto.h +3 -3
- data/third_party/abseil-cpp/absl/log/internal/strip.h +4 -12
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
- data/third_party/abseil-cpp/absl/log/internal/voidify.h +10 -4
- data/third_party/abseil-cpp/absl/log/log.h +48 -35
- data/third_party/abseil-cpp/absl/log/log_sink_registry.h +2 -2
- data/third_party/abseil-cpp/absl/meta/type_traits.h +46 -175
- data/third_party/abseil-cpp/absl/numeric/bits.h +68 -2
- data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -52
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +7 -3
- data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
- data/third_party/abseil-cpp/absl/random/distributions.h +6 -8
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +22 -90
- data/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +5 -5
- data/third_party/abseil-cpp/absl/random/random.h +88 -53
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +6 -2
- data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +3 -4
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -3
- data/third_party/abseil-cpp/absl/status/status.cc +4 -8
- data/third_party/abseil-cpp/absl/status/status.h +8 -8
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.cc +2 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +6 -6
- data/third_party/abseil-cpp/absl/strings/ascii.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/ascii.h +18 -18
- data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -22
- data/third_party/abseil-cpp/absl/strings/charconv.h +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +54 -58
- data/third_party/abseil-cpp/absl/strings/cord.h +94 -83
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +3 -3
- data/third_party/abseil-cpp/absl/strings/escaping.cc +130 -149
- data/third_party/abseil-cpp/absl/strings/escaping.h +9 -10
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +6 -8
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
- data/third_party/abseil-cpp/absl/strings/internal/utf8.h +15 -1
- data/third_party/abseil-cpp/absl/strings/numbers.cc +53 -32
- data/third_party/abseil-cpp/absl/strings/numbers.h +87 -58
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +6 -7
- data/third_party/abseil-cpp/absl/strings/str_cat.h +32 -32
- data/third_party/abseil-cpp/absl/strings/str_format.h +18 -18
- data/third_party/abseil-cpp/absl/strings/str_replace.cc +3 -3
- data/third_party/abseil-cpp/absl/strings/str_replace.h +6 -6
- data/third_party/abseil-cpp/absl/strings/string_view.cc +4 -9
- data/third_party/abseil-cpp/absl/strings/string_view.h +27 -32
- data/third_party/abseil-cpp/absl/strings/strip.h +4 -4
- data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -4
- data/third_party/abseil-cpp/absl/strings/substitute.h +66 -64
- data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
- data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +97 -69
- data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +12 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
- data/third_party/abseil-cpp/absl/time/time.h +20 -15
- data/third_party/abseil-cpp/absl/types/optional.h +7 -747
- data/third_party/abseil-cpp/absl/types/span.h +13 -11
- data/third_party/abseil-cpp/absl/types/variant.h +5 -784
- data/third_party/abseil-cpp/absl/utility/utility.h +10 -185
- metadata +72 -20
- data/src/core/lib/event_engine/forkable.cc +0 -105
- data/src/core/lib/event_engine/forkable.h +0 -67
- data/src/core/lib/iomgr/python_util.h +0 -46
- data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +0 -241
- data/third_party/abseil-cpp/absl/log/log_entry.cc +0 -41
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
- data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +0 -78
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +0 -82
- data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -352
- data/third_party/abseil-cpp/absl/types/internal/variant.h +0 -1622
@@ -117,7 +117,7 @@
|
|
117
117
|
//
|
118
118
|
// LTS releases can be obtained from
|
119
119
|
// https://github.com/abseil/abseil-cpp/releases.
|
120
|
-
#define ABSL_LTS_RELEASE_VERSION
|
120
|
+
#define ABSL_LTS_RELEASE_VERSION 20250512
|
121
121
|
#define ABSL_LTS_RELEASE_PATCH_LEVEL 1
|
122
122
|
|
123
123
|
// Helper macro to convert a CPP variable to a string literal.
|
@@ -274,15 +274,12 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
274
274
|
#define ABSL_HAVE_STD_IS_TRIVIALLY_COPYABLE 1
|
275
275
|
#endif
|
276
276
|
|
277
|
-
|
278
277
|
// ABSL_HAVE_THREAD_LOCAL
|
279
278
|
//
|
280
|
-
//
|
281
|
-
// Checks whether C++11's `thread_local` storage duration specifier is
|
282
|
-
// supported.
|
279
|
+
// Checks whether the `thread_local` storage duration specifier is supported.
|
283
280
|
#ifdef ABSL_HAVE_THREAD_LOCAL
|
284
281
|
#error ABSL_HAVE_THREAD_LOCAL cannot be directly set
|
285
|
-
#
|
282
|
+
#elif !defined(__XTENSA__)
|
286
283
|
#define ABSL_HAVE_THREAD_LOCAL 1
|
287
284
|
#endif
|
288
285
|
|
@@ -469,6 +466,9 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
469
466
|
//
|
470
467
|
// Checks the endianness of the platform.
|
471
468
|
//
|
469
|
+
// Prefer using `std::endian` in C++20, or `absl::endian` from
|
470
|
+
// absl/numeric/bits.h prior to C++20.
|
471
|
+
//
|
472
472
|
// Notes: uses the built in endian macros provided by GCC (since 4.6) and
|
473
473
|
// Clang (since 3.2); see
|
474
474
|
// https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html.
|
@@ -520,54 +520,22 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
520
520
|
#define ABSL_INTERNAL_APPLE_CXX17_TYPES_UNAVAILABLE 0
|
521
521
|
#endif
|
522
522
|
|
523
|
-
//
|
524
|
-
//
|
525
|
-
// Checks whether C++17 std::any is available.
|
526
|
-
#ifdef ABSL_HAVE_STD_ANY
|
527
|
-
#error "ABSL_HAVE_STD_ANY cannot be directly set."
|
528
|
-
#elif defined(__cpp_lib_any) && __cpp_lib_any >= 201606L
|
529
|
-
#define ABSL_HAVE_STD_ANY 1
|
530
|
-
#elif defined(ABSL_INTERNAL_CPLUSPLUS_LANG) && \
|
531
|
-
ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L && \
|
532
|
-
!ABSL_INTERNAL_APPLE_CXX17_TYPES_UNAVAILABLE
|
523
|
+
// Deprecated macros for polyfill detection.
|
533
524
|
#define ABSL_HAVE_STD_ANY 1
|
534
|
-
#
|
535
|
-
|
536
|
-
// ABSL_HAVE_STD_OPTIONAL
|
537
|
-
//
|
538
|
-
// Checks whether C++17 std::optional is available.
|
539
|
-
#ifdef ABSL_HAVE_STD_OPTIONAL
|
540
|
-
#error "ABSL_HAVE_STD_OPTIONAL cannot be directly set."
|
541
|
-
#elif defined(__cpp_lib_optional) && __cpp_lib_optional >= 202106L
|
542
|
-
#define ABSL_HAVE_STD_OPTIONAL 1
|
543
|
-
#elif defined(ABSL_INTERNAL_CPLUSPLUS_LANG) && \
|
544
|
-
ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L && \
|
545
|
-
!ABSL_INTERNAL_APPLE_CXX17_TYPES_UNAVAILABLE
|
525
|
+
#define ABSL_USES_STD_ANY 1
|
546
526
|
#define ABSL_HAVE_STD_OPTIONAL 1
|
547
|
-
#
|
548
|
-
|
549
|
-
// ABSL_HAVE_STD_VARIANT
|
550
|
-
//
|
551
|
-
// Checks whether C++17 std::variant is available.
|
552
|
-
#ifdef ABSL_HAVE_STD_VARIANT
|
553
|
-
#error "ABSL_HAVE_STD_VARIANT cannot be directly set."
|
554
|
-
#elif defined(__cpp_lib_variant) && __cpp_lib_variant >= 201606L
|
555
|
-
#define ABSL_HAVE_STD_VARIANT 1
|
556
|
-
#elif defined(ABSL_INTERNAL_CPLUSPLUS_LANG) && \
|
557
|
-
ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L && \
|
558
|
-
!ABSL_INTERNAL_APPLE_CXX17_TYPES_UNAVAILABLE
|
527
|
+
#define ABSL_USES_STD_OPTIONAL 1
|
559
528
|
#define ABSL_HAVE_STD_VARIANT 1
|
560
|
-
#
|
529
|
+
#define ABSL_USES_STD_VARIANT 1
|
561
530
|
|
562
531
|
// ABSL_HAVE_STD_STRING_VIEW
|
563
532
|
//
|
564
|
-
//
|
533
|
+
// Deprecated: always defined to 1.
|
534
|
+
// std::string_view was added in C++17, which means all versions of C++
|
535
|
+
// supported by Abseil have it.
|
565
536
|
#ifdef ABSL_HAVE_STD_STRING_VIEW
|
566
537
|
#error "ABSL_HAVE_STD_STRING_VIEW cannot be directly set."
|
567
|
-
#
|
568
|
-
#define ABSL_HAVE_STD_STRING_VIEW 1
|
569
|
-
#elif defined(ABSL_INTERNAL_CPLUSPLUS_LANG) && \
|
570
|
-
ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L
|
538
|
+
#else
|
571
539
|
#define ABSL_HAVE_STD_STRING_VIEW 1
|
572
540
|
#endif
|
573
541
|
|
@@ -587,63 +555,15 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
587
555
|
#define ABSL_HAVE_STD_ORDERING 1
|
588
556
|
#endif
|
589
557
|
|
590
|
-
// ABSL_USES_STD_ANY
|
591
|
-
//
|
592
|
-
// Indicates whether absl::any is an alias for std::any.
|
593
|
-
#if !defined(ABSL_OPTION_USE_STD_ANY)
|
594
|
-
#error options.h is misconfigured.
|
595
|
-
#elif ABSL_OPTION_USE_STD_ANY == 0 || \
|
596
|
-
(ABSL_OPTION_USE_STD_ANY == 2 && !defined(ABSL_HAVE_STD_ANY))
|
597
|
-
#undef ABSL_USES_STD_ANY
|
598
|
-
#elif ABSL_OPTION_USE_STD_ANY == 1 || \
|
599
|
-
(ABSL_OPTION_USE_STD_ANY == 2 && defined(ABSL_HAVE_STD_ANY))
|
600
|
-
#define ABSL_USES_STD_ANY 1
|
601
|
-
#else
|
602
|
-
#error options.h is misconfigured.
|
603
|
-
#endif
|
604
|
-
|
605
|
-
// ABSL_USES_STD_OPTIONAL
|
606
|
-
//
|
607
|
-
// Indicates whether absl::optional is an alias for std::optional.
|
608
|
-
#if !defined(ABSL_OPTION_USE_STD_OPTIONAL)
|
609
|
-
#error options.h is misconfigured.
|
610
|
-
#elif ABSL_OPTION_USE_STD_OPTIONAL == 0 || \
|
611
|
-
(ABSL_OPTION_USE_STD_OPTIONAL == 2 && !defined(ABSL_HAVE_STD_OPTIONAL))
|
612
|
-
#undef ABSL_USES_STD_OPTIONAL
|
613
|
-
#elif ABSL_OPTION_USE_STD_OPTIONAL == 1 || \
|
614
|
-
(ABSL_OPTION_USE_STD_OPTIONAL == 2 && defined(ABSL_HAVE_STD_OPTIONAL))
|
615
|
-
#define ABSL_USES_STD_OPTIONAL 1
|
616
|
-
#else
|
617
|
-
#error options.h is misconfigured.
|
618
|
-
#endif
|
619
|
-
|
620
|
-
// ABSL_USES_STD_VARIANT
|
621
|
-
//
|
622
|
-
// Indicates whether absl::variant is an alias for std::variant.
|
623
|
-
#if !defined(ABSL_OPTION_USE_STD_VARIANT)
|
624
|
-
#error options.h is misconfigured.
|
625
|
-
#elif ABSL_OPTION_USE_STD_VARIANT == 0 || \
|
626
|
-
(ABSL_OPTION_USE_STD_VARIANT == 2 && !defined(ABSL_HAVE_STD_VARIANT))
|
627
|
-
#undef ABSL_USES_STD_VARIANT
|
628
|
-
#elif ABSL_OPTION_USE_STD_VARIANT == 1 || \
|
629
|
-
(ABSL_OPTION_USE_STD_VARIANT == 2 && defined(ABSL_HAVE_STD_VARIANT))
|
630
|
-
#define ABSL_USES_STD_VARIANT 1
|
631
|
-
#else
|
632
|
-
#error options.h is misconfigured.
|
633
|
-
#endif
|
634
|
-
|
635
558
|
// ABSL_USES_STD_STRING_VIEW
|
636
559
|
//
|
637
560
|
// Indicates whether absl::string_view is an alias for std::string_view.
|
638
561
|
#if !defined(ABSL_OPTION_USE_STD_STRING_VIEW)
|
639
562
|
#error options.h is misconfigured.
|
640
|
-
#elif ABSL_OPTION_USE_STD_STRING_VIEW == 0
|
641
|
-
(ABSL_OPTION_USE_STD_STRING_VIEW == 2 && \
|
642
|
-
!defined(ABSL_HAVE_STD_STRING_VIEW))
|
563
|
+
#elif ABSL_OPTION_USE_STD_STRING_VIEW == 0
|
643
564
|
#undef ABSL_USES_STD_STRING_VIEW
|
644
565
|
#elif ABSL_OPTION_USE_STD_STRING_VIEW == 1 || \
|
645
|
-
|
646
|
-
defined(ABSL_HAVE_STD_STRING_VIEW))
|
566
|
+
ABSL_OPTION_USE_STD_STRING_VIEW == 2
|
647
567
|
#define ABSL_USES_STD_STRING_VIEW 1
|
648
568
|
#else
|
649
569
|
#error options.h is misconfigured.
|
@@ -665,14 +585,6 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
665
585
|
#error options.h is misconfigured.
|
666
586
|
#endif
|
667
587
|
|
668
|
-
// In debug mode, MSVC 2017's std::variant throws a EXCEPTION_ACCESS_VIOLATION
|
669
|
-
// SEH exception from emplace for variant<SomeStruct> when constructing the
|
670
|
-
// struct can throw. This defeats some of variant_test and
|
671
|
-
// variant_exception_safety_test.
|
672
|
-
#if defined(_MSC_VER) && _MSC_VER >= 1700 && defined(_DEBUG)
|
673
|
-
#define ABSL_INTERNAL_MSVC_2017_DBG_MODE
|
674
|
-
#endif
|
675
|
-
|
676
588
|
// ABSL_INTERNAL_MANGLED_NS
|
677
589
|
// ABSL_INTERNAL_MANGLED_BACKREFERENCE
|
678
590
|
//
|
@@ -813,36 +725,15 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
|
|
813
725
|
|
814
726
|
// ABSL_HAVE_CLASS_TEMPLATE_ARGUMENT_DEDUCTION
|
815
727
|
//
|
816
|
-
//
|
728
|
+
// Deprecated: always defined to 1.
|
729
|
+
// Class template argument deduction is a language feature added in C++17,
|
730
|
+
// which means all versions of C++ supported by Abseil have it.
|
817
731
|
#ifdef ABSL_HAVE_CLASS_TEMPLATE_ARGUMENT_DEDUCTION
|
818
732
|
#error "ABSL_HAVE_CLASS_TEMPLATE_ARGUMENT_DEDUCTION cannot be directly set."
|
819
|
-
#
|
733
|
+
#else
|
820
734
|
#define ABSL_HAVE_CLASS_TEMPLATE_ARGUMENT_DEDUCTION 1
|
821
735
|
#endif
|
822
736
|
|
823
|
-
// ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
824
|
-
//
|
825
|
-
// Prior to C++17, static constexpr variables defined in classes required a
|
826
|
-
// separate definition outside of the class body, for example:
|
827
|
-
//
|
828
|
-
// class Foo {
|
829
|
-
// static constexpr int kBar = 0;
|
830
|
-
// };
|
831
|
-
// constexpr int Foo::kBar;
|
832
|
-
//
|
833
|
-
// In C++17, these variables defined in classes are considered inline variables,
|
834
|
-
// and the extra declaration is redundant. Since some compilers warn on the
|
835
|
-
// extra declarations, ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL can be used
|
836
|
-
// conditionally ignore them:
|
837
|
-
//
|
838
|
-
// #ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
839
|
-
// constexpr int Foo::kBar;
|
840
|
-
// #endif
|
841
|
-
#if defined(ABSL_INTERNAL_CPLUSPLUS_LANG) && \
|
842
|
-
ABSL_INTERNAL_CPLUSPLUS_LANG < 201703L
|
843
|
-
#define ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL 1
|
844
|
-
#endif
|
845
|
-
|
846
737
|
// `ABSL_INTERNAL_HAS_RTTI` determines whether abseil is being compiled with
|
847
738
|
// RTTI support.
|
848
739
|
#ifdef ABSL_INTERNAL_HAS_RTTI
|
@@ -1,4 +1,3 @@
|
|
1
|
-
//
|
2
1
|
// Copyright 2020 The Abseil Authors.
|
3
2
|
//
|
4
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -14,37 +13,33 @@
|
|
14
13
|
// limitations under the License.
|
15
14
|
//
|
16
15
|
|
17
|
-
#ifndef
|
18
|
-
#define
|
16
|
+
#ifndef ABSL_BASE_FAST_TYPE_ID_H_
|
17
|
+
#define ABSL_BASE_FAST_TYPE_ID_H_
|
19
18
|
|
20
19
|
#include "absl/base/config.h"
|
21
20
|
|
22
21
|
namespace absl {
|
23
22
|
ABSL_NAMESPACE_BEGIN
|
24
|
-
namespace base_internal {
|
25
23
|
|
24
|
+
namespace base_internal {
|
26
25
|
template <typename Type>
|
27
26
|
struct FastTypeTag {
|
28
|
-
constexpr
|
27
|
+
static constexpr char kDummyVar = 0;
|
29
28
|
};
|
29
|
+
} // namespace base_internal
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
constexpr char FastTypeTag<Type>::dummy_var;
|
34
|
-
#endif
|
31
|
+
// The type returned by `absl::FastTypeId<T>()`.
|
32
|
+
using FastTypeIdType = const void*;
|
35
33
|
|
36
|
-
// FastTypeId<Type>() evaluates at compile
|
34
|
+
// `absl::FastTypeId<Type>()` evaluates at compile-time to a unique id for the
|
37
35
|
// passed-in type. These are meant to be good match for keys into maps or
|
38
36
|
// straight up comparisons.
|
39
|
-
using FastTypeIdType = const void*;
|
40
|
-
|
41
37
|
template <typename Type>
|
42
|
-
constexpr
|
43
|
-
return &FastTypeTag<Type>::
|
38
|
+
constexpr FastTypeIdType FastTypeId() {
|
39
|
+
return &base_internal::FastTypeTag<Type>::kDummyVar;
|
44
40
|
}
|
45
41
|
|
46
|
-
} // namespace base_internal
|
47
42
|
ABSL_NAMESPACE_END
|
48
43
|
} // namespace absl
|
49
44
|
|
50
|
-
#endif //
|
45
|
+
#endif // ABSL_BASE_FAST_TYPE_ID_H_
|
@@ -35,11 +35,6 @@ namespace base_internal {
|
|
35
35
|
|
36
36
|
#if ABSL_USE_UNSCALED_CYCLECLOCK
|
37
37
|
|
38
|
-
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
39
|
-
constexpr int32_t CycleClock::kShift;
|
40
|
-
constexpr double CycleClock::kFrequencyScale;
|
41
|
-
#endif
|
42
|
-
|
43
38
|
ABSL_CONST_INIT std::atomic<CycleClockSourceFunc>
|
44
39
|
CycleClock::cycle_clock_source_{nullptr};
|
45
40
|
|
@@ -18,7 +18,6 @@
|
|
18
18
|
#include <cstdint>
|
19
19
|
|
20
20
|
#include "absl/base/config.h"
|
21
|
-
#include "absl/base/internal/inline_variable.h"
|
22
21
|
#include "absl/base/internal/unscaledcycleclock_config.h"
|
23
22
|
|
24
23
|
namespace absl {
|
@@ -31,22 +30,23 @@ namespace base_internal {
|
|
31
30
|
// Not debug mode and the UnscaledCycleClock frequency is the CPU
|
32
31
|
// frequency. Scale the CycleClock to prevent overflow if someone
|
33
32
|
// tries to represent the time as cycles since the Unix epoch.
|
34
|
-
|
33
|
+
inline constexpr int32_t kCycleClockShift = 1;
|
35
34
|
#else
|
36
35
|
// Not debug mode and the UnscaledCycleClock isn't operating at the
|
37
36
|
// raw CPU frequency. There is no need to do any scaling, so don't
|
38
37
|
// needlessly sacrifice precision.
|
39
|
-
|
38
|
+
inline constexpr int32_t kCycleClockShift = 0;
|
40
39
|
#endif
|
41
40
|
#else // NDEBUG
|
42
41
|
// In debug mode use a different shift to discourage depending on a
|
43
42
|
// particular shift value.
|
44
|
-
|
43
|
+
inline constexpr int32_t kCycleClockShift = 2;
|
45
44
|
#endif // NDEBUG
|
46
45
|
|
47
|
-
|
48
|
-
|
49
|
-
|
46
|
+
inline constexpr double kCycleClockFrequencyScale =
|
47
|
+
1.0 / (1 << kCycleClockShift);
|
48
|
+
|
49
|
+
#endif // ABSL_USE_UNSCALED_CYCLECLOCK
|
50
50
|
|
51
51
|
} // namespace base_internal
|
52
52
|
ABSL_NAMESPACE_END
|
@@ -12,6 +12,8 @@
|
|
12
12
|
// See the License for the specific language governing permissions and
|
13
13
|
// limitations under the License.
|
14
14
|
//
|
15
|
+
// This file is for Abseil internal use only.
|
16
|
+
// See //absl/numeric/bits.h for supported functions related to endian-ness.
|
15
17
|
|
16
18
|
#ifndef ABSL_BASE_INTERNAL_ENDIAN_H_
|
17
19
|
#define ABSL_BASE_INTERNAL_ENDIAN_H_
|
@@ -28,44 +30,38 @@
|
|
28
30
|
namespace absl {
|
29
31
|
ABSL_NAMESPACE_BEGIN
|
30
32
|
|
31
|
-
|
33
|
+
constexpr uint64_t gbswap_64(uint64_t x) {
|
32
34
|
#if ABSL_HAVE_BUILTIN(__builtin_bswap64) || defined(__GNUC__)
|
33
|
-
return __builtin_bswap64(
|
34
|
-
#elif defined(_MSC_VER)
|
35
|
-
return _byteswap_uint64(host_int);
|
35
|
+
return __builtin_bswap64(x);
|
36
36
|
#else
|
37
|
-
return (((
|
38
|
-
((
|
39
|
-
((
|
40
|
-
((
|
41
|
-
((
|
42
|
-
((
|
43
|
-
((
|
44
|
-
((
|
37
|
+
return (((x & uint64_t{0xFF}) << 56) |
|
38
|
+
((x & uint64_t{0xFF00}) << 40) |
|
39
|
+
((x & uint64_t{0xFF0000}) << 24) |
|
40
|
+
((x & uint64_t{0xFF000000}) << 8) |
|
41
|
+
((x & uint64_t{0xFF00000000}) >> 8) |
|
42
|
+
((x & uint64_t{0xFF0000000000}) >> 24) |
|
43
|
+
((x & uint64_t{0xFF000000000000}) >> 40) |
|
44
|
+
((x & uint64_t{0xFF00000000000000}) >> 56));
|
45
45
|
#endif
|
46
46
|
}
|
47
47
|
|
48
|
-
|
48
|
+
constexpr uint32_t gbswap_32(uint32_t x) {
|
49
49
|
#if ABSL_HAVE_BUILTIN(__builtin_bswap32) || defined(__GNUC__)
|
50
|
-
return __builtin_bswap32(
|
51
|
-
#elif defined(_MSC_VER)
|
52
|
-
return _byteswap_ulong(host_int);
|
50
|
+
return __builtin_bswap32(x);
|
53
51
|
#else
|
54
|
-
return (((
|
55
|
-
((
|
56
|
-
((
|
57
|
-
((
|
52
|
+
return (((x & uint32_t{0xFF}) << 24) |
|
53
|
+
((x & uint32_t{0xFF00}) << 8) |
|
54
|
+
((x & uint32_t{0xFF0000}) >> 8) |
|
55
|
+
((x & uint32_t{0xFF000000}) >> 24));
|
58
56
|
#endif
|
59
57
|
}
|
60
58
|
|
61
|
-
|
59
|
+
constexpr uint16_t gbswap_16(uint16_t x) {
|
62
60
|
#if ABSL_HAVE_BUILTIN(__builtin_bswap16) || defined(__GNUC__)
|
63
|
-
return __builtin_bswap16(
|
64
|
-
#elif defined(_MSC_VER)
|
65
|
-
return _byteswap_ushort(host_int);
|
61
|
+
return __builtin_bswap16(x);
|
66
62
|
#else
|
67
|
-
return (((
|
68
|
-
((
|
63
|
+
return (((x & uint16_t{0xFF}) << 8) |
|
64
|
+
((x & uint16_t{0xFF00}) >> 8));
|
69
65
|
#endif
|
70
66
|
}
|
71
67
|
|
@@ -161,27 +157,27 @@ inline int64_t ToHost(int64_t x) {
|
|
161
157
|
}
|
162
158
|
|
163
159
|
// Functions to do unaligned loads and stores in little-endian order.
|
164
|
-
inline uint16_t Load16(
|
160
|
+
inline uint16_t Load16(const void* absl_nonnull p) {
|
165
161
|
return ToHost16(ABSL_INTERNAL_UNALIGNED_LOAD16(p));
|
166
162
|
}
|
167
163
|
|
168
|
-
inline void Store16(
|
164
|
+
inline void Store16(void* absl_nonnull p, uint16_t v) {
|
169
165
|
ABSL_INTERNAL_UNALIGNED_STORE16(p, FromHost16(v));
|
170
166
|
}
|
171
167
|
|
172
|
-
inline uint32_t Load32(
|
168
|
+
inline uint32_t Load32(const void* absl_nonnull p) {
|
173
169
|
return ToHost32(ABSL_INTERNAL_UNALIGNED_LOAD32(p));
|
174
170
|
}
|
175
171
|
|
176
|
-
inline void Store32(
|
172
|
+
inline void Store32(void* absl_nonnull p, uint32_t v) {
|
177
173
|
ABSL_INTERNAL_UNALIGNED_STORE32(p, FromHost32(v));
|
178
174
|
}
|
179
175
|
|
180
|
-
inline uint64_t Load64(
|
176
|
+
inline uint64_t Load64(const void* absl_nonnull p) {
|
181
177
|
return ToHost64(ABSL_INTERNAL_UNALIGNED_LOAD64(p));
|
182
178
|
}
|
183
179
|
|
184
|
-
inline void Store64(
|
180
|
+
inline void Store64(void* absl_nonnull p, uint64_t v) {
|
185
181
|
ABSL_INTERNAL_UNALIGNED_STORE64(p, FromHost64(v));
|
186
182
|
}
|
187
183
|
|
@@ -251,27 +247,27 @@ inline int64_t ToHost(int64_t x) {
|
|
251
247
|
}
|
252
248
|
|
253
249
|
// Functions to do unaligned loads and stores in big-endian order.
|
254
|
-
inline uint16_t Load16(
|
250
|
+
inline uint16_t Load16(const void* absl_nonnull p) {
|
255
251
|
return ToHost16(ABSL_INTERNAL_UNALIGNED_LOAD16(p));
|
256
252
|
}
|
257
253
|
|
258
|
-
inline void Store16(
|
254
|
+
inline void Store16(void* absl_nonnull p, uint16_t v) {
|
259
255
|
ABSL_INTERNAL_UNALIGNED_STORE16(p, FromHost16(v));
|
260
256
|
}
|
261
257
|
|
262
|
-
inline uint32_t Load32(
|
258
|
+
inline uint32_t Load32(const void* absl_nonnull p) {
|
263
259
|
return ToHost32(ABSL_INTERNAL_UNALIGNED_LOAD32(p));
|
264
260
|
}
|
265
261
|
|
266
|
-
inline void Store32(
|
262
|
+
inline void Store32(void* absl_nonnull p, uint32_t v) {
|
267
263
|
ABSL_INTERNAL_UNALIGNED_STORE32(p, FromHost32(v));
|
268
264
|
}
|
269
265
|
|
270
|
-
inline uint64_t Load64(
|
266
|
+
inline uint64_t Load64(const void* absl_nonnull p) {
|
271
267
|
return ToHost64(ABSL_INTERNAL_UNALIGNED_LOAD64(p));
|
272
268
|
}
|
273
269
|
|
274
|
-
inline void Store64(
|
270
|
+
inline void Store64(void* absl_nonnull p, uint64_t v) {
|
275
271
|
ABSL_INTERNAL_UNALIGNED_STORE64(p, FromHost64(v));
|
276
272
|
}
|
277
273
|
|
@@ -0,0 +1,71 @@
|
|
1
|
+
// Copyright 2025 The Abseil Authors
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
//
|
15
|
+
// -----------------------------------------------------------------------------
|
16
|
+
// File: internal/iterator_traits.h
|
17
|
+
// -----------------------------------------------------------------------------
|
18
|
+
//
|
19
|
+
// Helpers for querying traits of iterators, for implementing containers, etc.
|
20
|
+
|
21
|
+
#ifndef ABSL_BASE_INTERNAL_ITERATOR_TRAITS_H_
|
22
|
+
#define ABSL_BASE_INTERNAL_ITERATOR_TRAITS_H_
|
23
|
+
|
24
|
+
#include <iterator>
|
25
|
+
#include <type_traits>
|
26
|
+
|
27
|
+
#include "absl/base/config.h"
|
28
|
+
#include "absl/meta/type_traits.h"
|
29
|
+
|
30
|
+
namespace absl {
|
31
|
+
ABSL_NAMESPACE_BEGIN
|
32
|
+
namespace base_internal {
|
33
|
+
|
34
|
+
template <typename Iterator, typename = void>
|
35
|
+
struct IteratorCategory {};
|
36
|
+
|
37
|
+
template <typename Iterator>
|
38
|
+
struct IteratorCategory<
|
39
|
+
Iterator,
|
40
|
+
absl::void_t<typename std::iterator_traits<Iterator>::iterator_category>> {
|
41
|
+
using type = typename std::iterator_traits<Iterator>::iterator_category;
|
42
|
+
};
|
43
|
+
|
44
|
+
template <typename Iterator, typename = void>
|
45
|
+
struct IteratorConceptImpl : IteratorCategory<Iterator> {};
|
46
|
+
|
47
|
+
template <typename Iterator>
|
48
|
+
struct IteratorConceptImpl<
|
49
|
+
Iterator,
|
50
|
+
absl::void_t<typename std::iterator_traits<Iterator>::iterator_concept>> {
|
51
|
+
using type = typename std::iterator_traits<Iterator>::iterator_concept;
|
52
|
+
};
|
53
|
+
|
54
|
+
// The newer `std::iterator_traits<Iterator>::iterator_concept` if available,
|
55
|
+
// else `std::iterator_traits<Iterator>::iterator_category`.
|
56
|
+
template <typename Iterator>
|
57
|
+
using IteratorConcept = typename IteratorConceptImpl<Iterator>::type;
|
58
|
+
|
59
|
+
template <typename IteratorTag, typename Iterator>
|
60
|
+
using IsAtLeastIterator =
|
61
|
+
std::is_convertible<IteratorConcept<Iterator>, IteratorTag>;
|
62
|
+
|
63
|
+
template <typename Iterator>
|
64
|
+
using IsAtLeastForwardIterator =
|
65
|
+
IsAtLeastIterator<std::forward_iterator_tag, Iterator>;
|
66
|
+
|
67
|
+
} // namespace base_internal
|
68
|
+
ABSL_NAMESPACE_END
|
69
|
+
} // namespace absl
|
70
|
+
|
71
|
+
#endif // ABSL_BASE_INTERNAL_ITERATOR_TRAITS_H_
|
@@ -330,7 +330,7 @@ size_t GetPageSize() {
|
|
330
330
|
GetSystemInfo(&system_info);
|
331
331
|
return std::max(system_info.dwPageSize, system_info.dwAllocationGranularity);
|
332
332
|
#elif defined(__wasm__) || defined(__asmjs__) || defined(__hexagon__)
|
333
|
-
return getpagesize();
|
333
|
+
return static_cast<size_t>(getpagesize());
|
334
334
|
#else
|
335
335
|
return static_cast<size_t>(sysconf(_SC_PAGESIZE));
|
336
336
|
#endif
|
@@ -448,8 +448,8 @@ static inline uintptr_t RoundUp(uintptr_t addr, uintptr_t align) {
|
|
448
448
|
// that the freelist is in the correct order, that it
|
449
449
|
// consists of regions marked "unallocated", and that no two regions
|
450
450
|
// are adjacent in memory (they should have been coalesced).
|
451
|
-
|
452
|
-
|
451
|
+
static AllocList *Next(int i, AllocList *prev, LowLevelAlloc::Arena *arena)
|
452
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(arena->mu) {
|
453
453
|
ABSL_RAW_CHECK(i < prev->levels, "too few levels in Next()");
|
454
454
|
AllocList *next = prev->next[i];
|
455
455
|
if (next != nullptr) {
|
@@ -473,6 +473,7 @@ static void Coalesce(AllocList *a) {
|
|
473
473
|
if (n != nullptr && reinterpret_cast<char *>(a) + a->header.size ==
|
474
474
|
reinterpret_cast<char *>(n)) {
|
475
475
|
LowLevelAlloc::Arena *arena = a->header.arena;
|
476
|
+
arena->mu.AssertHeld();
|
476
477
|
a->header.size += n->header.size;
|
477
478
|
n->header.magic = 0;
|
478
479
|
n->header.arena = nullptr;
|
@@ -486,8 +487,8 @@ static void Coalesce(AllocList *a) {
|
|
486
487
|
}
|
487
488
|
|
488
489
|
// Adds block at location "v" to the free list
|
489
|
-
|
490
|
-
|
490
|
+
static void AddToFreelist(void *v, LowLevelAlloc::Arena *arena)
|
491
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(arena->mu) {
|
491
492
|
AllocList *f = reinterpret_cast<AllocList *>(reinterpret_cast<char *>(v) -
|
492
493
|
sizeof(f->header));
|
493
494
|
ABSL_RAW_CHECK(f->header.magic == Magic(kMagicAllocated, &f->header),
|
data/third_party/abseil-cpp/absl/base/internal/{nullability_impl.h → nullability_deprecated.h}
RENAMED
@@ -11,16 +11,11 @@
|
|
11
11
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
12
|
// See the License for the specific language governing permissions and
|
13
13
|
// limitations under the License.
|
14
|
-
|
15
|
-
#
|
16
|
-
#define ABSL_BASE_INTERNAL_NULLABILITY_IMPL_H_
|
17
|
-
|
18
|
-
#include <memory>
|
19
|
-
#include <type_traits>
|
14
|
+
#ifndef ABSL_BASE_INTERNAL_NULLABILITY_DEPRECATED_H_
|
15
|
+
#define ABSL_BASE_INTERNAL_NULLABILITY_DEPRECATED_H_
|
20
16
|
|
21
17
|
#include "absl/base/attributes.h"
|
22
18
|
#include "absl/base/config.h"
|
23
|
-
#include "absl/meta/type_traits.h"
|
24
19
|
|
25
20
|
namespace absl {
|
26
21
|
ABSL_NAMESPACE_BEGIN
|
@@ -63,7 +58,49 @@ using NullabilityUnknownImpl
|
|
63
58
|
#endif
|
64
59
|
|
65
60
|
} // namespace nullability_internal
|
61
|
+
|
62
|
+
// The following template aliases are deprecated forms of nullability
|
63
|
+
// annotations. They have some limitations, for example, an incompatibility with
|
64
|
+
// `auto*` pointers, as `auto` cannot be used in a template argument.
|
65
|
+
//
|
66
|
+
// It is important to note that these annotations are not distinct strong
|
67
|
+
// *types*. They are alias templates defined to be equal to the underlying
|
68
|
+
// pointer type. A pointer annotated `Nonnull<T*>`, for example, is simply a
|
69
|
+
// pointer of type `T*`.
|
70
|
+
//
|
71
|
+
// Prefer the macro style annotations in `absl/base/nullability.h` instead.
|
72
|
+
|
73
|
+
// absl::Nonnull, analogous to absl_nonnull
|
74
|
+
//
|
75
|
+
// Example:
|
76
|
+
// absl::Nonnull<int*> foo;
|
77
|
+
// Is equivalent to:
|
78
|
+
// int* absl_nonnull foo;
|
79
|
+
template <typename T>
|
80
|
+
using Nonnull [[deprecated("Use `absl_nonnull`.")]] =
|
81
|
+
nullability_internal::NonnullImpl<T>;
|
82
|
+
|
83
|
+
// absl::Nullable, analogous to absl_nullable
|
84
|
+
//
|
85
|
+
// Example:
|
86
|
+
// absl::Nullable<int*> foo;
|
87
|
+
// Is equivalent to:
|
88
|
+
// int* absl_nullable foo;
|
89
|
+
template <typename T>
|
90
|
+
using Nullable [[deprecated("Use `absl_nullable`.")]] =
|
91
|
+
nullability_internal::NullableImpl<T>;
|
92
|
+
|
93
|
+
// absl::NullabilityUnknown, analogous to absl_nullability_unknown
|
94
|
+
//
|
95
|
+
// Example:
|
96
|
+
// absl::NullabilityUnknown<int*> foo;
|
97
|
+
// Is equivalent to:
|
98
|
+
// int* absl_nullability_unknown foo;
|
99
|
+
template <typename T>
|
100
|
+
using NullabilityUnknown [[deprecated("Use `absl_nullability_unknown`.")]] =
|
101
|
+
nullability_internal::NullabilityUnknownImpl<T>;
|
102
|
+
|
66
103
|
ABSL_NAMESPACE_END
|
67
104
|
} // namespace absl
|
68
105
|
|
69
|
-
#endif //
|
106
|
+
#endif // ABSL_BASE_INTERNAL_NULLABILITY_DEPRECATED_H_
|
@@ -67,15 +67,6 @@ void RegisterSpinLockProfiler(void (*fn)(const void *contendedlock,
|
|
67
67
|
submit_profile_data.Store(fn);
|
68
68
|
}
|
69
69
|
|
70
|
-
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
71
|
-
// Static member variable definitions.
|
72
|
-
constexpr uint32_t SpinLock::kSpinLockHeld;
|
73
|
-
constexpr uint32_t SpinLock::kSpinLockCooperative;
|
74
|
-
constexpr uint32_t SpinLock::kSpinLockDisabledScheduling;
|
75
|
-
constexpr uint32_t SpinLock::kSpinLockSleeper;
|
76
|
-
constexpr uint32_t SpinLock::kWaitTimeMask;
|
77
|
-
#endif
|
78
|
-
|
79
70
|
// Uncommon constructors.
|
80
71
|
SpinLock::SpinLock(base_internal::SchedulingMode mode)
|
81
72
|
: lockword_(IsCooperative(mode) ? kSpinLockCooperative : 0) {
|