aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2024-04-23 09:07:41 +0000
committerAlexander Smirnov <alex@ydb.tech>2024-04-23 09:07:41 +0000
commitb35b2344f47ddaef21fb74c7f5cad9cd91d3cb45 (patch)
treee7b382f5c6cce63ce1e160d51ad1aac846ba2905
parentb3bee3aa6d7c8767695b8917484e6bb488e9c8ca (diff)
parentae5472d0928c374dc719b154c9dcb2be6e0a0695 (diff)
downloadydb-b35b2344f47ddaef21fb74c7f5cad9cd91d3cb45.tar.gz
Merge branch 'rightlib' into mergelibs-240423-0906
-rw-r--r--build/conf/go.conf4
-rw-r--r--build/conf/java.conf28
-rw-r--r--build/conf/license.conf3
-rw-r--r--build/conf/licenses.json409
-rw-r--r--build/conf/project_specific/yql_udf.conf11
-rw-r--r--build/conf/proto.conf12
-rw-r--r--build/conf/ts/ts.conf2
-rw-r--r--build/export_generators/hardcoded-cmake/generator.toml6
-rw-r--r--build/export_generators/ide-gradle/.idea/vcs.xml7
-rw-r--r--build/export_generators/ide-gradle/generator.toml3
-rw-r--r--build/external_resources/ymake/public.resources.json10
-rw-r--r--build/external_resources/ymake/resources.json10
-rw-r--r--build/mapping.conf.json16
-rw-r--r--build/platform/java/jdk/jdk18/jdk.json17
-rw-r--r--build/platform/java/jdk/jdk18/ya.make10
-rw-r--r--build/platform/java/jdk/ya.make4
-rw-r--r--build/plugins/gobuild.py27
-rw-r--r--build/plugins/java.py2
-rw-r--r--build/plugins/lib/nots/package_manager/base/lockfile.py4
-rw-r--r--build/plugins/lib/nots/package_manager/base/package_json.py25
-rw-r--r--build/plugins/lib/nots/package_manager/pnpm/lockfile.py10
-rw-r--r--build/plugins/lib/test_const/__init__.py1
-rw-r--r--build/plugins/nots.py49
-rw-r--r--build/plugins/pybuild.py1
-rw-r--r--build/plugins/yql_python_udf.py25
-rw-r--r--build/plugins/ytest.py2
-rw-r--r--build/prebuilt/tools/flake8_linter/resources.json12
-rw-r--r--build/scripts/cpp_proto_wrapper.py43
-rw-r--r--build/scripts/gen_yql_python_udf.py10
-rw-r--r--build/ya.conf.json33
-rw-r--r--build/ymake.core.conf11
-rwxr-xr-xbuild/ymake_conf.py6
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__config_site1
-rw-r--r--contrib/libs/cxxsupp/libcxxabi/ya.make2
-rw-r--r--contrib/libs/cxxsupp/ya.make16
-rw-r--r--contrib/libs/libjpeg-turbo/ya.make22
-rw-r--r--contrib/libs/nghttp2/AUTHORS2
-rw-r--r--contrib/libs/nghttp2/README.rst8
-rw-r--r--contrib/libs/nghttp2/config-linux.h6
-rw-r--r--contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2.h18
-rw-r--r--contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2ver.h4
-rw-r--r--contrib/libs/nghttp2/lib/nghttp2_helper.c2
-rw-r--r--contrib/libs/nghttp2/lib/nghttp2_option.c5
-rw-r--r--contrib/libs/nghttp2/lib/nghttp2_option.h5
-rw-r--r--contrib/libs/nghttp2/lib/nghttp2_session.c59
-rw-r--r--contrib/libs/nghttp2/lib/nghttp2_session.h10
-rw-r--r--contrib/libs/nghttp2/ya.make4
-rw-r--r--contrib/libs/opentelemetry-proto/CHANGELOG.md17
-rw-r--r--contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.proto9
-rw-r--r--contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.proto50
-rw-r--r--contrib/libs/opentelemetry-proto/ya.make4
-rw-r--r--contrib/libs/pybind11/include/pybind11/pytypes.h5
-rw-r--r--contrib/python/argcomplete/py3/.dist-info/METADATA2
-rw-r--r--contrib/python/argcomplete/py3/argcomplete/packages/_argparse.py5
-rw-r--r--contrib/python/argcomplete/py3/ya.make2
-rw-r--r--contrib/python/clickhouse-connect/.dist-info/METADATA2
-rw-r--r--contrib/python/clickhouse-connect/clickhouse_connect/__version__.py2
-rw-r--r--contrib/python/clickhouse-connect/clickhouse_connect/cc_sqlalchemy/datatypes/base.py6
-rw-r--r--contrib/python/clickhouse-connect/clickhouse_connect/driver/client.py33
-rw-r--r--contrib/python/clickhouse-connect/clickhouse_connect/driver/httpclient.py50
-rw-r--r--contrib/python/clickhouse-connect/clickhouse_connect/driver/query.py10
-rw-r--r--contrib/python/clickhouse-connect/clickhouse_connect/tools/testing.py5
-rw-r--r--contrib/python/clickhouse-connect/ya.make2
-rw-r--r--contrib/python/fonttools/.dist-info/METADATA8
-rw-r--r--contrib/python/fonttools/fontTools/__init__.py2
-rw-r--r--contrib/python/fonttools/fontTools/ttLib/reorderGlyphs.py278
-rw-r--r--contrib/python/fonttools/fontTools/ttLib/tables/otConverters.py2
-rw-r--r--contrib/python/fonttools/fontTools/ttLib/ttFont.py5
-rw-r--r--contrib/python/fonttools/ya.make3
-rw-r--r--contrib/python/future/py2/.dist-info/METADATA25
-rw-r--r--contrib/python/future/py2/.dist-info/entry_points.txt1
-rw-r--r--contrib/python/future/py2/LICENSE.txt2
-rw-r--r--contrib/python/future/py2/README.rst51
-rw-r--r--contrib/python/future/py2/future/__init__.py19
-rw-r--r--contrib/python/future/py2/future/backports/datetime.py2
-rw-r--r--contrib/python/future/py2/future/backports/email/_header_value_parser.py2
-rw-r--r--contrib/python/future/py2/future/backports/email/parser.py4
-rw-r--r--contrib/python/future/py2/future/backports/http/cookiejar.py2
-rw-r--r--contrib/python/future/py2/future/backports/xmlrpc/client.py9
-rw-r--r--contrib/python/future/py2/future/builtins/__init__.py2
-rw-r--r--contrib/python/future/py2/future/moves/_dummy_thread.py11
-rw-r--r--contrib/python/future/py2/future/moves/multiprocessing.py7
-rw-r--r--contrib/python/future/py2/future/standard_library/__init__.py14
-rw-r--r--contrib/python/future/py2/future/types/newint.py8
-rw-r--r--contrib/python/future/py2/future/types/newrange.py2
-rw-r--r--contrib/python/future/py2/past/__init__.py4
-rw-r--r--contrib/python/future/py2/past/builtins/misc.py9
-rw-r--r--contrib/python/future/py2/ya.make3
-rw-r--r--contrib/python/hypothesis/py3/.dist-info/METADATA2
-rw-r--r--contrib/python/hypothesis/py3/hypothesis/internal/conjecture/data.py23
-rw-r--r--contrib/python/hypothesis/py3/hypothesis/internal/conjecture/datatree.py10
-rw-r--r--contrib/python/hypothesis/py3/hypothesis/internal/conjecture/pareto.py3
-rw-r--r--contrib/python/hypothesis/py3/hypothesis/version.py2
-rw-r--r--contrib/python/hypothesis/py3/ya.make2
-rw-r--r--contrib/python/parso/py3/.dist-info/METADATA14
-rw-r--r--contrib/python/parso/py3/parso/__init__.py2
-rw-r--r--contrib/python/parso/py3/parso/grammar.py10
-rw-r--r--contrib/python/parso/py3/parso/pgen2/generator.py2
-rw-r--r--contrib/python/parso/py3/parso/python/errors.py51
-rw-r--r--contrib/python/parso/py3/parso/python/grammar313.txt169
-rw-r--r--contrib/python/parso/py3/parso/python/tree.py3
-rw-r--r--contrib/python/parso/py3/tests/test_python_errors.py23
-rw-r--r--contrib/python/parso/py3/ya.make3
-rw-r--r--contrib/python/typing-extensions/py3/.dist-info/METADATA2
-rw-r--r--contrib/python/typing-extensions/py3/typing_extensions.py201
-rw-r--r--contrib/python/typing-extensions/py3/ya.make2
-rw-r--r--contrib/restricted/boost/algorithm/ya.make4
-rw-r--r--contrib/restricted/boost/asio/include/boost/asio/detail/config.hpp7
-rw-r--r--contrib/restricted/boost/core/include/boost/core/bit.hpp20
-rw-r--r--contrib/restricted/boost/core/include/boost/core/checked_delete.hpp9
-rw-r--r--contrib/restricted/boost/core/ya.make4
-rw-r--r--contrib/restricted/boost/crc/ya.make4
-rw-r--r--contrib/restricted/boost/endian/ya.make4
-rw-r--r--contrib/restricted/boost/functional/ya.make4
-rw-r--r--contrib/restricted/boost/icl/ya.make4
-rw-r--r--contrib/restricted/boost/io/ya.make4
-rw-r--r--contrib/restricted/boost/iostreams/ya.make4
-rw-r--r--contrib/restricted/boost/lambda/ya.make4
-rw-r--r--contrib/restricted/boost/mpl/ya.make4
-rw-r--r--contrib/restricted/boost/multi_index/ya.make4
-rw-r--r--contrib/restricted/boost/optional/ya.make4
-rw-r--r--contrib/restricted/boost/phoenix/ya.make4
-rw-r--r--contrib/restricted/boost/predef/ya.make4
-rw-r--r--contrib/restricted/boost/ratio/ya.make4
-rw-r--r--contrib/restricted/boost/thread/ya.make4
-rw-r--r--contrib/restricted/boost/tuple/ya.make4
-rw-r--r--contrib/restricted/boost/typeof/ya.make4
-rw-r--r--contrib/restricted/boost/winapi/ya.make4
-rw-r--r--contrib/restricted/llhttp/README.md4
-rw-r--r--contrib/restricted/llhttp/include/llhttp.h2
-rw-r--r--contrib/restricted/llhttp/src/llhttp.c555
-rw-r--r--contrib/restricted/llhttp/ya.make4
-rw-r--r--library/cpp/clang_tidy/arcadia_checks/ascii_compare_ignore_case_check.cpp65
-rw-r--r--library/cpp/clang_tidy/arcadia_checks/ascii_compare_ignore_case_check.h21
-rw-r--r--library/cpp/clang_tidy/arcadia_checks/tidy_module.cpp2
-rw-r--r--library/cpp/clang_tidy/arcadia_checks/usage_restriction_checks.cpp4
-rw-r--r--library/cpp/clang_tidy/arcadia_checks/ya.make1
-rw-r--r--library/cpp/http/io/headers.cpp13
-rw-r--r--library/cpp/monlib/service/format.h16
-rw-r--r--library/cpp/tld/tlds-alpha-by-domain.txt2
-rw-r--r--library/cpp/yt/memory/function_view.h32
-rw-r--r--library/cpp/yt/memory/tls_scratch-inl.h28
-rw-r--r--library/cpp/yt/memory/tls_scratch.h20
-rw-r--r--library/cpp/yt/misc/concepts.h49
-rw-r--r--library/cpp/yt/misc/port.h6
-rw-r--r--util/system/compiler.h8
-rw-r--r--util/system/sanitizers.h7
-rw-r--r--vendor/github.com/cncf/xds/go/udpa/annotations/migrate.pb.go9
-rw-r--r--vendor/github.com/cncf/xds/go/udpa/annotations/security.pb.go10
-rw-r--r--vendor/github.com/cncf/xds/go/udpa/annotations/sensitive.pb.go8
-rw-r--r--vendor/github.com/cncf/xds/go/udpa/annotations/status.pb.go8
-rw-r--r--vendor/github.com/cncf/xds/go/udpa/annotations/versioning.pb.go9
-rw-r--r--vendor/github.com/cncf/xds/go/udpa/type/v1/typed_struct.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/annotations/v3/migrate.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/annotations/v3/security.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/annotations/v3/sensitive.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/annotations/v3/status.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/annotations/v3/versioning.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/core/v3/authority.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/core/v3/cidr.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/core/v3/collection_entry.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/core/v3/context_params.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/core/v3/extension.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/core/v3/resource.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/core/v3/resource_locator.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/core/v3/resource_name.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/data/orca/v3/orca_load_report.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/service/orca/v3/orca.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/type/matcher/v3/cel.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/type/matcher/v3/domain.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/type/matcher/v3/http_inputs.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/type/matcher/v3/ip.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/type/matcher/v3/matcher.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/type/matcher/v3/range.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/type/matcher/v3/regex.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/type/matcher/v3/string.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/type/v3/cel.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/type/v3/range.pb.go2
-rw-r--r--vendor/github.com/cncf/xds/go/xds/type/v3/typed_struct.pb.go2
-rw-r--r--vendor/github.com/envoyproxy/protoc-gen-validate/validate/ya.make4
-rw-r--r--vendor/github.com/golang/glog/glog.go201
-rw-r--r--vendor/github.com/golang/glog/internal/logsink/logsink.go6
-rw-r--r--vendor/github.com/golang/glog/internal/logsink/ya.make6
-rw-r--r--vendor/github.com/golang/glog/ya.make1
-rw-r--r--vendor/golang.org/x/oauth2/google/default.go72
-rw-r--r--vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go139
-rw-r--r--vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go24
-rw-r--r--vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/checked.pb.go4
-rw-r--r--vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/eval.pb.go4
-rw-r--r--vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/explain.pb.go4
-rw-r--r--vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/syntax.pb.go448
-rw-r--r--vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/value.pb.go4
-rw-r--r--yt/python/yt/type_info/test/lib/ya.make38
-rw-r--r--yt/python/yt/type_info/ya.make24
-rw-r--r--yt/python/yt/ya.make40
-rw-r--r--yt/python/yt/yson/ya.make38
-rw-r--r--yt/yt/client/api/journal_client.h3
-rw-r--r--yt/yt/client/api/persistent_queue.cpp4
-rw-r--r--yt/yt/client/api/rpc_proxy/table_reader.cpp2
-rw-r--r--yt/yt/client/api/rpc_proxy/transaction_impl.cpp2
-rw-r--r--yt/yt/client/driver/cypress_commands.cpp2
-rw-r--r--yt/yt/client/driver/journal_commands.cpp4
-rw-r--r--yt/yt/client/driver/queue_commands.cpp2
-rw-r--r--yt/yt/client/driver/table_commands.cpp4
-rw-r--r--yt/yt/client/federated/client.cpp2
-rw-r--r--yt/yt/client/federated/unittests/client_ut.cpp6
-rw-r--r--yt/yt/client/hedging/unittests/hedging_ut.cpp12
-rw-r--r--yt/yt/client/table_client/comparator.cpp4
-rw-r--r--yt/yt/client/table_client/comparator.h2
-rw-r--r--yt/yt/client/table_client/key.cpp2
-rw-r--r--yt/yt/client/table_client/logical_type.cpp12
-rw-r--r--yt/yt/client/table_client/row_buffer.cpp11
-rw-r--r--yt/yt/client/table_client/row_buffer.h6
-rw-r--r--yt/yt/client/table_client/schema.cpp4
-rw-r--r--yt/yt/client/table_client/schema.h2
-rw-r--r--yt/yt/client/table_client/unversioned_row.cpp16
-rw-r--r--yt/yt/client/table_client/unversioned_row.h3
-rw-r--r--yt/yt/client/table_client/versioned_row.cpp13
-rw-r--r--yt/yt/client/table_client/versioned_row.h1
-rw-r--r--yt/yt/client/unittests/logical_type_ut.cpp20
-rw-r--r--yt/yt/client/ypath/rich.cpp6
-rw-r--r--yt/yt/core/actions/unittests/bind_ut.cpp6
-rw-r--r--yt/yt/core/actions/unittests/future_ut.cpp2
-rw-r--r--yt/yt/core/bus/tcp/connection.cpp2
-rw-r--r--yt/yt/core/compression/zstd.cpp2
-rw-r--r--yt/yt/core/concurrency/fair_share_invoker_pool.cpp10
-rw-r--r--yt/yt/core/concurrency/parallel_runner-inl.h78
-rw-r--r--yt/yt/core/concurrency/parallel_runner.h54
-rw-r--r--yt/yt/core/concurrency/periodic_executor.cpp2
-rw-r--r--yt/yt/core/concurrency/thread_pool_detail.cpp2
-rw-r--r--yt/yt/core/concurrency/unittests/count_down_latch_ut.cpp4
-rw-r--r--yt/yt/core/concurrency/unittests/delayed_executor_ut.cpp12
-rw-r--r--yt/yt/core/concurrency/unittests/fair_share_invoker_pool_ut.cpp2
-rw-r--r--yt/yt/core/concurrency/unittests/parallel_runner_ut.cpp78
-rw-r--r--yt/yt/core/concurrency/unittests/periodic_ut.cpp12
-rw-r--r--yt/yt/core/concurrency/unittests/profiled_fair_share_invoker_pool_ut.cpp2
-rw-r--r--yt/yt/core/concurrency/unittests/scheduled_executor_ut.cpp12
-rw-r--r--yt/yt/core/concurrency/unittests/scheduler_ut.cpp86
-rw-r--r--yt/yt/core/concurrency/unittests/throughput_throttler_ut.cpp8
-rw-r--r--yt/yt/core/concurrency/unittests/ya.make1
-rw-r--r--yt/yt/core/crypto/tls.cpp10
-rw-r--r--yt/yt/core/http/retrying_client.cpp2
-rw-r--r--yt/yt/core/logging/zstd_compression.cpp2
-rw-r--r--yt/yt/core/misc/arithmetic_formula.cpp2
-rw-r--r--yt/yt/core/misc/dnf.cpp212
-rw-r--r--yt/yt/core/misc/dnf.h85
-rw-r--r--yt/yt/core/misc/fenwick_tree-inl.h2
-rw-r--r--yt/yt/core/misc/proc.cpp2
-rw-r--r--yt/yt/core/misc/protobuf_helpers-inl.h4
-rw-r--r--yt/yt/core/misc/protobuf_helpers.h13
-rw-r--r--yt/yt/core/misc/public.h35
-rw-r--r--yt/yt/core/misc/unittests/arithmetic_formula_ut.cpp2
-rw-r--r--yt/yt/core/misc/unittests/async_expiring_cache_ut.cpp4
-rw-r--r--yt/yt/core/misc/unittests/dnf_ut.cpp80
-rw-r--r--yt/yt/core/misc/unittests/error_ut.cpp2
-rw-r--r--yt/yt/core/misc/unittests/fenwick_tree_ut.cpp8
-rw-r--r--yt/yt/core/misc/unittests/ref_counted_tracker_ut.cpp6
-rw-r--r--yt/yt/core/misc/unittests/topological_ordering_ut.cpp3
-rw-r--r--yt/yt/core/misc/unittests/ya.make1
-rw-r--r--yt/yt/core/net/address.cpp6
-rw-r--r--yt/yt/core/rpc/grpc/server.cpp2
-rw-r--r--yt/yt/core/rpc/server_detail.cpp2
-rw-r--r--yt/yt/core/rpc/stream.cpp4
-rw-r--r--yt/yt/core/ya.make1
-rw-r--r--yt/yt/core/yson/unittests/protobuf_yson_ut.cpp18
-rw-r--r--yt/yt/core/yson/unittests/yson_pull_parser_ut.cpp3
-rw-r--r--yt/yt/core/ytree/helpers-inl.h15
-rw-r--r--yt/yt/core/ytree/helpers.h7
-rw-r--r--yt/yt/core/ytree/unittests/yson_struct_ut.cpp2
-rw-r--r--yt/yt/core/ytree/ypath_client.cpp4
-rw-r--r--yt/yt/core/ytree/ypath_detail.cpp58
-rw-r--r--yt/yt/core/ytree/ypath_detail.h67
-rw-r--r--yt/yt/core/ytree/ypath_service.cpp4
-rw-r--r--yt/yt/core/ytree/yson_struct_detail-inl.h2
-rw-r--r--yt/yt/core/ytree/yson_struct_detail.cpp2
-rw-r--r--yt/yt/library/decimal/unittests/decimal_ut.cpp5
-rw-r--r--yt/yt/library/formats/protobuf_parser.cpp4
-rw-r--r--yt/yt/library/formats/protobuf_writer.cpp4
-rw-r--r--yt/yt/library/formats/schemaful_dsv_writer.cpp4
-rw-r--r--yt/yt/library/formats/skiff_yson_converter.cpp16
-rw-r--r--yt/yt/library/numeric/algorithm_helpers-inl.h2
-rw-r--r--yt/yt/library/process/process.cpp6
-rw-r--r--yt/yt/library/process/unittests/pipes_ut.cpp2
-rw-r--r--yt/yt/library/process/unittests/process_ut.cpp2
-rw-r--r--yt/yt/library/process/unittests/subprocess_ut.cpp6
-rw-r--r--yt/yt/library/profiling/perf/counters.cpp2
-rw-r--r--yt/yt/library/profiling/solomon/cube.cpp5
-rw-r--r--yt/yt/library/profiling/solomon/cube.h2
-rw-r--r--yt/yt/library/profiling/solomon/exporter.cpp2
-rw-r--r--yt/yt/library/profiling/solomon/registry.cpp57
-rw-r--r--yt/yt/library/profiling/solomon/registry.h2
-rw-r--r--yt/yt/library/profiling/solomon/sensor_set.cpp18
-rw-r--r--yt/yt/library/profiling/solomon/sensor_set.h2
-rw-r--r--yt/yt/library/profiling/unittests/deps/main.cpp3
-rw-r--r--yt/yt/library/program/config.cpp2
-rw-r--r--yt/yt/library/tracing/jaeger/tracer.cpp2
-rw-r--r--yt/yt/library/ytprof/cpu_profiler.cpp2
-rw-r--r--yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto2
298 files changed, 3841 insertions, 1789 deletions
diff --git a/build/conf/go.conf b/build/conf/go.conf
index 6cf067a48ae..e5e384c0183 100644
--- a/build/conf/go.conf
+++ b/build/conf/go.conf
@@ -709,11 +709,11 @@ module _GO_BASE_UNIT: _BASE_UNIT {
_GO_VET=yes
PEERDIR+=build/external_resources/yolint
_GO_VET_TOOL=${YOLINT_RESOURCE_GLOBAL}/yolint
- _GO_VET_FLAGS=-migration.config=${input:"${ARCADIA_ROOT}/build/rules/go/migrations.yaml"} -scopelint.config=${input:"${ARCADIA_ROOT}/build/rules/go/extended_lint.yaml"}
+ _GO_VET_FLAGS=-migration.config=${input:"${ARCADIA_ROOT}/build/rules/go/migrations.yaml"} -scopelint.config=${input:"${ARCADIA_ROOT}/build/rules/go/extended_lint.yaml"} -riskyimports.config=${input:"${ARCADIA_ROOT}/build/rules/go/risky_imports.yaml"}
}
"local" ? {
_GO_VET=yes
- _GO_VET_FLAGS=-migration.config=${input:"${ARCADIA_ROOT}/build/rules/go/migrations.yaml"} -scopelint.config=${input:"${ARCADIA_ROOT}/build/rules/go/extended_lint.yaml"}
+ _GO_VET_FLAGS=-migration.config=${input:"${ARCADIA_ROOT}/build/rules/go/migrations.yaml"} -scopelint.config=${input:"${ARCADIA_ROOT}/build/rules/go/extended_lint.yaml"} -riskyimports.config=${input:"${ARCADIA_ROOT}/build/rules/go/risky_imports.yaml"}
}
default ? {
_GO_VET=no
diff --git a/build/conf/java.conf b/build/conf/java.conf
index f2cd6861b0a..dc8fe68d678 100644
--- a/build/conf/java.conf
+++ b/build/conf/java.conf
@@ -1042,11 +1042,6 @@ module JAR_LIBRARY: _COMPILABLE_JAR_BASE {
JAVAC_OPTS+=$ERROR_PRONE_JDK16_ADD_OPENS
}
- when($ERROR_PRONE_VALUE && $JDK_REAL_VERSION == "18") {
- JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16_ADD_OPENS
- JAVAC_OPTS+=$ERROR_PRONE_JDK16_ADD_OPENS
- }
-
when($ERROR_PRONE_VALUE && $JDK_REAL_VERSION == "20") {
JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16_ADD_OPENS
JAVAC_OPTS+=$ERROR_PRONE_JDK16_ADD_OPENS
@@ -1204,9 +1199,6 @@ when ($JDK_VERSION == "21") {
elsewhen ($JDK_VERSION == "20") {
JDK_REAL_VERSION=20
}
-elsewhen ($JDK_VERSION == "18") {
- JDK_REAL_VERSION=18
-}
elsewhen ($JDK_VERSION == "17") {
JDK_REAL_VERSION=17
}
@@ -1238,9 +1230,6 @@ otherwise {
when ($JDK_REAL_VERSION == "20") {
JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk20 build/platform/java/jdk/jdk17
}
- when ($JDK_REAL_VERSION == "18") {
- JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk18 build/platform/java/jdk/jdk17
- }
when ($JDK_REAL_VERSION == "17") {
# need jdk11 for spare parts in "host" platform
JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk17 build/platform/java/jdk/jdk11
@@ -1263,9 +1252,6 @@ when ($JDK_REAL_VERSION == "21") {
when ($JDK_REAL_VERSION == "20") {
UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar20
}
-when ($JDK_REAL_VERSION == "18") {
- UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar18
-}
when ($JDK_REAL_VERSION == "17") {
UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar17
}
@@ -1291,9 +1277,6 @@ otherwise {
when ($JDK_REAL_VERSION == "20") {
JDK_RESOURCE=$JDK20_RESOURCE_GLOBAL
}
- when ($JDK_REAL_VERSION == "18") {
- JDK_RESOURCE=$JDK18_RESOURCE_GLOBAL
- }
when ($JDK_REAL_VERSION == "17") {
JDK_RESOURCE=$JDK17_RESOURCE_GLOBAL
}
@@ -1318,11 +1301,6 @@ when (!$USE_SYSTEM_ERROR_PRONE) {
ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.10.0
ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_10_0_RESOURCE_GLOBAL
}
- elsewhen ($JDK_REAL_VERSION == "18") {
- ERROR_PRONE_VERSION=2.14.0
- ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.14.0
- ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_14_0_RESOURCE_GLOBAL
- }
elsewhen ($JDK_REAL_VERSION == "20") {
ERROR_PRONE_VERSION=2.18.0
ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.18.0
@@ -1364,9 +1342,6 @@ otherwise {
when ($JDK_REAL_VERSION == "20") {
UBERJAR_RESOURCE=$UBERJAR20_RESOURCE_GLOBAL
}
- when ($JDK_REAL_VERSION == "18") {
- UBERJAR_RESOURCE=$UBERJAR18_RESOURCE_GLOBAL
- }
when ($JDK_REAL_VERSION == "17") {
UBERJAR_RESOURCE=$UBERJAR17_RESOURCE_GLOBAL
}
@@ -1388,9 +1363,6 @@ when ($JDK_REAL_VERSION == "21") {
when ($JDK_REAL_VERSION == "20") {
WITH_JDK_RESOURCE=$WITH_JDK20_RESOURCE_GLOBAL
}
-when ($JDK_REAL_VERSION == "18") {
- WITH_JDK_RESOURCE=$WITH_JDK18_RESOURCE_GLOBAL
-}
when ($JDK_REAL_VERSION == "17") {
WITH_JDK_RESOURCE=$WITH_JDK17_RESOURCE_GLOBAL
}
diff --git a/build/conf/license.conf b/build/conf/license.conf
index 819f64216e0..213cfb8fb61 100644
--- a/build/conf/license.conf
+++ b/build/conf/license.conf
@@ -10,6 +10,9 @@ DEFAULT_MODULE_LICENSE=Service-Default-License
EXPLICIT_LICENSE_PREFIXES=
EXPLICIT_LICENSE_EXCEPTIONS=
+LICENSES=
+LICENSES+=build/conf/licenses.json
+
# List of license properties which can be used to restrict transitive dependencies. There are three variables checked for each
# property:
# * LICENSES_<PROP_NAME>_STATIC: list of licenses which propagates this property when linking with code published by one of
diff --git a/build/conf/licenses.json b/build/conf/licenses.json
new file mode 100644
index 00000000000..cd0d544676a
--- /dev/null
+++ b/build/conf/licenses.json
@@ -0,0 +1,409 @@
+{
+ "UNATTRIBUTED": {
+ "default": [
+ "AFL-2.0",
+ "Amazon-SL",
+ "APSL-1.0",
+ "Artistic-1.0-Perl",
+ "Artistic-2.0",
+ "ASM-BSD-3-Clause",
+ "BCL",
+ "Bison-Exception",
+ "Bison-exception-2.2",
+ "BouncyCastle-MIT",
+ "BSD-3-Clause-Clear",
+ "BSD-3-Clause-Open-MPI",
+ "BSD-4-Clause-Shortened",
+ "Bsd-New-Tcpdump",
+ "Carnegie-Mellon",
+ "Carnegie-Mellon-Contributors",
+ "CC-BY-NC-1.0",
+ "CC-BY-NC-2.0",
+ "CC-BY-NC-2.5",
+ "CC-BY-NC-3.0",
+ "CC-BY-NC-ND-1.0",
+ "CC-BY-NC-ND-2.0",
+ "CC-BY-NC-ND-2.5",
+ "CC-BY-NC-ND-3.0",
+ "CC-BY-NC-SA-1.0",
+ "CC-BY-NC-SA-2.0",
+ "CC-BY-NC-SA-2.5",
+ "CC-BY-NC-SA-3.0",
+ "CC-BY-ND-1.0",
+ "CC-BY-ND-2.0",
+ "CC-BY-ND-2.5",
+ "CC-BY-ND-3.0",
+ "CC-BY-SA-1.0",
+ "CC-BY-SA-2.0",
+ "CC-BY-SA-2.5",
+ "CC-BY-SA-3.0",
+ "CC-BY-SA-4.0",
+ "CDDL",
+ "CECILL-B",
+ "ClArtistic",
+ "DSO-1.1",
+ "Elastic-License-2.0",
+ "FSFUL",
+ "FSFULLR",
+ "GCC-exception-3.1",
+ "GDAL",
+ "GFDL-1.1-or-later",
+ "Go-License",
+ "Google-Patent-License-Webm",
+ "Google-Patent-License-Webrtc",
+ "GPL-2.0-only WITH freertos-exception-2.0",
+ "GPL-2.0-only WITH Mysql-Linking-Exception-2018",
+ "GPL-2.0-only WITH Universal-FOSS-exception-1.0",
+ "GPL-2.0-or-later WITH Avisynth-C-Interface-Exception",
+ "GPL-2.0-or-later WITH Bison-Exception-2.0",
+ "GPL-2.0-or-later WITH Bison-exception-2.2",
+ "GPL-2.0-or-later WITH C-Interface-Exception",
+ "GPL-2.0-or-later WITH freertos-exception-2.0",
+ "GPL-2.0-or-later WITH Libtool-exception",
+ "GPL-2.0-or-later WITH mif-exception",
+ "GWT-Terms",
+ "Hdf5",
+ "HPND-sell-variant",
+ "HSQLDB-BSD-3-Clause",
+ "Ibm-Dhcp",
+ "Ietf-trust",
+ "ImageMagick",
+ "Intel-Material",
+ "IPL-1.0",
+ "JAMon-BSD-3-Clause",
+ "jQuery-MIT",
+ "LGPL-3.0-or-later WITH ZeroMQ-Exception",
+ "LicenseRef-scancode-afpl-9.0",
+ "LicenseRef-scancode-amd-historical",
+ "LicenseRef-scancode-anu-license",
+ "LicenseRef-scancode-autoconf-simple-exception",
+ "LicenseRef-scancode-autoconf-simple-exception-2.0",
+ "LicenseRef-scancode-bsd-3-clause-jtag",
+ "LicenseRef-scancode-bsd-axis-nomod",
+ "LicenseRef-scancode-bsd-new-nomod",
+ "LicenseRef-scancode-bsd-no-disclaimer",
+ "LicenseRef-scancode-bsd-x11",
+ "LicenseRef-scancode-bsla-no-advert",
+ "LicenseRef-scancode-cavium-malloc",
+ "LicenseRef-scancode-cc-by-2.0-uk",
+ "LicenseRef-scancode-cc-devnations-2.0",
+ "LicenseRef-scancode-cc-sampling-1.0",
+ "LicenseRef-scancode-cmu-simple",
+ "LicenseRef-scancode-commercial-license",
+ "LicenseRef-scancode-commons-clause",
+ "LicenseRef-scancode-delorie-historical",
+ "LicenseRef-scancode-flex-2.5",
+ "LicenseRef-scancode-free-unknown",
+ "LicenseRef-scancode-gary-s-brown",
+ "LicenseRef-scancode-generic-cla",
+ "LicenseRef-scancode-generic-exception",
+ "LicenseRef-scancode-intel-osl-1993",
+ "LicenseRef-scancode-jdom",
+ "LicenseRef-scancode-mit-xfig",
+ "LicenseRef-scancode-newlib-historical",
+ "LicenseRef-scancode-nilsson-historical",
+ "LicenseRef-scancode-openssl",
+ "LicenseRef-scancode-openssl-exception-lgpl-3.0-plus",
+ "LicenseRef-scancode-openssl-nokia-psk-contribution",
+ "LicenseRef-scancode-osf-1990",
+ "LicenseRef-scancode-other-copyleft",
+ "LicenseRef-scancode-other-permissive",
+ "LicenseRef-scancode-paul-mackerras",
+ "LicenseRef-scancode-paul-mackerras-new",
+ "LicenseRef-scancode-pcre",
+ "LicenseRef-scancode-ppp",
+ "LicenseRef-scancode-proprietary-license",
+ "LicenseRef-scancode-secret-labs-2011",
+ "LicenseRef-scancode-ssleay-windows",
+ "LicenseRef-scancode-sun-source",
+ "LicenseRef-scancode-unknown",
+ "LicenseRef-scancode-unknown-license-reference",
+ "LicenseRef-scancode-unknown-spdx",
+ "LicenseRef-scancode-warranty-disclaimer",
+ "LicenseRef-scancode-xfree86-1.0",
+ "LPL-1.02",
+ "MirOS",
+ "Mit-Xfig",
+ "NAIST-2003",
+ "NOSL",
+ "NPL-1.1",
+ "Nvidia-Gov",
+ "OFL-1.1",
+ "Oracle",
+ "Oracle-technology",
+ "PSF-3.7.2",
+ "Quicklz",
+ "Ruby",
+ "Sendmail",
+ "Spencer-99",
+ "SSPL-1.0",
+ "Stlport-4.5",
+ "SZIP",
+ "TCL",
+ "TU-Berlin-1.0",
+ "Unicode-TOU",
+ "Universal-FOSS-exception-1.0",
+ "Unknown",
+ "Vcalendar",
+ "Vim",
+ "X11-Adobe-Dec",
+ "X11-Hanson",
+ "Xfree86-1.0",
+ "Xnet"
+ ]
+ },
+ "FORBIDDEN": {
+ "default": [
+ "AGPL-3.0-only",
+ "AGPL-3.0-or-later",
+ "Artistic-1.0",
+ "confluent-community-1.0"
+ ]
+ },
+ "NDA": {
+ "default": [
+ "Intel-NDA",
+ "mimepp",
+ "OracleOebs"
+ ]
+ },
+ "REQUIRE_CITATION": {
+ "default": [
+ "0BSD",
+ "AML",
+ "Apache-1.0",
+ "Apache-1.1",
+ "Apache-2.0",
+ "Apache-2.0 WITH LLVM-exception",
+ "APSL-2.0",
+ "Beerware",
+ "blessing",
+ "Brian-Gladman-3-Clause",
+ "BSD",
+ "BSD-1-Clause",
+ "BSD-2-Clause",
+ "BSD-2-Clause-Patent",
+ "BSD-2-Clause-Views",
+ "BSD-3-Clause",
+ "BSD-3-Clause WITH Google-Patent-License-Webm",
+ "BSD-3-Clause WITH Google-Patent-License-Webrtc",
+ "BSD-3-Clause-LBNL",
+ "BSD-4-Clause",
+ "BSD-4-Clause-UC",
+ "BSD-derived",
+ "Bsd-Original-Uc-1986",
+ "Bsd-Simplified-Darwin",
+ "BSD-Source-Code",
+ "Bsd-Unchanged",
+ "Bsd-Unmodified",
+ "BSL-1.0",
+ "BSLA",
+ "bzip2-1.0.6",
+ "CC-BY-1.0",
+ "CC-BY-2.0",
+ "CC-BY-2.5",
+ "CC-BY-3.0",
+ "CC-BY-4.0",
+ "CC-PDDC",
+ "CC0-1.0",
+ "Cmu-Computing-Services",
+ "CUP-Parser",
+ "curl",
+ "Custom-eigen",
+ "Custom-fft2d",
+ "Custom-fft4g",
+ "Custom-Oasis-Pkcs11",
+ "Custom-openldap",
+ "Custom-punycode",
+ "Custom-punycode-libpsl",
+ "Custom-swig",
+ "Custom-wcwidth",
+ "DOC",
+ "EDL-1.0",
+ "Facebook-SDK",
+ "FDK",
+ "Fftpack-2004",
+ "FSFAP",
+ "FTL",
+ "GPL-1.0-or-later WITH Linux-syscall-note",
+ "GPL-2.0-only WITH Classpath-exception-2.0",
+ "GPL-2.0-only WITH GCC-exception-2.0",
+ "GPL-2.0-only WITH Linux-syscall-note",
+ "GPL-2.0-or-later WITH Linux-syscall-note",
+ "GPL-3.0-only WITH Bison-exception-2.2",
+ "GPL-3.0-or-later WITH Bison-exception-2.2",
+ "H2",
+ "HPND",
+ "IBM-pibs",
+ "ICU",
+ "Ietf",
+ "IJG",
+ "Info-Zip",
+ "Intel-LLVM-SGA",
+ "Intel-Simplified",
+ "ISC",
+ "JSON",
+ "Khronos",
+ "LGPL-2.0-or-later WITH Linux-syscall-note",
+ "LGPL-2.1-only WITH Linux-syscall-note",
+ "LGPL-2.1-or-later WITH Linux-syscall-note",
+ "Libpbm",
+ "Libpng",
+ "libpng-2.0",
+ "libtiff",
+ "LicenseRef-scancode-ams-fonts",
+ "LicenseRef-scancode-bitstream",
+ "LicenseRef-scancode-mit-no-advert-export-control",
+ "LicenseRef-scancode-oasis-ws-security-spec",
+ "LicenseRef-scancode-paul-mackerras-binary",
+ "LicenseRef-scancode-swig",
+ "LicenseRef-scancode-ws-policy-specification",
+ "Linux-OpenIB",
+ "Martin-Birgmeier",
+ "Minpack",
+ "MIT",
+ "MIT WITH Musl-Exception",
+ "MIT-0",
+ "MIT-CMU",
+ "MIT-Modern-Variant",
+ "MIT-Nagy",
+ "Mit-Old-Style",
+ "MIT-open-group",
+ "Mit-Veillard-Variant",
+ "Mozilla-GC",
+ "MPL-1.0",
+ "MPL-1.1",
+ "MPL-2.0",
+ "NCSA",
+ "NetCDF",
+ "Not-Applicable",
+ "NTP",
+ "Nvidia",
+ "OGC-1.0",
+ "OLDAP-2.8",
+ "OML",
+ "OpenSSL",
+ "PayPal-SDK",
+ "PCRE",
+ "PD",
+ "PHP-3.01",
+ "PIL",
+ "Plexus",
+ "PostgreSQL",
+ "Protobuf-License",
+ "PSF",
+ "PSF-2.0",
+ "Public-Domain",
+ "Public-Domain-US-Govt",
+ "Python-2.0",
+ "Qhull",
+ "Red-Hat-Attribution",
+ "Repoze-public",
+ "RSA-1990",
+ "RSA-MD",
+ "RSA-MD4",
+ "SAX-PD",
+ "SGI-B-2.0",
+ "Sleepycat",
+ "SMLNJ",
+ "Snprintf",
+ "Softsurfer",
+ "Spencer-94",
+ "SSH-short",
+ "SSLeay",
+ "Sunpro",
+ "Unicode",
+ "Unicode-DFS-2016",
+ "Unicode-Icu-58",
+ "Unicode-Mappings",
+ "Unittest-Permissive-License",
+ "Unlicense",
+ "Unrar",
+ "UPL-1.0",
+ "Vertica",
+ "W3C",
+ "W3C-19980720",
+ "WTFPL",
+ "X11",
+ "X11-Lucent",
+ "X11-XConsortium-Veillard",
+ "YandexOpen",
+ "Zlib",
+ "zlib-acknowledgement",
+ "ZPL-2.1"
+ ],
+ "dynamic": [
+ "LGPL",
+ "LGPL-2.0-only",
+ "LGPL-2.1-only",
+ "LGPL-2.1-or-later",
+ "LGPL-3.0-only",
+ "LGPL-3.0-or-later"
+ ]
+ },
+ "REQUIRE_DERIVATIVE_DISCLOSURE": {
+ "default": [
+ "CECILL-2.0",
+ "CPL-1.0",
+ "GPL",
+ "GPL-1.0-only",
+ "GPL-1.0-or-later",
+ "GPL-1.1",
+ "GPL-2.0",
+ "GPL-2.0-only",
+ "GPL-2.0-only WITH OpenJDK-assembly-exception-1.0",
+ "GPL-2.0-or-later",
+ "GPL-2.0-or-later WITH GCC-exception-2.0",
+ "GPL-3.0-only",
+ "GPL-3.0-or-later",
+ "GPLv2+",
+ "TMate"
+ ],
+ "static": [
+ "EPL-1.0",
+ "EPL-2.0",
+ "LGPL",
+ "LGPL-2.0-only",
+ "LGPL-2.0-or-later WITH Libtool-exception",
+ "LGPL-2.0-or-later WITH Qt-LGPL-exception-1.1",
+ "LGPL-2.1-only",
+ "LGPL-2.1-or-later",
+ "LGPL-3.0-only",
+ "LGPL-3.0-or-later"
+ ]
+ },
+ "REQUIRE_MODIFICATIONS_DISCLOSURE": {
+ "default": [
+ "CDDL-1.0",
+ "CDDL-1.1"
+ ],
+ "dynamic": [
+ "EPL-1.0",
+ "EPL-2.0"
+ ]
+ },
+ "SERVICE": {
+ "default": [
+ "Service-Default-License",
+ "Service-Dll-Harness",
+ "Service-Prebuilt-Tool",
+ "Service-Py23-Proxy",
+ "Service-Unknown-License-Java"
+ ]
+ },
+ "restricted": {
+ "LGPL-1.0-or-later": {
+ "static": [
+ "REQUIRE_DERIVATIVE_DISCLOSURE"
+ ]
+ },
+ "LGPL-2.0-or-later": {
+ "static": [
+ "REQUIRE_DERIVATIVE_DISCLOSURE"
+ ],
+ "dynamic": [
+ "REQUIRE_CITATION"
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/build/conf/project_specific/yql_udf.conf b/build/conf/project_specific/yql_udf.conf
index 4c814db7e80..3fe0e075672 100644
--- a/build/conf/project_specific/yql_udf.conf
+++ b/build/conf/project_specific/yql_udf.conf
@@ -85,8 +85,8 @@ module YQL_UDF_TEST_CONTRIB: PY3TEST_BIN {
###
### https://yql.yandex-team.ru/docs/yt/udf/cpp/
macro _ADD_YQL_UDF_DEPS() {
- PEERDIR(contrib/ydb/library/yql/public/udf)
- PEERDIR(contrib/ydb/library/yql/public/udf/support)
+ PEERDIR(${YQL_BASE_DIR}/public/udf)
+ PEERDIR(${YQL_BASE_DIR}/public/udf/support)
}
macro _ADD_YQL_UDF_YDB_DEPS() {
@@ -108,7 +108,7 @@ macro _MAKE_YQL_UDF() {
_ADD_YQL_UDF_DEPS()
SET_APPEND(USER_CXXFLAGS -DBUILD_UDF)
# For Windows using declspecs
- DEFAULT(YQL_UDF_EXPORT ${ARCADIA_ROOT}/contrib/ydb/library/yql/public/udf/udfs_exports.exports)
+ DEFAULT(YQL_UDF_EXPORT ${ARCADIA_ROOT}/${YQL_BASE_DIR}/public/udf/udfs_exports.exports)
when ($WINDOWS == "yes") {
YQL_UDF_EXPORT=
@@ -326,7 +326,10 @@ module YQL_PYTHON3_UDF: YQL_UDF_MODULE {
PEERDIR(build/platform/python/ldflags)
PEERDIR(library/python/type_info)
- DEFAULT(YQL_PYTHON_UDF_EXPORT ${ARCADIA_ROOT}/yql/udfs/common/python/python_udf/python_udfs_exports.exports)
+ DEFAULT(YQL_PYTHON_UDF_EXPORT ${ARCADIA_ROOT}/${YQL_PYTHON_DIR}/python_udf/python_udfs_exports.exports)
+ when (!$YQL_PYTHON_DIR) {
+ YQL_PYTHON_UDF_EXPORT=${ARCADIA_ROOT}/${YQL_BASE_DIR}/udfs/common/python/python_udf/python_udfs_exports.exports
+ }
when ($WINDOWS == "yes") {
YQL_PYTHON_UDF_EXPORT=
diff --git a/build/conf/proto.conf b/build/conf/proto.conf
index 82f9ca58511..7c16a5cb7ac 100644
--- a/build/conf/proto.conf
+++ b/build/conf/proto.conf
@@ -208,7 +208,7 @@ macro WITH_KOTLIN_GRPC() {
# tag:proto tag:cpp-specific
macro _ADD_CPP_PROTO_OUT(Suf) {
.SEM=append_target_property PROTOC_EXTRA_OUTS $Suf ${output;hide;suf=.o:Suf} $_ADD_SEM_PROP_IF_NON_EMPTY(PROTO_NAMESPACE $PROTO_NAMESPACE)
- SET_APPEND(CPP_PROTO_OUTS \${output;hide;norel;nopath;noext;suf=$Suf:File})
+ SET_APPEND(CPP_PROTO_OUTS \${output;norel;nopath;noext;suf=$Suf:File})
# XXX fix variable expansion in plugins
SET(CPP_PROTO_SUFFIXES $CPP_PROTO_SUFFIXES $Suf)
@@ -390,14 +390,14 @@ _SEM_CPP_PROTO_CMD=target_proto_messages PRIVATE ${input:File} $CPP_PROTO_OUTS_S
# tag:proto
macro _CPP_PROTO_CMD(File) {
- .CMD=$CPP_PROTO_CMDLINE $CPP_PROTO_OPTS $CPP_PROTO_OUTS ${kv;hide:"p PB"} ${kv;hide:"pc yellow"}
+ .CMD=$CPP_PROTO_CMDLINE $CPP_PROTO_OPTS ${kv;hide:"p PB"} ${kv;hide:"pc yellow"}
.SEM=$_SEM_CPP_PROTO_CMD
.PEERDIR=contrib/libs/protobuf
}
# tag:proto
macro _CPP_VANILLA_PROTO_CMD(File) {
- .CMD=$CPP_PROTO_CMDLINE $CPP_PROTO_OPTS $CPP_PROTO_OUTS ${kv;hide:"p PB"} ${kv;hide:"pc yellow"}
+ .CMD=$CPP_PROTO_CMDLINE $CPP_PROTO_OPTS ${kv;hide:"p PB"} ${kv;hide:"pc yellow"}
.PEERDIR=contrib/libs/protobuf_std
}
@@ -408,7 +408,7 @@ _SEM_CPP_EV_CMD=target_ev_messages PRIVATE ${input:File} $CPP_EV_OUTS_SEM ${outp
# tag:proto
macro _CPP_EVLOG_CMD(File) {
- .CMD=$CPP_PROTO_CMDLINE $CPP_EV_OPTS $CPP_EV_OUTS ${kv;hide:"p EV"} ${kv;hide:"pc yellow"}
+ .CMD=$CPP_EV_CMDLINE $CPP_EV_OPTS ${kv;hide:"p EV"} ${kv;hide:"pc yellow"}
.SEM=$_SEM_CPP_EV_CMD
.PEERDIR=library/cpp/eventlog contrib/libs/protobuf
}
@@ -416,14 +416,14 @@ macro _CPP_EVLOG_CMD(File) {
# tag:proto
macro _CPP_PROTO_EVLOG_CMD(File) {
# process .proto as .ev
- .CMD=$CPP_PROTO_CMDLINE $CPP_EV_OPTS $CPP_PROTO_OUTS ${kv;hide:"p PB"} ${kv;hide:"pc yellow"}
+ .CMD=$CPP_PROTO_CMDLINE $CPP_EV_OPTS ${kv;hide:"p PB"} ${kv;hide:"pc yellow"}
.PEERDIR=library/cpp/eventlog contrib/libs/protobuf
}
# tag:proto
macro _CPP_CFGPROTO_CMD(File) {
# keep extension in output just as in EV: this is hard-coded behaviour of protoc for non-.proto extensions
- .CMD=$CPP_PROTO_CMDLINE --plugin=protoc-gen-config=${tool:"library/cpp/proto_config/plugin"} --config_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $CPP_EV_OUTS ${kv;hide:"p PB"} ${kv;hide:"pc yellow"}
+ .CMD=$CPP_EV_CMDLINE --plugin=protoc-gen-config=${tool:"library/cpp/proto_config/plugin"} --config_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE ${kv;hide:"p PB"} ${kv;hide:"pc yellow"}
.PEERDIR=library/cpp/proto_config/codegen library/cpp/proto_config/protos contrib/libs/protobuf
}
diff --git a/build/conf/ts/ts.conf b/build/conf/ts/ts.conf
index f8195874689..8343f8077eb 100644
--- a/build/conf/ts/ts.conf
+++ b/build/conf/ts/ts.conf
@@ -95,7 +95,7 @@ ESLINT_CONFIG_PATH=.eslintrc.js
###
### - ConfigPath - config path
macro TS_ESLINT_CONFIG(ConfigName) {
- SET(TS_GLOB_EXCLUDE_ADDITIONAL $GlobExpression)
+ SET(ESLINT_CONFIG_PATH $ConfigName)
}
_TS_LINT_SRCS_VALUE=
diff --git a/build/export_generators/hardcoded-cmake/generator.toml b/build/export_generators/hardcoded-cmake/generator.toml
index 5a3c9a77912..4cdb46dd7b1 100644
--- a/build/export_generators/hardcoded-cmake/generator.toml
+++ b/build/export_generators/hardcoded-cmake/generator.toml
@@ -40,6 +40,12 @@ copy=[
"cmake/global_flags.cmake",
]
+[common]
+template={ path="common_cmake_lists.jinja", dest="CMakeLists.txt" }
+
+[dir]
+template={ path="dir_cmake_lists.jinja", dest="CMakeLists{PLATFORM}.txt" }
+
[attrs.root]
project_name="str"
project_language_list="list"
diff --git a/build/export_generators/ide-gradle/.idea/vcs.xml b/build/export_generators/ide-gradle/.idea/vcs.xml
new file mode 100644
index 00000000000..fe3dd059caa
--- /dev/null
+++ b/build/export_generators/ide-gradle/.idea/vcs.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="$PROJECT_DIR$" vcs="Arc" />
+ <mapping directory="$ARCADIA_ROOT$" vcs="Arc" />
+ </component>
+</project>
diff --git a/build/export_generators/ide-gradle/generator.toml b/build/export_generators/ide-gradle/generator.toml
index 772a2626322..ce6125e8a4a 100644
--- a/build/export_generators/ide-gradle/generator.toml
+++ b/build/export_generators/ide-gradle/generator.toml
@@ -6,7 +6,8 @@ copy=[
"gradlew",
"gradlew.bat",
"gradle/wrapper/gradle-wrapper.jar",
- "gradle/wrapper/gradle-wrapper.properties"
+ "gradle/wrapper/gradle-wrapper.properties",
+ ".idea/vcs.xml"
]
[targets.jar]
diff --git a/build/external_resources/ymake/public.resources.json b/build/external_resources/ymake/public.resources.json
index a6d65ea4df6..0eb55977a80 100644
--- a/build/external_resources/ymake/public.resources.json
+++ b/build/external_resources/ymake/public.resources.json
@@ -1,19 +1,19 @@
{
"by_platform": {
"darwin": {
- "uri": "sbr:6166545215"
+ "uri": "sbr:6207250651"
},
"darwin-arm64": {
- "uri": "sbr:6166544602"
+ "uri": "sbr:6207250172"
},
"linux": {
- "uri": "sbr:6166546323"
+ "uri": "sbr:6207251522"
},
"linux-aarch64": {
- "uri": "sbr:6166544140"
+ "uri": "sbr:6207249730"
},
"win32-clang-cl": {
- "uri": "sbr:6166545839"
+ "uri": "sbr:6207251148"
}
}
}
diff --git a/build/external_resources/ymake/resources.json b/build/external_resources/ymake/resources.json
index 1681c7a5ebe..8053a372cbc 100644
--- a/build/external_resources/ymake/resources.json
+++ b/build/external_resources/ymake/resources.json
@@ -1,19 +1,19 @@
{
"by_platform": {
"darwin": {
- "uri": "sbr:6166543877"
+ "uri": "sbr:6207216114"
},
"darwin-arm64": {
- "uri": "sbr:6166542806"
+ "uri": "sbr:6207215503"
},
"linux": {
- "uri": "sbr:6166546120"
+ "uri": "sbr:6207217370"
},
"linux-aarch64": {
- "uri": "sbr:6166541594"
+ "uri": "sbr:6207214847"
},
"win32-clang-cl": {
- "uri": "sbr:6166544948"
+ "uri": "sbr:6207216771"
}
}
}
diff --git a/build/mapping.conf.json b/build/mapping.conf.json
index 0c003b8220b..81ff6ec1097 100644
--- a/build/mapping.conf.json
+++ b/build/mapping.conf.json
@@ -281,6 +281,7 @@
"6083564572": "https://devtools-registry.s3.yandex.net/6083564572",
"6137609839": "https://devtools-registry.s3.yandex.net/6137609839",
"6166545215": "https://devtools-registry.s3.yandex.net/6166545215",
+ "6207250651": "https://devtools-registry.s3.yandex.net/6207250651",
"5766171800": "https://devtools-registry.s3.yandex.net/5766171800",
"5805430761": "https://devtools-registry.s3.yandex.net/5805430761",
"5829025456": "https://devtools-registry.s3.yandex.net/5829025456",
@@ -296,6 +297,7 @@
"6083563814": "https://devtools-registry.s3.yandex.net/6083563814",
"6137609447": "https://devtools-registry.s3.yandex.net/6137609447",
"6166544602": "https://devtools-registry.s3.yandex.net/6166544602",
+ "6207250172": "https://devtools-registry.s3.yandex.net/6207250172",
"5766173070": "https://devtools-registry.s3.yandex.net/5766173070",
"5805432830": "https://devtools-registry.s3.yandex.net/5805432830",
"5829031598": "https://devtools-registry.s3.yandex.net/5829031598",
@@ -311,6 +313,7 @@
"6083566146": "https://devtools-registry.s3.yandex.net/6083566146",
"6137610792": "https://devtools-registry.s3.yandex.net/6137610792",
"6166546323": "https://devtools-registry.s3.yandex.net/6166546323",
+ "6207251522": "https://devtools-registry.s3.yandex.net/6207251522",
"5766171341": "https://devtools-registry.s3.yandex.net/5766171341",
"5805430188": "https://devtools-registry.s3.yandex.net/5805430188",
"5829023352": "https://devtools-registry.s3.yandex.net/5829023352",
@@ -326,6 +329,7 @@
"6083563061": "https://devtools-registry.s3.yandex.net/6083563061",
"6137609077": "https://devtools-registry.s3.yandex.net/6137609077",
"6166544140": "https://devtools-registry.s3.yandex.net/6166544140",
+ "6207249730": "https://devtools-registry.s3.yandex.net/6207249730",
"5766172695": "https://devtools-registry.s3.yandex.net/5766172695",
"5805432230": "https://devtools-registry.s3.yandex.net/5805432230",
"5829029743": "https://devtools-registry.s3.yandex.net/5829029743",
@@ -341,6 +345,7 @@
"6083565386": "https://devtools-registry.s3.yandex.net/6083565386",
"6137610326": "https://devtools-registry.s3.yandex.net/6137610326",
"6166545839": "https://devtools-registry.s3.yandex.net/6166545839",
+ "6207251148": "https://devtools-registry.s3.yandex.net/6207251148",
"4307890075": "https://devtools-registry.s3.yandex.net/4307890075",
"5517245192": "https://devtools-registry.s3.yandex.net/5517245192",
"4307901240": "https://devtools-registry.s3.yandex.net/4307901240",
@@ -351,6 +356,7 @@
"6164128408": "https://devtools-registry.s3.yandex.net/6164128408",
"6133419349": "https://devtools-registry.s3.yandex.net/6133419349",
"1277521710": "https://devtools-registry.s3.yandex.net/1277521710",
+ "1812152858": "https://devtools-registry.s3.yandex.net/1812152858",
"5776380974": "https://devtools-registry.s3.yandex.net/5776380974",
"5777101734": "https://devtools-registry.s3.yandex.net/5777101734",
"5909068951": "https://devtools-registry.s3.yandex.net/5909068951",
@@ -380,6 +386,8 @@
"5631255103": "https://devtools-registry.s3.yandex.net/5631255103",
"5631238759": "https://devtools-registry.s3.yandex.net/5631238759",
"5631258091": "https://devtools-registry.s3.yandex.net/5631258091",
+ "6184290684": "https://devtools-registry.s3.yandex.net/6184290684",
+ "6184289846": "https://devtools-registry.s3.yandex.net/6184289846",
"5054517618": "https://devtools-registry.s3.yandex.net/5054517618",
"5054512910": "https://devtools-registry.s3.yandex.net/5054512910",
"5054518131": "https://devtools-registry.s3.yandex.net/5054518131",
@@ -733,6 +741,7 @@
"6083564572": "devtools/ymake/bin/ymake for darwin",
"6137609839": "devtools/ymake/bin/ymake for darwin",
"6166545215": "devtools/ymake/bin/ymake for darwin",
+ "6207250651": "devtools/ymake/bin/ymake for darwin",
"5766171800": "devtools/ymake/bin/ymake for darwin-arm64",
"5805430761": "devtools/ymake/bin/ymake for darwin-arm64",
"5829025456": "devtools/ymake/bin/ymake for darwin-arm64",
@@ -748,6 +757,7 @@
"6083563814": "devtools/ymake/bin/ymake for darwin-arm64",
"6137609447": "devtools/ymake/bin/ymake for darwin-arm64",
"6166544602": "devtools/ymake/bin/ymake for darwin-arm64",
+ "6207250172": "devtools/ymake/bin/ymake for darwin-arm64",
"5766173070": "devtools/ymake/bin/ymake for linux",
"5805432830": "devtools/ymake/bin/ymake for linux",
"5829031598": "devtools/ymake/bin/ymake for linux",
@@ -763,6 +773,7 @@
"6083566146": "devtools/ymake/bin/ymake for linux",
"6137610792": "devtools/ymake/bin/ymake for linux",
"6166546323": "devtools/ymake/bin/ymake for linux",
+ "6207251522": "devtools/ymake/bin/ymake for linux",
"5766171341": "devtools/ymake/bin/ymake for linux-aarch64",
"5805430188": "devtools/ymake/bin/ymake for linux-aarch64",
"5829023352": "devtools/ymake/bin/ymake for linux-aarch64",
@@ -778,6 +789,7 @@
"6083563061": "devtools/ymake/bin/ymake for linux-aarch64",
"6137609077": "devtools/ymake/bin/ymake for linux-aarch64",
"6166544140": "devtools/ymake/bin/ymake for linux-aarch64",
+ "6207249730": "devtools/ymake/bin/ymake for linux-aarch64",
"5766172695": "devtools/ymake/bin/ymake for win32-clang-cl",
"5805432230": "devtools/ymake/bin/ymake for win32-clang-cl",
"5829029743": "devtools/ymake/bin/ymake for win32-clang-cl",
@@ -793,6 +805,7 @@
"6083565386": "devtools/ymake/bin/ymake for win32-clang-cl",
"6137610326": "devtools/ymake/bin/ymake for win32-clang-cl",
"6166545839": "devtools/ymake/bin/ymake for win32-clang-cl",
+ "6207251148": "devtools/ymake/bin/ymake for win32-clang-cl",
"4307890075": "flake8_linter for linux",
"5517245192": "flake8_linter for linux",
"4307901240": "flake8_linter for linux-aarch64",
@@ -803,6 +816,7 @@
"6164128408": "gdb-14-linux-x86_64-2f60b923acb68d45b101313954b70779c13a19b8",
"6133419349": "gdb-14-linux-x86_64-b1fa9be28bbf4ee845d6a39a049c7b60018a3695",
"1277521710": "infra/kernel/tools/atop/build/atop-static.tar.gz",
+ "1812152858": "junk/zubchick/buf/buf for linux",
"5776380974": "none-none-none-result_resources/jdk-darwin-aarch64.yandex.tgz",
"5777101734": "none-none-none-result_resources/jdk-darwin-aarch64.yandex.tgz",
"5909068951": "none-none-none-result_resources/jdk-darwin-aarch64.yandex.tgz",
@@ -832,6 +846,8 @@
"5631255103": "python3 for linux",
"5631238759": "python3 for linux-aarch64",
"5631258091": "python3.exe for win32",
+ "6184290684": "tools/flake8_linter/bin/flake8_linter for linux",
+ "6184289846": "tools/flake8_linter/bin/flake8_linter for linux-aarch64",
"5054517618": "ya-tc for darwin",
"5054512910": "ya-tc for darwin-arm64",
"5054518131": "ya-tc for linux",
diff --git a/build/platform/java/jdk/jdk18/jdk.json b/build/platform/java/jdk/jdk18/jdk.json
deleted file mode 100644
index 388b0280e27..00000000000
--- a/build/platform/java/jdk/jdk18/jdk.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "by_platform": {
- "darwin-arm64": {
- "uri": "sbr:3230746914"
- },
- "darwin-x86_64": {
- "uri": "sbr:3230741134"
- },
- "linux-x86_64": {
- "uri": "sbr:3230733063"
- },
- "win32-x86_64": {
- "uri": "sbr:3230867750"
- }
- }
-}
-
diff --git a/build/platform/java/jdk/jdk18/ya.make b/build/platform/java/jdk/jdk18/ya.make
deleted file mode 100644
index 100fb99fa0f..00000000000
--- a/build/platform/java/jdk/jdk18/ya.make
+++ /dev/null
@@ -1,10 +0,0 @@
-RESOURCES_LIBRARY()
-
-DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE_BY_JSON(JDK18 jdk.json)
-SET_RESOURCE_URI_FROM_JSON(WITH_JDK18_URI jdk.json)
-
-IF (WITH_JDK18_URI)
- DECLARE_EXTERNAL_RESOURCE(WITH_JDK18 ${WITH_JDK18_URI})
-ENDIF()
-
-END()
diff --git a/build/platform/java/jdk/ya.make b/build/platform/java/jdk/ya.make
index 34094807c97..b696766faf2 100644
--- a/build/platform/java/jdk/ya.make
+++ b/build/platform/java/jdk/ya.make
@@ -12,9 +12,6 @@ ELSEIF(JDK_REAL_VERSION == "21")
ELSEIF(JDK_REAL_VERSION == "20")
DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE_BY_JSON(JDK_DEFAULT jdk20/jdk.json)
SET_RESOURCE_URI_FROM_JSON(WITH_JDK_URI jdk20/jdk.json)
-ELSEIF(JDK_REAL_VERSION == "18")
- DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE_BY_JSON(JDK_DEFAULT jdk18/jdk.json)
- SET_RESOURCE_URI_FROM_JSON(WITH_JDK_URI jdk18/jdk.json)
ELSEIF(JDK_REAL_VERSION == "17")
DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE_BY_JSON(JDK_DEFAULT jdk17/jdk.json)
SET_RESOURCE_URI_FROM_JSON(WITH_JDK_URI jdk17/jdk.json)
@@ -38,7 +35,6 @@ RECURSE(
jdk11
jdk15
jdk17
- jdk18
jdk20
jdk21
jdk22
diff --git a/build/plugins/gobuild.py b/build/plugins/gobuild.py
index af073ff6abb..04603c2eb5f 100644
--- a/build/plugins/gobuild.py
+++ b/build/plugins/gobuild.py
@@ -160,8 +160,31 @@ def on_go_process_srcs(unit):
is_test_module = unit.enabled('GO_TEST_MODULE')
+ unit_path = unit.path()
+
# Add gofmt style checks
- if unit.enabled('_GO_FMT_ADD_CHECK'):
+ add_fmt = True
+ if not unit.enabled('_GO_FMT_ADD_CHECK'):
+ allow_skip_fmt = unit.get('_GO_FMT_ALLOW_SKIP')
+ allow_skip_fmt_list = None
+ if allow_skip_fmt:
+ allow_skip_fmt_list = unit.get('_GO_FMT_ALLOW_SKIP').split(' ')
+
+ if allow_skip_fmt_list:
+ unit_rel_path = rootrel_arc_src(unit_path, unit)
+ if unit_rel_path in allow_skip_fmt_list:
+ add_fmt = False
+ else:
+ for item in allow_skip_fmt_list:
+ if item:
+ prefix = item if item[-1] == '/' else item + '/'
+ if unit_rel_path.startswith(prefix):
+ add_fmt = False
+ break
+ if add_fmt:
+ ymake.report_configure_error('Disabling gofmt is prohibited, please contact devtools')
+
+ if add_fmt:
resolved_go_files = []
go_source_files = [] if is_test_module and unit.get(['GO_TEST_FOR_DIR']) else go_files
for path in itertools.chain(go_source_files, go_test_files, go_xtest_files):
@@ -179,8 +202,6 @@ def on_go_process_srcs(unit):
for basedir in basedirs:
unit.onadd_check(['gofmt'] + basedirs[basedir])
- unit_path = unit.path()
-
# Go coverage instrumentation (NOTE! go_files list is modified here)
if is_test_module and unit.enabled('GO_TEST_COVER'):
cover_info = []
diff --git a/build/plugins/java.py b/build/plugins/java.py
index ffd41aa66a8..4905451d8ee 100644
--- a/build/plugins/java.py
+++ b/build/plugins/java.py
@@ -142,7 +142,6 @@ def onjava_module(unit, *args):
if unit.get('ENABLE_PREVIEW_VALUE') == 'yes' and (unit.get('JDK_VERSION') or unit.get('JDK_REAL_VERSION')) in (
'15',
'17',
- '18',
'20',
'21',
'22',
@@ -415,7 +414,6 @@ def on_jdk_version_macro_check(unit, *args):
'11',
'15',
'17',
- '18',
'20',
'21',
'22',
diff --git a/build/plugins/lib/nots/package_manager/base/lockfile.py b/build/plugins/lib/nots/package_manager/base/lockfile.py
index b6b9952602b..fde0ee2b494 100644
--- a/build/plugins/lib/nots/package_manager/base/lockfile.py
+++ b/build/plugins/lib/nots/package_manager/base/lockfile.py
@@ -74,3 +74,7 @@ class BaseLockfile(object):
@abstractmethod
def validate_has_addons_flags(self):
pass
+
+ @abstractmethod
+ def get_requires_build_packages(self):
+ pass
diff --git a/build/plugins/lib/nots/package_manager/base/package_json.py b/build/plugins/lib/nots/package_manager/base/package_json.py
index 24385118006..449b386556c 100644
--- a/build/plugins/lib/nots/package_manager/base/package_json.py
+++ b/build/plugins/lib/nots/package_manager/base/package_json.py
@@ -222,3 +222,28 @@ class PackageJson(object):
"""
ws_map = self.get_workspace_map()
return {pj.get_name(): path for path, (pj, _) in ws_map.items()}
+
+ def validate_prebuilds(self, requires_build_packages: list[str]):
+ pnpm_overrides: dict[str, str] = self.data.get("pnpm", {}).get("overrides", {})
+ use_prebuild_flags: dict[str, bool] = self.data.get("@yatool/prebuilder", {}).get("usePrebuild", {})
+
+ def covered(k: str) -> bool:
+ if k.startswith("@yandex-prebuild/"):
+ return True
+ return k in use_prebuild_flags
+
+ not_covered = [key for key in requires_build_packages if not covered(key)]
+ use_prebuild_keys = [key for key in use_prebuild_flags if use_prebuild_flags[key]]
+ missing_overrides = [key for key in use_prebuild_keys if key not in pnpm_overrides]
+
+ messages = []
+
+ if not_covered:
+ messages.append("These packages possibly have addons but are not checked yet:")
+ messages.extend([f" - {key}" for key in not_covered])
+
+ if missing_overrides:
+ messages.append("These packages have addons but overrides are not set:")
+ messages.extend([f" - {key}" for key in missing_overrides])
+
+ return (not messages, messages)
diff --git a/build/plugins/lib/nots/package_manager/pnpm/lockfile.py b/build/plugins/lib/nots/package_manager/pnpm/lockfile.py
index 46558861bd1..fb8d688dea9 100644
--- a/build/plugins/lib/nots/package_manager/pnpm/lockfile.py
+++ b/build/plugins/lib/nots/package_manager/pnpm/lockfile.py
@@ -112,6 +112,16 @@ class PnpmLockfile(BaseLockfile):
return (not invalid_keys, invalid_keys)
+ def get_requires_build_packages(self):
+ packages = self.data.get("packages", {})
+ requires_build_packages = []
+
+ for key, meta in iteritems(packages):
+ if meta.get("requiresBuild"):
+ requires_build_packages.append(key[1:]) # strip leading slash from key
+
+ return requires_build_packages
+
def _parse_package_meta(key, meta, allow_file_protocol=False):
"""
diff --git a/build/plugins/lib/test_const/__init__.py b/build/plugins/lib/test_const/__init__.py
index b3c427d1489..02cb6eefc9e 100644
--- a/build/plugins/lib/test_const/__init__.py
+++ b/build/plugins/lib/test_const/__init__.py
@@ -402,7 +402,6 @@ class YaTestTags(Enum):
HugeLogs = "ya:huge_logs"
Manual = "ya:manual"
MapRootUser = "ya:map_root_user"
- NoFuse = "ya:nofuse"
NoGracefulShutdown = "ya:no_graceful_shutdown"
Norestart = "ya:norestart"
Noretries = "ya:noretries"
diff --git a/build/plugins/nots.py b/build/plugins/nots.py
index 9b0f854e179..49f003ace96 100644
--- a/build/plugins/nots.py
+++ b/build/plugins/nots.py
@@ -204,7 +204,7 @@ def on_peerdir_ts_resource(unit, *resources):
@_with_report_configure_error
def on_ts_configure(unit):
- # type: (Unit, *str) -> None
+ # type: (Unit) -> None
from lib.nots.package_manager.base import PackageJson
from lib.nots.package_manager.base.utils import build_pj_path
from lib.nots.typescript import TsConfig
@@ -575,20 +575,6 @@ def on_node_modules_configure(unit):
__set_append(unit, "_NODE_MODULES_INOUTS", _build_directives("output", ["hide"], sorted(outs)))
if pj.get_use_prebuilder():
- lf = pm.load_lockfile_from_dir(pm.sources_path)
- is_valid, invalid_keys = lf.validate_has_addons_flags()
-
- if not is_valid:
- ymake.report_configure_error(
- "Project is configured to use @yatool/prebuilder. \n"
- + "Some packages in the pnpm-lock.yaml are misconfigured.\n"
- + "Run `ya tool nots update-lockfile` to fix lockfile.\n"
- + "All packages with `requiresBuild:true` have to be marked with `hasAddons:true/false`.\n"
- + "Misconfigured keys: \n"
- + " - "
- + "\n - ".join(invalid_keys)
- )
-
unit.on_peerdir_ts_resource("@yatool/prebuilder")
unit.set(
[
@@ -597,6 +583,39 @@ def on_node_modules_configure(unit):
]
)
+ # YATOOL_PREBUILDER_0_7_0_RESOURCE_GLOBAL
+ prebuilder_major = unit.get("YATOOL_PREBUILDER-ROOT-VAR-NAME").split("_")[2]
+ logger.info(f"Detected prebuilder \033[0;32mv{prebuilder_major}.x.x\033[0;49m")
+
+ if prebuilder_major == "0":
+ # TODO: FBP-1408
+ lf = pm.load_lockfile_from_dir(pm.sources_path)
+ is_valid, invalid_keys = lf.validate_has_addons_flags()
+
+ if not is_valid:
+ ymake.report_configure_error(
+ "Project is configured to use @yatool/prebuilder. \n"
+ + "Some packages in the pnpm-lock.yaml are misconfigured.\n"
+ + "Run \033[0;32m`ya tool nots update-lockfile`\033[0;49m to fix lockfile.\n"
+ + "All packages with `requiresBuild:true` have to be marked with `hasAddons:true/false`.\n"
+ + "Misconfigured keys: \n"
+ + " - "
+ + "\n - ".join(invalid_keys)
+ )
+ else:
+ lf = pm.load_lockfile_from_dir(pm.sources_path)
+ requires_build_packages = lf.get_requires_build_packages()
+ is_valid, validation_messages = pj.validate_prebuilds(requires_build_packages)
+
+ if not is_valid:
+ ymake.report_configure_error(
+ "Project is configured to use @yatool/prebuilder. \n"
+ + "Some packages are misconfigured.\n"
+ + "Run \033[0;32m`ya tool nots update-lockfile`\033[0;49m to fix pnpm-lock.yaml and package.json.\n"
+ + "Validation details: \n"
+ + "\n".join(validation_messages)
+ )
+
@_with_report_configure_error
def on_ts_test_for_configure(unit, test_runner, default_config, node_modules_filename):
diff --git a/build/plugins/pybuild.py b/build/plugins/pybuild.py
index 1853d3524bc..a26b06911d2 100644
--- a/build/plugins/pybuild.py
+++ b/build/plugins/pybuild.py
@@ -172,6 +172,7 @@ def add_python_lint_checks(unit, py_ver, files):
"testenv/", # CI-3229
"yt/yt/", # YT-20053
"yt/python/", # YT-20053
+ "yt/python_py2/",
)
if not upath.startswith(no_lint_allowed_paths):
diff --git a/build/plugins/yql_python_udf.py b/build/plugins/yql_python_udf.py
index 50f5526e89f..18c2e9edce1 100644
--- a/build/plugins/yql_python_udf.py
+++ b/build/plugins/yql_python_udf.py
@@ -1,4 +1,5 @@
from _common import sort_by_keywords
+import ymake
def get_or_default(kv, name, default):
@@ -17,9 +18,19 @@ def onregister_yql_python_udf(unit, *args):
use_arcadia_python = unit.get('USE_ARCADIA_PYTHON') == 'yes'
py3 = unit.get('PYTHON3') == 'yes'
+ if unit.get('OPENSOURCE'):
+ if add_libra_modules:
+ ymake.report_configure_error('Libra modules are not supported in opensource python UDFs')
+ add_libra_modules = False
+
+ yql_base_dir = unit.get('YQL_BASE_DIR')
+ yql_python_dir = unit.get('YQL_PYTHON_DIR')
+ if not yql_python_dir:
+ yql_python_dir = '/'.join([yql_base_dir, 'udfs/common/python'])
+
unit.onyql_abi_version(['2', '27', '0'])
- unit.onpeerdir(['yql/udfs/common/python/python_udf'])
- unit.onpeerdir(['contrib/ydb/library/yql/public/udf'])
+ unit.onpeerdir(['/'.join([yql_python_dir, '/python_udf'])])
+ unit.onpeerdir(['/'.join([yql_base_dir, '/public/udf'])])
if add_libra_modules:
unit.onpeerdir(['quality/user_sessions/libra_arc/noyql'])
@@ -28,16 +39,16 @@ def onregister_yql_python_udf(unit, *args):
if use_arcadia_python:
flavor = 'Arcadia'
unit.onpeerdir(
- ['library/python/runtime', 'yql/udfs/common/python/main']
+ ['library/python/runtime', '/'.join([yql_python_dir, '/main'])]
if not py3
- else ['library/python/runtime_py3', 'yql/udfs/common/python/main_py3']
+ else ['library/python/runtime_py3', '/'.join([yql_python_dir, '/main_py3'])]
)
else:
flavor = 'System'
output_includes = [
- 'yql/udfs/common/python/python_udf/python_udf.h',
- 'contrib/ydb/library/yql/public/udf/udf_registrator.h',
+ '/'.join([yql_python_dir, '/python_udf/python_udf.h']),
+ '/'.join([yql_base_dir, '/public/udf/udf_registrator.h']),
]
if add_libra_modules:
output_includes.append('yql/udfs/quality/libra/module/module.h')
@@ -52,6 +63,8 @@ def onregister_yql_python_udf(unit, *args):
resource_name,
path,
libra_flag,
+ yql_base_dir,
+ yql_python_dir,
'OUT',
path,
'OUTPUT_INCLUDES',
diff --git a/build/plugins/ytest.py b/build/plugins/ytest.py
index e995e534a79..e60e71c5994 100644
--- a/build/plugins/ytest.py
+++ b/build/plugins/ytest.py
@@ -192,8 +192,6 @@ def validate_test(unit, kw):
else:
if is_force_sandbox:
errors.append('ya:force_sandbox can be used with LARGE tests only')
- if consts.YaTestTags.NoFuse in tags:
- errors.append('ya:nofuse can be used with LARGE tests only')
if consts.YaTestTags.Privileged in tags:
errors.append("ya:privileged can be used with LARGE tests only")
if in_autocheck and size == consts.TestSize.Large:
diff --git a/build/prebuilt/tools/flake8_linter/resources.json b/build/prebuilt/tools/flake8_linter/resources.json
index 351f06920fc..2bf92c44321 100644
--- a/build/prebuilt/tools/flake8_linter/resources.json
+++ b/build/prebuilt/tools/flake8_linter/resources.json
@@ -1,22 +1,22 @@
{
"by_platform": {
"darwin": {
- "uri": "sbr:5517229869"
+ "uri": "sbr:6184287521"
},
"darwin-arm64": {
- "uri": "sbr:5517214042"
+ "uri": "sbr:6184286720"
},
"linux": {
- "uri": "sbr:5517245192"
+ "uri": "sbr:6184290684"
},
"linux-aarch64": {
- "uri": "sbr:5517239368"
+ "uri": "sbr:6184289846"
},
"linux-ppc64le": {
- "uri": "sbr:5517231212"
+ "uri": "sbr:6184288710"
},
"win32": {
- "uri": "sbr:5517255802"
+ "uri": "sbr:6184285692"
}
}
}
diff --git a/build/scripts/cpp_proto_wrapper.py b/build/scripts/cpp_proto_wrapper.py
new file mode 100644
index 00000000000..8cc4ccc1bea
--- /dev/null
+++ b/build/scripts/cpp_proto_wrapper.py
@@ -0,0 +1,43 @@
+import sys
+import os
+import subprocess
+import re
+import argparse
+
+
+FROM_RE = re.compile("((?:struct|class)\s+\S+\s+)final\s*:")
+TO_RE = "\\1:"
+
+
+def parse_args() -> argparse.Namespace:
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--outputs', nargs='+', required=True)
+ parser.add_argument('subcommand', nargs='+')
+ return parser.parse_args()
+
+
+def patch_proto_file(text: str) -> tuple[str, int]:
+ return re.subn(FROM_RE, TO_RE, text)
+
+
+def main(namespace: argparse.Namespace) -> int:
+ try:
+ subprocess.check_output(namespace.subcommand, stdin=None, stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as e:
+ sys.stderr.write(
+ '{} returned non-zero exit code {}.\n{}\n'.format(' '.join(e.cmd), e.returncode, e.output.decode('utf-8'))
+ )
+ return e.returncode
+
+ for output in namespace.outputs:
+ with open(output, 'r') as f:
+ patched_text, num_patches = patch_proto_file(f.read())
+ if num_patches:
+ with open(output, 'w') as f:
+ f.write(patched_text)
+
+ return 0
+
+
+if __name__ == '__main__':
+ sys.exit(main(parse_args()))
diff --git a/build/scripts/gen_yql_python_udf.py b/build/scripts/gen_yql_python_udf.py
index ac58de3d8f8..4f7d450d395 100644
--- a/build/scripts/gen_yql_python_udf.py
+++ b/build/scripts/gen_yql_python_udf.py
@@ -1,9 +1,9 @@
import sys
TEMPLATE = """
-#include <yql/udfs/common/python/python_udf/python_udf.h>
+#include <@YQL_PYTHON_DIR@/python_udf/python_udf.h>
-#include <contrib/ydb/library/yql/public/udf/udf_registrator.h>
+#include <@YQL_BASE_DIR@/public/udf/udf_registrator.h>
#if @WITH_LIBRA@
#include <yql/udfs/quality/libra/module/module.h>
@@ -37,8 +37,8 @@ extern "C" UDF_API void SetBackTraceCallback(TBackTraceCallback callback) {
def main():
- assert len(sys.argv) == 6
- flavor, module_name, package_name, path, libra_flag = sys.argv[1:]
+ assert len(sys.argv) == 8
+ flavor, module_name, package_name, path, libra_flag, yql_base_dir, yql_python_dir = sys.argv[1:]
with open(path, 'w') as f:
f.write(
TEMPLATE.strip()
@@ -46,6 +46,8 @@ def main():
.replace('@PACKAGE_NAME@', package_name)
.replace('@FLAVOR@', flavor)
.replace('@WITH_LIBRA@', libra_flag)
+ .replace('@YQL_BASE_DIR@', yql_base_dir)
+ .replace('@YQL_PYTHON_DIR@', yql_python_dir)
)
f.write('\n')
diff --git a/build/ya.conf.json b/build/ya.conf.json
index 977c603f969..b706a5d9422 100644
--- a/build/ya.conf.json
+++ b/build/ya.conf.json
@@ -49,6 +49,20 @@
},
"formula": "build/external_resources/bloat/resources.json"
},
+ "buf": {
+ "executable": {
+ "buf": [
+ "buf"
+ ]
+ },
+ "formula": {
+ "by_platform": {
+ "linux-x86_64": {
+ "uri": "sbr:1812152858"
+ }
+ }
+ }
+ },
"clang-format": {
"executable": {
"clang-format": [
@@ -340,6 +354,22 @@
}
}
},
+ "buf": {
+ "platforms": [
+ {
+ "default": true,
+ "host": {
+ "os": "LINUX"
+ }
+ }
+ ],
+ "tools": {
+ "buf": {
+ "bottle": "buf",
+ "executable": "buf"
+ }
+ }
+ },
"clang-format": {
"platforms": [
{
@@ -1956,6 +1986,9 @@
"description": "Run bloat tool",
"visible": false
},
+ "buf": {
+ "description": "Protobuf lint and breaking change detector"
+ },
"c++": {
"description": "Run C++ compiler"
},
diff --git a/build/ymake.core.conf b/build/ymake.core.conf
index 025d3ae1f96..133c9f7ecab 100644
--- a/build/ymake.core.conf
+++ b/build/ymake.core.conf
@@ -594,10 +594,13 @@ module _BASE_UNIT: _BARE_UNIT {
PEERDIR_TAGS=CPP_PROTO CPP_FBS CPP_ROS H_IDL PY2 PY2_NATIVE YQL_UDF_STATIC __EMPTY__ RESOURCE_LIB DLL_LIB
- CPP_PROTO_CMDLINE=${cwd;rootdir;input:File} $PROTOC -I=./$PROTO_NAMESPACE -I=$ARCADIA_ROOT/$PROTO_NAMESPACE ${pre=-I=:_PROTO__INCLUDE} -I=$ARCADIA_BUILD_ROOT -I=$PROTOBUF_PATH --cpp_out=${CPP_PROTO_PLUGINS}$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $_PROTOC_FLAGS $PROTOC_STYLEGUIDE_OUT $PROTOC_PLUGIN_STYLEGUIDE ${input;rootrel:File} ${hide:PROTO_FAKEID}
- CPP_PROTO_OUTS+=${hide;output;norel;nopath;noext:File.pb.cc} ${output;main;hide;norel;nopath;noext:File.pb.h}
+ _CPP_PROTO_WRAPPER_BASE=$YMAKE_PYTHON3 ${input:"build/scripts/cpp_proto_wrapper.py"}
+ _CPP_PROTO_CMDLINE_BASE=${cwd;rootdir;input:File} $PROTOC -I=./$PROTO_NAMESPACE -I=$ARCADIA_ROOT/$PROTO_NAMESPACE ${pre=-I=:_PROTO__INCLUDE} -I=$ARCADIA_BUILD_ROOT -I=$PROTOBUF_PATH --cpp_out=${CPP_PROTO_PLUGINS}$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $_PROTOC_FLAGS $PROTOC_STYLEGUIDE_OUT $PROTOC_PLUGIN_STYLEGUIDE ${hide:PROTO_FAKEID} ${input;rootrel:File}
+ CPP_PROTO_CMDLINE=$_CPP_PROTO_WRAPPER_BASE --outputs $CPP_PROTO_OUTS -- $_CPP_PROTO_CMDLINE_BASE
+ CPP_PROTO_OUTS+=${output;norel;nopath;noext:File.pb.cc} ${output;main;norel;nopath;noext:File.pb.h}
CPP_PROTO_OUTS_SEM+=${output;main;hide;norel;nopath;noext:File.pb.h}
- CPP_EV_OUTS+=${hide;output;norel:File.pb.cc} ${hide;output;norel:File.pb.h}
+ CPP_EV_CMDLINE=$_CPP_PROTO_WRAPPER_BASE --outputs $CPP_EV_OUTS -- $_CPP_PROTO_CMDLINE_BASE
+ CPP_EV_OUTS+=${output;norel:File.pb.cc} ${output;norel:File.pb.h}
CPP_EV_OUTS_SEM+=${hide;output;norel:File.pb.h}
when ($SWIG_LANG == "perl") {
@@ -639,7 +642,7 @@ module _BASE_UNIT: _BARE_UNIT {
}
when ($PROTOC_TRANSITIVE_HEADERS == "no") {
CPP_PROTO_PLUGINS=transitive_pb_h=false:${CPP_PROTO_PLUGINS}
- CPP_PROTO_OUTS+=${output;main;hide;norel;nopath;noext:File.deps.pb.h}
+ CPP_PROTO_OUTS+=${output;main;norel;nopath;noext:File.deps.pb.h}
}
}
diff --git a/build/ymake_conf.py b/build/ymake_conf.py
index 7d733d5f594..e06439b4849 100755
--- a/build/ymake_conf.py
+++ b/build/ymake_conf.py
@@ -1732,9 +1732,9 @@ class LD(Linker):
self.ld_sdk = select(default=None, selectors=[
# -platform_version <platform> <min_version> <sdk_version>
- (target.is_macos, '-Wl,-platform_version,macos,11.0,11.0'),
- (not target.is_iossim and target.is_ios, '-Wl,-platform_version,ios,11.0,13.1'),
- (target.is_iossim, '-Wl,-platform_version,ios-simulator,14.0,14.5'),
+ (target.is_macos, '-Wl,-platform_version,macos,{MACOS_VERSION_MIN},11.0'.format(MACOS_VERSION_MIN=MACOS_VERSION_MIN)),
+ (not target.is_iossim and target.is_ios, '-Wl,-platform_version,ios,{IOS_VERSION_MIN},13.1'.format(IOS_VERSION_MIN=IOS_VERSION_MIN)),
+ (target.is_iossim, '-Wl,-platform_version,ios-simulator,{IOS_VERSION_MIN},14.5'.format(IOS_VERSION_MIN=IOS_VERSION_MIN)),
])
if self.build.profiler_type == Profiler.GProf:
diff --git a/contrib/libs/cxxsupp/libcxx/include/__config_site b/contrib/libs/cxxsupp/libcxx/include/__config_site
index 75c96d8c8f0..509de08a5df 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__config_site
+++ b/contrib/libs/cxxsupp/libcxx/include/__config_site
@@ -38,7 +38,6 @@
#define _LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR
#define _LIBCPP_ENABLE_CXX17_REMOVED_BINDERS
#define _LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE
-#define _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS
#define _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION
// should be removed in https://st.yandex-team.ru/IGNIETFERRO-1955
diff --git a/contrib/libs/cxxsupp/libcxxabi/ya.make b/contrib/libs/cxxsupp/libcxxabi/ya.make
index 2dace231703..c5d4a1ff3e0 100644
--- a/contrib/libs/cxxsupp/libcxxabi/ya.make
+++ b/contrib/libs/cxxsupp/libcxxabi/ya.make
@@ -16,6 +16,7 @@ VERSION(16.0.6)
ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/archive/llvmorg-16.0.6.tar.gz)
PEERDIR(
+ contrib/libs/libunwind
library/cpp/sanitizer/include
)
@@ -32,6 +33,7 @@ NO_RUNTIME()
NO_UTIL()
CFLAGS(
+ -D_LIBCPP_BUILDING_LIBRARY
-D_LIBCXXABI_BUILDING_LIBRARY
)
diff --git a/contrib/libs/cxxsupp/ya.make b/contrib/libs/cxxsupp/ya.make
index 12de2d6769a..e7689a6a241 100644
--- a/contrib/libs/cxxsupp/ya.make
+++ b/contrib/libs/cxxsupp/ya.make
@@ -25,10 +25,12 @@ ENDIF()
END()
-RECURSE(
- libcxx
- libcxxabi
- libcxxmsvc
- libcxxrt
- openmp
-)
+IF (NOT USE_STL_SYSTEM)
+ RECURSE(
+ libcxx
+ libcxxabi
+ libcxxmsvc
+ libcxxrt
+ openmp
+ )
+ENDIF()
diff --git a/contrib/libs/libjpeg-turbo/ya.make b/contrib/libs/libjpeg-turbo/ya.make
index e7facbe6329..1893eef41b2 100644
--- a/contrib/libs/libjpeg-turbo/ya.make
+++ b/contrib/libs/libjpeg-turbo/ya.make
@@ -126,6 +126,28 @@ ELSEIF (ARCH_X86_64)
simd/x86_64/jsimd.c
simd/x86_64/jsimdcpu.asm
)
+ELSEIF (ARCH_ARM7_NEON AND NOT MSVC)
+ ADDINCL(
+ contrib/libs/libjpeg-turbo/simd/arm
+ )
+ SRCS(
+ simd/arm/aarch32/jchuff-neon.c
+ simd/arm/aarch32/jsimd.c
+ simd/arm/aarch32/jsimd_neon.S
+ simd/arm/jccolor-neon.c
+ simd/arm/jcgray-neon.c
+ simd/arm/jcphuff-neon.c
+ simd/arm/jcsample-neon.c
+ simd/arm/jdcolor-neon.c
+ simd/arm/jdmerge-neon.c
+ simd/arm/jdsample-neon.c
+ simd/arm/jfdctfst-neon.c
+ simd/arm/jfdctint-neon.c
+ simd/arm/jidctfst-neon.c
+ simd/arm/jidctint-neon.c
+ simd/arm/jidctred-neon.c
+ simd/arm/jquanti-neon.c
+ )
ELSEIF (ARCH_ARM7 AND NOT MSVC)
SRCS(
simd/arm/aarch32/jchuff-neon.c
diff --git a/contrib/libs/nghttp2/AUTHORS b/contrib/libs/nghttp2/AUTHORS
index 178db1b96eb..de4be6d76fc 100644
--- a/contrib/libs/nghttp2/AUTHORS
+++ b/contrib/libs/nghttp2/AUTHORS
@@ -72,6 +72,8 @@ Jay Satiro
Jeff 'Raid' Baitis
Jianqing Wang
Jim Morrison
+Jiwoo Park
+Jonas Kvinge
Josh Braegger
José F. Calcerrada
Kamil Dudka
diff --git a/contrib/libs/nghttp2/README.rst b/contrib/libs/nghttp2/README.rst
index 69dc1ae5434..fc81c03979e 100644
--- a/contrib/libs/nghttp2/README.rst
+++ b/contrib/libs/nghttp2/README.rst
@@ -127,8 +127,8 @@ following libraries are required:
<https://github.com/quictls/openssl/tree/OpenSSL_1_1_1w+quic>`_; or
LibreSSL (does not support 0RTT); or aws-lc; or
`BoringSSL <https://boringssl.googlesource.com/boringssl/>`_ (commit
- 8e6a26d128484b886e6dcbfa558b993d38950bb5)
-* `ngtcp2 <https://github.com/ngtcp2/ngtcp2>`_ >= 1.0.0
+ fae0964b3d44e94ca2a2d21f86e61dabe683d130)
+* `ngtcp2 <https://github.com/ngtcp2/ngtcp2>`_ >= 1.4.0
* `nghttp3 <https://github.com/ngtcp2/nghttp3>`_ >= 1.1.0
Use ``--enable-http3`` configure option to enable HTTP/3 feature for
@@ -341,7 +341,7 @@ Build aws-lc:
.. code-block:: text
- $ git clone --depth 1 -b v1.21.0 https://github.com/aws/aws-lc
+ $ git clone --depth 1 -b v1.23.0 https://github.com/aws/aws-lc
$ cd aws-lc
$ cmake -B build -DDISABLE_GO=ON --install-prefix=$PWD/opt
$ make -j$(nproc) -C build
@@ -365,7 +365,7 @@ Build ngtcp2:
.. code-block:: text
- $ git clone --depth 1 -b v1.3.0 https://github.com/ngtcp2/ngtcp2
+ $ git clone --depth 1 -b v1.4.0 https://github.com/ngtcp2/ngtcp2
$ cd ngtcp2
$ git submodule update --init --depth 1
$ autoreconf -i
diff --git a/contrib/libs/nghttp2/config-linux.h b/contrib/libs/nghttp2/config-linux.h
index ab5107873e8..a779148e82c 100644
--- a/contrib/libs/nghttp2/config-linux.h
+++ b/contrib/libs/nghttp2/config-linux.h
@@ -263,7 +263,7 @@
#define PACKAGE_NAME "nghttp2"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "nghttp2 1.60.0"
+#define PACKAGE_STRING "nghttp2 1.61.0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "nghttp2"
@@ -272,7 +272,7 @@
#define PACKAGE_URL ""
/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.60.0"
+#define PACKAGE_VERSION "1.61.0"
/* Define to 1 if all of the C90 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for
@@ -371,7 +371,7 @@
/* Version number of package */
-#define VERSION "1.60.0"
+#define VERSION "1.61.0"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2.h b/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2.h
index a99382e8e4c..922ab784d87 100644
--- a/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2.h
+++ b/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2.h
@@ -471,7 +471,12 @@ typedef enum {
* exhaustion on server side to send these frames forever and does
* not read network.
*/
- NGHTTP2_ERR_FLOODED = -904
+ NGHTTP2_ERR_FLOODED = -904,
+ /**
+ * When a local endpoint receives too many CONTINUATION frames
+ * following a HEADER frame.
+ */
+ NGHTTP2_ERR_TOO_MANY_CONTINUATIONS = -905,
} nghttp2_error;
/**
@@ -3213,6 +3218,17 @@ nghttp2_option_set_stream_reset_rate_limit(nghttp2_option *option,
/**
* @function
*
+ * This function sets the maximum number of CONTINUATION frames
+ * following an incoming HEADER frame. If more than those frames are
+ * received, the remote endpoint is considered to be misbehaving and
+ * session will be closed. The default value is 8.
+ */
+NGHTTP2_EXTERN void nghttp2_option_set_max_continuations(nghttp2_option *option,
+ size_t val);
+
+/**
+ * @function
+ *
* Initializes |*session_ptr| for client use. The all members of
* |callbacks| are copied to |*session_ptr|. Therefore |*session_ptr|
* does not store |callbacks|. The |user_data| is an arbitrary user
diff --git a/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2ver.h b/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2ver.h
index d38b89adc62..a21d6a1605e 100644
--- a/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2ver.h
+++ b/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2ver.h
@@ -29,7 +29,7 @@
* @macro
* Version number of the nghttp2 library release
*/
-#define NGHTTP2_VERSION "1.60.0"
+#define NGHTTP2_VERSION "1.61.0"
/**
* @macro
@@ -37,6 +37,6 @@
* release. This is a 24 bit number with 8 bits for major number, 8 bits
* for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.
*/
-#define NGHTTP2_VERSION_NUM 0x013c00
+#define NGHTTP2_VERSION_NUM 0x013d00
#endif /* NGHTTP2VER_H */
diff --git a/contrib/libs/nghttp2/lib/nghttp2_helper.c b/contrib/libs/nghttp2/lib/nghttp2_helper.c
index 93dd4754b7f..b3563d98e0d 100644
--- a/contrib/libs/nghttp2/lib/nghttp2_helper.c
+++ b/contrib/libs/nghttp2/lib/nghttp2_helper.c
@@ -336,6 +336,8 @@ const char *nghttp2_strerror(int error_code) {
"closed";
case NGHTTP2_ERR_TOO_MANY_SETTINGS:
return "SETTINGS frame contained more than the maximum allowed entries";
+ case NGHTTP2_ERR_TOO_MANY_CONTINUATIONS:
+ return "Too many CONTINUATION frames following a HEADER frame";
default:
return "Unknown error code";
}
diff --git a/contrib/libs/nghttp2/lib/nghttp2_option.c b/contrib/libs/nghttp2/lib/nghttp2_option.c
index 43d4e952291..53144b9b75c 100644
--- a/contrib/libs/nghttp2/lib/nghttp2_option.c
+++ b/contrib/libs/nghttp2/lib/nghttp2_option.c
@@ -150,3 +150,8 @@ void nghttp2_option_set_stream_reset_rate_limit(nghttp2_option *option,
option->stream_reset_burst = burst;
option->stream_reset_rate = rate;
}
+
+void nghttp2_option_set_max_continuations(nghttp2_option *option, size_t val) {
+ option->opt_set_mask |= NGHTTP2_OPT_MAX_CONTINUATIONS;
+ option->max_continuations = val;
+}
diff --git a/contrib/libs/nghttp2/lib/nghttp2_option.h b/contrib/libs/nghttp2/lib/nghttp2_option.h
index 2259e1849d8..c89cb97f8bb 100644
--- a/contrib/libs/nghttp2/lib/nghttp2_option.h
+++ b/contrib/libs/nghttp2/lib/nghttp2_option.h
@@ -71,6 +71,7 @@ typedef enum {
NGHTTP2_OPT_SERVER_FALLBACK_RFC7540_PRIORITIES = 1 << 13,
NGHTTP2_OPT_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION = 1 << 14,
NGHTTP2_OPT_STREAM_RESET_RATE_LIMIT = 1 << 15,
+ NGHTTP2_OPT_MAX_CONTINUATIONS = 1 << 16,
} nghttp2_option_flag;
/**
@@ -99,6 +100,10 @@ struct nghttp2_option {
*/
size_t max_settings;
/**
+ * NGHTTP2_OPT_MAX_CONTINUATIONS
+ */
+ size_t max_continuations;
+ /**
* Bitwise OR of nghttp2_option_flag to determine that which fields
* are specified.
*/
diff --git a/contrib/libs/nghttp2/lib/nghttp2_session.c b/contrib/libs/nghttp2/lib/nghttp2_session.c
index 226cdd59e8e..004a4dffaa7 100644
--- a/contrib/libs/nghttp2/lib/nghttp2_session.c
+++ b/contrib/libs/nghttp2/lib/nghttp2_session.c
@@ -497,6 +497,7 @@ static int session_new(nghttp2_session **session_ptr,
(*session_ptr)->max_send_header_block_length = NGHTTP2_MAX_HEADERSLEN;
(*session_ptr)->max_outbound_ack = NGHTTP2_DEFAULT_MAX_OBQ_FLOOD_ITEM;
(*session_ptr)->max_settings = NGHTTP2_DEFAULT_MAX_SETTINGS;
+ (*session_ptr)->max_continuations = NGHTTP2_DEFAULT_MAX_CONTINUATIONS;
if (option) {
if ((option->opt_set_mask & NGHTTP2_OPT_NO_AUTO_WINDOW_UPDATE) &&
@@ -585,6 +586,10 @@ static int session_new(nghttp2_session **session_ptr,
option->stream_reset_burst,
option->stream_reset_rate);
}
+
+ if (option->opt_set_mask & NGHTTP2_OPT_MAX_CONTINUATIONS) {
+ (*session_ptr)->max_continuations = option->max_continuations;
+ }
}
rv = nghttp2_hd_deflate_init2(&(*session_ptr)->hd_deflater,
@@ -979,7 +984,14 @@ static int session_attach_stream_item(nghttp2_session *session,
return 0;
}
- return session_ob_data_push(session, stream);
+ rv = session_ob_data_push(session, stream);
+ if (rv != 0) {
+ nghttp2_stream_detach_item(stream);
+
+ return rv;
+ }
+
+ return 0;
}
static void session_detach_stream_item(nghttp2_session *session,
@@ -1309,9 +1321,11 @@ nghttp2_stream *nghttp2_session_open_stream(nghttp2_session *session,
assert((stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES) ||
nghttp2_stream_in_dep_tree(stream));
+ nghttp2_session_detach_idle_stream(session, stream);
+
if (nghttp2_stream_in_dep_tree(stream)) {
assert(!(stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES));
- nghttp2_session_detach_idle_stream(session, stream);
+
rv = nghttp2_stream_dep_remove(stream);
if (rv != 0) {
return NULL;
@@ -1471,6 +1485,21 @@ int nghttp2_session_close_stream(nghttp2_session *session, int32_t stream_id,
DEBUGF("stream: stream(%p)=%d close\n", stream, stream->stream_id);
+ /* We call on_stream_close_callback even if stream->state is
+ NGHTTP2_STREAM_INITIAL. This will happen while sending request
+ HEADERS, a local endpoint receives RST_STREAM for that stream. It
+ may be PROTOCOL_ERROR, but without notifying stream closure will
+ hang the stream in a local endpoint.
+ */
+
+ if (session->callbacks.on_stream_close_callback) {
+ if (session->callbacks.on_stream_close_callback(
+ session, stream_id, error_code, session->user_data) != 0) {
+
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
+ }
+ }
+
if (stream->item) {
nghttp2_outbound_item *item;
@@ -1488,21 +1517,6 @@ int nghttp2_session_close_stream(nghttp2_session *session, int32_t stream_id,
}
}
- /* We call on_stream_close_callback even if stream->state is
- NGHTTP2_STREAM_INITIAL. This will happen while sending request
- HEADERS, a local endpoint receives RST_STREAM for that stream. It
- may be PROTOCOL_ERROR, but without notifying stream closure will
- hang the stream in a local endpoint.
- */
-
- if (session->callbacks.on_stream_close_callback) {
- if (session->callbacks.on_stream_close_callback(
- session, stream_id, error_code, session->user_data) != 0) {
-
- return NGHTTP2_ERR_CALLBACK_FAILURE;
- }
- }
-
is_my_stream_id = nghttp2_session_is_my_stream_id(session, stream_id);
/* pushed streams which is not opened yet is not counted toward max
@@ -1559,6 +1573,11 @@ int nghttp2_session_destroy_stream(nghttp2_session *session,
}
}
+ if (stream->queued &&
+ (stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES)) {
+ session_ob_data_remove(session, stream);
+ }
+
nghttp2_map_remove(&session->streams, stream->stream_id);
nghttp2_stream_free(stream);
nghttp2_mem_free(mem, stream);
@@ -6812,6 +6831,8 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session,
}
}
session_inbound_frame_reset(session);
+
+ session->num_continuations = 0;
}
break;
}
@@ -6933,6 +6954,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session,
}
#endif /* DEBUGBUILD */
+ if (++session->num_continuations > session->max_continuations) {
+ return NGHTTP2_ERR_TOO_MANY_CONTINUATIONS;
+ }
+
readlen = inbound_frame_buf_read(iframe, in, last);
in += readlen;
diff --git a/contrib/libs/nghttp2/lib/nghttp2_session.h b/contrib/libs/nghttp2/lib/nghttp2_session.h
index b119329a04d..ef8f7b27d67 100644
--- a/contrib/libs/nghttp2/lib/nghttp2_session.h
+++ b/contrib/libs/nghttp2/lib/nghttp2_session.h
@@ -110,6 +110,10 @@ typedef struct {
#define NGHTTP2_DEFAULT_STREAM_RESET_BURST 1000
#define NGHTTP2_DEFAULT_STREAM_RESET_RATE 33
+/* The default max number of CONTINUATION frames following an incoming
+ HEADER frame. */
+#define NGHTTP2_DEFAULT_MAX_CONTINUATIONS 8
+
/* Internal state when receiving incoming frame */
typedef enum {
/* Receiving frame header */
@@ -290,6 +294,12 @@ struct nghttp2_session {
size_t max_send_header_block_length;
/* The maximum number of settings accepted per SETTINGS frame. */
size_t max_settings;
+ /* The maximum number of CONTINUATION frames following an incoming
+ HEADER frame. */
+ size_t max_continuations;
+ /* The number of CONTINUATION frames following an incoming HEADER
+ frame. This variable is reset when END_HEADERS flag is seen. */
+ size_t num_continuations;
/* Next Stream ID. Made unsigned int to detect >= (1 << 31). */
uint32_t next_stream_id;
/* The last stream ID this session initiated. For client session,
diff --git a/contrib/libs/nghttp2/ya.make b/contrib/libs/nghttp2/ya.make
index 12c83b34a53..c12d6e78edd 100644
--- a/contrib/libs/nghttp2/ya.make
+++ b/contrib/libs/nghttp2/ya.make
@@ -9,9 +9,9 @@ LICENSE(
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.60.0)
+VERSION(1.61.0)
-ORIGINAL_SOURCE(https://github.com/nghttp2/nghttp2/archive/v1.60.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/nghttp2/nghttp2/archive/v1.61.0.tar.gz)
ADDINCL(
GLOBAL contrib/libs/nghttp2/lib/includes
diff --git a/contrib/libs/opentelemetry-proto/CHANGELOG.md b/contrib/libs/opentelemetry-proto/CHANGELOG.md
index ab793a015e7..5e824b6d429 100644
--- a/contrib/libs/opentelemetry-proto/CHANGELOG.md
+++ b/contrib/libs/opentelemetry-proto/CHANGELOG.md
@@ -4,13 +4,28 @@
Full list of differences found in [this compare](https://github.com/open-telemetry/opentelemetry-proto/compare/v1.1.0...main).
+### Added
+
+### Changed
+
+## 1.2.0 - 2024-03-29
+
+### Added
+
+* Indicate if a `Span`'s parent or link is remote using 2 bit flag.
+ [#484](https://github.com/open-telemetry/opentelemetry-proto/pull/484)
+* Add metric.metadata for supporting additional metadata on metrics
+ [#514](https://github.com/open-telemetry/opentelemetry-proto/pull/514)
+
+### Changed
+
## 1.1.0 - 2024-01-10
Full list of differences found in [this compare](https://github.com/open-telemetry/opentelemetry-proto/compare/v1.0.0...v1.1.0).
### Added
-* Add `flags` field to `Span` and `Span/Link` for W3C-specified Trace Context flags .
+* Add `flags` field to `Span` and `Span/Link` for W3C-specified Trace Context flags.
[#503](https://github.com/open-telemetry/opentelemetry-proto/pull/503)
### Changed
diff --git a/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.proto b/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.proto
index 3394aee9338..19bb7ff8d53 100644
--- a/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.proto
+++ b/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.proto
@@ -188,6 +188,15 @@ message Metric {
ExponentialHistogram exponential_histogram = 10;
Summary summary = 11;
}
+
+ // Additional metadata attributes that describe the metric. [Optional].
+ // Attributes are non-identifying.
+ // Consumers SHOULD NOT need to be aware of these attributes.
+ // These attributes MAY be used to encode information allowing
+ // for lossless roundtrip translation to / from another data model.
+ // Attribute keys MUST be unique (it is not allowed to have more than one
+ // attribute with the same key).
+ repeated opentelemetry.proto.common.v1.KeyValue metadata = 12;
}
// Gauge represents the type of a scalar metric that always exports the
diff --git a/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.proto b/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.proto
index a1fdfa3ac97..5cb2f3ce1cd 100644
--- a/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.proto
+++ b/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.proto
@@ -109,20 +109,27 @@ message Span {
// field must be empty. The ID is an 8-byte array.
bytes parent_span_id = 4;
- // Flags, a bit field. 8 least significant bits are the trace
- // flags as defined in W3C Trace Context specification. Readers
- // MUST not assume that 24 most significant bits will be zero.
- // To read the 8-bit W3C trace flag, use `flags & SPAN_FLAGS_TRACE_FLAGS_MASK`.
+ // Flags, a bit field.
+ //
+ // Bits 0-7 (8 least significant bits) are the trace flags as defined in W3C Trace
+ // Context specification. To read the 8-bit W3C trace flag, use
+ // `flags & SPAN_FLAGS_TRACE_FLAGS_MASK`.
+ //
+ // See https://www.w3.org/TR/trace-context-2/#trace-flags for the flag definitions.
+ //
+ // Bits 8 and 9 represent the 3 states of whether a span's parent
+ // is remote. The states are (unknown, is not remote, is remote).
+ // To read whether the value is known, use `(flags & SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK) != 0`.
+ // To read whether the span is remote, use `(flags & SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK) != 0`.
//
// When creating span messages, if the message is logically forwarded from another source
// with an equivalent flags fields (i.e., usually another OTLP span message), the field SHOULD
// be copied as-is. If creating from a source that does not have an equivalent flags field
- // (such as a runtime representation of an OpenTelemetry span), the high 24 bits MUST
+ // (such as a runtime representation of an OpenTelemetry span), the high 22 bits MUST
// be set to zero.
+ // Readers MUST NOT assume that bits 10-31 (22 most significant bits) will be zero.
//
// [Optional].
- //
- // See https://www.w3.org/TR/trace-context-2/#trace-flags for the flag definitions.
fixed32 flags = 16;
// A description of the span's operation.
@@ -259,14 +266,23 @@ message Span {
// then no attributes were dropped.
uint32 dropped_attributes_count = 5;
- // Flags, a bit field. 8 least significant bits are the trace
- // flags as defined in W3C Trace Context specification. Readers
- // MUST not assume that 24 most significant bits will be zero.
- // When creating new spans, the most-significant 24-bits MUST be
- // zero. To read the 8-bit W3C trace flag (use flags &
- // SPAN_FLAGS_TRACE_FLAGS_MASK). [Optional].
+ // Flags, a bit field.
+ //
+ // Bits 0-7 (8 least significant bits) are the trace flags as defined in W3C Trace
+ // Context specification. To read the 8-bit W3C trace flag, use
+ // `flags & SPAN_FLAGS_TRACE_FLAGS_MASK`.
//
// See https://www.w3.org/TR/trace-context-2/#trace-flags for the flag definitions.
+ //
+ // Bits 8 and 9 represent the 3 states of whether the link is remote.
+ // The states are (unknown, is not remote, is remote).
+ // To read whether the value is known, use `(flags & SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK) != 0`.
+ // To read whether the link is remote, use `(flags & SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK) != 0`.
+ //
+ // Readers MUST NOT assume that bits 10-31 (22 most significant bits) will be zero.
+ // When creating new spans, bits 10-31 (most-significant 22-bits) MUST be zero.
+ //
+ // [Optional].
fixed32 flags = 6;
}
@@ -329,5 +345,11 @@ enum SpanFlags {
// Bits 0-7 are used for trace flags.
SPAN_FLAGS_TRACE_FLAGS_MASK = 0x000000FF;
- // Bits 8-31 are reserved for future use.
+ // Bits 8 and 9 are used to indicate that the parent span or link span is remote.
+ // Bit 8 (`HAS_IS_REMOTE`) indicates whether the value is known.
+ // Bit 9 (`IS_REMOTE`) indicates whether the span or link is remote.
+ SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK = 0x00000100;
+ SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK = 0x00000200;
+
+ // Bits 10-31 are reserved for future use.
}
diff --git a/contrib/libs/opentelemetry-proto/ya.make b/contrib/libs/opentelemetry-proto/ya.make
index 14dfa177e8f..8a33a1117ed 100644
--- a/contrib/libs/opentelemetry-proto/ya.make
+++ b/contrib/libs/opentelemetry-proto/ya.make
@@ -6,9 +6,9 @@ LICENSE(Apache-2.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.1.0)
+VERSION(1.2.0)
-ORIGINAL_SOURCE(https://github.com/open-telemetry/opentelemetry-proto/archive/v1.1.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/open-telemetry/opentelemetry-proto/archive/v1.2.0.tar.gz)
PY_NAMESPACE(.)
diff --git a/contrib/libs/pybind11/include/pybind11/pytypes.h b/contrib/libs/pybind11/include/pybind11/pytypes.h
index e48ecf676f2..1d15a7bd8c9 100644
--- a/contrib/libs/pybind11/include/pybind11/pytypes.h
+++ b/contrib/libs/pybind11/include/pybind11/pytypes.h
@@ -266,11 +266,6 @@ public:
this function automatically. Returns a reference to itself.
\endrst */
const handle &dec_ref() const & {
-#ifdef Py_DEBUG
- if (!Py_IsInitialized()) {
- return *this;
- }
-#endif
#ifdef PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF
if (m_ptr != nullptr && !PyGILState_Check()) {
throw_gilstate_error("pybind11::handle::dec_ref()");
diff --git a/contrib/python/argcomplete/py3/.dist-info/METADATA b/contrib/python/argcomplete/py3/.dist-info/METADATA
index acf27c40a4e..ffefd85b8cd 100644
--- a/contrib/python/argcomplete/py3/.dist-info/METADATA
+++ b/contrib/python/argcomplete/py3/.dist-info/METADATA
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: argcomplete
-Version: 3.2.3
+Version: 3.3.0
Summary: Bash tab completion for argparse
Home-page: https://github.com/kislyuk/argcomplete
Author: Andrey Kislyuk
diff --git a/contrib/python/argcomplete/py3/argcomplete/packages/_argparse.py b/contrib/python/argcomplete/py3/argcomplete/packages/_argparse.py
index 7a8b4fc8213..2a064f9a8f7 100644
--- a/contrib/python/argcomplete/py3/argcomplete/packages/_argparse.py
+++ b/contrib/python/argcomplete/py3/argcomplete/packages/_argparse.py
@@ -162,7 +162,10 @@ class IntrospectiveArgumentParser(ArgumentParser):
def consume_optional(start_index):
# get the optional identified at this index
option_tuple = option_string_indices[start_index]
- action, option_string, explicit_arg = option_tuple
+ if len(option_tuple) == 3:
+ action, option_string, explicit_arg = option_tuple
+ else: # Python 3.11.9+, 3.12.3+, 3.13+
+ action, option_string, _, explicit_arg = option_tuple
# identify additional optionals in the same arg string
# (e.g. -xyz is the same as -x -y -z if no args are required)
diff --git a/contrib/python/argcomplete/py3/ya.make b/contrib/python/argcomplete/py3/ya.make
index 02e0bd87f85..9b867e4d8bc 100644
--- a/contrib/python/argcomplete/py3/ya.make
+++ b/contrib/python/argcomplete/py3/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(3.2.3)
+VERSION(3.3.0)
LICENSE(Apache-2.0)
diff --git a/contrib/python/clickhouse-connect/.dist-info/METADATA b/contrib/python/clickhouse-connect/.dist-info/METADATA
index 914107f75a4..0d75e95b0e4 100644
--- a/contrib/python/clickhouse-connect/.dist-info/METADATA
+++ b/contrib/python/clickhouse-connect/.dist-info/METADATA
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: clickhouse-connect
-Version: 0.7.6
+Version: 0.7.7
Summary: ClickHouse Database Core Driver for Python, Pandas, and Superset
Home-page: https://github.com/ClickHouse/clickhouse-connect
Author: ClickHouse Inc.
diff --git a/contrib/python/clickhouse-connect/clickhouse_connect/__version__.py b/contrib/python/clickhouse-connect/clickhouse_connect/__version__.py
index 4a603d90096..9e59d8f8e18 100644
--- a/contrib/python/clickhouse-connect/clickhouse_connect/__version__.py
+++ b/contrib/python/clickhouse-connect/clickhouse_connect/__version__.py
@@ -1 +1 @@
-version = '0.7.6'
+version = '0.7.7'
diff --git a/contrib/python/clickhouse-connect/clickhouse_connect/cc_sqlalchemy/datatypes/base.py b/contrib/python/clickhouse-connect/clickhouse_connect/cc_sqlalchemy/datatypes/base.py
index 14d60351f42..0c0d25e6b0a 100644
--- a/contrib/python/clickhouse-connect/clickhouse_connect/cc_sqlalchemy/datatypes/base.py
+++ b/contrib/python/clickhouse-connect/clickhouse_connect/cc_sqlalchemy/datatypes/base.py
@@ -5,7 +5,7 @@ from sqlalchemy.exc import CompileError
from clickhouse_connect.datatypes.base import ClickHouseType, TypeDef, EMPTY_TYPE_DEF
from clickhouse_connect.datatypes.registry import parse_name, type_map
-from clickhouse_connect.driver.query import format_query_value
+from clickhouse_connect.driver.query import str_query_value
logger = logging.getLogger(__name__)
@@ -96,12 +96,12 @@ class ChSqlaType:
method and should be able to ignore literal_processor definitions in the dialect, which are verbose and
confusing.
"""
- return format_query_value
+ return str_query_value
def _compiler_dispatch(self, _visitor, **_):
"""
Override for the SqlAlchemy TypeEngine _compiler_dispatch method to sidestep unnecessary layers and complexity
- when generating the type name. The underlying ClickHouseType generates the correct name
+ when generating the type name. The underlying ClickHouseType generates the correct name for the type
:return: Name generated by the underlying driver.
"""
return self.name
diff --git a/contrib/python/clickhouse-connect/clickhouse_connect/driver/client.py b/contrib/python/clickhouse-connect/clickhouse_connect/driver/client.py
index cf16ec24ece..3cce716372d 100644
--- a/contrib/python/clickhouse-connect/clickhouse_connect/driver/client.py
+++ b/contrib/python/clickhouse-connect/clickhouse_connect/driver/client.py
@@ -256,8 +256,7 @@ class Client(ABC):
settings: Optional[Dict[str, Any]] = None,
fmt: str = None,
use_database: bool = True,
- external_data: Optional[ExternalData] = None,
- stream: bool = False) -> Union[bytes, io.IOBase]:
+ external_data: Optional[ExternalData] = None) -> bytes:
"""
Query method that simply returns the raw ClickHouse format bytes
:param query: Query statement/format string
@@ -270,6 +269,25 @@ class Client(ABC):
:return: bytes representing raw ClickHouse return value based on format
"""
+ @abstractmethod
+ def raw_stream(self, query: str,
+ parameters: Optional[Union[Sequence, Dict[str, Any]]] = None,
+ settings: Optional[Dict[str, Any]] = None,
+ fmt: str = None,
+ use_database: bool = True,
+ external_data: Optional[ExternalData] = None) -> io.IOBase:
+ """
+ Query method that returns the result as an io.IOBase iterator
+ :param query: Query statement/format string
+ :param parameters: Optional dictionary used to format the query
+ :param settings: Optional dictionary of ClickHouse settings (key/string values)
+ :param fmt: ClickHouse output format
+ :param use_database Send the database parameter to ClickHouse so the command will be executed in the client
+ database context.
+ :param external_data External data to send with the query
+ :return: io.IOBase stream/iterator for the result
+ """
+
# pylint: disable=duplicate-code,too-many-arguments,unused-argument
def query_np(self,
query: Optional[str] = None,
@@ -487,12 +505,11 @@ class Client(ABC):
:return: Generator that yields a PyArrow.Table for per block representing the result set
"""
settings = self._update_arrow_settings(settings, use_strings)
- return to_arrow_batches(self.raw_query(query,
- parameters,
- settings,
- fmt='ArrowStream',
- external_data=external_data,
- stream=True))
+ return to_arrow_batches(self.raw_stream(query,
+ parameters,
+ settings,
+ fmt='ArrowStream',
+ external_data=external_data))
def _update_arrow_settings(self,
settings: Optional[Dict[str, Any]],
diff --git a/contrib/python/clickhouse-connect/clickhouse_connect/driver/httpclient.py b/contrib/python/clickhouse-connect/clickhouse_connect/driver/httpclient.py
index 1a35470b437..7202bc2ef51 100644
--- a/contrib/python/clickhouse-connect/clickhouse_connect/driver/httpclient.py
+++ b/contrib/python/clickhouse-connect/clickhouse_connect/driver/httpclient.py
@@ -1,3 +1,4 @@
+import io
import json
import logging
import re
@@ -436,27 +437,36 @@ class HttpClient(Client):
else:
self._error_handler(response)
- def ping(self):
- """
- See BaseClient doc_string for this method
- """
- try:
- response = self.http.request('GET', f'{self.url}/ping', timeout=3)
- return 200 <= response.status < 300
- except HTTPError:
- logger.debug('ping failed', exc_info=True)
- return False
-
def raw_query(self, query: str,
parameters: Optional[Union[Sequence, Dict[str, Any]]] = None,
settings: Optional[Dict[str, Any]] = None,
fmt: str = None,
use_database: bool = True,
- external_data: Optional[ExternalData] = None,
- stream: bool = False) -> Union[bytes, HTTPResponse]:
+ external_data: Optional[ExternalData] = None) -> bytes:
"""
See BaseClient doc_string for this method
"""
+ body, params, fields = self._prep_raw_query(query, parameters, settings, fmt, use_database, external_data)
+ return self._raw_request(body, params, fields=fields).data
+
+ def raw_stream(self, query: str,
+ parameters: Optional[Union[Sequence, Dict[str, Any]]] = None,
+ settings: Optional[Dict[str, Any]] = None,
+ fmt: str = None,
+ use_database: bool = True,
+ external_data: Optional[ExternalData] = None) -> io.IOBase:
+ """
+ See BaseClient doc_string for this method
+ """
+ body, params, fields = self._prep_raw_query(query, parameters, settings, fmt, use_database, external_data)
+ return self._raw_request(body, params, fields=fields, stream=True)
+
+ def _prep_raw_query(self, query: str,
+ parameters: Optional[Union[Sequence, Dict[str, Any]]],
+ settings: Optional[Dict[str, Any]],
+ fmt: str,
+ use_database: bool,
+ external_data: Optional[ExternalData]):
final_query, bind_params = bind_query(query, parameters, self.server_tz)
if fmt:
final_query += f'\n FORMAT {fmt}'
@@ -472,8 +482,18 @@ class HttpClient(Client):
else:
body = final_query
fields = None
- response = self._raw_request(body, params, fields=fields, stream=stream)
- return response if stream else response.data
+ return body, params, fields
+
+ def ping(self):
+ """
+ See BaseClient doc_string for this method
+ """
+ try:
+ response = self.http.request('GET', f'{self.url}/ping', timeout=3)
+ return 200 <= response.status < 300
+ except HTTPError:
+ logger.debug('ping failed', exc_info=True)
+ return False
def close(self):
if self._owns_pool_manager:
diff --git a/contrib/python/clickhouse-connect/clickhouse_connect/driver/query.py b/contrib/python/clickhouse-connect/clickhouse_connect/driver/query.py
index 549dfc37177..42957d8eb8d 100644
--- a/contrib/python/clickhouse-connect/clickhouse_connect/driver/query.py
+++ b/contrib/python/clickhouse-connect/clickhouse_connect/driver/query.py
@@ -399,13 +399,13 @@ def format_query_value(value: Any, server_tz: tzinfo = pytz.UTC):
if isinstance(value, date):
return f"'{value.isoformat()}'"
if isinstance(value, list):
- return f"[{', '.join(format_query_value(x, server_tz) for x in value)}]"
+ return f"[{', '.join(str_query_value(x, server_tz) for x in value)}]"
if isinstance(value, tuple):
- return f"({', '.join(format_query_value(x, server_tz) for x in value)})"
+ return f"({', '.join(str_query_value(x, server_tz) for x in value)})"
if isinstance(value, dict):
if common.get_setting('dict_parameter_format') == 'json':
return format_str(any_to_json(value).decode())
- pairs = [format_query_value(k, server_tz) + ':' + format_query_value(v, server_tz)
+ pairs = [str_query_value(k, server_tz) + ':' + str_query_value(v, server_tz)
for k, v in value.items()]
return f"{{{', '.join(pairs)}}}"
if isinstance(value, Enum):
@@ -415,6 +415,10 @@ def format_query_value(value: Any, server_tz: tzinfo = pytz.UTC):
return value
+def str_query_value(value: Any, server_tz: tzinfo = pytz.UTC):
+ return str(format_query_value(value, server_tz))
+
+
# pylint: disable=too-many-branches
def format_bind_value(value: Any, server_tz: tzinfo = pytz.UTC, top_level: bool = True):
"""
diff --git a/contrib/python/clickhouse-connect/clickhouse_connect/tools/testing.py b/contrib/python/clickhouse-connect/clickhouse_connect/tools/testing.py
index ef3f835e185..7084c71a406 100644
--- a/contrib/python/clickhouse-connect/clickhouse_connect/tools/testing.py
+++ b/contrib/python/clickhouse-connect/clickhouse_connect/tools/testing.py
@@ -1,7 +1,7 @@
from typing import Sequence, Optional, Union, Dict, Any
from clickhouse_connect.driver import Client
-from clickhouse_connect.driver.query import format_query_value, quote_identifier
+from clickhouse_connect.driver.query import quote_identifier, str_query_value
class TableContext:
@@ -44,8 +44,7 @@ class TableContext:
if self.settings:
create_cmd += ' SETTINGS '
for key, value in self.settings.items():
-
- create_cmd += f'{key} = {format_query_value(value)}, '
+ create_cmd += f'{key} = {str_query_value(value)}, '
if create_cmd.endswith(', '):
create_cmd = create_cmd[:-2]
self.client.command(create_cmd)
diff --git a/contrib/python/clickhouse-connect/ya.make b/contrib/python/clickhouse-connect/ya.make
index 9c9ea8d7dfc..c48e09768d4 100644
--- a/contrib/python/clickhouse-connect/ya.make
+++ b/contrib/python/clickhouse-connect/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(0.7.6)
+VERSION(0.7.7)
LICENSE(Apache-2.0)
diff --git a/contrib/python/fonttools/.dist-info/METADATA b/contrib/python/fonttools/.dist-info/METADATA
index b374ebc4999..60b6e6df808 100644
--- a/contrib/python/fonttools/.dist-info/METADATA
+++ b/contrib/python/fonttools/.dist-info/METADATA
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: fonttools
-Version: 4.50.0
+Version: 4.51.0
Summary: Tools to manipulate font files
Home-page: http://github.com/fonttools/fonttools
Author: Just van Rossum
@@ -375,6 +375,12 @@ Have fun!
Changelog
~~~~~~~~~
+4.51.0 (released 2024-04-05)
+----------------------------
+
+- [ttLib] Optimization on loading aux fields (#3464).
+- [ttFont] Add reorderGlyphs (#3468).
+
4.50.0 (released 2024-03-15)
----------------------------
diff --git a/contrib/python/fonttools/fontTools/__init__.py b/contrib/python/fonttools/fontTools/__init__.py
index ead49e26c89..5621f391f9b 100644
--- a/contrib/python/fonttools/fontTools/__init__.py
+++ b/contrib/python/fonttools/fontTools/__init__.py
@@ -3,6 +3,6 @@ from fontTools.misc.loggingTools import configLogger
log = logging.getLogger(__name__)
-version = __version__ = "4.50.0"
+version = __version__ = "4.51.0"
__all__ = ["version", "log", "configLogger"]
diff --git a/contrib/python/fonttools/fontTools/ttLib/reorderGlyphs.py b/contrib/python/fonttools/fontTools/ttLib/reorderGlyphs.py
new file mode 100644
index 00000000000..3221261f16a
--- /dev/null
+++ b/contrib/python/fonttools/fontTools/ttLib/reorderGlyphs.py
@@ -0,0 +1,278 @@
+"""Reorder glyphs in a font."""
+
+__author__ = "Rod Sheeter"
+
+# See https://docs.google.com/document/d/1h9O-C_ndods87uY0QeIIcgAMiX2gDTpvO_IhMJsKAqs/
+# for details.
+
+
+from fontTools import ttLib
+from fontTools.ttLib.tables import otBase
+from fontTools.ttLib.tables import otTables as ot
+from abc import ABC, abstractmethod
+from dataclasses import dataclass
+from collections import deque
+from typing import (
+ Optional,
+ Any,
+ Callable,
+ Deque,
+ Iterable,
+ List,
+ NamedTuple,
+ Tuple,
+ Union,
+)
+
+
+_COVERAGE_ATTR = "Coverage" # tables that have one coverage use this name
+
+
+def _sort_by_gid(
+ get_glyph_id: Callable[[str], int],
+ glyphs: List[str],
+ parallel_list: Optional[List[Any]],
+):
+ if parallel_list:
+ reordered = sorted(
+ ((g, e) for g, e in zip(glyphs, parallel_list)),
+ key=lambda t: get_glyph_id(t[0]),
+ )
+ sorted_glyphs, sorted_parallel_list = map(list, zip(*reordered))
+ parallel_list[:] = sorted_parallel_list
+ else:
+ sorted_glyphs = sorted(glyphs, key=get_glyph_id)
+
+ glyphs[:] = sorted_glyphs
+
+
+def _get_dotted_attr(value: Any, dotted_attr: str) -> Any:
+ attr_names = dotted_attr.split(".")
+ assert attr_names
+
+ while attr_names:
+ attr_name = attr_names.pop(0)
+ value = getattr(value, attr_name)
+ return value
+
+
+class ReorderRule(ABC):
+ """A rule to reorder something in a font to match the fonts glyph order."""
+
+ @abstractmethod
+ def apply(self, font: ttLib.TTFont, value: otBase.BaseTable) -> None: ...
+
+
+@dataclass(frozen=True)
+class ReorderCoverage(ReorderRule):
+ """Reorder a Coverage table, and optionally a list that is sorted parallel to it."""
+
+ # A list that is parallel to Coverage
+ parallel_list_attr: Optional[str] = None
+ coverage_attr: str = _COVERAGE_ATTR
+
+ def apply(self, font: ttLib.TTFont, value: otBase.BaseTable) -> None:
+ coverage = _get_dotted_attr(value, self.coverage_attr)
+
+ if type(coverage) is not list:
+ # Normal path, process one coverage that might have a parallel list
+ parallel_list = None
+ if self.parallel_list_attr:
+ parallel_list = _get_dotted_attr(value, self.parallel_list_attr)
+ assert (
+ type(parallel_list) is list
+ ), f"{self.parallel_list_attr} should be a list"
+ assert len(parallel_list) == len(coverage.glyphs), "Nothing makes sense"
+
+ _sort_by_gid(font.getGlyphID, coverage.glyphs, parallel_list)
+
+ else:
+ # A few tables have a list of coverage. No parallel list can exist.
+ assert (
+ not self.parallel_list_attr
+ ), f"Can't have multiple coverage AND a parallel list; {self}"
+ for coverage_entry in coverage:
+ _sort_by_gid(font.getGlyphID, coverage_entry.glyphs, None)
+
+
+@dataclass(frozen=True)
+class ReorderList(ReorderRule):
+ """Reorder the items within a list to match the updated glyph order.
+
+ Useful when a list ordered by coverage itself contains something ordered by a gid.
+ For example, the PairSet table of https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#lookup-type-2-pair-adjustment-positioning-subtable.
+ """
+
+ list_attr: str
+ key: str
+
+ def apply(self, font: ttLib.TTFont, value: otBase.BaseTable) -> None:
+ lst = _get_dotted_attr(value, self.list_attr)
+ assert isinstance(lst, list), f"{self.list_attr} should be a list"
+ lst.sort(key=lambda v: font.getGlyphID(getattr(v, self.key)))
+
+
+# (Type, Optional Format) => List[ReorderRule]
+# Encodes the relationships Cosimo identified
+_REORDER_RULES = {
+ # GPOS
+ (ot.SinglePos, 1): [ReorderCoverage()],
+ (ot.SinglePos, 2): [ReorderCoverage(parallel_list_attr="Value")],
+ (ot.PairPos, 1): [ReorderCoverage(parallel_list_attr="PairSet")],
+ (ot.PairSet, None): [ReorderList("PairValueRecord", key="SecondGlyph")],
+ (ot.PairPos, 2): [ReorderCoverage()],
+ (ot.CursivePos, 1): [ReorderCoverage(parallel_list_attr="EntryExitRecord")],
+ (ot.MarkBasePos, 1): [
+ ReorderCoverage(
+ coverage_attr="MarkCoverage", parallel_list_attr="MarkArray.MarkRecord"
+ ),
+ ReorderCoverage(
+ coverage_attr="BaseCoverage", parallel_list_attr="BaseArray.BaseRecord"
+ ),
+ ],
+ (ot.MarkLigPos, 1): [
+ ReorderCoverage(
+ coverage_attr="MarkCoverage", parallel_list_attr="MarkArray.MarkRecord"
+ ),
+ ReorderCoverage(
+ coverage_attr="LigatureCoverage",
+ parallel_list_attr="LigatureArray.LigatureAttach",
+ ),
+ ],
+ (ot.MarkMarkPos, 1): [
+ ReorderCoverage(
+ coverage_attr="Mark1Coverage", parallel_list_attr="Mark1Array.MarkRecord"
+ ),
+ ReorderCoverage(
+ coverage_attr="Mark2Coverage", parallel_list_attr="Mark2Array.Mark2Record"
+ ),
+ ],
+ (ot.ContextPos, 1): [ReorderCoverage(parallel_list_attr="PosRuleSet")],
+ (ot.ContextPos, 2): [ReorderCoverage()],
+ (ot.ContextPos, 3): [ReorderCoverage()],
+ (ot.ChainContextPos, 1): [ReorderCoverage(parallel_list_attr="ChainPosRuleSet")],
+ (ot.ChainContextPos, 2): [ReorderCoverage()],
+ (ot.ChainContextPos, 3): [
+ ReorderCoverage(coverage_attr="BacktrackCoverage"),
+ ReorderCoverage(coverage_attr="InputCoverage"),
+ ReorderCoverage(coverage_attr="LookAheadCoverage"),
+ ],
+ # GSUB
+ (ot.ContextSubst, 1): [ReorderCoverage(parallel_list_attr="SubRuleSet")],
+ (ot.ContextSubst, 2): [ReorderCoverage()],
+ (ot.ContextSubst, 3): [ReorderCoverage()],
+ (ot.ChainContextSubst, 1): [ReorderCoverage(parallel_list_attr="ChainSubRuleSet")],
+ (ot.ChainContextSubst, 2): [ReorderCoverage()],
+ (ot.ChainContextSubst, 3): [
+ ReorderCoverage(coverage_attr="BacktrackCoverage"),
+ ReorderCoverage(coverage_attr="InputCoverage"),
+ ReorderCoverage(coverage_attr="LookAheadCoverage"),
+ ],
+ (ot.ReverseChainSingleSubst, 1): [
+ ReorderCoverage(parallel_list_attr="Substitute"),
+ ReorderCoverage(coverage_attr="BacktrackCoverage"),
+ ReorderCoverage(coverage_attr="LookAheadCoverage"),
+ ],
+ # GDEF
+ (ot.AttachList, None): [ReorderCoverage(parallel_list_attr="AttachPoint")],
+ (ot.LigCaretList, None): [ReorderCoverage(parallel_list_attr="LigGlyph")],
+ (ot.MarkGlyphSetsDef, None): [ReorderCoverage()],
+ # MATH
+ (ot.MathGlyphInfo, None): [ReorderCoverage(coverage_attr="ExtendedShapeCoverage")],
+ (ot.MathItalicsCorrectionInfo, None): [
+ ReorderCoverage(parallel_list_attr="ItalicsCorrection")
+ ],
+ (ot.MathTopAccentAttachment, None): [
+ ReorderCoverage(
+ coverage_attr="TopAccentCoverage", parallel_list_attr="TopAccentAttachment"
+ )
+ ],
+ (ot.MathKernInfo, None): [
+ ReorderCoverage(
+ coverage_attr="MathKernCoverage", parallel_list_attr="MathKernInfoRecords"
+ )
+ ],
+ (ot.MathVariants, None): [
+ ReorderCoverage(
+ coverage_attr="VertGlyphCoverage",
+ parallel_list_attr="VertGlyphConstruction",
+ ),
+ ReorderCoverage(
+ coverage_attr="HorizGlyphCoverage",
+ parallel_list_attr="HorizGlyphConstruction",
+ ),
+ ],
+}
+
+
+# TODO Port to otTraverse
+
+SubTablePath = Tuple[otBase.BaseTable.SubTableEntry, ...]
+
+
+def _bfs_base_table(
+ root: otBase.BaseTable, root_accessor: str
+) -> Iterable[SubTablePath]:
+ yield from _traverse_ot_data(
+ root, root_accessor, lambda frontier, new: frontier.extend(new)
+ )
+
+
+# Given f(current frontier, new entries) add new entries to frontier
+AddToFrontierFn = Callable[[Deque[SubTablePath], List[SubTablePath]], None]
+
+
+def _traverse_ot_data(
+ root: otBase.BaseTable, root_accessor: str, add_to_frontier_fn: AddToFrontierFn
+) -> Iterable[SubTablePath]:
+ # no visited because general otData is forward-offset only and thus cannot cycle
+
+ frontier: Deque[SubTablePath] = deque()
+ frontier.append((otBase.BaseTable.SubTableEntry(root_accessor, root),))
+ while frontier:
+ # path is (value, attr_name) tuples. attr_name is attr of parent to get value
+ path = frontier.popleft()
+ current = path[-1].value
+
+ yield path
+
+ new_entries = []
+ for subtable_entry in current.iterSubTables():
+ new_entries.append(path + (subtable_entry,))
+
+ add_to_frontier_fn(frontier, new_entries)
+
+
+def reorderGlyphs(font: ttLib.TTFont, new_glyph_order: List[str]):
+ old_glyph_order = font.getGlyphOrder()
+ if len(new_glyph_order) != len(old_glyph_order):
+ raise ValueError(
+ f"New glyph order contains {len(new_glyph_order)} glyphs, "
+ f"but font has {len(old_glyph_order)} glyphs"
+ )
+
+ if set(old_glyph_order) != set(new_glyph_order):
+ raise ValueError(
+ "New glyph order does not contain the same set of glyphs as the font:\n"
+ f"* only in new: {set(new_glyph_order) - set(old_glyph_order)}\n"
+ f"* only in old: {set(old_glyph_order) - set(new_glyph_order)}"
+ )
+
+ # Changing the order of glyphs in a TTFont requires that all tables that use
+ # glyph indexes have been fully.
+ # Cf. https://github.com/fonttools/fonttools/issues/2060
+ font.ensureDecompiled()
+ not_loaded = sorted(t for t in font.keys() if not font.isLoaded(t))
+ if not_loaded:
+ raise ValueError(f"Everything should be loaded, following aren't: {not_loaded}")
+
+ font.setGlyphOrder(new_glyph_order)
+
+ coverage_containers = {"GDEF", "GPOS", "GSUB", "MATH"}
+ for tag in coverage_containers:
+ if tag in font.keys():
+ for path in _bfs_base_table(font[tag].table, f'font["{tag}"]'):
+ value = path[-1].value
+ reorder_key = (type(value), getattr(value, "Format", None))
+ for reorder in _REORDER_RULES.get(reorder_key, []):
+ reorder.apply(font, value)
diff --git a/contrib/python/fonttools/fontTools/ttLib/tables/otConverters.py b/contrib/python/fonttools/fontTools/ttLib/tables/otConverters.py
index afe4e538f43..a2f672567ec 100644
--- a/contrib/python/fonttools/fontTools/ttLib/tables/otConverters.py
+++ b/contrib/python/fonttools/fontTools/ttLib/tables/otConverters.py
@@ -153,6 +153,8 @@ class BaseConverter(object):
self.name = name
self.repeat = repeat
self.aux = aux
+ if self.aux and not self.repeat:
+ self.aux = compile(self.aux, "<string>", "eval")
self.tableClass = tableClass
self.isCount = name.endswith("Count") or name in [
"DesignAxisRecordSize",
diff --git a/contrib/python/fonttools/fontTools/ttLib/ttFont.py b/contrib/python/fonttools/fontTools/ttLib/ttFont.py
index ad62a187de1..52e048b5f1b 100644
--- a/contrib/python/fonttools/fontTools/ttLib/ttFont.py
+++ b/contrib/python/fonttools/fontTools/ttLib/ttFont.py
@@ -840,6 +840,11 @@ class TTFont(object):
"""
return self["cmap"].getBestCmap(cmapPreferences=cmapPreferences)
+ def reorderGlyphs(self, new_glyph_order):
+ from .reorderGlyphs import reorderGlyphs
+
+ reorderGlyphs(self, new_glyph_order)
+
class GlyphOrder(object):
"""A pseudo table. The glyph order isn't in the font as a separate
diff --git a/contrib/python/fonttools/ya.make b/contrib/python/fonttools/ya.make
index a6872287a98..91be3261dfb 100644
--- a/contrib/python/fonttools/ya.make
+++ b/contrib/python/fonttools/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(4.50.0)
+VERSION(4.51.0)
LICENSE(MIT)
@@ -163,6 +163,7 @@ PY_SRCS(
fontTools/ttLib/__main__.py
fontTools/ttLib/macUtils.py
fontTools/ttLib/removeOverlaps.py
+ fontTools/ttLib/reorderGlyphs.py
fontTools/ttLib/scaleUpem.py
fontTools/ttLib/sfnt.py
fontTools/ttLib/standardGlyphOrder.py
diff --git a/contrib/python/future/py2/.dist-info/METADATA b/contrib/python/future/py2/.dist-info/METADATA
index 124bf500d0b..3d0e5512c62 100644
--- a/contrib/python/future/py2/.dist-info/METADATA
+++ b/contrib/python/future/py2/.dist-info/METADATA
@@ -1,13 +1,13 @@
Metadata-Version: 2.1
Name: future
-Version: 0.18.3
+Version: 1.0.0
Summary: Clean single-source support for Python 3 and 2
Home-page: https://python-future.org
Author: Ed Schofield
Author-email: ed@pythoncharmers.com
License: MIT
+Project-URL: Source, https://github.com/PythonCharmers/python-future
Keywords: future past python3 migration futurize backport six 2to3 modernize pasteurize 3to2
-Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
@@ -18,11 +18,17 @@ Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved
Classifier: License :: OSI Approved :: MIT License
-Classifier: Development Status :: 4 - Beta
+Classifier: Development Status :: 6 - Mature
Classifier: Intended Audience :: Developers
Requires-Python: >=2.6, !=3.0.*, !=3.1.*, !=3.2.*
+License-File: LICENSE.txt
future: Easy, safe support for Python 2/3 compatibility
@@ -78,7 +84,7 @@ Automatic conversion
--------------------
An included script called `futurize
-<http://python-future.org/automatic_conversion.html>`_ aids in converting
+<https://python-future.org/automatic_conversion.html>`_ aids in converting
code (from either Python 2 or Python 3) to code compatible with both
platforms. It is similar to ``python-modernize`` but goes further in
providing Python 3 compatibility through the use of the backported types
@@ -88,22 +94,19 @@ and builtin functions in ``future``.
Documentation
-------------
-See: http://python-future.org
+See: https://python-future.org
Credits
-------
:Author: Ed Schofield, Jordan M. Adler, et al
-:Sponsor: Python Charmers Pty Ltd, Australia, and Python Charmers Pte
- Ltd, Singapore. http://pythoncharmers.com
-:Others: See docs/credits.rst or http://python-future.org/credits.html
+:Sponsor: Python Charmers: https://pythoncharmers.com
+:Others: See docs/credits.rst or https://python-future.org/credits.html
Licensing
---------
-Copyright 2013-2019 Python Charmers Pty Ltd, Australia.
+Copyright 2013-2024 Python Charmers, Australia.
The software is distributed under an MIT licence. See LICENSE.txt.
-
-
diff --git a/contrib/python/future/py2/.dist-info/entry_points.txt b/contrib/python/future/py2/.dist-info/entry_points.txt
index 45d1a880fbd..74aec276c83 100644
--- a/contrib/python/future/py2/.dist-info/entry_points.txt
+++ b/contrib/python/future/py2/.dist-info/entry_points.txt
@@ -1,4 +1,3 @@
[console_scripts]
futurize = libfuturize.main:main
pasteurize = libpasteurize.main:main
-
diff --git a/contrib/python/future/py2/LICENSE.txt b/contrib/python/future/py2/LICENSE.txt
index 4c904dba8fe..275cafd3036 100644
--- a/contrib/python/future/py2/LICENSE.txt
+++ b/contrib/python/future/py2/LICENSE.txt
@@ -1,4 +1,4 @@
-Copyright (c) 2013-2019 Python Charmers Pty Ltd, Australia
+Copyright (c) 2013-2024 Python Charmers, Australia
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/contrib/python/future/py2/README.rst b/contrib/python/future/py2/README.rst
index 1ab43e53d7a..a3aceb7d4a0 100644
--- a/contrib/python/future/py2/README.rst
+++ b/contrib/python/future/py2/README.rst
@@ -3,11 +3,8 @@
Overview: Easy, clean, reliable Python 2/3 compatibility
========================================================
-.. image:: https://travis-ci.org/PythonCharmers/python-future.svg?branch=master
- :target: https://travis-ci.org/PythonCharmers/python-future
-
-.. image:: https://readthedocs.org/projects/python-future/badge/?version=latest
- :target: https://python-future.readthedocs.io/en/latest/?badge=latest
+.. image:: https://github.com/PythonCharmers/python-future/actions/workflows/ci.yml/badge.svg?branch=master
+ :target: https://github.com/PythonCharmers/python-future/actions/workflows/ci.yml?query=branch%3Amaster
``python-future`` is the missing compatibility layer between Python 2 and
Python 3. It allows you to use a single, clean Python 3.x-compatible
@@ -19,9 +16,21 @@ ports of features from Python 3 and 2. It also comes with ``futurize`` and
either Py2 or Py3 code easily to support both Python 2 and 3 in a single
clean Py3-style codebase, module by module.
-Notable projects that use ``python-future`` for Python 2/3 compatibility
-are `Mezzanine <http://mezzanine.jupo.org/>`_ and `ObsPy
-<http://obspy.org>`_.
+The ``python-future`` project has been downloaded over 1.7 billion times.
+
+.. _status
+
+Status
+------
+
+The ``python-future`` project was created in 2013 to attempt to save Python from
+the schism of version incompatibility that was threatening to tear apart the
+language (as Perl 6 contributed to the death of Perl).
+
+That time is now past. Thanks to a huge porting effort across the Python
+community, Python 3 eventually thrived. Python 2 reached its end of life in
+2020 and the ``python-future`` package should no longer be necessary. Use it to
+help with porting legacy code to Python 3 but don't depend on it for new code.
.. _features:
@@ -223,11 +232,14 @@ into this code which runs on both Py2 and Py3:
name = input()
greet(name)
+The first four lines have no effect under Python 3 and can be removed from
+the codebase when Python 2 compatibility is no longer required.
+
See :ref:`forwards-conversion` and :ref:`backwards-conversion` for more details.
Automatic translation
----------------------
+~~~~~~~~~~~~~~~~~~~~~
The ``past`` package can automatically translate some simple Python 2
modules to Python 3 upon import. The goal is to support the "long tail" of
@@ -264,10 +276,9 @@ properly to a Python 2/3 compatible codebase using a tool like
Note: the auto-translation feature is still in alpha; it needs more testing and
development, and will likely never be perfect.
-For more info, see :ref:`translation`.
Pre-commit hooks
-----------------
+~~~~~~~~~~~~~~~~
`Pre-commit <https://pre-commit.com/>`_ is a framework for managing and maintaining
multi-language pre-commit hooks.
@@ -304,23 +315,25 @@ Licensing
:Author: Ed Schofield, Jordan M. Adler, et al
-:Copyright: 2013-2019 Python Charmers Pty Ltd, Australia.
+:Copyright: 2013-2024 Python Charmers, Australia.
-:Sponsors: Python Charmers Pty Ltd, Australia, and Python Charmers Pte
- Ltd, Singapore. http://pythoncharmers.com
+:Sponsors: Python Charmers: https://pythoncharmers.com
- Pinterest https://opensource.pinterest.com/
+ Pinterest https://opensource.pinterest.com
-:Licence: MIT. See ``LICENSE.txt`` or `here <http://python-future.org/credits.html>`_.
+:Licence: MIT. See ``LICENSE.txt`` or `here <https://python-future.org/credits.html>`_.
-:Other credits: See `here <http://python-future.org/credits.html>`_.
+:Other credits: See `here <https://python-future.org/credits.html>`_.
+Docs
+----
+See the docs `here <https://python-future.org>`_.
Next steps
----------
If you are new to Python-Future, check out the `Quickstart Guide
-<http://python-future.org/quickstart.html>`_.
+<https://python-future.org/quickstart.html>`_.
For an update on changes in the latest version, see the `What's New
-<http://python-future.org/whatsnew.html>`_ page.
+<https://python-future.org/whatsnew.html>`_ page.
diff --git a/contrib/python/future/py2/future/__init__.py b/contrib/python/future/py2/future/__init__.py
index b609299a7a2..b097fd81eb6 100644
--- a/contrib/python/future/py2/future/__init__.py
+++ b/contrib/python/future/py2/future/__init__.py
@@ -52,7 +52,7 @@ Automatic conversion
--------------------
An included script called `futurize
-<http://python-future.org/automatic_conversion.html>`_ aids in converting
+<https://python-future.org/automatic_conversion.html>`_ aids in converting
code (from either Python 2 or Python 3) to code compatible with both
platforms. It is similar to ``python-modernize`` but goes further in
providing Python 3 compatibility through the use of the backported types
@@ -62,21 +62,20 @@ and builtin functions in ``future``.
Documentation
-------------
-See: http://python-future.org
+See: https://python-future.org
Credits
-------
:Author: Ed Schofield, Jordan M. Adler, et al
-:Sponsor: Python Charmers Pty Ltd, Australia, and Python Charmers Pte
- Ltd, Singapore. http://pythoncharmers.com
-:Others: See docs/credits.rst or http://python-future.org/credits.html
+:Sponsor: Python Charmers: https://pythoncharmers.com
+:Others: See docs/credits.rst or https://python-future.org/credits.html
Licensing
---------
-Copyright 2013-2019 Python Charmers Pty Ltd, Australia.
+Copyright 2013-2024 Python Charmers, Australia.
The software is distributed under an MIT licence. See LICENSE.txt.
"""
@@ -84,10 +83,10 @@ The software is distributed under an MIT licence. See LICENSE.txt.
__title__ = 'future'
__author__ = 'Ed Schofield'
__license__ = 'MIT'
-__copyright__ = 'Copyright 2013-2019 Python Charmers Pty Ltd'
-__ver_major__ = 0
-__ver_minor__ = 18
-__ver_patch__ = 3
+__copyright__ = 'Copyright 2013-2024 Python Charmers (https://pythoncharmers.com)'
+__ver_major__ = 1
+__ver_minor__ = 0
+__ver_patch__ = 0
__ver_sub__ = ''
__version__ = "%d.%d.%d%s" % (__ver_major__, __ver_minor__,
__ver_patch__, __ver_sub__)
diff --git a/contrib/python/future/py2/future/backports/datetime.py b/contrib/python/future/py2/future/backports/datetime.py
index 3261014e056..8cd62ddfa5c 100644
--- a/contrib/python/future/py2/future/backports/datetime.py
+++ b/contrib/python/future/py2/future/backports/datetime.py
@@ -689,7 +689,7 @@ class date(object):
@classmethod
def fromordinal(cls, n):
- """Contruct a date from a proleptic Gregorian ordinal.
+ """Construct a date from a proleptic Gregorian ordinal.
January 1 of year 1 is day 1. Only the year, month and day are
non-zero in the result.
diff --git a/contrib/python/future/py2/future/backports/email/_header_value_parser.py b/contrib/python/future/py2/future/backports/email/_header_value_parser.py
index 43957edc12f..59b1b318f38 100644
--- a/contrib/python/future/py2/future/backports/email/_header_value_parser.py
+++ b/contrib/python/future/py2/future/backports/email/_header_value_parser.py
@@ -2867,7 +2867,7 @@ def parse_content_type_header(value):
_find_mime_parameters(ctype, value)
return ctype
ctype.append(token)
- # XXX: If we really want to follow the formal grammer we should make
+ # XXX: If we really want to follow the formal grammar we should make
# mantype and subtype specialized TokenLists here. Probably not worth it.
if not value or value[0] != '/':
ctype.defects.append(errors.InvalidHeaderDefect(
diff --git a/contrib/python/future/py2/future/backports/email/parser.py b/contrib/python/future/py2/future/backports/email/parser.py
index df1c6e28689..79f0e5a33eb 100644
--- a/contrib/python/future/py2/future/backports/email/parser.py
+++ b/contrib/python/future/py2/future/backports/email/parser.py
@@ -26,7 +26,7 @@ class Parser(object):
textual representation of the message.
The string must be formatted as a block of RFC 2822 headers and header
- continuation lines, optionally preceeded by a `Unix-from' header. The
+ continuation lines, optionally preceded by a `Unix-from' header. The
header block is terminated either by the end of the string or by a
blank line.
@@ -92,7 +92,7 @@ class BytesParser(object):
textual representation of the message.
The input must be formatted as a block of RFC 2822 headers and header
- continuation lines, optionally preceeded by a `Unix-from' header. The
+ continuation lines, optionally preceded by a `Unix-from' header. The
header block is terminated either by the end of the input or by a
blank line.
diff --git a/contrib/python/future/py2/future/backports/http/cookiejar.py b/contrib/python/future/py2/future/backports/http/cookiejar.py
index 0ad80a0258a..a39242c0827 100644
--- a/contrib/python/future/py2/future/backports/http/cookiejar.py
+++ b/contrib/python/future/py2/future/backports/http/cookiejar.py
@@ -1851,7 +1851,7 @@ def lwp_cookie_str(cookie):
class LWPCookieJar(FileCookieJar):
"""
The LWPCookieJar saves a sequence of "Set-Cookie3" lines.
- "Set-Cookie3" is the format used by the libwww-perl libary, not known
+ "Set-Cookie3" is the format used by the libwww-perl library, not known
to be compatible with any browser, but which is easy to read and
doesn't lose information about RFC 2965 cookies.
diff --git a/contrib/python/future/py2/future/backports/xmlrpc/client.py b/contrib/python/future/py2/future/backports/xmlrpc/client.py
index b0b8f5e19ef..5c2cee0958c 100644
--- a/contrib/python/future/py2/future/backports/xmlrpc/client.py
+++ b/contrib/python/future/py2/future/backports/xmlrpc/client.py
@@ -134,10 +134,11 @@ from __future__ import (absolute_import, division, print_function,
from future.builtins import bytes, dict, int, range, str
import base64
-# Py2.7 compatibility hack
-base64.encodebytes = base64.encodestring
-base64.decodebytes = base64.decodestring
import sys
+if sys.version_info < (3, 9):
+ # Py2.7 compatibility hack
+ base64.encodebytes = base64.encodestring
+ base64.decodebytes = base64.decodestring
import time
from datetime import datetime
from future.backports.http import client as http_client
@@ -1254,7 +1255,7 @@ class Transport(object):
# Send HTTP request.
#
# @param host Host descriptor (URL or (URL, x509 info) tuple).
- # @param handler Targer RPC handler (a path relative to host)
+ # @param handler Target RPC handler (a path relative to host)
# @param request_body The XML-RPC request body
# @param debug Enable debugging if debug is true.
# @return An HTTPConnection.
diff --git a/contrib/python/future/py2/future/builtins/__init__.py b/contrib/python/future/py2/future/builtins/__init__.py
index 8bc1649d2fd..1734cd45fe3 100644
--- a/contrib/python/future/py2/future/builtins/__init__.py
+++ b/contrib/python/future/py2/future/builtins/__init__.py
@@ -2,7 +2,7 @@
A module that brings in equivalents of the new and modified Python 3
builtins into Py2. Has no effect on Py3.
-See the docs `here <http://python-future.org/what-else.html>`_
+See the docs `here <https://python-future.org/what-else.html>`_
(``docs/what-else.rst``) for more information.
"""
diff --git a/contrib/python/future/py2/future/moves/_dummy_thread.py b/contrib/python/future/py2/future/moves/_dummy_thread.py
index 688d249bbe7..6633f42e0cb 100644
--- a/contrib/python/future/py2/future/moves/_dummy_thread.py
+++ b/contrib/python/future/py2/future/moves/_dummy_thread.py
@@ -1,8 +1,13 @@
from __future__ import absolute_import
-from future.utils import PY3
+from future.utils import PY3, PY39_PLUS
-if PY3:
- from _dummy_thread import *
+
+if PY39_PLUS:
+ # _dummy_thread and dummy_threading modules were both deprecated in
+ # Python 3.7 and removed in Python 3.9
+ from _thread import *
+elif PY3:
+ from _dummy_thread import *
else:
__future_module__ = True
from dummy_thread import *
diff --git a/contrib/python/future/py2/future/moves/multiprocessing.py b/contrib/python/future/py2/future/moves/multiprocessing.py
new file mode 100644
index 00000000000..a871b676f46
--- /dev/null
+++ b/contrib/python/future/py2/future/moves/multiprocessing.py
@@ -0,0 +1,7 @@
+from __future__ import absolute_import
+from future.utils import PY3
+
+from multiprocessing import *
+if not PY3:
+ __future_module__ = True
+ from multiprocessing.queues import SimpleQueue
diff --git a/contrib/python/future/py2/future/standard_library/__init__.py b/contrib/python/future/py2/future/standard_library/__init__.py
index cff02f95943..d467aaf492c 100644
--- a/contrib/python/future/py2/future/standard_library/__init__.py
+++ b/contrib/python/future/py2/future/standard_library/__init__.py
@@ -17,7 +17,7 @@ And then these normal Py3 imports work on both Py3 and Py2::
import socketserver
import winreg # on Windows only
import test.support
- import html, html.parser, html.entites
+ import html, html.parser, html.entities
import http, http.client, http.server
import http.cookies, http.cookiejar
import urllib.parse, urllib.request, urllib.response, urllib.error, urllib.robotparser
@@ -33,6 +33,7 @@ And then these normal Py3 imports work on both Py3 and Py2::
from collections import OrderedDict, Counter, ChainMap # even on Py2.6
from subprocess import getoutput, getstatusoutput
from subprocess import check_output # even on Py2.6
+ from multiprocessing import SimpleQueue
(The renamed modules and functions are still available under their old
names on Python 2.)
@@ -62,9 +63,12 @@ from __future__ import absolute_import, division, print_function
import sys
import logging
-import imp
+# imp was deprecated in python 3.6
+if sys.version_info >= (3, 6):
+ import importlib as imp
+else:
+ import imp
import contextlib
-import types
import copy
import os
@@ -108,6 +112,7 @@ RENAMES = {
'future.moves.socketserver': 'socketserver',
'ConfigParser': 'configparser',
'repr': 'reprlib',
+ 'multiprocessing.queues': 'multiprocessing',
# 'FileDialog': 'tkinter.filedialog',
# 'tkFileDialog': 'tkinter.filedialog',
# 'SimpleDialog': 'tkinter.simpledialog',
@@ -125,7 +130,7 @@ RENAMES = {
# 'Tkinter': 'tkinter',
'_winreg': 'winreg',
'thread': '_thread',
- 'dummy_thread': '_dummy_thread',
+ 'dummy_thread': '_dummy_thread' if sys.version_info < (3, 9) else '_thread',
# 'anydbm': 'dbm', # causes infinite import loop
# 'whichdb': 'dbm', # causes infinite import loop
# anydbm and whichdb are handled by fix_imports2
@@ -184,6 +189,7 @@ MOVES = [('collections', 'UserList', 'UserList', 'UserList'),
('itertools', 'filterfalse','itertools', 'ifilterfalse'),
('itertools', 'zip_longest','itertools', 'izip_longest'),
('sys', 'intern','__builtin__', 'intern'),
+ ('multiprocessing', 'SimpleQueue', 'multiprocessing.queues', 'SimpleQueue'),
# The re module has no ASCII flag in Py2, but this is the default.
# Set re.ASCII to a zero constant. stat.ST_MODE just happens to be one
# (and it exists on Py2.6+).
diff --git a/contrib/python/future/py2/future/types/newint.py b/contrib/python/future/py2/future/types/newint.py
index 04a411e9331..ebc5715e2b6 100644
--- a/contrib/python/future/py2/future/types/newint.py
+++ b/contrib/python/future/py2/future/types/newint.py
@@ -223,9 +223,11 @@ class newint(with_metaclass(BaseNewInt, long)):
def __rpow__(self, other):
value = super(newint, self).__rpow__(other)
- if value is NotImplemented:
+ if isint(value):
+ return newint(value)
+ elif value is NotImplemented:
return other ** long(self)
- return newint(value)
+ return value
def __lshift__(self, other):
if not isint(other):
@@ -318,7 +320,7 @@ class newint(with_metaclass(BaseNewInt, long)):
bits = length * 8
num = (2**bits) + self
if num <= 0:
- raise OverflowError("int too smal to convert")
+ raise OverflowError("int too small to convert")
else:
if self < 0:
raise OverflowError("can't convert negative int to unsigned")
diff --git a/contrib/python/future/py2/future/types/newrange.py b/contrib/python/future/py2/future/types/newrange.py
index 6d4ebe2f8f6..dc5eb80222b 100644
--- a/contrib/python/future/py2/future/types/newrange.py
+++ b/contrib/python/future/py2/future/types/newrange.py
@@ -105,7 +105,7 @@ class newrange(Sequence):
raise ValueError('%r is not in range' % value)
def count(self, value):
- """Return the number of ocurrences of integer `value`
+ """Return the number of occurrences of integer `value`
in the sequence this range represents."""
# a value can occur exactly zero or one times
return int(value in self)
diff --git a/contrib/python/future/py2/past/__init__.py b/contrib/python/future/py2/past/__init__.py
index 14713039332..54619e0a608 100644
--- a/contrib/python/future/py2/past/__init__.py
+++ b/contrib/python/future/py2/past/__init__.py
@@ -75,12 +75,12 @@ Credits
-------
:Author: Ed Schofield, Jordan M. Adler, et al
-:Sponsor: Python Charmers Pty Ltd, Australia: http://pythoncharmers.com
+:Sponsor: Python Charmers: https://pythoncharmers.com
Licensing
---------
-Copyright 2013-2019 Python Charmers Pty Ltd, Australia.
+Copyright 2013-2024 Python Charmers, Australia.
The software is distributed under an MIT licence. See LICENSE.txt.
"""
diff --git a/contrib/python/future/py2/past/builtins/misc.py b/contrib/python/future/py2/past/builtins/misc.py
index 3600695c0aa..0b8e6a986c7 100644
--- a/contrib/python/future/py2/past/builtins/misc.py
+++ b/contrib/python/future/py2/past/builtins/misc.py
@@ -1,11 +1,13 @@
from __future__ import unicode_literals
import inspect
+import sys
import math
import numbers
from future.utils import PY2, PY3, exec_
+
if PY2:
from collections import Mapping
else:
@@ -103,13 +105,12 @@ if PY3:
return '0' + builtins.oct(number)[2:]
raw_input = input
-
- try:
+ # imp was deprecated in python 3.6
+ if sys.version_info >= (3, 6):
from importlib import reload
- except ImportError:
+ else:
# for python2, python3 <= 3.4
from imp import reload
-
unicode = str
unichr = chr
xrange = range
diff --git a/contrib/python/future/py2/ya.make b/contrib/python/future/py2/ya.make
index f537724340b..3761f698744 100644
--- a/contrib/python/future/py2/ya.make
+++ b/contrib/python/future/py2/ya.make
@@ -2,7 +2,7 @@
PY2_LIBRARY()
-VERSION(0.18.3)
+VERSION(1.0.0)
LICENSE(MIT)
@@ -105,6 +105,7 @@ PY_SRCS(
future/moves/http/cookies.py
future/moves/http/server.py
future/moves/itertools.py
+ future/moves/multiprocessing.py
future/moves/pickle.py
future/moves/queue.py
future/moves/reprlib.py
diff --git a/contrib/python/hypothesis/py3/.dist-info/METADATA b/contrib/python/hypothesis/py3/.dist-info/METADATA
index a4cff64dd92..5c622375cd1 100644
--- a/contrib/python/hypothesis/py3/.dist-info/METADATA
+++ b/contrib/python/hypothesis/py3/.dist-info/METADATA
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: hypothesis
-Version: 6.100.0
+Version: 6.100.1
Summary: A library for property-based testing
Home-page: https://hypothesis.works
Author: David R. MacIver and Zac Hatfield-Dodds
diff --git a/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/data.py b/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/data.py
index 701105bd5e2..93f7758ba2e 100644
--- a/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/data.py
+++ b/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/data.py
@@ -91,6 +91,9 @@ DRAW_FLOAT_LABEL = calc_label_from_name("drawing a float")
FLOAT_STRATEGY_DO_DRAW_LABEL = calc_label_from_name(
"getting another float in FloatStrategy"
)
+INTEGER_WEIGHTED_DISTRIBUTION = calc_label_from_name(
+ "drawing from a weighted distribution in integers"
+)
InterestingOrigin = Tuple[
Type[BaseException], str, int, Tuple[Any, ...], Tuple[Tuple[Any, ...], ...]
@@ -1673,6 +1676,7 @@ class HypothesisProvider(PrimitiveProvider):
center: Optional[int] = None,
forced: Optional[int] = None,
fake_forced: bool = False,
+ _vary_effective_size: bool = True,
) -> int:
assert lower <= upper
assert forced is None or lower <= forced <= upper
@@ -1709,14 +1713,27 @@ class HypothesisProvider(PrimitiveProvider):
bits = gap.bit_length()
probe = gap + 1
- if bits > 24 and self.draw_boolean(
- 7 / 8, forced=None if forced is None else False, fake_forced=fake_forced
+ if (
+ bits > 24
+ and _vary_effective_size
+ and self.draw_boolean(
+ 7 / 8, forced=None if forced is None else False, fake_forced=fake_forced
+ )
):
+ self._cd.start_example(INTEGER_WEIGHTED_DISTRIBUTION)
# For large ranges, we combine the uniform random distribution from draw_bits
# with a weighting scheme with moderate chance. Cutoff at 2 ** 24 so that our
# choice of unicode characters is uniform but the 32bit distribution is not.
idx = INT_SIZES_SAMPLER.sample(self._cd)
- bits = min(bits, INT_SIZES[idx])
+ force_bits = min(bits, INT_SIZES[idx])
+ forced = self._draw_bounded_integer(
+ lower=center if above else max(lower, center - 2**force_bits - 1),
+ upper=center if not above else min(upper, center + 2**force_bits - 1),
+ _vary_effective_size=False,
+ )
+ self._cd.stop_example()
+
+ assert lower <= forced <= upper
while probe > gap:
self._cd.start_example(INTEGER_RANGE_DRAW_LABEL)
diff --git a/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/datatree.py b/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/datatree.py
index 6ab4c2783fe..c22cd0b2946 100644
--- a/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/datatree.py
+++ b/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/datatree.py
@@ -30,6 +30,7 @@ from hypothesis.internal.conjecture.data import (
Status,
StringKWargs,
)
+from hypothesis.internal.escalation import InterestingOrigin
from hypothesis.internal.floats import (
count_between_floats,
float_to_int,
@@ -83,8 +84,8 @@ class Branch:
class Conclusion:
"""Represents a transition to a finished state."""
- status = attr.ib()
- interesting_origin = attr.ib()
+ status: Status = attr.ib()
+ interesting_origin: Optional[InterestingOrigin] = attr.ib()
# The number of max children where, beyond this, it is practically impossible
@@ -1043,8 +1044,9 @@ class TreeRecordingObserver(DataObserver):
or new_transition.status != Status.VALID
):
raise Flaky(
- f"Inconsistent test results! Test case was {node.transition!r} "
- f"on first run but {new_transition!r} on second"
+ f"Inconsistent results from replaying a test case!\n"
+ f" last: {node.transition.status.name} from {node.transition.interesting_origin}\n"
+ f" this: {new_transition.status.name} from {new_transition.interesting_origin}"
)
else:
node.transition = new_transition
diff --git a/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/pareto.py b/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/pareto.py
index 146b1b56f4f..b43e6df5bc5 100644
--- a/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/pareto.py
+++ b/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/pareto.py
@@ -133,10 +133,11 @@ class ParetoFront:
"""Attempts to add ``data`` to the pareto front. Returns True if
``data`` is now in the front, including if data is already in the
collection, and False otherwise"""
- data = data.as_result()
if data.status < Status.VALID:
return False
+ data = data.as_result()
+
if not self.front:
self.front.add(data)
return True
diff --git a/contrib/python/hypothesis/py3/hypothesis/version.py b/contrib/python/hypothesis/py3/hypothesis/version.py
index 158a440f0a2..be228256343 100644
--- a/contrib/python/hypothesis/py3/hypothesis/version.py
+++ b/contrib/python/hypothesis/py3/hypothesis/version.py
@@ -8,5 +8,5 @@
# v. 2.0. If a copy of the MPL was not distributed with this file, You can
# obtain one at https://mozilla.org/MPL/2.0/.
-__version_info__ = (6, 100, 0)
+__version_info__ = (6, 100, 1)
__version__ = ".".join(map(str, __version_info__))
diff --git a/contrib/python/hypothesis/py3/ya.make b/contrib/python/hypothesis/py3/ya.make
index 986fc7ae788..c899d543fd3 100644
--- a/contrib/python/hypothesis/py3/ya.make
+++ b/contrib/python/hypothesis/py3/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(6.100.0)
+VERSION(6.100.1)
LICENSE(MPL-2.0)
diff --git a/contrib/python/parso/py3/.dist-info/METADATA b/contrib/python/parso/py3/.dist-info/METADATA
index 331fef3a494..10f9cb843e8 100644
--- a/contrib/python/parso/py3/.dist-info/METADATA
+++ b/contrib/python/parso/py3/.dist-info/METADATA
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: parso
-Version: 0.8.3
+Version: 0.8.4
Summary: A Python Parser
Home-page: https://github.com/davidhalter/parso
Author: David Halter
@@ -26,11 +26,12 @@ Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.6
Provides-Extra: qa
-Requires-Dist: flake8 (==3.8.3) ; extra == 'qa'
-Requires-Dist: mypy (==0.782) ; extra == 'qa'
+Requires-Dist: flake8 (==5.0.4) ; extra == 'qa'
+Requires-Dist: mypy (==0.971) ; extra == 'qa'
+Requires-Dist: types-setuptools (==67.2.0.1) ; extra == 'qa'
Provides-Extra: testing
Requires-Dist: docopt ; extra == 'testing'
-Requires-Dist: pytest (<6.0.0) ; extra == 'testing'
+Requires-Dist: pytest ; extra == 'testing'
###################################################################
parso - A Python Parser
@@ -137,6 +138,11 @@ Changelog
Unreleased
++++++++++
+0.8.4 (2024-04-05)
+++++++++++++++++++
+
+- Add basic support for Python 3.13
+
0.8.3 (2021-11-30)
++++++++++++++++++
diff --git a/contrib/python/parso/py3/parso/__init__.py b/contrib/python/parso/py3/parso/__init__.py
index 0cceabedca5..354aff5c252 100644
--- a/contrib/python/parso/py3/parso/__init__.py
+++ b/contrib/python/parso/py3/parso/__init__.py
@@ -43,7 +43,7 @@ from parso.grammar import Grammar, load_grammar
from parso.utils import split_lines, python_bytes_to_unicode
-__version__ = '0.8.3'
+__version__ = '0.8.4'
def parse(code=None, **kwargs):
diff --git a/contrib/python/parso/py3/parso/grammar.py b/contrib/python/parso/py3/parso/grammar.py
index 1f81148682e..9d6f1a1ea09 100644
--- a/contrib/python/parso/py3/parso/grammar.py
+++ b/contrib/python/parso/py3/parso/grammar.py
@@ -107,14 +107,14 @@ class Grammar(Generic[_NodeT]):
if file_io is None:
if code is None:
- file_io = FileIO(path) # type: ignore
+ file_io = FileIO(path) # type: ignore[arg-type]
else:
file_io = KnownContentFileIO(path, code)
if cache and file_io.path is not None:
module_node = load_module(self._hashed, file_io, cache_path=cache_path)
if module_node is not None:
- return module_node # type: ignore
+ return module_node # type: ignore[no-any-return]
if code is None:
code = file_io.read()
@@ -133,7 +133,7 @@ class Grammar(Generic[_NodeT]):
module_node = module_cache_item.node
old_lines = module_cache_item.lines
if old_lines == lines:
- return module_node # type: ignore
+ return module_node # type: ignore[no-any-return]
new_node = self._diff_parser(
self._pgen_grammar, self._tokenizer, module_node
@@ -145,7 +145,7 @@ class Grammar(Generic[_NodeT]):
# Never pickle in pypy, it's slow as hell.
pickling=cache and not is_pypy,
cache_path=cache_path)
- return new_node # type: ignore
+ return new_node # type: ignore[no-any-return]
tokens = self._tokenizer(lines)
@@ -161,7 +161,7 @@ class Grammar(Generic[_NodeT]):
# Never pickle in pypy, it's slow as hell.
pickling=cache and not is_pypy,
cache_path=cache_path)
- return root_node # type: ignore
+ return root_node # type: ignore[no-any-return]
def _get_token_namespace(self):
ns = self._token_namespace
diff --git a/contrib/python/parso/py3/parso/pgen2/generator.py b/contrib/python/parso/py3/parso/pgen2/generator.py
index db6e1cb3261..30f0b546b8c 100644
--- a/contrib/python/parso/py3/parso/pgen2/generator.py
+++ b/contrib/python/parso/py3/parso/pgen2/generator.py
@@ -276,7 +276,7 @@ def generate_grammar(bnf_grammar: str, token_namespace) -> Grammar:
dfa_state.transitions[transition] = DFAPlan(next_dfa)
_calculate_tree_traversal(rule_to_dfas)
- return Grammar(start_nonterminal, rule_to_dfas, reserved_strings) # type: ignore
+ return Grammar(start_nonterminal, rule_to_dfas, reserved_strings) # type: ignore[arg-type]
def _make_transition(token_namespace, reserved_syntax_strings, label):
diff --git a/contrib/python/parso/py3/parso/python/errors.py b/contrib/python/parso/py3/parso/python/errors.py
index 5da046ab01f..09c5047b612 100644
--- a/contrib/python/parso/py3/parso/python/errors.py
+++ b/contrib/python/parso/py3/parso/python/errors.py
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
import codecs
+import sys
import warnings
import re
from contextlib import contextmanager
@@ -33,7 +34,10 @@ def _get_rhs_name(node, version):
return "literal"
else:
if second.children[1] == ":" or second.children[0] == "**":
- return "dict display"
+ if version < (3, 10):
+ return "dict display"
+ else:
+ return "dict literal"
else:
return "set display"
elif (
@@ -47,7 +51,10 @@ def _get_rhs_name(node, version):
elif first == "[":
return "list"
elif first == "{" and second == "}":
- return "dict display"
+ if version < (3, 10):
+ return "dict display"
+ else:
+ return "dict literal"
elif first == "{" and len(node.children) > 2:
return "set display"
elif type_ == "keyword":
@@ -58,7 +65,10 @@ def _get_rhs_name(node, version):
else:
return str(node.value)
elif type_ == "operator" and node.value == "...":
- return "Ellipsis"
+ if version < (3, 10):
+ return "Ellipsis"
+ else:
+ return "ellipsis"
elif type_ == "comparison":
return "comparison"
elif type_ in ("string", "number", "strings"):
@@ -83,7 +93,10 @@ def _get_rhs_name(node, version):
or "_test" in type_
or type_ in ("term", "factor")
):
- return "operator"
+ if version < (3, 10):
+ return "operator"
+ else:
+ return "expression"
elif type_ == "star_expr":
return "starred"
elif type_ == "testlist_star_expr":
@@ -610,7 +623,10 @@ class _NameChecks(SyntaxRule):
@ErrorFinder.register_rule(type='string')
class _StringChecks(SyntaxRule):
- message = "bytes can only contain ASCII literal characters."
+ if sys.version_info < (3, 10):
+ message = "bytes can only contain ASCII literal characters."
+ else:
+ message = "bytes can only contain ASCII literal characters"
def is_issue(self, leaf):
string_prefix = leaf.string_prefix.lower()
@@ -1043,14 +1059,20 @@ class _CheckAssignmentRule(SyntaxRule):
error = 'literal'
else:
if second.children[1] == ':':
- error = 'dict display'
+ if self._normalizer.version < (3, 10):
+ error = 'dict display'
+ else:
+ error = 'dict literal'
else:
error = 'set display'
elif first == "{" and second == "}":
if self._normalizer.version < (3, 8):
error = 'literal'
else:
- error = "dict display"
+ if self._normalizer.version < (3, 10):
+ error = "dict display"
+ else:
+ error = "dict literal"
elif first == "{" and len(node.children) > 2:
if self._normalizer.version < (3, 8):
error = 'literal'
@@ -1083,7 +1105,10 @@ class _CheckAssignmentRule(SyntaxRule):
error = str(node.value)
elif type_ == 'operator':
if node.value == '...':
- error = 'Ellipsis'
+ if self._normalizer.version < (3, 10):
+ error = 'Ellipsis'
+ else:
+ error = 'ellipsis'
elif type_ == 'comparison':
error = 'comparison'
elif type_ in ('string', 'number', 'strings'):
@@ -1098,7 +1123,10 @@ class _CheckAssignmentRule(SyntaxRule):
if node.children[0] == 'await':
error = 'await expression'
elif node.children[-2] == '**':
- error = 'operator'
+ if self._normalizer.version < (3, 10):
+ error = 'operator'
+ else:
+ error = 'expression'
else:
# Has a trailer
trailer = node.children[-1]
@@ -1120,7 +1148,10 @@ class _CheckAssignmentRule(SyntaxRule):
elif ('expr' in type_ and type_ != 'star_expr' # is a substring
or '_test' in type_
or type_ in ('term', 'factor')):
- error = 'operator'
+ if self._normalizer.version < (3, 10):
+ error = 'operator'
+ else:
+ error = 'expression'
elif type_ == "star_expr":
if is_deletion:
if self._normalizer.version >= (3, 9):
diff --git a/contrib/python/parso/py3/parso/python/grammar313.txt b/contrib/python/parso/py3/parso/python/grammar313.txt
new file mode 100644
index 00000000000..f092050d881
--- /dev/null
+++ b/contrib/python/parso/py3/parso/python/grammar313.txt
@@ -0,0 +1,169 @@
+# Grammar for Python
+
+# NOTE WELL: You should also follow all the steps listed at
+# https://devguide.python.org/grammar/
+
+# Start symbols for the grammar:
+# single_input is a single interactive statement;
+# file_input is a module or sequence of commands read from an input file;
+# eval_input is the input for the eval() functions.
+# NB: compound_stmt in single_input is followed by extra NEWLINE!
+single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE
+file_input: stmt* ENDMARKER
+eval_input: testlist NEWLINE* ENDMARKER
+
+decorator: '@' namedexpr_test NEWLINE
+decorators: decorator+
+decorated: decorators (classdef | funcdef | async_funcdef)
+
+async_funcdef: 'async' funcdef
+funcdef: 'def' NAME parameters ['->' test] ':' suite
+
+parameters: '(' [typedargslist] ')'
+typedargslist: (
+ (tfpdef ['=' test] (',' tfpdef ['=' test])* ',' '/' [',' [ tfpdef ['=' test] (
+ ',' tfpdef ['=' test])* ([',' [
+ '*' [tfpdef] (',' tfpdef ['=' test])* [',' ['**' tfpdef [',']]]
+ | '**' tfpdef [',']]])
+ | '*' [tfpdef] (',' tfpdef ['=' test])* ([',' ['**' tfpdef [',']]])
+ | '**' tfpdef [',']]] )
+| (tfpdef ['=' test] (',' tfpdef ['=' test])* [',' [
+ '*' [tfpdef] (',' tfpdef ['=' test])* [',' ['**' tfpdef [',']]]
+ | '**' tfpdef [',']]]
+ | '*' [tfpdef] (',' tfpdef ['=' test])* [',' ['**' tfpdef [',']]]
+ | '**' tfpdef [','])
+)
+tfpdef: NAME [':' test]
+varargslist: vfpdef ['=' test ](',' vfpdef ['=' test])* ',' '/' [',' [ (vfpdef ['=' test] (',' vfpdef ['=' test])* [',' [
+ '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef [',']]]
+ | '**' vfpdef [',']]]
+ | '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef [',']]]
+ | '**' vfpdef [',']) ]] | (vfpdef ['=' test] (',' vfpdef ['=' test])* [',' [
+ '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef [',']]]
+ | '**' vfpdef [',']]]
+ | '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef [',']]]
+ | '**' vfpdef [',']
+)
+vfpdef: NAME
+
+stmt: simple_stmt | compound_stmt | NEWLINE
+simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
+small_stmt: (expr_stmt | del_stmt | pass_stmt | flow_stmt |
+ import_stmt | global_stmt | nonlocal_stmt | assert_stmt)
+expr_stmt: testlist_star_expr (annassign | augassign (yield_expr|testlist) |
+ ('=' (yield_expr|testlist_star_expr))*)
+annassign: ':' test ['=' (yield_expr|testlist_star_expr)]
+testlist_star_expr: (test|star_expr) (',' (test|star_expr))* [',']
+augassign: ('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' |
+ '<<=' | '>>=' | '**=' | '//=')
+# For normal and annotated assignments, additional restrictions enforced by the interpreter
+del_stmt: 'del' exprlist
+pass_stmt: 'pass'
+flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt
+break_stmt: 'break'
+continue_stmt: 'continue'
+return_stmt: 'return' [testlist_star_expr]
+yield_stmt: yield_expr
+raise_stmt: 'raise' [test ['from' test]]
+import_stmt: import_name | import_from
+import_name: 'import' dotted_as_names
+# note below: the ('.' | '...') is necessary because '...' is tokenized as ELLIPSIS
+import_from: ('from' (('.' | '...')* dotted_name | ('.' | '...')+)
+ 'import' ('*' | '(' import_as_names ')' | import_as_names))
+import_as_name: NAME ['as' NAME]
+dotted_as_name: dotted_name ['as' NAME]
+import_as_names: import_as_name (',' import_as_name)* [',']
+dotted_as_names: dotted_as_name (',' dotted_as_name)*
+dotted_name: NAME ('.' NAME)*
+global_stmt: 'global' NAME (',' NAME)*
+nonlocal_stmt: 'nonlocal' NAME (',' NAME)*
+assert_stmt: 'assert' test [',' test]
+
+compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef | decorated | async_stmt
+async_stmt: 'async' (funcdef | with_stmt | for_stmt)
+if_stmt: 'if' namedexpr_test ':' suite ('elif' namedexpr_test ':' suite)* ['else' ':' suite]
+while_stmt: 'while' namedexpr_test ':' suite ['else' ':' suite]
+for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite]
+try_stmt: ('try' ':' suite
+ ((except_clause ':' suite)+
+ ['else' ':' suite]
+ ['finally' ':' suite] |
+ 'finally' ':' suite))
+with_stmt: 'with' with_item (',' with_item)* ':' suite
+with_item: test ['as' expr]
+# NB compile.c makes sure that the default except clause is last
+except_clause: 'except' [test ['as' NAME]]
+suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
+
+namedexpr_test: test [':=' test]
+test: or_test ['if' or_test 'else' test] | lambdef
+lambdef: 'lambda' [varargslist] ':' test
+or_test: and_test ('or' and_test)*
+and_test: not_test ('and' not_test)*
+not_test: 'not' not_test | comparison
+comparison: expr (comp_op expr)*
+# <> isn't actually a valid comparison operator in Python. It's here for the
+# sake of a __future__ import described in PEP 401 (which really works :-)
+comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not'
+star_expr: '*' expr
+expr: xor_expr ('|' xor_expr)*
+xor_expr: and_expr ('^' and_expr)*
+and_expr: shift_expr ('&' shift_expr)*
+shift_expr: arith_expr (('<<'|'>>') arith_expr)*
+arith_expr: term (('+'|'-') term)*
+term: factor (('*'|'@'|'/'|'%'|'//') factor)*
+factor: ('+'|'-'|'~') factor | power
+power: atom_expr ['**' factor]
+atom_expr: ['await'] atom trailer*
+atom: ('(' [yield_expr|testlist_comp] ')' |
+ '[' [testlist_comp] ']' |
+ '{' [dictorsetmaker] '}' |
+ NAME | NUMBER | strings | '...' | 'None' | 'True' | 'False')
+testlist_comp: (namedexpr_test|star_expr) ( comp_for | (',' (namedexpr_test|star_expr))* [','] )
+trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME
+subscriptlist: subscript (',' subscript)* [',']
+subscript: test [':=' test] | [test] ':' [test] [sliceop]
+sliceop: ':' [test]
+exprlist: (expr|star_expr) (',' (expr|star_expr))* [',']
+testlist: test (',' test)* [',']
+dictorsetmaker: ( ((test ':' test | '**' expr)
+ (comp_for | (',' (test ':' test | '**' expr))* [','])) |
+ ((test [':=' test] | star_expr)
+ (comp_for | (',' (test [':=' test] | star_expr))* [','])) )
+
+classdef: 'class' NAME ['(' [arglist] ')'] ':' suite
+
+arglist: argument (',' argument)* [',']
+
+# The reason that keywords are test nodes instead of NAME is that using NAME
+# results in an ambiguity. ast.c makes sure it's a NAME.
+# "test '=' test" is really "keyword '=' test", but we have no such token.
+# These need to be in a single rule to avoid grammar that is ambiguous
+# to our LL(1) parser. Even though 'test' includes '*expr' in star_expr,
+# we explicitly match '*' here, too, to give it proper precedence.
+# Illegal combinations and orderings are blocked in ast.c:
+# multiple (test comp_for) arguments are blocked; keyword unpackings
+# that precede iterable unpackings are blocked; etc.
+argument: ( test [comp_for] |
+ test ':=' test |
+ test '=' test |
+ '**' test |
+ '*' test )
+
+comp_iter: comp_for | comp_if
+sync_comp_for: 'for' exprlist 'in' or_test [comp_iter]
+comp_for: ['async'] sync_comp_for
+comp_if: 'if' or_test [comp_iter]
+
+# not used in grammar, but may appear in "node" passed from Parser to Compiler
+encoding_decl: NAME
+
+yield_expr: 'yield' [yield_arg]
+yield_arg: 'from' test | testlist_star_expr
+
+strings: (STRING | fstring)+
+fstring: FSTRING_START fstring_content* FSTRING_END
+fstring_content: FSTRING_STRING | fstring_expr
+fstring_conversion: '!' NAME
+fstring_expr: '{' (testlist_comp | yield_expr) ['='] [ fstring_conversion ] [ fstring_format_spec ] '}'
+fstring_format_spec: ':' fstring_content*
diff --git a/contrib/python/parso/py3/parso/python/tree.py b/contrib/python/parso/py3/parso/python/tree.py
index ebb4087030d..0624e6755d6 100644
--- a/contrib/python/parso/py3/parso/python/tree.py
+++ b/contrib/python/parso/py3/parso/python/tree.py
@@ -295,6 +295,8 @@ class FStringEnd(PythonLeaf):
class _StringComparisonMixin:
+ __slots__ = ()
+
def __eq__(self, other):
"""
Make comparisons with strings easy.
@@ -544,6 +546,7 @@ class Function(ClassOrFunc):
4. annotation (if present)
"""
type = 'funcdef'
+ __slots__ = ()
def __init__(self, children):
super().__init__(children)
diff --git a/contrib/python/parso/py3/tests/test_python_errors.py b/contrib/python/parso/py3/tests/test_python_errors.py
index fe43a301ad0..b4986d33f6b 100644
--- a/contrib/python/parso/py3/tests/test_python_errors.py
+++ b/contrib/python/parso/py3/tests/test_python_errors.py
@@ -1,6 +1,7 @@
"""
Testing if parso finds syntax errors and indentation errors.
"""
+import re
import sys
import warnings
@@ -136,6 +137,28 @@ def _get_actual_exception(code):
wanted = 'SyntaxError: invalid syntax'
elif wanted == "SyntaxError: f-string: single '}' is not allowed":
wanted = 'SyntaxError: invalid syntax'
+ elif "Maybe you meant '==' instead of '='?" in wanted:
+ wanted = wanted.removesuffix(" here. Maybe you meant '==' instead of '='?")
+ elif re.match(
+ r"SyntaxError: unterminated string literal \(detected at line \d+\)", wanted
+ ):
+ wanted = "SyntaxError: EOL while scanning string literal"
+ elif re.match(
+ r"SyntaxError: unterminated triple-quoted string literal \(detected at line \d+\)",
+ wanted,
+ ):
+ wanted = 'SyntaxError: EOF while scanning triple-quoted string literal'
+ elif wanted == 'SyntaxError: cannot use starred expression here':
+ wanted = "SyntaxError: can't use starred expression here"
+ elif wanted == 'SyntaxError: f-string: cannot use starred expression here':
+ wanted = "SyntaxError: f-string: can't use starred expression here"
+ elif re.match(
+ r"IndentationError: expected an indented block after '[^']*' statement on line \d",
+ wanted,
+ ):
+ wanted = 'IndentationError: expected an indented block'
+ elif wanted == 'SyntaxError: unterminated string literal':
+ wanted = 'SyntaxError: EOL while scanning string literal'
return [wanted], line_nr
diff --git a/contrib/python/parso/py3/ya.make b/contrib/python/parso/py3/ya.make
index fa4210f7c5d..4a388e26b2a 100644
--- a/contrib/python/parso/py3/ya.make
+++ b/contrib/python/parso/py3/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(0.8.3)
+VERSION(0.8.4)
LICENSE(PSF-2.0)
@@ -41,6 +41,7 @@ RESOURCE_FILES(
parso/python/grammar310.txt
parso/python/grammar311.txt
parso/python/grammar312.txt
+ parso/python/grammar313.txt
parso/python/grammar36.txt
parso/python/grammar37.txt
parso/python/grammar38.txt
diff --git a/contrib/python/typing-extensions/py3/.dist-info/METADATA b/contrib/python/typing-extensions/py3/.dist-info/METADATA
index 13d06e24b78..5089b4ddde4 100644
--- a/contrib/python/typing-extensions/py3/.dist-info/METADATA
+++ b/contrib/python/typing-extensions/py3/.dist-info/METADATA
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: typing_extensions
-Version: 4.10.0
+Version: 4.11.0
Summary: Backported and Experimental Type Hints for Python 3.8+
Keywords: annotations,backport,checker,checking,function,hinting,hints,type,typechecking,typehinting,typehints,typing
Author-email: "Guido van Rossum, Jukka Lehtosalo, Łukasz Langa, Michael Lee" <levkivskyi@gmail.com>
diff --git a/contrib/python/typing-extensions/py3/typing_extensions.py b/contrib/python/typing-extensions/py3/typing_extensions.py
index f3132ea4ae1..9ccd519ce4f 100644
--- a/contrib/python/typing-extensions/py3/typing_extensions.py
+++ b/contrib/python/typing-extensions/py3/typing_extensions.py
@@ -147,27 +147,6 @@ class _Sentinel:
_marker = _Sentinel()
-def _check_generic(cls, parameters, elen=_marker):
- """Check correct count for parameters of a generic cls (internal helper).
- This gives a nice error message in case of count mismatch.
- """
- if not elen:
- raise TypeError(f"{cls} is not a generic class")
- if elen is _marker:
- if not hasattr(cls, "__parameters__") or not cls.__parameters__:
- raise TypeError(f"{cls} is not a generic class")
- elen = len(cls.__parameters__)
- alen = len(parameters)
- if alen != elen:
- if hasattr(cls, "__parameters__"):
- parameters = [p for p in cls.__parameters__ if not _is_unpack(p)]
- num_tv_tuples = sum(isinstance(p, TypeVarTuple) for p in parameters)
- if (num_tv_tuples > 0) and (alen >= elen - num_tv_tuples):
- return
- raise TypeError(f"Too {'many' if alen > elen else 'few'} parameters for {cls};"
- f" actual {alen}, expected {elen}")
-
-
if sys.version_info >= (3, 10):
def _should_collect_from_parameters(t):
return isinstance(
@@ -181,27 +160,6 @@ else:
return isinstance(t, typing._GenericAlias) and not t._special
-def _collect_type_vars(types, typevar_types=None):
- """Collect all type variable contained in types in order of
- first appearance (lexicographic order). For example::
-
- _collect_type_vars((T, List[S, T])) == (T, S)
- """
- if typevar_types is None:
- typevar_types = typing.TypeVar
- tvars = []
- for t in types:
- if (
- isinstance(t, typevar_types) and
- t not in tvars and
- not _is_unpack(t)
- ):
- tvars.append(t)
- if _should_collect_from_parameters(t):
- tvars.extend([t for t in t.__parameters__ if t not in tvars])
- return tuple(tvars)
-
-
NoReturn = typing.NoReturn
# Some unconstrained type variables. These are used by the container types.
@@ -834,7 +792,11 @@ def _ensure_subclassable(mro_entries):
return inner
-if hasattr(typing, "ReadOnly"):
+# Update this to something like >=3.13.0b1 if and when
+# PEP 728 is implemented in CPython
+_PEP_728_IMPLEMENTED = False
+
+if _PEP_728_IMPLEMENTED:
# The standard library TypedDict in Python 3.8 does not store runtime information
# about which (if any) keys are optional. See https://bugs.python.org/issue38834
# The standard library TypedDict in Python 3.9.0/1 does not honour the "total"
@@ -845,7 +807,8 @@ if hasattr(typing, "ReadOnly"):
# Aaaand on 3.12 we add __orig_bases__ to TypedDict
# to enable better runtime introspection.
# On 3.13 we deprecate some odd ways of creating TypedDicts.
- # PEP 705 proposes adding the ReadOnly[] qualifier.
+ # Also on 3.13, PEP 705 adds the ReadOnly[] qualifier.
+ # PEP 728 (still pending) makes more changes.
TypedDict = typing.TypedDict
_TypedDictMeta = typing._TypedDictMeta
is_typeddict = typing.is_typeddict
@@ -1122,15 +1085,15 @@ else:
return val
-if hasattr(typing, "Required"): # 3.11+
+if hasattr(typing, "ReadOnly"): # 3.13+
get_type_hints = typing.get_type_hints
-else: # <=3.10
+else: # <=3.13
# replaces _strip_annotations()
def _strip_extras(t):
"""Strips Annotated, Required and NotRequired from a given type."""
if isinstance(t, _AnnotatedAlias):
return _strip_extras(t.__origin__)
- if hasattr(t, "__origin__") and t.__origin__ in (Required, NotRequired):
+ if hasattr(t, "__origin__") and t.__origin__ in (Required, NotRequired, ReadOnly):
return _strip_extras(t.__args__[0])
if isinstance(t, typing._GenericAlias):
stripped_args = tuple(_strip_extras(a) for a in t.__args__)
@@ -2689,9 +2652,151 @@ else:
# counting generic parameters, so that when we subscript a generic,
# the runtime doesn't try to substitute the Unpack with the subscripted type.
if not hasattr(typing, "TypeVarTuple"):
+ def _check_generic(cls, parameters, elen=_marker):
+ """Check correct count for parameters of a generic cls (internal helper).
+
+ This gives a nice error message in case of count mismatch.
+ """
+ if not elen:
+ raise TypeError(f"{cls} is not a generic class")
+ if elen is _marker:
+ if not hasattr(cls, "__parameters__") or not cls.__parameters__:
+ raise TypeError(f"{cls} is not a generic class")
+ elen = len(cls.__parameters__)
+ alen = len(parameters)
+ if alen != elen:
+ expect_val = elen
+ if hasattr(cls, "__parameters__"):
+ parameters = [p for p in cls.__parameters__ if not _is_unpack(p)]
+ num_tv_tuples = sum(isinstance(p, TypeVarTuple) for p in parameters)
+ if (num_tv_tuples > 0) and (alen >= elen - num_tv_tuples):
+ return
+
+ # deal with TypeVarLike defaults
+ # required TypeVarLikes cannot appear after a defaulted one.
+ if alen < elen:
+ # since we validate TypeVarLike default in _collect_type_vars
+ # or _collect_parameters we can safely check parameters[alen]
+ if getattr(parameters[alen], '__default__', None) is not None:
+ return
+
+ num_default_tv = sum(getattr(p, '__default__', None)
+ is not None for p in parameters)
+
+ elen -= num_default_tv
+
+ expect_val = f"at least {elen}"
+
+ things = "arguments" if sys.version_info >= (3, 10) else "parameters"
+ raise TypeError(f"Too {'many' if alen > elen else 'few'} {things}"
+ f" for {cls}; actual {alen}, expected {expect_val}")
+else:
+ # Python 3.11+
+
+ def _check_generic(cls, parameters, elen):
+ """Check correct count for parameters of a generic cls (internal helper).
+
+ This gives a nice error message in case of count mismatch.
+ """
+ if not elen:
+ raise TypeError(f"{cls} is not a generic class")
+ alen = len(parameters)
+ if alen != elen:
+ expect_val = elen
+ if hasattr(cls, "__parameters__"):
+ parameters = [p for p in cls.__parameters__ if not _is_unpack(p)]
+
+ # deal with TypeVarLike defaults
+ # required TypeVarLikes cannot appear after a defaulted one.
+ if alen < elen:
+ # since we validate TypeVarLike default in _collect_type_vars
+ # or _collect_parameters we can safely check parameters[alen]
+ if getattr(parameters[alen], '__default__', None) is not None:
+ return
+
+ num_default_tv = sum(getattr(p, '__default__', None)
+ is not None for p in parameters)
+
+ elen -= num_default_tv
+
+ expect_val = f"at least {elen}"
+
+ raise TypeError(f"Too {'many' if alen > elen else 'few'} arguments"
+ f" for {cls}; actual {alen}, expected {expect_val}")
+
+typing._check_generic = _check_generic
+
+# Python 3.11+ _collect_type_vars was renamed to _collect_parameters
+if hasattr(typing, '_collect_type_vars'):
+ def _collect_type_vars(types, typevar_types=None):
+ """Collect all type variable contained in types in order of
+ first appearance (lexicographic order). For example::
+
+ _collect_type_vars((T, List[S, T])) == (T, S)
+ """
+ if typevar_types is None:
+ typevar_types = typing.TypeVar
+ tvars = []
+ # required TypeVarLike cannot appear after TypeVarLike with default
+ default_encountered = False
+ for t in types:
+ if (
+ isinstance(t, typevar_types) and
+ t not in tvars and
+ not _is_unpack(t)
+ ):
+ if getattr(t, '__default__', None) is not None:
+ default_encountered = True
+ elif default_encountered:
+ raise TypeError(f'Type parameter {t!r} without a default'
+ ' follows type parameter with a default')
+
+ tvars.append(t)
+ if _should_collect_from_parameters(t):
+ tvars.extend([t for t in t.__parameters__ if t not in tvars])
+ return tuple(tvars)
+
typing._collect_type_vars = _collect_type_vars
- typing._check_generic = _check_generic
+else:
+ def _collect_parameters(args):
+ """Collect all type variables and parameter specifications in args
+ in order of first appearance (lexicographic order).
+
+ For example::
+
+ assert _collect_parameters((T, Callable[P, T])) == (T, P)
+ """
+ parameters = []
+ # required TypeVarLike cannot appear after TypeVarLike with default
+ default_encountered = False
+ for t in args:
+ if isinstance(t, type):
+ # We don't want __parameters__ descriptor of a bare Python class.
+ pass
+ elif isinstance(t, tuple):
+ # `t` might be a tuple, when `ParamSpec` is substituted with
+ # `[T, int]`, or `[int, *Ts]`, etc.
+ for x in t:
+ for collected in _collect_parameters([x]):
+ if collected not in parameters:
+ parameters.append(collected)
+ elif hasattr(t, '__typing_subst__'):
+ if t not in parameters:
+ if getattr(t, '__default__', None) is not None:
+ default_encountered = True
+ elif default_encountered:
+ raise TypeError(f'Type parameter {t!r} without a default'
+ ' follows type parameter with a default')
+
+ parameters.append(t)
+ else:
+ for x in getattr(t, '__parameters__', ()):
+ if x not in parameters:
+ parameters.append(x)
+
+ return tuple(parameters)
+ typing._collect_parameters = _collect_parameters
# Backport typing.NamedTuple as it exists in Python 3.13.
# In 3.11, the ability to define generic `NamedTuple`s was supported.
diff --git a/contrib/python/typing-extensions/py3/ya.make b/contrib/python/typing-extensions/py3/ya.make
index 6a099000e49..293ccb585ea 100644
--- a/contrib/python/typing-extensions/py3/ya.make
+++ b/contrib/python/typing-extensions/py3/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(4.10.0)
+VERSION(4.11.0)
LICENSE(PSF-2.0)
diff --git a/contrib/restricted/boost/algorithm/ya.make b/contrib/restricted/boost/algorithm/ya.make
index f72f0559fff..c02a2efa2cc 100644
--- a/contrib/restricted/boost/algorithm/ya.make
+++ b/contrib/restricted/boost/algorithm/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/algorithm/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/algorithm/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/array
diff --git a/contrib/restricted/boost/asio/include/boost/asio/detail/config.hpp b/contrib/restricted/boost/asio/include/boost/asio/detail/config.hpp
index 85a7023a2c4..65dae51bac8 100644
--- a/contrib/restricted/boost/asio/include/boost/asio/detail/config.hpp
+++ b/contrib/restricted/boost/asio/include/boost/asio/detail/config.hpp
@@ -1487,4 +1487,11 @@
# endif // defined(__clang__)
#endif // !defined(BOOST_ASIO_HAS_CO_AWAIT)
+// Standard library support for snprintf.
+#if !defined(BOOST_ASIO_HAS_SNPRINTF)
+# if !defined(BOOST_ASIO_DISABLE_SNPRINTF)
+# define BOOST_ASIO_HAS_SNPRINTF 1
+# endif // !defined(BOOST_ASIO_DISABLE_SNPRINTF)
+#endif // !defined(BOOST_ASIO_HAS_SNPRINTF)
+
#endif // BOOST_ASIO_DETAIL_CONFIG_HPP
diff --git a/contrib/restricted/boost/core/include/boost/core/bit.hpp b/contrib/restricted/boost/core/include/boost/core/bit.hpp
index a6147e4d449..cebc87877f3 100644
--- a/contrib/restricted/boost/core/include/boost/core/bit.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/bit.hpp
@@ -47,12 +47,19 @@
# if __has_builtin(__builtin_bit_cast)
# define BOOST_CORE_HAS_BUILTIN_BIT_CAST
# endif
+# if __has_builtin(__builtin_bswap16)
+# define BOOST_CORE_HAS_BUILTIN_BSWAP16
+# endif
#endif
-#if defined(BOOST_MSVC) && BOOST_MSVC >= 1926
+#if !defined(BOOST_CORE_HAS_BUILTIN_BIT_CAST) && (defined(BOOST_MSVC) && BOOST_MSVC >= 1926)
# define BOOST_CORE_HAS_BUILTIN_BIT_CAST
#endif
+#if !defined(BOOST_CORE_HAS_BUILTIN_BSWAP16) && (defined(BOOST_GCC) && BOOST_GCC >= 40800)
+# define BOOST_CORE_HAS_BUILTIN_BSWAP16
+#endif
+
namespace boost
{
namespace core
@@ -825,11 +832,22 @@ BOOST_CONSTEXPR inline boost::uint8_t byteswap_impl( boost::uint8_t x ) BOOST_NO
return x;
}
+#if defined(BOOST_CORE_HAS_BUILTIN_BSWAP16)
+
+BOOST_CONSTEXPR inline boost::uint16_t byteswap_impl( boost::uint16_t x ) BOOST_NOEXCEPT
+{
+ return __builtin_bswap16( x );
+}
+
+#else
+
BOOST_CONSTEXPR inline boost::uint16_t byteswap_impl( boost::uint16_t x ) BOOST_NOEXCEPT
{
return static_cast<boost::uint16_t>( x << 8 | x >> 8 );
}
+#endif
+
#if defined(__GNUC__) || defined(__clang__)
BOOST_CXX14_CONSTEXPR inline boost::uint32_t byteswap_impl( boost::uint32_t x ) BOOST_NOEXCEPT
diff --git a/contrib/restricted/boost/core/include/boost/core/checked_delete.hpp b/contrib/restricted/boost/core/include/boost/core/checked_delete.hpp
index b74a43afab7..67f3c742878 100644
--- a/contrib/restricted/boost/core/include/boost/core/checked_delete.hpp
+++ b/contrib/restricted/boost/core/include/boost/core/checked_delete.hpp
@@ -60,6 +60,10 @@ template<class T> inline void checked_array_delete(T * x) BOOST_NOEXCEPT
delete [] x;
}
+// Block unintended ADL
+namespace checked_deleters
+{
+
template<class T> struct checked_deleter
{
typedef void result_type;
@@ -83,6 +87,11 @@ template<class T> struct checked_array_deleter
}
};
+} // namespace checked_deleters
+
+using checked_deleters::checked_deleter;
+using checked_deleters::checked_array_deleter;
+
} // namespace boost
#endif // #ifndef BOOST_CORE_CHECKED_DELETE_HPP
diff --git a/contrib/restricted/boost/core/ya.make b/contrib/restricted/boost/core/ya.make
index 659d5028d36..2852b74662c 100644
--- a/contrib/restricted/boost/core/ya.make
+++ b/contrib/restricted/boost/core/ya.make
@@ -9,9 +9,9 @@ LICENSE(
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/core/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/core/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/assert
diff --git a/contrib/restricted/boost/crc/ya.make b/contrib/restricted/boost/crc/ya.make
index 6ff76e011c7..fb251cd435a 100644
--- a/contrib/restricted/boost/crc/ya.make
+++ b/contrib/restricted/boost/crc/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/crc/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/crc/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/array
diff --git a/contrib/restricted/boost/endian/ya.make b/contrib/restricted/boost/endian/ya.make
index a641f9cf287..0487982f308 100644
--- a/contrib/restricted/boost/endian/ya.make
+++ b/contrib/restricted/boost/endian/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/endian/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/endian/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/config
diff --git a/contrib/restricted/boost/functional/ya.make b/contrib/restricted/boost/functional/ya.make
index 3b466a45862..b551ea9024a 100644
--- a/contrib/restricted/boost/functional/ya.make
+++ b/contrib/restricted/boost/functional/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/functional/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/functional/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/config
diff --git a/contrib/restricted/boost/icl/ya.make b/contrib/restricted/boost/icl/ya.make
index c4d7ef1a436..144828f1cc8 100644
--- a/contrib/restricted/boost/icl/ya.make
+++ b/contrib/restricted/boost/icl/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/icl/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/icl/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/assert
diff --git a/contrib/restricted/boost/io/ya.make b/contrib/restricted/boost/io/ya.make
index 14e5d2b9b0b..5c0de0e822e 100644
--- a/contrib/restricted/boost/io/ya.make
+++ b/contrib/restricted/boost/io/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/io/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/io/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/config
diff --git a/contrib/restricted/boost/iostreams/ya.make b/contrib/restricted/boost/iostreams/ya.make
index 8641fe92862..7b09ed03799 100644
--- a/contrib/restricted/boost/iostreams/ya.make
+++ b/contrib/restricted/boost/iostreams/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/iostreams/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/iostreams/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/libs/libbz2
diff --git a/contrib/restricted/boost/lambda/ya.make b/contrib/restricted/boost/lambda/ya.make
index 4ef91e2c68d..f11157e5d87 100644
--- a/contrib/restricted/boost/lambda/ya.make
+++ b/contrib/restricted/boost/lambda/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/lambda/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/lambda/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/bind
diff --git a/contrib/restricted/boost/mpl/ya.make b/contrib/restricted/boost/mpl/ya.make
index fcea24d715a..0b59777439a 100644
--- a/contrib/restricted/boost/mpl/ya.make
+++ b/contrib/restricted/boost/mpl/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/mpl/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/mpl/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/config
diff --git a/contrib/restricted/boost/multi_index/ya.make b/contrib/restricted/boost/multi_index/ya.make
index 0bf6d22bab9..716e6f6a5ee 100644
--- a/contrib/restricted/boost/multi_index/ya.make
+++ b/contrib/restricted/boost/multi_index/ya.make
@@ -9,9 +9,9 @@ LICENSE(
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/multi_index/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/multi_index/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/assert
diff --git a/contrib/restricted/boost/optional/ya.make b/contrib/restricted/boost/optional/ya.make
index e73f538e4d6..4918833967b 100644
--- a/contrib/restricted/boost/optional/ya.make
+++ b/contrib/restricted/boost/optional/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/optional/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/optional/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/assert
diff --git a/contrib/restricted/boost/phoenix/ya.make b/contrib/restricted/boost/phoenix/ya.make
index 9d4e770bc9b..5139fb841ad 100644
--- a/contrib/restricted/boost/phoenix/ya.make
+++ b/contrib/restricted/boost/phoenix/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/phoenix/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/phoenix/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/assert
diff --git a/contrib/restricted/boost/predef/ya.make b/contrib/restricted/boost/predef/ya.make
index cedd514231c..da69d1b4f18 100644
--- a/contrib/restricted/boost/predef/ya.make
+++ b/contrib/restricted/boost/predef/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/predef/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/predef/archive/boost-1.85.0.tar.gz)
ADDINCL(
GLOBAL contrib/restricted/boost/predef/include
diff --git a/contrib/restricted/boost/ratio/ya.make b/contrib/restricted/boost/ratio/ya.make
index 93050244072..a0cb3fa3b73 100644
--- a/contrib/restricted/boost/ratio/ya.make
+++ b/contrib/restricted/boost/ratio/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/ratio/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/ratio/archive/boost-1.85.0.tar.gz)
ADDINCL(
GLOBAL contrib/restricted/boost/ratio/include
diff --git a/contrib/restricted/boost/thread/ya.make b/contrib/restricted/boost/thread/ya.make
index 3e55c727dab..3dc4cd1c331 100644
--- a/contrib/restricted/boost/thread/ya.make
+++ b/contrib/restricted/boost/thread/ya.make
@@ -10,9 +10,9 @@ LICENSE(
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/thread/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/thread/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/assert
diff --git a/contrib/restricted/boost/tuple/ya.make b/contrib/restricted/boost/tuple/ya.make
index 6bd50c8d43d..f23bd684c7b 100644
--- a/contrib/restricted/boost/tuple/ya.make
+++ b/contrib/restricted/boost/tuple/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/tuple/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/tuple/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/config
diff --git a/contrib/restricted/boost/typeof/ya.make b/contrib/restricted/boost/typeof/ya.make
index 45b6583d92c..29bbb8cedb7 100644
--- a/contrib/restricted/boost/typeof/ya.make
+++ b/contrib/restricted/boost/typeof/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/typeof/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/typeof/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/config
diff --git a/contrib/restricted/boost/winapi/ya.make b/contrib/restricted/boost/winapi/ya.make
index 24616a4ce99..0a4be90d97b 100644
--- a/contrib/restricted/boost/winapi/ya.make
+++ b/contrib/restricted/boost/winapi/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.84.0)
+VERSION(1.85.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/winapi/archive/boost-1.84.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/winapi/archive/boost-1.85.0.tar.gz)
PEERDIR(
contrib/restricted/boost/config
diff --git a/contrib/restricted/llhttp/README.md b/contrib/restricted/llhttp/README.md
index 4960dbb5a87..28653aa0358 100644
--- a/contrib/restricted/llhttp/README.md
+++ b/contrib/restricted/llhttp/README.md
@@ -397,7 +397,7 @@ With this flag this check is disabled.
Make sure you have [Node.js](https://nodejs.org/), npm and npx installed. Then under project directory run:
```sh
-npm install
+npm ci
make
```
@@ -451,7 +451,7 @@ _Note that using the git repo directly (e.g., via a git repo url and tag) will n
1. Ensure that `Clang` and `make` are in your system path.
2. Using Git Bash, clone the repo to your preferred location.
-3. Cd into the cloned directory and run `npm install`
+3. Cd into the cloned directory and run `npm ci`
5. Run `make`
6. Your `repo/build` directory should now have `libllhttp.a` and `libllhttp.so` static and dynamic libraries.
7. When building your executable, you can link to these libraries. Make sure to set the build folder as an include path when building so you can reference the declarations in `repo/build/llhttp.h`.
diff --git a/contrib/restricted/llhttp/include/llhttp.h b/contrib/restricted/llhttp/include/llhttp.h
index 691969367ae..37b7934d2ee 100644
--- a/contrib/restricted/llhttp/include/llhttp.h
+++ b/contrib/restricted/llhttp/include/llhttp.h
@@ -4,7 +4,7 @@
#define LLHTTP_VERSION_MAJOR 9
#define LLHTTP_VERSION_MINOR 2
-#define LLHTTP_VERSION_PATCH 0
+#define LLHTTP_VERSION_PATCH 1
#ifndef INCLUDE_LLHTTP_ITSELF_H_
#define INCLUDE_LLHTTP_ITSELF_H_
diff --git a/contrib/restricted/llhttp/src/llhttp.c b/contrib/restricted/llhttp/src/llhttp.c
index c08de6494f7..3ef3b817f3d 100644
--- a/contrib/restricted/llhttp/src/llhttp.c
+++ b/contrib/restricted/llhttp/src/llhttp.c
@@ -379,7 +379,7 @@ enum llparse_state_e {
s_n_llhttp__internal__n_header_value_almost_done,
s_n_llhttp__internal__n_invoke_test_lenient_flags_17,
s_n_llhttp__internal__n_header_value_lenient,
- s_n_llhttp__internal__n_error_53,
+ s_n_llhttp__internal__n_error_54,
s_n_llhttp__internal__n_header_value_otherwise,
s_n_llhttp__internal__n_header_value_connection_token,
s_n_llhttp__internal__n_header_value_connection_ws,
@@ -387,12 +387,12 @@ enum llparse_state_e {
s_n_llhttp__internal__n_header_value_connection_2,
s_n_llhttp__internal__n_header_value_connection_3,
s_n_llhttp__internal__n_header_value_connection,
- s_n_llhttp__internal__n_error_55,
s_n_llhttp__internal__n_error_56,
+ s_n_llhttp__internal__n_error_57,
s_n_llhttp__internal__n_header_value_content_length_ws,
s_n_llhttp__internal__n_header_value_content_length,
+ s_n_llhttp__internal__n_error_59,
s_n_llhttp__internal__n_error_58,
- s_n_llhttp__internal__n_error_57,
s_n_llhttp__internal__n_header_value_te_token_ows,
s_n_llhttp__internal__n_header_value,
s_n_llhttp__internal__n_header_value_te_token,
@@ -425,12 +425,12 @@ enum llparse_state_e {
s_n_llhttp__internal__n_req_http_complete,
s_n_llhttp__internal__n_invoke_load_method_1,
s_n_llhttp__internal__n_invoke_llhttp__on_version_complete,
- s_n_llhttp__internal__n_error_65,
- s_n_llhttp__internal__n_error_72,
- s_n_llhttp__internal__n_req_http_minor,
+ s_n_llhttp__internal__n_error_66,
s_n_llhttp__internal__n_error_73,
- s_n_llhttp__internal__n_req_http_dot,
+ s_n_llhttp__internal__n_req_http_minor,
s_n_llhttp__internal__n_error_74,
+ s_n_llhttp__internal__n_req_http_dot,
+ s_n_llhttp__internal__n_error_75,
s_n_llhttp__internal__n_req_http_major,
s_n_llhttp__internal__n_span_start_llhttp__on_version,
s_n_llhttp__internal__n_req_http_start_1,
@@ -534,7 +534,7 @@ enum llparse_state_e {
s_n_llhttp__internal__n_after_start_req,
s_n_llhttp__internal__n_span_start_llhttp__on_method_1,
s_n_llhttp__internal__n_res_line_almost_done,
- s_n_llhttp__internal__n_invoke_test_lenient_flags_29,
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_30,
s_n_llhttp__internal__n_res_status,
s_n_llhttp__internal__n_span_start_llhttp__on_status,
s_n_llhttp__internal__n_res_status_code_otherwise,
@@ -543,12 +543,12 @@ enum llparse_state_e {
s_n_llhttp__internal__n_res_status_code_digit_1,
s_n_llhttp__internal__n_res_after_version,
s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1,
- s_n_llhttp__internal__n_error_88,
- s_n_llhttp__internal__n_error_102,
- s_n_llhttp__internal__n_res_http_minor,
+ s_n_llhttp__internal__n_error_89,
s_n_llhttp__internal__n_error_103,
- s_n_llhttp__internal__n_res_http_dot,
+ s_n_llhttp__internal__n_res_http_minor,
s_n_llhttp__internal__n_error_104,
+ s_n_llhttp__internal__n_res_http_dot,
+ s_n_llhttp__internal__n_error_105,
s_n_llhttp__internal__n_res_http_major,
s_n_llhttp__internal__n_span_start_llhttp__on_version_1,
s_n_llhttp__internal__n_start_res,
@@ -887,7 +887,7 @@ int llhttp__internal__c_test_flags_4(
return (state->flags & 512) == 512;
}
-int llhttp__internal__c_test_lenient_flags_21(
+int llhttp__internal__c_test_lenient_flags_22(
llhttp__internal_t* state,
const unsigned char* p,
const unsigned char* endp) {
@@ -1018,7 +1018,7 @@ int llhttp__internal__c_test_flags_3(
return (state->flags & 8) == 8;
}
-int llhttp__internal__c_test_lenient_flags_19(
+int llhttp__internal__c_test_lenient_flags_20(
llhttp__internal_t* state,
const unsigned char* p,
const unsigned char* endp) {
@@ -1082,7 +1082,7 @@ int llhttp__internal__c_store_http_minor(
return 0;
}
-int llhttp__internal__c_test_lenient_flags_23(
+int llhttp__internal__c_test_lenient_flags_24(
llhttp__internal_t* state,
const unsigned char* p,
const unsigned char* endp) {
@@ -2198,10 +2198,10 @@ static llparse_state_t llhttp__internal__run(
}
switch (*p) {
case 9: {
- goto s_n_llhttp__internal__n_invoke_load_header_state_4;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_18;
}
case ' ': {
- goto s_n_llhttp__internal__n_invoke_load_header_state_4;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_18;
}
default: {
goto s_n_llhttp__internal__n_invoke_load_header_state_5;
@@ -2221,7 +2221,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_header_value_lws;
}
default: {
- goto s_n_llhttp__internal__n_error_52;
+ goto s_n_llhttp__internal__n_error_53;
}
}
/* UNREACHABLE */;
@@ -2258,8 +2258,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_53:
- s_n_llhttp__internal__n_error_53: {
+ case s_n_llhttp__internal__n_error_54:
+ s_n_llhttp__internal__n_error_54: {
state->error = 0xa;
state->reason = "Invalid header value char";
state->error_pos = (const char*) p;
@@ -2281,7 +2281,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2;
}
default: {
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_18;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_19;
}
}
/* UNREACHABLE */;
@@ -2458,8 +2458,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_55:
- s_n_llhttp__internal__n_error_55: {
+ case s_n_llhttp__internal__n_error_56:
+ s_n_llhttp__internal__n_error_56: {
state->error = 0xb;
state->reason = "Content-Length overflow";
state->error_pos = (const char*) p;
@@ -2468,8 +2468,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_56:
- s_n_llhttp__internal__n_error_56: {
+ case s_n_llhttp__internal__n_error_57:
+ s_n_llhttp__internal__n_error_57: {
state->error = 0xb;
state->reason = "Invalid character in Content-Length";
state->error_pos = (const char*) p;
@@ -2564,8 +2564,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_58:
- s_n_llhttp__internal__n_error_58: {
+ case s_n_llhttp__internal__n_error_59:
+ s_n_llhttp__internal__n_error_59: {
state->error = 0xf;
state->reason = "Invalid `Transfer-Encoding` header value";
state->error_pos = (const char*) p;
@@ -2574,8 +2574,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_57:
- s_n_llhttp__internal__n_error_57: {
+ case s_n_llhttp__internal__n_error_58:
+ s_n_llhttp__internal__n_error_58: {
state->error = 0xf;
state->reason = "Invalid `Transfer-Encoding` header value";
state->error_pos = (const char*) p;
@@ -2829,7 +2829,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2;
}
default: {
- goto s_n_llhttp__internal__n_error_61;
+ goto s_n_llhttp__internal__n_error_62;
}
}
/* UNREACHABLE */;
@@ -3230,7 +3230,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_to_http_09;
}
default: {
- goto s_n_llhttp__internal__n_error_62;
+ goto s_n_llhttp__internal__n_error_63;
}
}
/* UNREACHABLE */;
@@ -3255,7 +3255,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_skip_lf_to_http09_1;
}
default: {
- goto s_n_llhttp__internal__n_error_62;
+ goto s_n_llhttp__internal__n_error_63;
}
}
/* UNREACHABLE */;
@@ -3273,13 +3273,13 @@ static llparse_state_t llhttp__internal__run(
switch (match_seq.status) {
case kMatchComplete: {
p++;
- goto s_n_llhttp__internal__n_error_70;
+ goto s_n_llhttp__internal__n_error_71;
}
case kMatchPause: {
return s_n_llhttp__internal__n_req_pri_upgrade;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_71;
+ goto s_n_llhttp__internal__n_error_72;
}
}
/* UNREACHABLE */;
@@ -3296,7 +3296,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_headers_start;
}
default: {
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_25;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_26;
}
}
/* UNREACHABLE */;
@@ -3310,14 +3310,14 @@ static llparse_state_t llhttp__internal__run(
switch (*p) {
case 10: {
p++;
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_24;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_25;
}
case 13: {
p++;
goto s_n_llhttp__internal__n_req_http_complete_crlf;
}
default: {
- goto s_n_llhttp__internal__n_error_69;
+ goto s_n_llhttp__internal__n_error_70;
}
}
/* UNREACHABLE */;
@@ -3342,13 +3342,13 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_21;
default:
- goto s_n_llhttp__internal__n_error_66;
+ goto s_n_llhttp__internal__n_error_67;
}
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_65:
- s_n_llhttp__internal__n_error_65: {
+ case s_n_llhttp__internal__n_error_66:
+ s_n_llhttp__internal__n_error_66: {
state->error = 0x9;
state->reason = "Invalid HTTP version";
state->error_pos = (const char*) p;
@@ -3357,8 +3357,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_72:
- s_n_llhttp__internal__n_error_72: {
+ case s_n_llhttp__internal__n_error_73:
+ s_n_llhttp__internal__n_error_73: {
state->error = 0x9;
state->reason = "Invalid minor version";
state->error_pos = (const char*) p;
@@ -3430,8 +3430,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_73:
- s_n_llhttp__internal__n_error_73: {
+ case s_n_llhttp__internal__n_error_74:
+ s_n_llhttp__internal__n_error_74: {
state->error = 0x9;
state->reason = "Expected dot";
state->error_pos = (const char*) p;
@@ -3457,8 +3457,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_74:
- s_n_llhttp__internal__n_error_74: {
+ case s_n_llhttp__internal__n_error_75:
+ s_n_llhttp__internal__n_error_75: {
state->error = 0x9;
state->reason = "Invalid major version";
state->error_pos = (const char*) p;
@@ -3559,7 +3559,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_http_start_1;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_77;
+ goto s_n_llhttp__internal__n_error_78;
}
}
/* UNREACHABLE */;
@@ -3583,7 +3583,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_http_start_2;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_77;
+ goto s_n_llhttp__internal__n_error_78;
}
}
/* UNREACHABLE */;
@@ -3607,7 +3607,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_http_start_3;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_77;
+ goto s_n_llhttp__internal__n_error_78;
}
}
/* UNREACHABLE */;
@@ -3636,7 +3636,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_http_start_3;
}
default: {
- goto s_n_llhttp__internal__n_error_77;
+ goto s_n_llhttp__internal__n_error_78;
}
}
/* UNREACHABLE */;
@@ -3727,7 +3727,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_fragment;
}
default: {
- goto s_n_llhttp__internal__n_error_78;
+ goto s_n_llhttp__internal__n_error_79;
}
}
/* UNREACHABLE */;
@@ -3788,7 +3788,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_span_end_stub_query_3;
}
default: {
- goto s_n_llhttp__internal__n_error_79;
+ goto s_n_llhttp__internal__n_error_80;
}
}
/* UNREACHABLE */;
@@ -3826,7 +3826,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_query;
}
default: {
- goto s_n_llhttp__internal__n_error_80;
+ goto s_n_llhttp__internal__n_error_81;
}
}
/* UNREACHABLE */;
@@ -3951,10 +3951,10 @@ static llparse_state_t llhttp__internal__run(
}
case 8: {
p++;
- goto s_n_llhttp__internal__n_error_81;
+ goto s_n_llhttp__internal__n_error_82;
}
default: {
- goto s_n_llhttp__internal__n_error_82;
+ goto s_n_llhttp__internal__n_error_83;
}
}
/* UNREACHABLE */;
@@ -4013,7 +4013,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_server_with_at;
}
default: {
- goto s_n_llhttp__internal__n_error_83;
+ goto s_n_llhttp__internal__n_error_84;
}
}
/* UNREACHABLE */;
@@ -4030,7 +4030,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_server;
}
default: {
- goto s_n_llhttp__internal__n_error_84;
+ goto s_n_llhttp__internal__n_error_85;
}
}
/* UNREACHABLE */;
@@ -4067,7 +4067,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_schema_delim_1;
}
default: {
- goto s_n_llhttp__internal__n_error_84;
+ goto s_n_llhttp__internal__n_error_85;
}
}
/* UNREACHABLE */;
@@ -4119,7 +4119,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_schema;
}
default: {
- goto s_n_llhttp__internal__n_error_85;
+ goto s_n_llhttp__internal__n_error_86;
}
}
/* UNREACHABLE */;
@@ -4160,7 +4160,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_url_schema;
}
default: {
- goto s_n_llhttp__internal__n_error_86;
+ goto s_n_llhttp__internal__n_error_87;
}
}
/* UNREACHABLE */;
@@ -4258,7 +4258,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_spaces_before_url;
}
default: {
- goto s_n_llhttp__internal__n_error_87;
+ goto s_n_llhttp__internal__n_error_88;
}
}
/* UNREACHABLE */;
@@ -4272,7 +4272,7 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_26;
default:
- goto s_n_llhttp__internal__n_error_106;
+ goto s_n_llhttp__internal__n_error_107;
}
/* UNREACHABLE */;
abort();
@@ -4289,7 +4289,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4314,7 +4314,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_3;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4335,7 +4335,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_3;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4360,7 +4360,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_4;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4385,7 +4385,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_6;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4410,7 +4410,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_8;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4428,7 +4428,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4449,7 +4449,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_9;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4470,7 +4470,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_7;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4495,7 +4495,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_12;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4520,7 +4520,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_13;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4541,7 +4541,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_13;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4558,7 +4558,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_11;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4583,7 +4583,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_14;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4608,7 +4608,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_17;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4650,7 +4650,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_15;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4675,7 +4675,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_18;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4700,7 +4700,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_20;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4725,7 +4725,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_21;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4746,7 +4746,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_21;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4771,7 +4771,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_23;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4796,7 +4796,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_24;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4821,7 +4821,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_26;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4846,7 +4846,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_28;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4864,7 +4864,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4885,7 +4885,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_29;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4906,7 +4906,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_27;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4931,7 +4931,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_30;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4960,7 +4960,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_30;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -4985,7 +4985,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_31;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5010,7 +5010,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_32;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5035,7 +5035,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_35;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5060,7 +5060,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_36;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5081,7 +5081,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_36;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5106,7 +5106,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_37;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5131,7 +5131,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_38;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5156,7 +5156,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_42;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5181,7 +5181,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_43;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5202,7 +5202,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_43;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5219,7 +5219,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_41;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5241,7 +5241,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_40;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5266,7 +5266,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_45;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5288,7 +5288,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5321,7 +5321,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_44;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5346,7 +5346,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_46;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5371,7 +5371,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_49;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5396,7 +5396,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_50;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5421,7 +5421,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_51;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5446,7 +5446,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_52;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5475,7 +5475,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_52;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5492,7 +5492,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_48;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5517,7 +5517,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_55;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5535,7 +5535,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_store_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5560,7 +5560,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_58;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5581,7 +5581,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_58;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5602,7 +5602,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_56;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5627,7 +5627,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_59;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5652,7 +5652,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_60;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5677,7 +5677,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_60;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5702,7 +5702,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_62;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5727,7 +5727,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_63;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5748,7 +5748,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_63;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5773,7 +5773,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_66;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5798,7 +5798,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_68;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5823,7 +5823,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_69;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5844,7 +5844,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_69;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5869,7 +5869,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_after_start_req_70;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5894,7 +5894,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_70;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5911,7 +5911,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_65;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -5992,7 +5992,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_after_start_req_64;
}
default: {
- goto s_n_llhttp__internal__n_error_107;
+ goto s_n_llhttp__internal__n_error_108;
}
}
/* UNREACHABLE */;
@@ -6024,19 +6024,19 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
}
default: {
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_28;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_29;
}
}
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_invoke_test_lenient_flags_29:
- s_n_llhttp__internal__n_invoke_test_lenient_flags_29: {
+ case s_n_llhttp__internal__n_invoke_test_lenient_flags_30:
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_30: {
switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
default:
- goto s_n_llhttp__internal__n_error_93;
+ goto s_n_llhttp__internal__n_error_94;
}
/* UNREACHABLE */;
abort();
@@ -6080,7 +6080,7 @@ static llparse_state_t llhttp__internal__run(
switch (*p) {
case 10: {
p++;
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_27;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_28;
}
case 13: {
p++;
@@ -6091,7 +6091,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_span_start_llhttp__on_status;
}
default: {
- goto s_n_llhttp__internal__n_error_94;
+ goto s_n_llhttp__internal__n_error_95;
}
}
/* UNREACHABLE */;
@@ -6154,7 +6154,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
}
default: {
- goto s_n_llhttp__internal__n_error_96;
+ goto s_n_llhttp__internal__n_error_97;
}
}
/* UNREACHABLE */;
@@ -6217,7 +6217,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
}
default: {
- goto s_n_llhttp__internal__n_error_98;
+ goto s_n_llhttp__internal__n_error_99;
}
}
/* UNREACHABLE */;
@@ -6280,7 +6280,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
}
default: {
- goto s_n_llhttp__internal__n_error_100;
+ goto s_n_llhttp__internal__n_error_101;
}
}
/* UNREACHABLE */;
@@ -6297,7 +6297,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_invoke_update_status_code;
}
default: {
- goto s_n_llhttp__internal__n_error_101;
+ goto s_n_llhttp__internal__n_error_102;
}
}
/* UNREACHABLE */;
@@ -6311,13 +6311,13 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_25;
default:
- goto s_n_llhttp__internal__n_error_89;
+ goto s_n_llhttp__internal__n_error_90;
}
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_88:
- s_n_llhttp__internal__n_error_88: {
+ case s_n_llhttp__internal__n_error_89:
+ s_n_llhttp__internal__n_error_89: {
state->error = 0x9;
state->reason = "Invalid HTTP version";
state->error_pos = (const char*) p;
@@ -6326,8 +6326,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_102:
- s_n_llhttp__internal__n_error_102: {
+ case s_n_llhttp__internal__n_error_103:
+ s_n_llhttp__internal__n_error_103: {
state->error = 0x9;
state->reason = "Invalid minor version";
state->error_pos = (const char*) p;
@@ -6399,8 +6399,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_103:
- s_n_llhttp__internal__n_error_103: {
+ case s_n_llhttp__internal__n_error_104:
+ s_n_llhttp__internal__n_error_104: {
state->error = 0x9;
state->reason = "Expected dot";
state->error_pos = (const char*) p;
@@ -6426,8 +6426,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- case s_n_llhttp__internal__n_error_104:
- s_n_llhttp__internal__n_error_104: {
+ case s_n_llhttp__internal__n_error_105:
+ s_n_llhttp__internal__n_error_105: {
state->error = 0x9;
state->reason = "Invalid major version";
state->error_pos = (const char*) p;
@@ -6528,7 +6528,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_start_res;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_108;
+ goto s_n_llhttp__internal__n_error_109;
}
}
/* UNREACHABLE */;
@@ -6566,7 +6566,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_or_res_method_2;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_105;
+ goto s_n_llhttp__internal__n_error_106;
}
}
/* UNREACHABLE */;
@@ -6599,7 +6599,7 @@ static llparse_state_t llhttp__internal__run(
return s_n_llhttp__internal__n_req_or_res_method_3;
}
case kMatchMismatch: {
- goto s_n_llhttp__internal__n_error_105;
+ goto s_n_llhttp__internal__n_error_106;
}
}
/* UNREACHABLE */;
@@ -6620,7 +6620,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_or_res_method_3;
}
default: {
- goto s_n_llhttp__internal__n_error_105;
+ goto s_n_llhttp__internal__n_error_106;
}
}
/* UNREACHABLE */;
@@ -6637,7 +6637,7 @@ static llparse_state_t llhttp__internal__run(
goto s_n_llhttp__internal__n_req_or_res_method_1;
}
default: {
- goto s_n_llhttp__internal__n_error_105;
+ goto s_n_llhttp__internal__n_error_106;
}
}
/* UNREACHABLE */;
@@ -7827,7 +7827,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_59: {
+ s_n_llhttp__internal__n_error_60: {
state->error = 0xb;
state->reason = "Content-Length can't be present with Transfer-Encoding";
state->error_pos = (const char*) p;
@@ -8021,6 +8021,25 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
+ s_n_llhttp__internal__n_error_52: {
+ state->error = 0xa;
+ state->reason = "Unexpected whitespace after header value";
+ state->error_pos = (const char*) p;
+ state->_current = (void*) (intptr_t) s_error;
+ return s_error;
+ /* UNREACHABLE */;
+ abort();
+ }
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_18: {
+ switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
+ case 1:
+ goto s_n_llhttp__internal__n_invoke_load_header_state_4;
+ default:
+ goto s_n_llhttp__internal__n_error_52;
+ }
+ /* UNREACHABLE */;
+ abort();
+ }
s_n_llhttp__internal__n_invoke_update_header_state_2: {
switch (llhttp__internal__c_update_header_state(state, p, endp)) {
default:
@@ -8077,7 +8096,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_52: {
+ s_n_llhttp__internal__n_error_53: {
state->error = 0x3;
state->reason = "Missing expected LF after header value";
state->error_pos = (const char*) p;
@@ -8175,14 +8194,14 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_53;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_54;
return s_error;
}
- goto s_n_llhttp__internal__n_error_53;
+ goto s_n_llhttp__internal__n_error_54;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_18: {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_19: {
switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_header_value_lenient;
@@ -8290,10 +8309,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_55;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_56;
return s_error;
}
- goto s_n_llhttp__internal__n_error_55;
+ goto s_n_llhttp__internal__n_error_56;
/* UNREACHABLE */;
abort();
}
@@ -8325,14 +8344,14 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_56;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_57;
return s_error;
}
- goto s_n_llhttp__internal__n_error_56;
+ goto s_n_llhttp__internal__n_error_57;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_54: {
+ s_n_llhttp__internal__n_error_55: {
state->error = 0x4;
state->reason = "Duplicate Content-Length";
state->error_pos = (const char*) p;
@@ -8346,7 +8365,7 @@ static llparse_state_t llhttp__internal__run(
case 0:
goto s_n_llhttp__internal__n_header_value_content_length;
default:
- goto s_n_llhttp__internal__n_error_54;
+ goto s_n_llhttp__internal__n_error_55;
}
/* UNREACHABLE */;
abort();
@@ -8361,11 +8380,11 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) (p + 1);
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_58;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_59;
return s_error;
}
p++;
- goto s_n_llhttp__internal__n_error_58;
+ goto s_n_llhttp__internal__n_error_59;
/* UNREACHABLE */;
abort();
}
@@ -8387,16 +8406,16 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) (p + 1);
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_57;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_58;
return s_error;
}
p++;
- goto s_n_llhttp__internal__n_error_57;
+ goto s_n_llhttp__internal__n_error_58;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_19: {
- switch (llhttp__internal__c_test_lenient_flags_19(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_20: {
+ switch (llhttp__internal__c_test_lenient_flags_20(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_8;
default:
@@ -8408,7 +8427,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_load_type_1: {
switch (llhttp__internal__c_load_type(state, p, endp)) {
case 1:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_19;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_20;
default:
goto s_n_llhttp__internal__n_header_value_te_chunked;
}
@@ -8439,8 +8458,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_20: {
- switch (llhttp__internal__c_test_lenient_flags_19(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_21: {
+ switch (llhttp__internal__c_test_lenient_flags_20(state, p, endp)) {
case 0:
goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_9;
default:
@@ -8452,7 +8471,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_load_type_2: {
switch (llhttp__internal__c_load_type(state, p, endp)) {
case 1:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_20;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_21;
default:
goto s_n_llhttp__internal__n_invoke_or_flags_19;
}
@@ -8501,10 +8520,10 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_21: {
- switch (llhttp__internal__c_test_lenient_flags_21(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_22: {
+ switch (llhttp__internal__c_test_lenient_flags_22(state, p, endp)) {
case 0:
- goto s_n_llhttp__internal__n_error_59;
+ goto s_n_llhttp__internal__n_error_60;
default:
goto s_n_llhttp__internal__n_header_value_discard_ws;
}
@@ -8514,14 +8533,14 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_test_flags_4: {
switch (llhttp__internal__c_test_flags_4(state, p, endp)) {
case 1:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_21;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_22;
default:
goto s_n_llhttp__internal__n_header_value_discard_ws;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_60: {
+ s_n_llhttp__internal__n_error_61: {
state->error = 0xf;
state->reason = "Transfer-Encoding can't be present with Content-Length";
state->error_pos = (const char*) p;
@@ -8530,10 +8549,10 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_22: {
- switch (llhttp__internal__c_test_lenient_flags_21(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_23: {
+ switch (llhttp__internal__c_test_lenient_flags_22(state, p, endp)) {
case 0:
- goto s_n_llhttp__internal__n_error_60;
+ goto s_n_llhttp__internal__n_error_61;
default:
goto s_n_llhttp__internal__n_header_value_discard_ws;
}
@@ -8543,7 +8562,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_test_flags_5: {
switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
case 1:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_22;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_23;
default:
goto s_n_llhttp__internal__n_header_value_discard_ws;
}
@@ -8604,7 +8623,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_61: {
+ s_n_llhttp__internal__n_error_62: {
state->error = 0xa;
state->reason = "Invalid header token";
state->error_pos = (const char*) p;
@@ -8719,7 +8738,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_62: {
+ s_n_llhttp__internal__n_error_63: {
state->error = 0x7;
state->reason = "Expected CRLF";
state->error_pos = (const char*) p;
@@ -8745,7 +8764,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_70: {
+ s_n_llhttp__internal__n_error_71: {
state->error = 0x17;
state->reason = "Pause on PRI/Upgrade";
state->error_pos = (const char*) p;
@@ -8754,7 +8773,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_71: {
+ s_n_llhttp__internal__n_error_72: {
state->error = 0x9;
state->reason = "Expected HTTP/2 Connection Preface";
state->error_pos = (const char*) p;
@@ -8763,7 +8782,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_68: {
+ s_n_llhttp__internal__n_error_69: {
state->error = 0x2;
state->reason = "Expected CRLF after version";
state->error_pos = (const char*) p;
@@ -8772,17 +8791,17 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_25: {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_26: {
switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_headers_start;
default:
- goto s_n_llhttp__internal__n_error_68;
+ goto s_n_llhttp__internal__n_error_69;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_67: {
+ s_n_llhttp__internal__n_error_68: {
state->error = 0x9;
state->reason = "Expected CRLF after version";
state->error_pos = (const char*) p;
@@ -8791,17 +8810,17 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_24: {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_25: {
switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_req_http_complete_crlf;
default:
- goto s_n_llhttp__internal__n_error_67;
+ goto s_n_llhttp__internal__n_error_68;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_69: {
+ s_n_llhttp__internal__n_error_70: {
state->error = 0x9;
state->reason = "Expected CRLF after version";
state->error_pos = (const char*) p;
@@ -8819,7 +8838,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_66: {
+ s_n_llhttp__internal__n_error_67: {
state->error = 0x21;
state->reason = "`on_version_complete` callback error";
state->error_pos = (const char*) p;
@@ -8855,10 +8874,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_65;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_66;
return s_error;
}
- goto s_n_llhttp__internal__n_error_65;
+ goto s_n_llhttp__internal__n_error_66;
/* UNREACHABLE */;
abort();
}
@@ -8908,8 +8927,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_23: {
- switch (llhttp__internal__c_test_lenient_flags_23(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_24: {
+ switch (llhttp__internal__c_test_lenient_flags_24(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1;
default:
@@ -8921,7 +8940,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_store_http_minor: {
switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
default:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_23;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_24;
}
/* UNREACHABLE */;
abort();
@@ -8936,10 +8955,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_72;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_73;
return s_error;
}
- goto s_n_llhttp__internal__n_error_72;
+ goto s_n_llhttp__internal__n_error_73;
/* UNREACHABLE */;
abort();
}
@@ -8953,10 +8972,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_73;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_74;
return s_error;
}
- goto s_n_llhttp__internal__n_error_73;
+ goto s_n_llhttp__internal__n_error_74;
/* UNREACHABLE */;
abort();
}
@@ -8978,14 +8997,14 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_74;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_75;
return s_error;
}
- goto s_n_llhttp__internal__n_error_74;
+ goto s_n_llhttp__internal__n_error_75;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_64: {
+ s_n_llhttp__internal__n_error_65: {
state->error = 0x8;
state->reason = "Invalid method for HTTP/x.x request";
state->error_pos = (const char*) p;
@@ -9069,12 +9088,12 @@ static llparse_state_t llhttp__internal__run(
case 46:
goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
default:
- goto s_n_llhttp__internal__n_error_64;
+ goto s_n_llhttp__internal__n_error_65;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_77: {
+ s_n_llhttp__internal__n_error_78: {
state->error = 0x8;
state->reason = "Expected HTTP/";
state->error_pos = (const char*) p;
@@ -9083,7 +9102,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_75: {
+ s_n_llhttp__internal__n_error_76: {
state->error = 0x8;
state->reason = "Expected SOURCE method for ICE/x.x request";
state->error_pos = (const char*) p;
@@ -9097,12 +9116,12 @@ static llparse_state_t llhttp__internal__run(
case 33:
goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
default:
- goto s_n_llhttp__internal__n_error_75;
+ goto s_n_llhttp__internal__n_error_76;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_76: {
+ s_n_llhttp__internal__n_error_77: {
state->error = 0x8;
state->reason = "Invalid method for RTSP/x.x request";
state->error_pos = (const char*) p;
@@ -9142,7 +9161,7 @@ static llparse_state_t llhttp__internal__run(
case 45:
goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
default:
- goto s_n_llhttp__internal__n_error_76;
+ goto s_n_llhttp__internal__n_error_77;
}
/* UNREACHABLE */;
abort();
@@ -9156,7 +9175,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_63: {
+ s_n_llhttp__internal__n_error_64: {
state->error = 0x1a;
state->reason = "`on_url_complete` callback error";
state->error_pos = (const char*) p;
@@ -9172,7 +9191,7 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_22;
default:
- goto s_n_llhttp__internal__n_error_63;
+ goto s_n_llhttp__internal__n_error_64;
}
/* UNREACHABLE */;
abort();
@@ -9245,7 +9264,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_78: {
+ s_n_llhttp__internal__n_error_79: {
state->error = 0x7;
state->reason = "Invalid char in url fragment start";
state->error_pos = (const char*) p;
@@ -9305,7 +9324,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_79: {
+ s_n_llhttp__internal__n_error_80: {
state->error = 0x7;
state->reason = "Invalid char in url query";
state->error_pos = (const char*) p;
@@ -9314,7 +9333,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_80: {
+ s_n_llhttp__internal__n_error_81: {
state->error = 0x7;
state->reason = "Invalid char in url path";
state->error_pos = (const char*) p;
@@ -9425,7 +9444,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_81: {
+ s_n_llhttp__internal__n_error_82: {
state->error = 0x7;
state->reason = "Double @ in url";
state->error_pos = (const char*) p;
@@ -9434,7 +9453,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_82: {
+ s_n_llhttp__internal__n_error_83: {
state->error = 0x7;
state->reason = "Unexpected char in url server";
state->error_pos = (const char*) p;
@@ -9443,7 +9462,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_83: {
+ s_n_llhttp__internal__n_error_84: {
state->error = 0x7;
state->reason = "Unexpected char in url server";
state->error_pos = (const char*) p;
@@ -9452,7 +9471,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_84: {
+ s_n_llhttp__internal__n_error_85: {
state->error = 0x7;
state->reason = "Unexpected char in url schema";
state->error_pos = (const char*) p;
@@ -9461,7 +9480,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_85: {
+ s_n_llhttp__internal__n_error_86: {
state->error = 0x7;
state->reason = "Unexpected char in url schema";
state->error_pos = (const char*) p;
@@ -9470,7 +9489,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_86: {
+ s_n_llhttp__internal__n_error_87: {
state->error = 0x7;
state->reason = "Unexpected start char in url";
state->error_pos = (const char*) p;
@@ -9489,7 +9508,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_87: {
+ s_n_llhttp__internal__n_error_88: {
state->error = 0x6;
state->reason = "Expected space after method";
state->error_pos = (const char*) p;
@@ -9507,7 +9526,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_106: {
+ s_n_llhttp__internal__n_error_107: {
state->error = 0x20;
state->reason = "`on_method_complete` callback error";
state->error_pos = (const char*) p;
@@ -9541,7 +9560,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_107: {
+ s_n_llhttp__internal__n_error_108: {
state->error = 0x6;
state->reason = "Invalid method encountered";
state->error_pos = (const char*) p;
@@ -9550,7 +9569,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_99: {
+ s_n_llhttp__internal__n_error_100: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -9559,7 +9578,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_97: {
+ s_n_llhttp__internal__n_error_98: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -9568,7 +9587,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_95: {
+ s_n_llhttp__internal__n_error_96: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -9586,7 +9605,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_91: {
+ s_n_llhttp__internal__n_error_92: {
state->error = 0x1b;
state->reason = "`on_status_complete` callback error";
state->error_pos = (const char*) p;
@@ -9602,12 +9621,12 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_24;
default:
- goto s_n_llhttp__internal__n_error_91;
+ goto s_n_llhttp__internal__n_error_92;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_90: {
+ s_n_llhttp__internal__n_error_91: {
state->error = 0xd;
state->reason = "Invalid response status";
state->error_pos = (const char*) p;
@@ -9616,17 +9635,17 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_27: {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_28: {
switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
default:
- goto s_n_llhttp__internal__n_error_90;
+ goto s_n_llhttp__internal__n_error_91;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_92: {
+ s_n_llhttp__internal__n_error_93: {
state->error = 0x2;
state->reason = "Expected LF after CR";
state->error_pos = (const char*) p;
@@ -9635,17 +9654,17 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_28: {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_29: {
switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
default:
- goto s_n_llhttp__internal__n_error_92;
+ goto s_n_llhttp__internal__n_error_93;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_93: {
+ s_n_llhttp__internal__n_error_94: {
state->error = 0x19;
state->reason = "Missing expected CR after response line";
state->error_pos = (const char*) p;
@@ -9664,11 +9683,11 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) (p + 1);
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_29;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_30;
return s_error;
}
p++;
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_29;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_30;
/* UNREACHABLE */;
abort();
}
@@ -9690,7 +9709,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_94: {
+ s_n_llhttp__internal__n_error_95: {
state->error = 0xd;
state->reason = "Invalid response status";
state->error_pos = (const char*) p;
@@ -9702,14 +9721,14 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_mul_add_status_code_2: {
switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
case 1:
- goto s_n_llhttp__internal__n_error_95;
+ goto s_n_llhttp__internal__n_error_96;
default:
goto s_n_llhttp__internal__n_res_status_code_otherwise;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_96: {
+ s_n_llhttp__internal__n_error_97: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -9721,14 +9740,14 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_mul_add_status_code_1: {
switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
case 1:
- goto s_n_llhttp__internal__n_error_97;
+ goto s_n_llhttp__internal__n_error_98;
default:
goto s_n_llhttp__internal__n_res_status_code_digit_3;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_98: {
+ s_n_llhttp__internal__n_error_99: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -9740,14 +9759,14 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_mul_add_status_code: {
switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
case 1:
- goto s_n_llhttp__internal__n_error_99;
+ goto s_n_llhttp__internal__n_error_100;
default:
goto s_n_llhttp__internal__n_res_status_code_digit_2;
}
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_100: {
+ s_n_llhttp__internal__n_error_101: {
state->error = 0xd;
state->reason = "Invalid status code";
state->error_pos = (const char*) p;
@@ -9764,7 +9783,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_101: {
+ s_n_llhttp__internal__n_error_102: {
state->error = 0x9;
state->reason = "Expected space after version";
state->error_pos = (const char*) p;
@@ -9782,7 +9801,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_89: {
+ s_n_llhttp__internal__n_error_90: {
state->error = 0x21;
state->reason = "`on_version_complete` callback error";
state->error_pos = (const char*) p;
@@ -9818,10 +9837,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_88;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_89;
return s_error;
}
- goto s_n_llhttp__internal__n_error_88;
+ goto s_n_llhttp__internal__n_error_89;
/* UNREACHABLE */;
abort();
}
@@ -9871,8 +9890,8 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_invoke_test_lenient_flags_26: {
- switch (llhttp__internal__c_test_lenient_flags_23(state, p, endp)) {
+ s_n_llhttp__internal__n_invoke_test_lenient_flags_27: {
+ switch (llhttp__internal__c_test_lenient_flags_24(state, p, endp)) {
case 1:
goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6;
default:
@@ -9884,7 +9903,7 @@ static llparse_state_t llhttp__internal__run(
s_n_llhttp__internal__n_invoke_store_http_minor_1: {
switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
default:
- goto s_n_llhttp__internal__n_invoke_test_lenient_flags_26;
+ goto s_n_llhttp__internal__n_invoke_test_lenient_flags_27;
}
/* UNREACHABLE */;
abort();
@@ -9899,10 +9918,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_102;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_103;
return s_error;
}
- goto s_n_llhttp__internal__n_error_102;
+ goto s_n_llhttp__internal__n_error_103;
/* UNREACHABLE */;
abort();
}
@@ -9916,10 +9935,10 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_103;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_104;
return s_error;
}
- goto s_n_llhttp__internal__n_error_103;
+ goto s_n_llhttp__internal__n_error_104;
/* UNREACHABLE */;
abort();
}
@@ -9941,14 +9960,14 @@ static llparse_state_t llhttp__internal__run(
if (err != 0) {
state->error = err;
state->error_pos = (const char*) p;
- state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_104;
+ state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_105;
return s_error;
}
- goto s_n_llhttp__internal__n_error_104;
+ goto s_n_llhttp__internal__n_error_105;
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_108: {
+ s_n_llhttp__internal__n_error_109: {
state->error = 0x8;
state->reason = "Expected HTTP/";
state->error_pos = (const char*) p;
@@ -10008,7 +10027,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_105: {
+ s_n_llhttp__internal__n_error_106: {
state->error = 0x8;
state->reason = "Invalid word encountered";
state->error_pos = (const char*) p;
@@ -10081,7 +10100,7 @@ static llparse_state_t llhttp__internal__run(
/* UNREACHABLE */;
abort();
}
- s_n_llhttp__internal__n_error_109: {
+ s_n_llhttp__internal__n_error_110: {
state->error = 0x1f;
state->reason = "`on_reset` callback error";
state->error_pos = (const char*) p;
@@ -10097,7 +10116,7 @@ static llparse_state_t llhttp__internal__run(
case 21:
goto s_n_llhttp__internal__n_pause_28;
default:
- goto s_n_llhttp__internal__n_error_109;
+ goto s_n_llhttp__internal__n_error_110;
}
/* UNREACHABLE */;
abort();
diff --git a/contrib/restricted/llhttp/ya.make b/contrib/restricted/llhttp/ya.make
index 1152518a971..f09f1118615 100644
--- a/contrib/restricted/llhttp/ya.make
+++ b/contrib/restricted/llhttp/ya.make
@@ -6,9 +6,9 @@ LICENSE(MIT)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(9.2.0)
+VERSION(9.2.1)
-ORIGINAL_SOURCE(https://github.com/nodejs/llhttp/archive/release/v9.2.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/nodejs/llhttp/archive/release/v9.2.1.tar.gz)
ADDINCL(
GLOBAL contrib/restricted/llhttp/include
diff --git a/library/cpp/clang_tidy/arcadia_checks/ascii_compare_ignore_case_check.cpp b/library/cpp/clang_tidy/arcadia_checks/ascii_compare_ignore_case_check.cpp
new file mode 100644
index 00000000000..c24f40bf0d9
--- /dev/null
+++ b/library/cpp/clang_tidy/arcadia_checks/ascii_compare_ignore_case_check.cpp
@@ -0,0 +1,65 @@
+#include "ascii_compare_ignore_case_check.h"
+
+#include <contrib/libs/clang16/include/clang/AST/ASTContext.h>
+#include <contrib/libs/clang16/include/clang/ASTMatchers/ASTMatchFinder.h>
+#include <contrib/libs/clang16/include/clang/Basic/Diagnostic.h>
+
+
+using namespace clang::ast_matchers;
+
+namespace clang::tidy::arcadia {
+
+ // This check is based on readability-string-compare.
+
+ static const StringRef DiagMessage =
+ "do not use 'AsciiCompareIgnoreCase' to test case-insensitive equality "
+ "of strings; use 'AsciiEqualsIgnoreCase' instead";
+
+ void AsciiCompareIgnoreCaseCheck::registerMatchers(MatchFinder* finder) {
+ const auto compareMatcher = callExpr(
+ callee(functionDecl(
+ hasName("AsciiCompareIgnoreCase"),
+ parameterCountIs(2)
+ ))
+ );
+
+ // Case 1: AsciiCompareIgnoreCase(...) is casted (maybe implicitly) to boolean.
+ finder->addMatcher(
+ traverse(
+ TK_AsIs,
+ // Explicit casts also contain an implicit cast inside
+ implicitCastExpr(hasImplicitDestinationType(booleanType()), has(compareMatcher))
+ .bind("match1")),
+ this);
+
+ // Case 2: AsciiCompareIgnoreCase == 0 (!= 0)
+ finder->addMatcher(
+ binaryOperator(
+ hasAnyOperatorName("==", "!="),
+ hasOperands(
+ compareMatcher.bind("compare"),
+ integerLiteral(equals(0)).bind("zero")))
+ .bind("match2"),
+ this);
+ }
+
+ void AsciiCompareIgnoreCaseCheck::check(const MatchFinder::MatchResult& result) {
+ if (const auto* matched = result.Nodes.getNodeAs<Stmt>("match1")) {
+ diag(matched->getBeginLoc(), DiagMessage);
+ } else if (const auto* matched = result.Nodes.getNodeAs<Stmt>("match2")) {
+ const auto* op = cast<BinaryOperator>(matched);
+ const auto* compareCall = result.Nodes.getNodeAs<CallExpr>("compare");
+ const auto* zero = result.Nodes.getNodeAs<Stmt>("zero");
+
+ const ASTContext &ctx = *result.Context;
+ auto diagBuilder = diag(matched->getBeginLoc(), DiagMessage);
+ if (op->getOpcode() == BinaryOperatorKind::BO_NE) {
+ diagBuilder << FixItHint::CreateInsertion(compareCall->getCallee()->getBeginLoc(), "!");
+ }
+ diagBuilder << FixItHint::CreateReplacement(compareCall->getCallee()->getSourceRange(), "AsciiEqualsIgnoreCase");
+ diagBuilder << FixItHint::CreateRemoval(op->getOperatorLoc());
+ diagBuilder << FixItHint::CreateRemoval(zero->getSourceRange());
+ }
+ }
+
+} // namespace clang::tidy::arcadia
diff --git a/library/cpp/clang_tidy/arcadia_checks/ascii_compare_ignore_case_check.h b/library/cpp/clang_tidy/arcadia_checks/ascii_compare_ignore_case_check.h
new file mode 100644
index 00000000000..e6da741aa63
--- /dev/null
+++ b/library/cpp/clang_tidy/arcadia_checks/ascii_compare_ignore_case_check.h
@@ -0,0 +1,21 @@
+#pragma once
+
+#include <contrib/libs/clang16/tools/extra/clang-tidy/ClangTidyCheck.h>
+
+namespace clang::tidy::arcadia {
+ /// Finds uses of AsciiCompareIgnoreCase that can be replaced with AsciiEqualsIgnoreCase.
+ class AsciiCompareIgnoreCaseCheck : public ClangTidyCheck {
+ public:
+ AsciiCompareIgnoreCaseCheck(StringRef name, ClangTidyContext* context)
+ : ClangTidyCheck(name, context)
+ {}
+
+ bool isLanguageVersionSupported(const LangOptions& langOpts) const override {
+ return langOpts.CPlusPlus;
+ }
+
+ void registerMatchers(ast_matchers::MatchFinder* finder) override;
+ void check(const ast_matchers::MatchFinder::MatchResult& result) override;
+ };
+
+} // namespace clang::tidy::arcadia
diff --git a/library/cpp/clang_tidy/arcadia_checks/tidy_module.cpp b/library/cpp/clang_tidy/arcadia_checks/tidy_module.cpp
index 348211949e9..add729d5fb1 100644
--- a/library/cpp/clang_tidy/arcadia_checks/tidy_module.cpp
+++ b/library/cpp/clang_tidy/arcadia_checks/tidy_module.cpp
@@ -5,6 +5,7 @@
#include "taxi_coroutine_unsafe_check.h"
#include "taxi_dangling_config_ref_check.h"
+#include "ascii_compare_ignore_case_check.h"
#include "usage_restriction_checks.h"
using namespace clang::ast_matchers;
@@ -21,6 +22,7 @@ namespace clang::tidy::arcadia {
// https://st.yandex-team.ru/IGNIETFERRO-1863
CheckFactories.registerCheck<TypeidNameRestrictionCheck>(
"arcadia-typeid-name-restriction");
+ CheckFactories.registerCheck<AsciiCompareIgnoreCaseCheck>("arcadia-ascii-compare-ignorecase");
}
};
diff --git a/library/cpp/clang_tidy/arcadia_checks/usage_restriction_checks.cpp b/library/cpp/clang_tidy/arcadia_checks/usage_restriction_checks.cpp
index bc825fa18fe..b4530088076 100644
--- a/library/cpp/clang_tidy/arcadia_checks/usage_restriction_checks.cpp
+++ b/library/cpp/clang_tidy/arcadia_checks/usage_restriction_checks.cpp
@@ -7,10 +7,10 @@ using namespace clang::ast_matchers;
namespace clang::tidy::arcadia {
void TypeidNameRestrictionCheck::registerMatchers(MatchFinder* Finder) {
Finder->addMatcher(cxxMemberCallExpr(on(expr(hasType(namedDecl(hasName("::std::type_info")))).bind("expr")),
- callee(cxxMethodDecl(allOf(hasName("name"), parameterCountIs(0))))),
+ callee(cxxMethodDecl(hasName("name"), parameterCountIs(0)))),
this);
Finder->addMatcher(cxxMemberCallExpr(on(expr(hasType(namedDecl(hasName("::std::type_index")))).bind("expr")),
- callee(cxxMethodDecl(allOf(hasName("name"), parameterCountIs(0))))),
+ callee(cxxMethodDecl(hasName("name"), parameterCountIs(0)))),
this);
}
diff --git a/library/cpp/clang_tidy/arcadia_checks/ya.make b/library/cpp/clang_tidy/arcadia_checks/ya.make
index 5a38ea6c391..63224e3e50e 100644
--- a/library/cpp/clang_tidy/arcadia_checks/ya.make
+++ b/library/cpp/clang_tidy/arcadia_checks/ya.make
@@ -10,6 +10,7 @@ NO_COMPILER_WARNINGS()
NO_UTIL()
SRCS(
+ ascii_compare_ignore_case_check.cpp
taxi_coroutine_unsafe_check.cpp
taxi_dangling_config_ref_check.cpp
GLOBAL tidy_module.cpp
diff --git a/library/cpp/http/io/headers.cpp b/library/cpp/http/io/headers.cpp
index 3f3a5a2d07d..9117bc0ba00 100644
--- a/library/cpp/http/io/headers.cpp
+++ b/library/cpp/http/io/headers.cpp
@@ -12,13 +12,6 @@ static inline TStringBuf Trim(const char* b, const char* e) noexcept {
return StripString(TStringBuf(b, e));
}
-static inline bool HeaderNameEqual(TStringBuf headerName, TStringBuf expectedName) noexcept {
- // Most headers names have distinct sizes.
- // Size comparison adds small overhead if all headers have the same size (~4% or lower with size = 4),
- // but significantly speeds up the case where sizes are different (~4.5x for expectedName.size() = 4 and headerName.size() = 5)
- return headerName.size() == expectedName.size() && AsciiCompareIgnoreCase(headerName, expectedName) == 0;
-}
-
THttpInputHeader::THttpInputHeader(const TStringBuf header) {
size_t pos = header.find(':');
@@ -79,7 +72,7 @@ bool THttpHeaders::HasHeader(const TStringBuf header) const {
const THttpInputHeader* THttpHeaders::FindHeader(const TStringBuf header) const {
for (const auto& hdr : Headers_) {
- if (HeaderNameEqual(hdr.Name(), header)) {
+ if (AsciiEqualsIgnoreCase(hdr.Name(), header)) {
return &hdr;
}
}
@@ -88,7 +81,7 @@ const THttpInputHeader* THttpHeaders::FindHeader(const TStringBuf header) const
void THttpHeaders::RemoveHeader(const TStringBuf header) {
for (auto h = Headers_.begin(); h != Headers_.end(); ++h) {
- if (HeaderNameEqual(h->Name(), header)) {
+ if (AsciiEqualsIgnoreCase(h->Name(), header)) {
Headers_.erase(h);
return;
}
@@ -98,7 +91,7 @@ void THttpHeaders::RemoveHeader(const TStringBuf header) {
void THttpHeaders::AddOrReplaceHeader(const THttpInputHeader& header) {
TStringBuf name = header.Name();
for (auto& hdr : Headers_) {
- if (HeaderNameEqual(hdr.Name(), name)) {
+ if (AsciiEqualsIgnoreCase(hdr.Name(), name)) {
hdr = header;
return;
}
diff --git a/library/cpp/monlib/service/format.h b/library/cpp/monlib/service/format.h
index 0044b586b19..b95f504c05b 100644
--- a/library/cpp/monlib/service/format.h
+++ b/library/cpp/monlib/service/format.h
@@ -21,9 +21,11 @@ namespace NMonitoring {
auto it = FindIf(std::begin(headers), std::end(headers),
[=] (const auto& h) {
if constexpr (NPrivate::THasName<std::decay_t<decltype(h)>>::value) {
- return AsciiCompareIgnoreCase(h.Name(), TStringBuf("accept-encoding")) == 0;
- } else if (isPlainPair) {
- return AsciiCompareIgnoreCase(h.first, TStringBuf("accept-encoding")) == 0;
+ return AsciiEqualsIgnoreCase(h.Name(), TStringBuf("accept-encoding"));
+ } else if constexpr (isPlainPair) {
+ return AsciiEqualsIgnoreCase(h.first, TStringBuf("accept-encoding"));
+ } else {
+ static_assert(TDependentFalse<decltype(h)>);
}
});
@@ -66,9 +68,11 @@ namespace NMonitoring {
auto it = FindIf(std::begin(headers), std::end(headers),
[=] (const auto& h) {
if constexpr (NPrivate::THasName<std::decay_t<decltype(h)>>::value) {
- return AsciiCompareIgnoreCase(h.Name(), TStringBuf("accept")) == 0;
- } else if (isPlainPair) {
- return AsciiCompareIgnoreCase(h.first, TStringBuf("accept")) == 0;
+ return AsciiEqualsIgnoreCase(h.Name(), TStringBuf("accept"));
+ } else if constexpr (isPlainPair) {
+ return AsciiEqualsIgnoreCase(h.first, TStringBuf("accept"));
+ } else {
+ static_assert(TDependentFalse<decltype(h)>);
}
});
diff --git a/library/cpp/tld/tlds-alpha-by-domain.txt b/library/cpp/tld/tlds-alpha-by-domain.txt
index 3241edfd979..24c895894d1 100644
--- a/library/cpp/tld/tlds-alpha-by-domain.txt
+++ b/library/cpp/tld/tlds-alpha-by-domain.txt
@@ -1,4 +1,4 @@
-# Version 2024041600, Last Updated Tue Apr 16 07:07:01 2024 UTC
+# Version 2024041900, Last Updated Fri Apr 19 07:07:01 2024 UTC
AAA
AARP
ABB
diff --git a/library/cpp/yt/memory/function_view.h b/library/cpp/yt/memory/function_view.h
index 259238521ff..108fd076ce3 100644
--- a/library/cpp/yt/memory/function_view.h
+++ b/library/cpp/yt/memory/function_view.h
@@ -1,36 +1,11 @@
#pragma once
-#include <concepts>
+#include <library/cpp/yt/misc/concepts.h>
namespace NYT {
////////////////////////////////////////////////////////////////////////////////
-namespace NDetail {
-
-template <class TSignature>
-struct TTypeErasureTraits;
-
-template <class TResult, bool NoExcept, class... TArgs>
-struct TTypeErasureTraits<TResult(TArgs...) noexcept(NoExcept)>
-{
- using TSignature = TResult(TArgs...) noexcept(NoExcept);
-
- // TODO(arkady-e1ppa): Support pointer-to-member-function?
- template <class T>
- static constexpr bool IsInvocable = NoExcept
- ? requires (T obj, TArgs... args) {
- { obj(std::forward<TArgs>(args)...) } noexcept -> std::same_as<TResult>;
- }
- : requires (T obj, TArgs... args) {
- { obj(std::forward<TArgs>(args)...) } -> std::same_as<TResult>;
- };
-};
-
-} // namespace NDetail
-
-////////////////////////////////////////////////////////////////////////////////
-
// Non-owning type-erasure container.
/*
Example:
@@ -75,9 +50,10 @@ class TFunctionView;
////////////////////////////////////////////////////////////////////////////////
+// TODO(arkady-e1ppa): Support pointer-to-member-function?
template <class T, class TSignature>
concept CTypeErasable =
- NDetail::TTypeErasureTraits<TSignature>::template IsInvocable<T> &&
+ CInvocable<T, TSignature> &&
(!std::same_as<T, TFunctionView<TSignature>>);
////////////////////////////////////////////////////////////////////////////////
@@ -105,7 +81,7 @@ public:
bool IsValid() const noexcept;
void Reset() noexcept;
- // bool operator==(const TFunctionView& other) const & = default;
+ bool operator==(const TFunctionView& other) const & = default;
private:
// NB: Technically, this is UB according to C standard, which
diff --git a/library/cpp/yt/memory/tls_scratch-inl.h b/library/cpp/yt/memory/tls_scratch-inl.h
new file mode 100644
index 00000000000..32c26d67c08
--- /dev/null
+++ b/library/cpp/yt/memory/tls_scratch-inl.h
@@ -0,0 +1,28 @@
+#ifndef TLS_SCRATH_INL_H_
+#error "Direct inclusion of this file is not allowed, include tls_scratch.h"
+// For the sake of sane code completion.
+#include "tls_scratch.h"
+#endif
+
+#include <library/cpp/yt/misc/tls.h>
+
+namespace NYT {
+
+////////////////////////////////////////////////////////////////////////////////
+
+template <class T>
+TMutableRange<T> GetTlsScratchBuffer(size_t size)
+{
+ // This is a workround for std::vector<bool>.
+ using TBoxed = std::array<T, 1>;
+ YT_THREAD_LOCAL(std::vector<TBoxed>) tlsVector;
+ auto& vector = GetTlsRef(tlsVector);
+ vector.reserve(size);
+ auto range = TMutableRange(reinterpret_cast<T*>(vector.data()), size);
+ std::fill(range.begin(), range.end(), T());
+ return range;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+} // namespace NYT
diff --git a/library/cpp/yt/memory/tls_scratch.h b/library/cpp/yt/memory/tls_scratch.h
new file mode 100644
index 00000000000..20e306f222c
--- /dev/null
+++ b/library/cpp/yt/memory/tls_scratch.h
@@ -0,0 +1,20 @@
+#pragma once
+
+#include "range.h"
+
+namespace NYT {
+
+////////////////////////////////////////////////////////////////////////////////
+
+//! Returns a temporary buffer (stored on TLS) of a given size.
+//! The content is initialized with default values of T before being returned.
+template <class T>
+TMutableRange<T> GetTlsScratchBuffer(size_t size);
+
+////////////////////////////////////////////////////////////////////////////////
+
+} // namespace NYT
+
+#define TLS_SCRATH_INL_H_
+#include "tls_scratch-inl.h"
+#undef TLS_SCRATH_INL_H_
diff --git a/library/cpp/yt/misc/concepts.h b/library/cpp/yt/misc/concepts.h
new file mode 100644
index 00000000000..976c707ffec
--- /dev/null
+++ b/library/cpp/yt/misc/concepts.h
@@ -0,0 +1,49 @@
+#pragma once
+
+#include <concepts>
+
+namespace NYT {
+
+////////////////////////////////////////////////////////////////////////////////
+
+namespace NDetail {
+
+template <class T, class TSignature>
+struct TIsInvocable;
+
+template <class T, class TResult, bool NoExcept, class... TArgs>
+struct TIsInvocable<T, TResult(TArgs...) noexcept(NoExcept)>
+{
+private:
+ static constexpr bool IsInvocable_ = requires (T&& t, TArgs&&... args) {
+ { std::forward<T>(t)(std::forward<TArgs>(args)...) } -> std::same_as<TResult>;
+ };
+
+ static constexpr bool IsNoThrowInvocable_ = requires (T&& t, TArgs&&... args) {
+ { std::forward<T>(t)(std::forward<TArgs>(args)...) } noexcept -> std::same_as<TResult>;
+ };
+
+public:
+ static constexpr bool Value =
+ IsInvocable_ &&
+ (!NoExcept || IsNoThrowInvocable_);
+};
+
+} // namespace NDetail
+
+////////////////////////////////////////////////////////////////////////////////
+
+template <class TObject, class TScalar>
+concept CScalable = requires (TObject object, TScalar scalar)
+{
+ { object * scalar } -> std::same_as<TObject>;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+
+template <class T, class TSignature>
+concept CInvocable = NDetail::TIsInvocable<T, TSignature>::Value;
+
+////////////////////////////////////////////////////////////////////////////////
+
+} // namespace NYT
diff --git a/library/cpp/yt/misc/port.h b/library/cpp/yt/misc/port.h
index 7cfb8257087..e30e163a59f 100644
--- a/library/cpp/yt/misc/port.h
+++ b/library/cpp/yt/misc/port.h
@@ -69,3 +69,9 @@
#else
#error Unsupported compiler
#endif
+
+#if defined(_unix_)
+ #define NO_UNIQUE_ADDRESS [[no_unique_address]]
+#else
+ #define NO_UNIQUE_ADDRESS
+#endif
diff --git a/util/system/compiler.h b/util/system/compiler.h
index 259232b67ad..2b4b05fc5fb 100644
--- a/util/system/compiler.h
+++ b/util/system/compiler.h
@@ -297,6 +297,9 @@ _YandexAbort();
#if __has_feature(address_sanitizer)
#define _asan_enabled_
#endif
+ #if __has_feature(leak_sanitizer)
+ #define _lsan_enabled_
+ #endif
#else
@@ -309,10 +312,13 @@ _YandexAbort();
#if defined(address_sanitizer_enabled) || defined(__SANITIZE_ADDRESS__)
#define _asan_enabled_
#endif
+ #if defined(leak_sanitizer_enabled) || defined(__SANITIZE_LEAK__)
+ #define _lsan_enabled_
+ #endif
#endif
-#if defined(_asan_enabled_) || defined(_msan_enabled_) || defined(_tsan_enabled_) || defined(_ubsan_enabled_)
+#if defined(_asan_enabled_) || defined(_msan_enabled_) || defined(_tsan_enabled_) || defined(_ubsan_enabled_) || defined(_lsan_enabled_)
#define _san_enabled_
#endif
diff --git a/util/system/sanitizers.h b/util/system/sanitizers.h
index 516256ea1d6..47d3e8627c8 100644
--- a/util/system/sanitizers.h
+++ b/util/system/sanitizers.h
@@ -4,8 +4,11 @@
extern "C" { // sanitizers API
-#if defined(_asan_enabled_)
+#if defined(_asan_enabled_) || defined(_lsan_enabled_)
void __lsan_ignore_object(const void* p);
+#endif
+
+#if defined(_asan_enabled_)
void __sanitizer_start_switch_fiber(void** fake_stack_save, const void* bottom, size_t size);
void __sanitizer_finish_switch_fiber(void* fake_stack_save, const void** old_bottom, size_t* old_size);
#endif
@@ -152,7 +155,7 @@ namespace NSan {
}
inline static void MarkAsIntentionallyLeaked(const void* ptr) noexcept {
-#if defined(_asan_enabled_)
+#if defined(_asan_enabled_) || defined(_lsan_enabled_)
__lsan_ignore_object(ptr);
#else
Y_UNUSED(ptr);
diff --git a/vendor/github.com/cncf/xds/go/udpa/annotations/migrate.pb.go b/vendor/github.com/cncf/xds/go/udpa/annotations/migrate.pb.go
index be9f4678ced..4da2bd36333 100644
--- a/vendor/github.com/cncf/xds/go/udpa/annotations/migrate.pb.go
+++ b/vendor/github.com/cncf/xds/go/udpa/annotations/migrate.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: udpa/annotations/migrate.proto
package annotations
@@ -299,9 +299,10 @@ var file_udpa_annotations_migrate_proto_rawDesc = []byte{
0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x69, 0x6c,
0x65, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x42,
- 0x24, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6e,
- 0x63, 0x66, 0x2f, 0x78, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x29, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6e,
+ 0x63, 0x66, 0x2f, 0x78, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61,
+ 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
}
var (
diff --git a/vendor/github.com/cncf/xds/go/udpa/annotations/security.pb.go b/vendor/github.com/cncf/xds/go/udpa/annotations/security.pb.go
index aaac45ea3ef..c06e280abae 100644
--- a/vendor/github.com/cncf/xds/go/udpa/annotations/security.pb.go
+++ b/vendor/github.com/cncf/xds/go/udpa/annotations/security.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: udpa/annotations/security.proto
package annotations
@@ -121,10 +121,10 @@ var file_udpa_annotations_security_proto_rawDesc = []byte{
0x61, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x69,
0x65, 0x6c, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x41, 0x6e, 0x6e, 0x6f, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x42,
- 0x2c, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6e,
- 0x63, 0x66, 0x2f, 0x78, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xba, 0x80, 0xc8, 0xd1, 0x06, 0x02, 0x08, 0x01, 0x62, 0x06, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x31, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6e,
+ 0x63, 0x66, 0x2f, 0x78, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61,
+ 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xba, 0x80, 0xc8, 0xd1, 0x06, 0x02,
+ 0x08, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/vendor/github.com/cncf/xds/go/udpa/annotations/sensitive.pb.go b/vendor/github.com/cncf/xds/go/udpa/annotations/sensitive.pb.go
index 0a46801db96..f8fc822948f 100644
--- a/vendor/github.com/cncf/xds/go/udpa/annotations/sensitive.pb.go
+++ b/vendor/github.com/cncf/xds/go/udpa/annotations/sensitive.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: udpa/annotations/sensitive.proto
package annotations
@@ -49,10 +49,10 @@ var file_udpa_annotations_sensitive_proto_rawDesc = []byte{
0x69, 0x76, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x18, 0xf7, 0xb6, 0xc1, 0x24, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x65, 0x6e,
- 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x42, 0x24, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
+ 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x42, 0x29, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6e, 0x63, 0x66, 0x2f, 0x78, 0x64, 0x73, 0x2f, 0x67, 0x6f,
- 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x33,
+ 0x2f, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var file_udpa_annotations_sensitive_proto_goTypes = []interface{}{
diff --git a/vendor/github.com/cncf/xds/go/udpa/annotations/status.pb.go b/vendor/github.com/cncf/xds/go/udpa/annotations/status.pb.go
index 25b93a7fea8..ac7238e558e 100644
--- a/vendor/github.com/cncf/xds/go/udpa/annotations/status.pb.go
+++ b/vendor/github.com/cncf/xds/go/udpa/annotations/status.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: udpa/annotations/status.proto
package annotations
@@ -175,10 +175,10 @@ var file_udpa_annotations_status_proto_rawDesc = []byte{
0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x75, 0x64, 0x70, 0x61, 0x2e, 0x61, 0x6e, 0x6e,
0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41,
0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x24, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x29, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6e, 0x63, 0x66, 0x2f, 0x78, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x2f,
- 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x33,
+ 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/vendor/github.com/cncf/xds/go/udpa/annotations/versioning.pb.go b/vendor/github.com/cncf/xds/go/udpa/annotations/versioning.pb.go
index 7af3ed3f52c..68a101a3f7c 100644
--- a/vendor/github.com/cncf/xds/go/udpa/annotations/versioning.pb.go
+++ b/vendor/github.com/cncf/xds/go/udpa/annotations/versioning.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: udpa/annotations/versioning.proto
package annotations
@@ -105,9 +105,10 @@ var file_udpa_annotations_versioning_proto_rawDesc = []byte{
0x70, 0x61, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56,
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x42,
- 0x24, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6e,
- 0x63, 0x66, 0x2f, 0x78, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x29, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6e,
+ 0x63, 0x66, 0x2f, 0x78, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61,
+ 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
}
var (
diff --git a/vendor/github.com/cncf/xds/go/udpa/type/v1/typed_struct.pb.go b/vendor/github.com/cncf/xds/go/udpa/type/v1/typed_struct.pb.go
index f2a65d41f96..2251ab988ed 100644
--- a/vendor/github.com/cncf/xds/go/udpa/type/v1/typed_struct.pb.go
+++ b/vendor/github.com/cncf/xds/go/udpa/type/v1/typed_struct.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: udpa/type/v1/typed_struct.proto
package v1
diff --git a/vendor/github.com/cncf/xds/go/xds/annotations/v3/migrate.pb.go b/vendor/github.com/cncf/xds/go/xds/annotations/v3/migrate.pb.go
index cf1ee18ed3a..0cdd47f7571 100644
--- a/vendor/github.com/cncf/xds/go/xds/annotations/v3/migrate.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/annotations/v3/migrate.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/annotations/v3/migrate.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/annotations/v3/security.pb.go b/vendor/github.com/cncf/xds/go/xds/annotations/v3/security.pb.go
index 084664ffb9a..a50efc41b2b 100644
--- a/vendor/github.com/cncf/xds/go/xds/annotations/v3/security.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/annotations/v3/security.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/annotations/v3/security.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/annotations/v3/sensitive.pb.go b/vendor/github.com/cncf/xds/go/xds/annotations/v3/sensitive.pb.go
index b603aa4c8ce..1fbfafa82d4 100644
--- a/vendor/github.com/cncf/xds/go/xds/annotations/v3/sensitive.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/annotations/v3/sensitive.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/annotations/v3/sensitive.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/annotations/v3/status.pb.go b/vendor/github.com/cncf/xds/go/xds/annotations/v3/status.pb.go
index cc624ac919d..842025bd71f 100644
--- a/vendor/github.com/cncf/xds/go/xds/annotations/v3/status.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/annotations/v3/status.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/annotations/v3/status.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/annotations/v3/versioning.pb.go b/vendor/github.com/cncf/xds/go/xds/annotations/v3/versioning.pb.go
index 2252689374d..5412c812a1c 100644
--- a/vendor/github.com/cncf/xds/go/xds/annotations/v3/versioning.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/annotations/v3/versioning.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/annotations/v3/versioning.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/core/v3/authority.pb.go b/vendor/github.com/cncf/xds/go/xds/core/v3/authority.pb.go
index d6655c7c8b5..5a22c32665d 100644
--- a/vendor/github.com/cncf/xds/go/xds/core/v3/authority.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/core/v3/authority.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/core/v3/authority.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/core/v3/cidr.pb.go b/vendor/github.com/cncf/xds/go/xds/core/v3/cidr.pb.go
index 0e9a4deba6f..e915cdb9d24 100644
--- a/vendor/github.com/cncf/xds/go/xds/core/v3/cidr.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/core/v3/cidr.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/core/v3/cidr.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/core/v3/collection_entry.pb.go b/vendor/github.com/cncf/xds/go/xds/core/v3/collection_entry.pb.go
index 8f598cb64bf..e91c6abe7f0 100644
--- a/vendor/github.com/cncf/xds/go/xds/core/v3/collection_entry.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/core/v3/collection_entry.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/core/v3/collection_entry.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/core/v3/context_params.pb.go b/vendor/github.com/cncf/xds/go/xds/core/v3/context_params.pb.go
index 2d0e2b6ee22..f3f37162b96 100644
--- a/vendor/github.com/cncf/xds/go/xds/core/v3/context_params.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/core/v3/context_params.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/core/v3/context_params.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/core/v3/extension.pb.go b/vendor/github.com/cncf/xds/go/xds/core/v3/extension.pb.go
index ba0c2464604..41db466bd9e 100644
--- a/vendor/github.com/cncf/xds/go/xds/core/v3/extension.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/core/v3/extension.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/core/v3/extension.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/core/v3/resource.pb.go b/vendor/github.com/cncf/xds/go/xds/core/v3/resource.pb.go
index 915e3c730f5..3b4c853dc99 100644
--- a/vendor/github.com/cncf/xds/go/xds/core/v3/resource.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/core/v3/resource.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/core/v3/resource.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/core/v3/resource_locator.pb.go b/vendor/github.com/cncf/xds/go/xds/core/v3/resource_locator.pb.go
index bc28d50bbec..8123f1140f1 100644
--- a/vendor/github.com/cncf/xds/go/xds/core/v3/resource_locator.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/core/v3/resource_locator.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/core/v3/resource_locator.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/core/v3/resource_name.pb.go b/vendor/github.com/cncf/xds/go/xds/core/v3/resource_name.pb.go
index 92a54df4f06..19e67f6ac69 100644
--- a/vendor/github.com/cncf/xds/go/xds/core/v3/resource_name.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/core/v3/resource_name.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/core/v3/resource_name.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/data/orca/v3/orca_load_report.pb.go b/vendor/github.com/cncf/xds/go/xds/data/orca/v3/orca_load_report.pb.go
index 13d26cf2327..b7bc07c9126 100644
--- a/vendor/github.com/cncf/xds/go/xds/data/orca/v3/orca_load_report.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/data/orca/v3/orca_load_report.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/data/orca/v3/orca_load_report.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/service/orca/v3/orca.pb.go b/vendor/github.com/cncf/xds/go/xds/service/orca/v3/orca.pb.go
index bf71080c2df..c88f2018d56 100644
--- a/vendor/github.com/cncf/xds/go/xds/service/orca/v3/orca.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/service/orca/v3/orca.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/service/orca/v3/orca.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/cel.pb.go b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/cel.pb.go
index 3b44e391516..4168ac35dca 100644
--- a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/cel.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/cel.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/type/matcher/v3/cel.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/domain.pb.go b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/domain.pb.go
index 4548fd0c4ab..6e139928c9b 100644
--- a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/domain.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/domain.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/type/matcher/v3/domain.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/http_inputs.pb.go b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/http_inputs.pb.go
index c9e49a64635..ed3392ce6e6 100644
--- a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/http_inputs.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/http_inputs.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/type/matcher/v3/http_inputs.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/ip.pb.go b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/ip.pb.go
index de457f4b8d3..20fa12460de 100644
--- a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/ip.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/ip.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/type/matcher/v3/ip.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/matcher.pb.go b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/matcher.pb.go
index cdfa2bcb2b4..97c629ba6c5 100644
--- a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/matcher.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/matcher.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/type/matcher/v3/matcher.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/range.pb.go b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/range.pb.go
index 6051501bc46..2fd6aa70c54 100644
--- a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/range.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/range.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/type/matcher/v3/range.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/regex.pb.go b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/regex.pb.go
index 105a07671a4..1faf80ea4eb 100644
--- a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/regex.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/regex.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/type/matcher/v3/regex.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/string.pb.go b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/string.pb.go
index 04812f3c569..0aac9382e05 100644
--- a/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/string.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/type/matcher/v3/string.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/type/matcher/v3/string.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/type/v3/cel.pb.go b/vendor/github.com/cncf/xds/go/xds/type/v3/cel.pb.go
index f033ccd826e..8c4fd9d6292 100644
--- a/vendor/github.com/cncf/xds/go/xds/type/v3/cel.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/type/v3/cel.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/type/v3/cel.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/type/v3/range.pb.go b/vendor/github.com/cncf/xds/go/xds/type/v3/range.pb.go
index a4b017c5942..6259e55b9ea 100644
--- a/vendor/github.com/cncf/xds/go/xds/type/v3/range.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/type/v3/range.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/type/v3/range.proto
package v3
diff --git a/vendor/github.com/cncf/xds/go/xds/type/v3/typed_struct.pb.go b/vendor/github.com/cncf/xds/go/xds/type/v3/typed_struct.pb.go
index ee102a59807..c348e649fd5 100644
--- a/vendor/github.com/cncf/xds/go/xds/type/v3/typed_struct.pb.go
+++ b/vendor/github.com/cncf/xds/go/xds/type/v3/typed_struct.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
-// protoc v3.18.0
+// protoc v3.21.5
// source: xds/type/v3/typed_struct.proto
package v3
diff --git a/vendor/github.com/envoyproxy/protoc-gen-validate/validate/ya.make b/vendor/github.com/envoyproxy/protoc-gen-validate/validate/ya.make
index 84387ecbbea..a67746f213a 100644
--- a/vendor/github.com/envoyproxy/protoc-gen-validate/validate/ya.make
+++ b/vendor/github.com/envoyproxy/protoc-gen-validate/validate/ya.make
@@ -2,6 +2,8 @@ GO_LIBRARY()
LICENSE(Apache-2.0)
-SRCS(validate.pb.go)
+SRCS(
+ validate.pb.go
+)
END()
diff --git a/vendor/github.com/golang/glog/glog.go b/vendor/github.com/golang/glog/glog.go
index dd0ed101563..8c00e737a03 100644
--- a/vendor/github.com/golang/glog/glog.go
+++ b/vendor/github.com/golang/glog/glog.go
@@ -15,8 +15,26 @@
// limitations under the License.
// Package glog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.
-// It provides functions Info, Warning, Error, Fatal, plus formatting variants such as
-// Infof. It also provides V-style logging controlled by the -v and -vmodule=file=2 flags.
+// It provides functions that have a name matched by regex:
+//
+// (Info|Warning|Error|Fatal)(Context)?(Depth)?(f)?
+//
+// If Context is present, function takes context.Context argument. The
+// context is used to pass through the Trace Context to log sinks that can make use
+// of it.
+// It is recommended to use the context variant of the functions over the non-context
+// variants if a context is available to make sure the Trace Contexts are present
+// in logs.
+//
+// If Depth is present, this function calls log from a different depth in the call stack.
+// This enables a callee to emit logs that use the callsite information of its caller
+// or any other callers in the stack. When depth == 0, the original callee's line
+// information is emitted. When depth > 0, depth frames are skipped in the call stack
+// and the final frame is treated like the original callee to Info.
+//
+// If 'f' is present, function formats according to a format specifier.
+//
+// This package also provides V-style logging controlled by the -v and -vmodule=file=2 flags.
//
// Basic examples:
//
@@ -82,6 +100,7 @@ package glog
import (
"bytes"
+ "context"
"errors"
"fmt"
stdLog "log"
@@ -182,9 +201,14 @@ func appendBacktrace(depth int, format string, args []any) (string, []any) {
return format, args
}
-// logf writes a log message for a log function call (or log function wrapper)
-// at the given depth in the current goroutine's stack.
+// logf acts as ctxlogf, but doesn't expect a context.
func logf(depth int, severity logsink.Severity, verbose bool, stack stack, format string, args ...any) {
+ ctxlogf(nil, depth+1, severity, verbose, stack, format, args...)
+}
+
+// ctxlogf writes a log message for a log function call (or log function wrapper)
+// at the given depth in the current goroutine's stack.
+func ctxlogf(ctx context.Context, depth int, severity logsink.Severity, verbose bool, stack stack, format string, args ...any) {
now := timeNow()
_, file, line, ok := runtime.Caller(depth + 1)
if !ok {
@@ -198,6 +222,7 @@ func logf(depth int, severity logsink.Severity, verbose bool, stack stack, forma
metai, meta := metaPoolGet()
*meta = logsink.Meta{
+ Context: ctx,
Time: now,
File: file,
Line: line,
@@ -207,6 +232,9 @@ func logf(depth int, severity logsink.Severity, verbose bool, stack stack, forma
Thread: int64(pid),
}
sinkf(meta, format, args...)
+ // Clear pointer fields so they can be garbage collected early.
+ meta.Context = nil
+ meta.Stack = nil
metaPool.Put(metai)
}
@@ -418,6 +446,36 @@ func (v Verbose) Infof(format string, args ...any) {
}
}
+// InfoContext is equivalent to the global InfoContext function, guarded by the value of v.
+// See the documentation of V for usage.
+func (v Verbose) InfoContext(ctx context.Context, args ...any) {
+ v.InfoContextDepth(ctx, 1, args...)
+}
+
+// InfoContextf is equivalent to the global InfoContextf function, guarded by the value of v.
+// See the documentation of V for usage.
+func (v Verbose) InfoContextf(ctx context.Context, format string, args ...any) {
+ if v {
+ ctxlogf(ctx, 1, logsink.Info, true, noStack, format, args...)
+ }
+}
+
+// InfoContextDepth is equivalent to the global InfoContextDepth function, guarded by the value of v.
+// See the documentation of V for usage.
+func (v Verbose) InfoContextDepth(ctx context.Context, depth int, args ...any) {
+ if v {
+ ctxlogf(ctx, depth+1, logsink.Info, true, noStack, defaultFormat(args), args...)
+ }
+}
+
+// InfoContextDepthf is equivalent to the global InfoContextDepthf function, guarded by the value of v.
+// See the documentation of V for usage.
+func (v Verbose) InfoContextDepthf(ctx context.Context, depth int, format string, args ...any) {
+ if v {
+ ctxlogf(ctx, depth+1, logsink.Info, true, noStack, format, args...)
+ }
+}
+
// Info logs to the INFO log.
// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.
func Info(args ...any) {
@@ -450,6 +508,30 @@ func Infof(format string, args ...any) {
logf(1, logsink.Info, false, noStack, format, args...)
}
+// InfoContext is like [Info], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func InfoContext(ctx context.Context, args ...any) {
+ InfoContextDepth(ctx, 1, args...)
+}
+
+// InfoContextf is like [Infof], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func InfoContextf(ctx context.Context, format string, args ...any) {
+ ctxlogf(ctx, 1, logsink.Info, false, noStack, format, args...)
+}
+
+// InfoContextDepth is like [InfoDepth], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func InfoContextDepth(ctx context.Context, depth int, args ...any) {
+ ctxlogf(ctx, depth+1, logsink.Info, false, noStack, defaultFormat(args), args...)
+}
+
+// InfoContextDepthf is like [InfoDepthf], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func InfoContextDepthf(ctx context.Context, depth int, format string, args ...any) {
+ ctxlogf(ctx, depth+1, logsink.Info, false, noStack, format, args...)
+}
+
// Warning logs to the WARNING and INFO logs.
// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.
func Warning(args ...any) {
@@ -480,6 +562,30 @@ func Warningf(format string, args ...any) {
logf(1, logsink.Warning, false, noStack, format, args...)
}
+// WarningContext is like [Warning], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func WarningContext(ctx context.Context, args ...any) {
+ WarningContextDepth(ctx, 1, args...)
+}
+
+// WarningContextf is like [Warningf], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func WarningContextf(ctx context.Context, format string, args ...any) {
+ ctxlogf(ctx, 1, logsink.Warning, false, noStack, format, args...)
+}
+
+// WarningContextDepth is like [WarningDepth], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func WarningContextDepth(ctx context.Context, depth int, args ...any) {
+ ctxlogf(ctx, depth+1, logsink.Warning, false, noStack, defaultFormat(args), args...)
+}
+
+// WarningContextDepthf is like [WarningDepthf], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func WarningContextDepthf(ctx context.Context, depth int, format string, args ...any) {
+ ctxlogf(ctx, depth+1, logsink.Warning, false, noStack, format, args...)
+}
+
// Error logs to the ERROR, WARNING, and INFO logs.
// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.
func Error(args ...any) {
@@ -510,8 +616,32 @@ func Errorf(format string, args ...any) {
logf(1, logsink.Error, false, noStack, format, args...)
}
-func fatalf(depth int, format string, args ...any) {
- logf(depth+1, logsink.Fatal, false, withStack, format, args...)
+// ErrorContext is like [Error], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func ErrorContext(ctx context.Context, args ...any) {
+ ErrorContextDepth(ctx, 1, args...)
+}
+
+// ErrorContextf is like [Errorf], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func ErrorContextf(ctx context.Context, format string, args ...any) {
+ ctxlogf(ctx, 1, logsink.Error, false, noStack, format, args...)
+}
+
+// ErrorContextDepth is like [ErrorDepth], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func ErrorContextDepth(ctx context.Context, depth int, args ...any) {
+ ctxlogf(ctx, depth+1, logsink.Error, false, noStack, defaultFormat(args), args...)
+}
+
+// ErrorContextDepthf is like [ErrorDepthf], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func ErrorContextDepthf(ctx context.Context, depth int, format string, args ...any) {
+ ctxlogf(ctx, depth+1, logsink.Error, false, noStack, format, args...)
+}
+
+func ctxfatalf(ctx context.Context, depth int, format string, args ...any) {
+ ctxlogf(ctx, depth+1, logsink.Fatal, false, withStack, format, args...)
sinks.file.Flush()
err := abortProcess() // Should not return.
@@ -523,6 +653,10 @@ func fatalf(depth int, format string, args ...any) {
os.Exit(2) // Exit with the same code as the default SIGABRT handler.
}
+func fatalf(depth int, format string, args ...any) {
+ ctxfatalf(nil, depth+1, format, args...)
+}
+
// Fatal logs to the FATAL, ERROR, WARNING, and INFO logs,
// including a stack trace of all running goroutines, then calls os.Exit(2).
// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.
@@ -556,12 +690,39 @@ func Fatalf(format string, args ...any) {
fatalf(1, format, args...)
}
-func exitf(depth int, format string, args ...any) {
- logf(depth+1, logsink.Fatal, false, noStack, format, args...)
+// FatalContext is like [Fatal], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func FatalContext(ctx context.Context, args ...any) {
+ FatalContextDepth(ctx, 1, args...)
+}
+
+// FatalContextf is like [Fatalf], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func FatalContextf(ctx context.Context, format string, args ...any) {
+ ctxfatalf(ctx, 1, format, args...)
+}
+
+// FatalContextDepth is like [FatalDepth], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func FatalContextDepth(ctx context.Context, depth int, args ...any) {
+ ctxfatalf(ctx, depth+1, defaultFormat(args), args...)
+}
+
+// FatalContextDepthf is like [FatalDepthf], but with an extra [context.Context] parameter.
+func FatalContextDepthf(ctx context.Context, depth int, format string, args ...any) {
+ ctxfatalf(ctx, depth+1, format, args...)
+}
+
+func ctxexitf(ctx context.Context, depth int, format string, args ...any) {
+ ctxlogf(ctx, depth+1, logsink.Fatal, false, noStack, format, args...)
sinks.file.Flush()
os.Exit(1)
}
+func exitf(depth int, format string, args ...any) {
+ ctxexitf(nil, depth+1, format, args...)
+}
+
// Exit logs to the FATAL, ERROR, WARNING, and INFO logs, then calls os.Exit(1).
// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.
func Exit(args ...any) {
@@ -590,3 +751,27 @@ func Exitln(args ...any) {
func Exitf(format string, args ...any) {
exitf(1, format, args...)
}
+
+// ExitContext is like [Exit], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func ExitContext(ctx context.Context, args ...any) {
+ ExitContextDepth(ctx, 1, args...)
+}
+
+// ExitContextf is like [Exitf], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func ExitContextf(ctx context.Context, format string, args ...any) {
+ ctxexitf(ctx, 1, format, args...)
+}
+
+// ExitContextDepth is like [ExitDepth], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func ExitContextDepth(ctx context.Context, depth int, args ...any) {
+ ctxexitf(ctx, depth+1, defaultFormat(args), args...)
+}
+
+// ExitContextDepthf is like [ExitDepthf], but with an extra [context.Context] parameter. The
+// context is used to pass the Trace Context to log sinks.
+func ExitContextDepthf(ctx context.Context, depth int, format string, args ...any) {
+ ctxexitf(ctx, depth+1, format, args...)
+}
diff --git a/vendor/github.com/golang/glog/internal/logsink/logsink.go b/vendor/github.com/golang/glog/internal/logsink/logsink.go
index 53758e1c9f5..28c38a6abc6 100644
--- a/vendor/github.com/golang/glog/internal/logsink/logsink.go
+++ b/vendor/github.com/golang/glog/internal/logsink/logsink.go
@@ -16,6 +16,7 @@ package logsink
import (
"bytes"
+ "context"
"fmt"
"strconv"
"strings"
@@ -77,6 +78,11 @@ func ParseSeverity(name string) (Severity, error) {
// Meta is metadata about a logging call.
type Meta struct {
+ // The context with which the log call was made (or nil). If set, the context
+ // is only valid during the logsink.Structured.Printf call, it should not be
+ // retained.
+ Context context.Context
+
// Time is the time at which the log call was made.
Time time.Time
diff --git a/vendor/github.com/golang/glog/internal/logsink/ya.make b/vendor/github.com/golang/glog/internal/logsink/ya.make
index 7efabd3d67a..f23279cdaa1 100644
--- a/vendor/github.com/golang/glog/internal/logsink/ya.make
+++ b/vendor/github.com/golang/glog/internal/logsink/ya.make
@@ -7,4 +7,10 @@ SRCS(
logsink_fatal.go
)
+GO_XTEST_SRCS(logsink_test.go)
+
END()
+
+RECURSE(
+ gotest
+)
diff --git a/vendor/github.com/golang/glog/ya.make b/vendor/github.com/golang/glog/ya.make
index 11a6503d844..3a198e1e2f8 100644
--- a/vendor/github.com/golang/glog/ya.make
+++ b/vendor/github.com/golang/glog/ya.make
@@ -10,6 +10,7 @@ SRCS(
GO_TEST_SRCS(
glog_bench_test.go
+ glog_context_test.go
glog_test.go
glog_vmodule_test.go
)
diff --git a/vendor/golang.org/x/oauth2/google/default.go b/vendor/golang.org/x/oauth2/google/default.go
index 12b12a30c55..02ccd08a770 100644
--- a/vendor/golang.org/x/oauth2/google/default.go
+++ b/vendor/golang.org/x/oauth2/google/default.go
@@ -12,6 +12,7 @@ import (
"os"
"path/filepath"
"runtime"
+ "sync"
"time"
"cloud.google.com/go/compute/metadata"
@@ -41,12 +42,20 @@ type Credentials struct {
// running on Google Cloud Platform.
JSON []byte
+ udMu sync.Mutex // guards universeDomain
// universeDomain is the default service domain for a given Cloud universe.
universeDomain string
}
// UniverseDomain returns the default service domain for a given Cloud universe.
+//
// The default value is "googleapis.com".
+//
+// Deprecated: Use instead (*Credentials).GetUniverseDomain(), which supports
+// obtaining the universe domain when authenticating via the GCE metadata server.
+// Unlike GetUniverseDomain, this method, UniverseDomain, will always return the
+// default value when authenticating via the GCE metadata server.
+// See also [The attached service account](https://cloud.google.com/docs/authentication/application-default-credentials#attached-sa).
func (c *Credentials) UniverseDomain() string {
if c.universeDomain == "" {
return universeDomainDefault
@@ -54,6 +63,55 @@ func (c *Credentials) UniverseDomain() string {
return c.universeDomain
}
+// GetUniverseDomain returns the default service domain for a given Cloud
+// universe.
+//
+// The default value is "googleapis.com".
+//
+// It obtains the universe domain from the attached service account on GCE when
+// authenticating via the GCE metadata server. See also [The attached service
+// account](https://cloud.google.com/docs/authentication/application-default-credentials#attached-sa).
+// If the GCE metadata server returns a 404 error, the default value is
+// returned. If the GCE metadata server returns an error other than 404, the
+// error is returned.
+func (c *Credentials) GetUniverseDomain() (string, error) {
+ c.udMu.Lock()
+ defer c.udMu.Unlock()
+ if c.universeDomain == "" && metadata.OnGCE() {
+ // If we're on Google Compute Engine, an App Engine standard second
+ // generation runtime, or App Engine flexible, use the metadata server.
+ err := c.computeUniverseDomain()
+ if err != nil {
+ return "", err
+ }
+ }
+ // If not on Google Compute Engine, or in case of any non-error path in
+ // computeUniverseDomain that did not set universeDomain, set the default
+ // universe domain.
+ if c.universeDomain == "" {
+ c.universeDomain = universeDomainDefault
+ }
+ return c.universeDomain, nil
+}
+
+// computeUniverseDomain fetches the default service domain for a given Cloud
+// universe from Google Compute Engine (GCE)'s metadata server. It's only valid
+// to use this method if your program is running on a GCE instance.
+func (c *Credentials) computeUniverseDomain() error {
+ var err error
+ c.universeDomain, err = metadata.Get("universe/universe_domain")
+ if err != nil {
+ if _, ok := err.(metadata.NotDefinedError); ok {
+ // http.StatusNotFound (404)
+ c.universeDomain = universeDomainDefault
+ return nil
+ } else {
+ return err
+ }
+ }
+ return nil
+}
+
// DefaultCredentials is the old name of Credentials.
//
// Deprecated: use Credentials instead.
@@ -91,6 +149,12 @@ type CredentialsParams struct {
// Note: This option is currently only respected when using credentials
// fetched from the GCE metadata server.
EarlyTokenRefresh time.Duration
+
+ // UniverseDomain is the default service domain for a given Cloud universe.
+ // Only supported in authentication flows that support universe domains.
+ // This value takes precedence over a universe domain explicitly specified
+ // in a credentials config file or by the GCE metadata server. Optional.
+ UniverseDomain string
}
func (params CredentialsParams) deepCopy() CredentialsParams {
@@ -175,8 +239,9 @@ func FindDefaultCredentialsWithParams(ctx context.Context, params CredentialsPar
if metadata.OnGCE() {
id, _ := metadata.ProjectID()
return &Credentials{
- ProjectID: id,
- TokenSource: computeTokenSource("", params.EarlyTokenRefresh, params.Scopes...),
+ ProjectID: id,
+ TokenSource: computeTokenSource("", params.EarlyTokenRefresh, params.Scopes...),
+ universeDomain: params.UniverseDomain,
}, nil
}
@@ -217,6 +282,9 @@ func CredentialsFromJSONWithParams(ctx context.Context, jsonData []byte, params
}
universeDomain := f.UniverseDomain
+ if params.UniverseDomain != "" {
+ universeDomain = params.UniverseDomain
+ }
// Authorized user credentials are only supported in the googleapis.com universe.
if f.Type == userCredentialsKey {
universeDomain = universeDomainDefault
diff --git a/vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go b/vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go
index 83774fbcbe7..d5dccb93377 100644
--- a/vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go
+++ b/vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go
@@ -15,7 +15,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.26.0
-// protoc v3.21.12
+// protoc v4.24.4
// source: google/api/client.proto
package annotations
@@ -1033,6 +1033,18 @@ type MethodSettings struct {
// total_poll_timeout:
// seconds: 54000 # 90 minutes
LongRunning *MethodSettings_LongRunning `protobuf:"bytes,2,opt,name=long_running,json=longRunning,proto3" json:"long_running,omitempty"`
+ // List of top-level fields of the request message, that should be
+ // automatically populated by the client libraries based on their
+ // (google.api.field_info).format. Currently supported format: UUID4.
+ //
+ // Example of a YAML configuration:
+ //
+ // publishing:
+ // method_settings:
+ // - selector: google.example.v1.ExampleService.CreateExample
+ // auto_populated_fields:
+ // - request_id
+ AutoPopulatedFields []string `protobuf:"bytes,3,rep,name=auto_populated_fields,json=autoPopulatedFields,proto3" json:"auto_populated_fields,omitempty"`
}
func (x *MethodSettings) Reset() {
@@ -1081,6 +1093,13 @@ func (x *MethodSettings) GetLongRunning() *MethodSettings_LongRunning {
return nil
}
+func (x *MethodSettings) GetAutoPopulatedFields() []string {
+ if x != nil {
+ return x.AutoPopulatedFields
+ }
+ return nil
+}
+
// Describes settings to use when generating API methods that use the
// long-running operation pattern.
// All default values below are from those used in the client library
@@ -1452,69 +1471,73 @@ var file_google_api_client_proto_rawDesc = []byte{
0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e,
0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63,
- 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x8e, 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64,
+ 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xc2, 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64,
0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65,
0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65,
0x63, 0x74, 0x6f, 0x72, 0x12, 0x49, 0x0a, 0x0c, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x72, 0x75, 0x6e,
0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, 0x65,
0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69,
- 0x6e, 0x67, 0x52, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x1a,
- 0x94, 0x02, 0x0a, 0x0b, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12,
- 0x47, 0x0a, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f,
- 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
- 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50,
- 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x6c, 0x6c,
- 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65,
- 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x70, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x6c,
- 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x0e,
- 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
- 0x0c, 0x6d, 0x61, 0x78, 0x50, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x47, 0x0a,
- 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65,
- 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x6f, 0x6c, 0x6c, 0x54,
- 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2a, 0xa3, 0x01, 0x0a, 0x19, 0x43, 0x6c, 0x69, 0x65, 0x6e,
- 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x27, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c,
- 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x52, 0x47, 0x41, 0x4e, 0x49, 0x5a, 0x41, 0x54,
- 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
- 0x00, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03,
- 0x41, 0x44, 0x53, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x48, 0x4f, 0x54, 0x4f, 0x53, 0x10,
- 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x52, 0x45, 0x45, 0x54, 0x5f, 0x56, 0x49, 0x45, 0x57,
- 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x48, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x05,
- 0x12, 0x07, 0x0a, 0x03, 0x47, 0x45, 0x4f, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x45, 0x4e,
- 0x45, 0x52, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x41, 0x49, 0x10, 0x07, 0x2a, 0x67, 0x0a, 0x18,
- 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x44, 0x65, 0x73,
- 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x43, 0x4c, 0x49, 0x45,
- 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x49,
- 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
- 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x10, 0x0a,
- 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41,
- 0x47, 0x45, 0x52, 0x10, 0x14, 0x3a, 0x4a, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f,
- 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68,
- 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9b, 0x08, 0x20, 0x03, 0x28, 0x09,
- 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
- 0x65, 0x3a, 0x43, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x6f, 0x73,
- 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x99, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75,
- 0x6c, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x3a, 0x43, 0x0a, 0x0c, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f,
- 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
- 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9a, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
- 0x6f, 0x61, 0x75, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x42, 0x69, 0x0a, 0x0e, 0x63,
- 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x43,
- 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f,
- 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
- 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xa2,
- 0x02, 0x04, 0x47, 0x41, 0x50, 0x49, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x6e, 0x67, 0x52, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12,
+ 0x32, 0x0a, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65,
+ 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13,
+ 0x61, 0x75, 0x74, 0x6f, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65,
+ 0x6c, 0x64, 0x73, 0x1a, 0x94, 0x02, 0x0a, 0x0b, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e,
+ 0x69, 0x6e, 0x67, 0x12, 0x47, 0x0a, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70,
+ 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74,
+ 0x69, 0x61, 0x6c, 0x50, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x32, 0x0a, 0x15,
+ 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69,
+ 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x70, 0x6f, 0x6c,
+ 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72,
+ 0x12, 0x3f, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x6c,
+ 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x50, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x61,
+ 0x79, 0x12, 0x47, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f,
+ 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50,
+ 0x6f, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2a, 0xa3, 0x01, 0x0a, 0x19, 0x43,
+ 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4f, 0x72, 0x67, 0x61,
+ 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x27, 0x43, 0x4c, 0x49, 0x45,
+ 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x52, 0x47, 0x41, 0x4e,
+ 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
+ 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x10, 0x01,
+ 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x53, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x48, 0x4f,
+ 0x54, 0x4f, 0x53, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x52, 0x45, 0x45, 0x54, 0x5f,
+ 0x56, 0x49, 0x45, 0x57, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x48, 0x4f, 0x50, 0x50, 0x49,
+ 0x4e, 0x47, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x45, 0x4f, 0x10, 0x06, 0x12, 0x11, 0x0a,
+ 0x0d, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x41, 0x49, 0x10, 0x07,
+ 0x2a, 0x67, 0x0a, 0x18, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
+ 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26,
+ 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x44,
+ 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
+ 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x49, 0x54, 0x48,
+ 0x55, 0x42, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x5f,
+ 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x10, 0x14, 0x3a, 0x4a, 0x0a, 0x10, 0x6d, 0x65, 0x74,
+ 0x68, 0x6f, 0x64, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9b, 0x08,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, 0x69, 0x67, 0x6e,
+ 0x61, 0x74, 0x75, 0x72, 0x65, 0x3a, 0x43, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
+ 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x99, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
+ 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x3a, 0x43, 0x0a, 0x0c, 0x6f, 0x61,
+ 0x75, 0x74, 0x68, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9a, 0x08, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x42,
+ 0x69, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70,
+ 0x69, 0x42, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
+ 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e,
+ 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f,
+ 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0xa2, 0x02, 0x04, 0x47, 0x41, 0x50, 0x49, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
}
var (
diff --git a/vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go b/vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go
index 6ce01ac9a69..312d7eb49a9 100644
--- a/vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go
+++ b/vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go
@@ -15,7 +15,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.26.0
-// protoc v3.21.12
+// protoc v4.24.4
// source: google/api/field_behavior.proto
package annotations
@@ -195,21 +195,21 @@ var file_google_api_field_behavior_proto_rawDesc = []byte{
0x0e, 0x55, 0x4e, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10,
0x06, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x4f, 0x4e, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x44,
0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x44, 0x45, 0x4e,
- 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, 0x08, 0x3a, 0x60, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c,
+ 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, 0x08, 0x3a, 0x64, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c,
0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65,
0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9c, 0x08, 0x20, 0x03, 0x28, 0x0e,
0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69,
- 0x65, 0x6c, 0x64, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x52, 0x0d, 0x66, 0x69, 0x65,
- 0x6c, 0x64, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x70, 0x0a, 0x0e, 0x63, 0x6f,
- 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x12, 0x46, 0x69,
- 0x65, 0x6c, 0x64, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f,
- 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e,
- 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e,
- 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xa2, 0x02, 0x04, 0x47, 0x41, 0x50, 0x49, 0x62, 0x06, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x33,
+ 0x65, 0x6c, 0x64, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x02, 0x10, 0x00, 0x52,
+ 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x70,
+ 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69,
+ 0x42, 0x12, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x50,
+ 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67,
+ 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x61, 0x6e,
+ 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xa2, 0x02, 0x04, 0x47, 0x41, 0x50, 0x49,
+ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/checked.pb.go b/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/checked.pb.go
index d687f68e768..137ff5b1e94 100644
--- a/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/checked.pb.go
+++ b/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/checked.pb.go
@@ -1,4 +1,4 @@
-// Copyright 2022 Google LLC
+// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.26.0
-// protoc v3.21.5
+// protoc v4.24.4
// source: google/api/expr/v1alpha1/checked.proto
package expr
diff --git a/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/eval.pb.go b/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/eval.pb.go
index d38876ef046..ca4415956f0 100644
--- a/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/eval.pb.go
+++ b/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/eval.pb.go
@@ -1,4 +1,4 @@
-// Copyright 2022 Google LLC
+// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.26.0
-// protoc v3.21.5
+// protoc v4.24.4
// source: google/api/expr/v1alpha1/eval.proto
package expr
diff --git a/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/explain.pb.go b/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/explain.pb.go
index c980d6fcc8c..3f994b4e3e0 100644
--- a/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/explain.pb.go
+++ b/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/explain.pb.go
@@ -1,4 +1,4 @@
-// Copyright 2022 Google LLC
+// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.26.0
-// protoc v3.21.5
+// protoc v4.24.4
// source: google/api/expr/v1alpha1/explain.proto
package expr
diff --git a/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/syntax.pb.go b/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/syntax.pb.go
index 63c1ad9344c..0d718fc36d1 100644
--- a/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/syntax.pb.go
+++ b/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/syntax.pb.go
@@ -1,4 +1,4 @@
-// Copyright 2022 Google LLC
+// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.26.0
-// protoc v3.21.9
+// protoc v4.24.4
// source: google/api/expr/v1alpha1/syntax.proto
package expr
@@ -38,6 +38,65 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
+// CEL component specifier.
+type SourceInfo_Extension_Component int32
+
+const (
+ // Unspecified, default.
+ SourceInfo_Extension_COMPONENT_UNSPECIFIED SourceInfo_Extension_Component = 0
+ // Parser. Converts a CEL string to an AST.
+ SourceInfo_Extension_COMPONENT_PARSER SourceInfo_Extension_Component = 1
+ // Type checker. Checks that references in an AST are defined and types
+ // agree.
+ SourceInfo_Extension_COMPONENT_TYPE_CHECKER SourceInfo_Extension_Component = 2
+ // Runtime. Evaluates a parsed and optionally checked CEL AST against a
+ // context.
+ SourceInfo_Extension_COMPONENT_RUNTIME SourceInfo_Extension_Component = 3
+)
+
+// Enum value maps for SourceInfo_Extension_Component.
+var (
+ SourceInfo_Extension_Component_name = map[int32]string{
+ 0: "COMPONENT_UNSPECIFIED",
+ 1: "COMPONENT_PARSER",
+ 2: "COMPONENT_TYPE_CHECKER",
+ 3: "COMPONENT_RUNTIME",
+ }
+ SourceInfo_Extension_Component_value = map[string]int32{
+ "COMPONENT_UNSPECIFIED": 0,
+ "COMPONENT_PARSER": 1,
+ "COMPONENT_TYPE_CHECKER": 2,
+ "COMPONENT_RUNTIME": 3,
+ }
+)
+
+func (x SourceInfo_Extension_Component) Enum() *SourceInfo_Extension_Component {
+ p := new(SourceInfo_Extension_Component)
+ *p = x
+ return p
+}
+
+func (x SourceInfo_Extension_Component) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (SourceInfo_Extension_Component) Descriptor() protoreflect.EnumDescriptor {
+ return file_google_api_expr_v1alpha1_syntax_proto_enumTypes[0].Descriptor()
+}
+
+func (SourceInfo_Extension_Component) Type() protoreflect.EnumType {
+ return &file_google_api_expr_v1alpha1_syntax_proto_enumTypes[0]
+}
+
+func (x SourceInfo_Extension_Component) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use SourceInfo_Extension_Component.Descriptor instead.
+func (SourceInfo_Extension_Component) EnumDescriptor() ([]byte, []int) {
+ return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{3, 0, 0}
+}
+
// An expression together with source information as returned by the parser.
type ParsedExpr struct {
state protoimpl.MessageState
@@ -103,14 +162,16 @@ func (x *ParsedExpr) GetSourceInfo() *SourceInfo {
// operators with the exception of the '.' operator are modelled as function
// calls. This makes it easy to represent new operators into the existing AST.
//
-// All references within expressions must resolve to a [Decl][google.api.expr.v1alpha1.Decl] provided at
-// type-check for an expression to be valid. A reference may either be a bare
-// identifier `name` or a qualified identifier `google.api.name`. References
-// may either refer to a value or a function declaration.
+// All references within expressions must resolve to a
+// [Decl][google.api.expr.v1alpha1.Decl] provided at type-check for an
+// expression to be valid. A reference may either be a bare identifier `name` or
+// a qualified identifier `google.api.name`. References may either refer to a
+// value or a function declaration.
//
// For example, the expression `google.api.name.startsWith('expr')` references
-// the declaration `google.api.name` within a [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and
-// the function declaration `startsWith`.
+// the declaration `google.api.name` within a
+// [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and the
+// function declaration `startsWith`.
type Expr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -291,7 +352,8 @@ func (*Expr_ComprehensionExpr) isExpr_ExprKind() {}
// primitives.
//
// Lists and structs are not included as constants as these aggregate types may
-// contain [Expr][google.api.expr.v1alpha1.Expr] elements which require evaluation and are thus not constant.
+// contain [Expr][google.api.expr.v1alpha1.Expr] elements which require
+// evaluation and are thus not constant.
//
// Examples of literals include: `"hello"`, `b'bytes'`, `1u`, `4.2`, `-2`,
// `true`, `null`.
@@ -528,6 +590,14 @@ type SourceInfo struct {
// in the map corresponds to the expression id of the expanded macro, and the
// value is the call `Expr` that was replaced.
MacroCalls map[int64]*Expr `protobuf:"bytes,5,rep,name=macro_calls,json=macroCalls,proto3" json:"macro_calls,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // A list of tags for extensions that were used while parsing or type checking
+ // the source expression. For example, optimizations that require special
+ // runtime support may be specified.
+ //
+ // These are used to check feature support between components in separate
+ // implementations. This can be used to either skip redundant work or
+ // report an error if the extension is unsupported.
+ Extensions []*SourceInfo_Extension `protobuf:"bytes,6,rep,name=extensions,proto3" json:"extensions,omitempty"`
}
func (x *SourceInfo) Reset() {
@@ -597,6 +667,13 @@ func (x *SourceInfo) GetMacroCalls() map[int64]*Expr {
return nil
}
+func (x *SourceInfo) GetExtensions() []*SourceInfo_Extension {
+ if x != nil {
+ return x.Extensions
+ }
+ return nil
+}
+
// A specific position in source.
type SourcePosition struct {
state protoimpl.MessageState
@@ -684,7 +761,8 @@ type Expr_Ident struct {
// Required. Holds a single, unqualified identifier, possibly preceded by a
// '.'.
//
- // Qualified names are represented by the [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression.
+ // Qualified names are represented by the
+ // [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}
@@ -1255,6 +1333,137 @@ func (*Expr_CreateStruct_Entry_FieldKey) isExpr_CreateStruct_Entry_KeyKind() {}
func (*Expr_CreateStruct_Entry_MapKey) isExpr_CreateStruct_Entry_KeyKind() {}
+// An extension that was requested for the source expression.
+type SourceInfo_Extension struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Identifier for the extension. Example: constant_folding
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ // If set, the listed components must understand the extension for the
+ // expression to evaluate correctly.
+ //
+ // This field has set semantics, repeated values should be deduplicated.
+ AffectedComponents []SourceInfo_Extension_Component `protobuf:"varint,2,rep,packed,name=affected_components,json=affectedComponents,proto3,enum=google.api.expr.v1alpha1.SourceInfo_Extension_Component" json:"affected_components,omitempty"`
+ // Version info. May be skipped if it isn't meaningful for the extension.
+ // (for example constant_folding might always be v0.0).
+ Version *SourceInfo_Extension_Version `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
+}
+
+func (x *SourceInfo_Extension) Reset() {
+ *x = SourceInfo_Extension{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SourceInfo_Extension) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SourceInfo_Extension) ProtoMessage() {}
+
+func (x *SourceInfo_Extension) ProtoReflect() protoreflect.Message {
+ mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SourceInfo_Extension.ProtoReflect.Descriptor instead.
+func (*SourceInfo_Extension) Descriptor() ([]byte, []int) {
+ return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{3, 0}
+}
+
+func (x *SourceInfo_Extension) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *SourceInfo_Extension) GetAffectedComponents() []SourceInfo_Extension_Component {
+ if x != nil {
+ return x.AffectedComponents
+ }
+ return nil
+}
+
+func (x *SourceInfo_Extension) GetVersion() *SourceInfo_Extension_Version {
+ if x != nil {
+ return x.Version
+ }
+ return nil
+}
+
+// Version
+type SourceInfo_Extension_Version struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Major version changes indicate different required support level from
+ // the required components.
+ Major int64 `protobuf:"varint,1,opt,name=major,proto3" json:"major,omitempty"`
+ // Minor version changes must not change the observed behavior from
+ // existing implementations, but may be provided informationally.
+ Minor int64 `protobuf:"varint,2,opt,name=minor,proto3" json:"minor,omitempty"`
+}
+
+func (x *SourceInfo_Extension_Version) Reset() {
+ *x = SourceInfo_Extension_Version{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SourceInfo_Extension_Version) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SourceInfo_Extension_Version) ProtoMessage() {}
+
+func (x *SourceInfo_Extension_Version) ProtoReflect() protoreflect.Message {
+ mi := &file_google_api_expr_v1alpha1_syntax_proto_msgTypes[15]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SourceInfo_Extension_Version.ProtoReflect.Descriptor instead.
+func (*SourceInfo_Extension_Version) Descriptor() ([]byte, []int) {
+ return file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP(), []int{3, 0, 0}
+}
+
+func (x *SourceInfo_Extension_Version) GetMajor() int64 {
+ if x != nil {
+ return x.Major
+ }
+ return 0
+}
+
+func (x *SourceInfo_Extension_Version) GetMinor() int64 {
+ if x != nil {
+ return x.Minor
+ }
+ return 0
+}
+
var File_google_api_expr_v1alpha1_syntax_proto protoreflect.FileDescriptor
var file_google_api_expr_v1alpha1_syntax_proto_rawDesc = []byte{
@@ -1412,7 +1621,7 @@ var file_google_api_expr_v1alpha1_syntax_proto_rawDesc = []byte{
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0e,
0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0f,
0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22,
- 0xb9, 0x03, 0x0a, 0x0a, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25,
+ 0x8c, 0x07, 0x0a, 0x0a, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25,
0x0a, 0x0e, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x56, 0x65,
0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
@@ -1429,32 +1638,61 @@ var file_google_api_expr_v1alpha1_syntax_proto_rawDesc = []byte{
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76,
0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e,
0x66, 0x6f, 0x2e, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x1a, 0x3c,
- 0x0a, 0x0e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
- 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b,
- 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5d, 0x0a, 0x0f,
- 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
- 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65,
- 0x79, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78,
- 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72,
- 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x70, 0x0a, 0x0e, 0x53,
- 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a,
- 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66,
- 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65,
- 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
- 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x42, 0x6e, 0x0a,
- 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
- 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0b, 0x53,
- 0x79, 0x6e, 0x74, 0x61, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f,
- 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
- 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x76, 0x31, 0x61,
- 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x4e,
+ 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
+ 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+ 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x80,
+ 0x03, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02,
+ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x69, 0x0a, 0x13,
+ 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
+ 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e,
+ 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
+ 0x65, 0x6e, 0x74, 0x52, 0x12, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6d,
+ 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x50, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
+ 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
+ 0x68, 0x61, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45,
+ 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+ 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x35, 0x0a, 0x07, 0x56, 0x65, 0x72,
+ 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69,
+ 0x6e, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72,
+ 0x22, 0x6f, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a,
+ 0x15, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
+ 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4d, 0x50,
+ 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, 0x1a,
+ 0x0a, 0x16, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45,
+ 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x45, 0x52, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f,
+ 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10,
+ 0x03, 0x1a, 0x3c, 0x0a, 0x0e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e,
+ 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
+ 0x5d, 0x0a, 0x0f, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x03, 0x6b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69,
+ 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45,
+ 0x78, 0x70, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x70,
+ 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06,
+ 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66,
+ 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75,
+ 0x6d, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
+ 0x42, 0x6e, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61,
+ 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
+ 0x42, 0x0b, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
+ 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f,
+ 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f,
+ 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01,
+ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1469,59 +1707,66 @@ func file_google_api_expr_v1alpha1_syntax_proto_rawDescGZIP() []byte {
return file_google_api_expr_v1alpha1_syntax_proto_rawDescData
}
-var file_google_api_expr_v1alpha1_syntax_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
+var file_google_api_expr_v1alpha1_syntax_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_google_api_expr_v1alpha1_syntax_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_google_api_expr_v1alpha1_syntax_proto_goTypes = []interface{}{
- (*ParsedExpr)(nil), // 0: google.api.expr.v1alpha1.ParsedExpr
- (*Expr)(nil), // 1: google.api.expr.v1alpha1.Expr
- (*Constant)(nil), // 2: google.api.expr.v1alpha1.Constant
- (*SourceInfo)(nil), // 3: google.api.expr.v1alpha1.SourceInfo
- (*SourcePosition)(nil), // 4: google.api.expr.v1alpha1.SourcePosition
- (*Expr_Ident)(nil), // 5: google.api.expr.v1alpha1.Expr.Ident
- (*Expr_Select)(nil), // 6: google.api.expr.v1alpha1.Expr.Select
- (*Expr_Call)(nil), // 7: google.api.expr.v1alpha1.Expr.Call
- (*Expr_CreateList)(nil), // 8: google.api.expr.v1alpha1.Expr.CreateList
- (*Expr_CreateStruct)(nil), // 9: google.api.expr.v1alpha1.Expr.CreateStruct
- (*Expr_Comprehension)(nil), // 10: google.api.expr.v1alpha1.Expr.Comprehension
- (*Expr_CreateStruct_Entry)(nil), // 11: google.api.expr.v1alpha1.Expr.CreateStruct.Entry
- nil, // 12: google.api.expr.v1alpha1.SourceInfo.PositionsEntry
- nil, // 13: google.api.expr.v1alpha1.SourceInfo.MacroCallsEntry
- (structpb.NullValue)(0), // 14: google.protobuf.NullValue
- (*durationpb.Duration)(nil), // 15: google.protobuf.Duration
- (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp
+ (SourceInfo_Extension_Component)(0), // 0: google.api.expr.v1alpha1.SourceInfo.Extension.Component
+ (*ParsedExpr)(nil), // 1: google.api.expr.v1alpha1.ParsedExpr
+ (*Expr)(nil), // 2: google.api.expr.v1alpha1.Expr
+ (*Constant)(nil), // 3: google.api.expr.v1alpha1.Constant
+ (*SourceInfo)(nil), // 4: google.api.expr.v1alpha1.SourceInfo
+ (*SourcePosition)(nil), // 5: google.api.expr.v1alpha1.SourcePosition
+ (*Expr_Ident)(nil), // 6: google.api.expr.v1alpha1.Expr.Ident
+ (*Expr_Select)(nil), // 7: google.api.expr.v1alpha1.Expr.Select
+ (*Expr_Call)(nil), // 8: google.api.expr.v1alpha1.Expr.Call
+ (*Expr_CreateList)(nil), // 9: google.api.expr.v1alpha1.Expr.CreateList
+ (*Expr_CreateStruct)(nil), // 10: google.api.expr.v1alpha1.Expr.CreateStruct
+ (*Expr_Comprehension)(nil), // 11: google.api.expr.v1alpha1.Expr.Comprehension
+ (*Expr_CreateStruct_Entry)(nil), // 12: google.api.expr.v1alpha1.Expr.CreateStruct.Entry
+ (*SourceInfo_Extension)(nil), // 13: google.api.expr.v1alpha1.SourceInfo.Extension
+ nil, // 14: google.api.expr.v1alpha1.SourceInfo.PositionsEntry
+ nil, // 15: google.api.expr.v1alpha1.SourceInfo.MacroCallsEntry
+ (*SourceInfo_Extension_Version)(nil), // 16: google.api.expr.v1alpha1.SourceInfo.Extension.Version
+ (structpb.NullValue)(0), // 17: google.protobuf.NullValue
+ (*durationpb.Duration)(nil), // 18: google.protobuf.Duration
+ (*timestamppb.Timestamp)(nil), // 19: google.protobuf.Timestamp
}
var file_google_api_expr_v1alpha1_syntax_proto_depIdxs = []int32{
- 1, // 0: google.api.expr.v1alpha1.ParsedExpr.expr:type_name -> google.api.expr.v1alpha1.Expr
- 3, // 1: google.api.expr.v1alpha1.ParsedExpr.source_info:type_name -> google.api.expr.v1alpha1.SourceInfo
- 2, // 2: google.api.expr.v1alpha1.Expr.const_expr:type_name -> google.api.expr.v1alpha1.Constant
- 5, // 3: google.api.expr.v1alpha1.Expr.ident_expr:type_name -> google.api.expr.v1alpha1.Expr.Ident
- 6, // 4: google.api.expr.v1alpha1.Expr.select_expr:type_name -> google.api.expr.v1alpha1.Expr.Select
- 7, // 5: google.api.expr.v1alpha1.Expr.call_expr:type_name -> google.api.expr.v1alpha1.Expr.Call
- 8, // 6: google.api.expr.v1alpha1.Expr.list_expr:type_name -> google.api.expr.v1alpha1.Expr.CreateList
- 9, // 7: google.api.expr.v1alpha1.Expr.struct_expr:type_name -> google.api.expr.v1alpha1.Expr.CreateStruct
- 10, // 8: google.api.expr.v1alpha1.Expr.comprehension_expr:type_name -> google.api.expr.v1alpha1.Expr.Comprehension
- 14, // 9: google.api.expr.v1alpha1.Constant.null_value:type_name -> google.protobuf.NullValue
- 15, // 10: google.api.expr.v1alpha1.Constant.duration_value:type_name -> google.protobuf.Duration
- 16, // 11: google.api.expr.v1alpha1.Constant.timestamp_value:type_name -> google.protobuf.Timestamp
- 12, // 12: google.api.expr.v1alpha1.SourceInfo.positions:type_name -> google.api.expr.v1alpha1.SourceInfo.PositionsEntry
- 13, // 13: google.api.expr.v1alpha1.SourceInfo.macro_calls:type_name -> google.api.expr.v1alpha1.SourceInfo.MacroCallsEntry
- 1, // 14: google.api.expr.v1alpha1.Expr.Select.operand:type_name -> google.api.expr.v1alpha1.Expr
- 1, // 15: google.api.expr.v1alpha1.Expr.Call.target:type_name -> google.api.expr.v1alpha1.Expr
- 1, // 16: google.api.expr.v1alpha1.Expr.Call.args:type_name -> google.api.expr.v1alpha1.Expr
- 1, // 17: google.api.expr.v1alpha1.Expr.CreateList.elements:type_name -> google.api.expr.v1alpha1.Expr
- 11, // 18: google.api.expr.v1alpha1.Expr.CreateStruct.entries:type_name -> google.api.expr.v1alpha1.Expr.CreateStruct.Entry
- 1, // 19: google.api.expr.v1alpha1.Expr.Comprehension.iter_range:type_name -> google.api.expr.v1alpha1.Expr
- 1, // 20: google.api.expr.v1alpha1.Expr.Comprehension.accu_init:type_name -> google.api.expr.v1alpha1.Expr
- 1, // 21: google.api.expr.v1alpha1.Expr.Comprehension.loop_condition:type_name -> google.api.expr.v1alpha1.Expr
- 1, // 22: google.api.expr.v1alpha1.Expr.Comprehension.loop_step:type_name -> google.api.expr.v1alpha1.Expr
- 1, // 23: google.api.expr.v1alpha1.Expr.Comprehension.result:type_name -> google.api.expr.v1alpha1.Expr
- 1, // 24: google.api.expr.v1alpha1.Expr.CreateStruct.Entry.map_key:type_name -> google.api.expr.v1alpha1.Expr
- 1, // 25: google.api.expr.v1alpha1.Expr.CreateStruct.Entry.value:type_name -> google.api.expr.v1alpha1.Expr
- 1, // 26: google.api.expr.v1alpha1.SourceInfo.MacroCallsEntry.value:type_name -> google.api.expr.v1alpha1.Expr
- 27, // [27:27] is the sub-list for method output_type
- 27, // [27:27] is the sub-list for method input_type
- 27, // [27:27] is the sub-list for extension type_name
- 27, // [27:27] is the sub-list for extension extendee
- 0, // [0:27] is the sub-list for field type_name
+ 2, // 0: google.api.expr.v1alpha1.ParsedExpr.expr:type_name -> google.api.expr.v1alpha1.Expr
+ 4, // 1: google.api.expr.v1alpha1.ParsedExpr.source_info:type_name -> google.api.expr.v1alpha1.SourceInfo
+ 3, // 2: google.api.expr.v1alpha1.Expr.const_expr:type_name -> google.api.expr.v1alpha1.Constant
+ 6, // 3: google.api.expr.v1alpha1.Expr.ident_expr:type_name -> google.api.expr.v1alpha1.Expr.Ident
+ 7, // 4: google.api.expr.v1alpha1.Expr.select_expr:type_name -> google.api.expr.v1alpha1.Expr.Select
+ 8, // 5: google.api.expr.v1alpha1.Expr.call_expr:type_name -> google.api.expr.v1alpha1.Expr.Call
+ 9, // 6: google.api.expr.v1alpha1.Expr.list_expr:type_name -> google.api.expr.v1alpha1.Expr.CreateList
+ 10, // 7: google.api.expr.v1alpha1.Expr.struct_expr:type_name -> google.api.expr.v1alpha1.Expr.CreateStruct
+ 11, // 8: google.api.expr.v1alpha1.Expr.comprehension_expr:type_name -> google.api.expr.v1alpha1.Expr.Comprehension
+ 17, // 9: google.api.expr.v1alpha1.Constant.null_value:type_name -> google.protobuf.NullValue
+ 18, // 10: google.api.expr.v1alpha1.Constant.duration_value:type_name -> google.protobuf.Duration
+ 19, // 11: google.api.expr.v1alpha1.Constant.timestamp_value:type_name -> google.protobuf.Timestamp
+ 14, // 12: google.api.expr.v1alpha1.SourceInfo.positions:type_name -> google.api.expr.v1alpha1.SourceInfo.PositionsEntry
+ 15, // 13: google.api.expr.v1alpha1.SourceInfo.macro_calls:type_name -> google.api.expr.v1alpha1.SourceInfo.MacroCallsEntry
+ 13, // 14: google.api.expr.v1alpha1.SourceInfo.extensions:type_name -> google.api.expr.v1alpha1.SourceInfo.Extension
+ 2, // 15: google.api.expr.v1alpha1.Expr.Select.operand:type_name -> google.api.expr.v1alpha1.Expr
+ 2, // 16: google.api.expr.v1alpha1.Expr.Call.target:type_name -> google.api.expr.v1alpha1.Expr
+ 2, // 17: google.api.expr.v1alpha1.Expr.Call.args:type_name -> google.api.expr.v1alpha1.Expr
+ 2, // 18: google.api.expr.v1alpha1.Expr.CreateList.elements:type_name -> google.api.expr.v1alpha1.Expr
+ 12, // 19: google.api.expr.v1alpha1.Expr.CreateStruct.entries:type_name -> google.api.expr.v1alpha1.Expr.CreateStruct.Entry
+ 2, // 20: google.api.expr.v1alpha1.Expr.Comprehension.iter_range:type_name -> google.api.expr.v1alpha1.Expr
+ 2, // 21: google.api.expr.v1alpha1.Expr.Comprehension.accu_init:type_name -> google.api.expr.v1alpha1.Expr
+ 2, // 22: google.api.expr.v1alpha1.Expr.Comprehension.loop_condition:type_name -> google.api.expr.v1alpha1.Expr
+ 2, // 23: google.api.expr.v1alpha1.Expr.Comprehension.loop_step:type_name -> google.api.expr.v1alpha1.Expr
+ 2, // 24: google.api.expr.v1alpha1.Expr.Comprehension.result:type_name -> google.api.expr.v1alpha1.Expr
+ 2, // 25: google.api.expr.v1alpha1.Expr.CreateStruct.Entry.map_key:type_name -> google.api.expr.v1alpha1.Expr
+ 2, // 26: google.api.expr.v1alpha1.Expr.CreateStruct.Entry.value:type_name -> google.api.expr.v1alpha1.Expr
+ 0, // 27: google.api.expr.v1alpha1.SourceInfo.Extension.affected_components:type_name -> google.api.expr.v1alpha1.SourceInfo.Extension.Component
+ 16, // 28: google.api.expr.v1alpha1.SourceInfo.Extension.version:type_name -> google.api.expr.v1alpha1.SourceInfo.Extension.Version
+ 2, // 29: google.api.expr.v1alpha1.SourceInfo.MacroCallsEntry.value:type_name -> google.api.expr.v1alpha1.Expr
+ 30, // [30:30] is the sub-list for method output_type
+ 30, // [30:30] is the sub-list for method input_type
+ 30, // [30:30] is the sub-list for extension type_name
+ 30, // [30:30] is the sub-list for extension extendee
+ 0, // [0:30] is the sub-list for field type_name
}
func init() { file_google_api_expr_v1alpha1_syntax_proto_init() }
@@ -1674,6 +1919,30 @@ func file_google_api_expr_v1alpha1_syntax_proto_init() {
return nil
}
}
+ file_google_api_expr_v1alpha1_syntax_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SourceInfo_Extension); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_google_api_expr_v1alpha1_syntax_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SourceInfo_Extension_Version); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
}
file_google_api_expr_v1alpha1_syntax_proto_msgTypes[1].OneofWrappers = []interface{}{
(*Expr_ConstExpr)(nil),
@@ -1704,13 +1973,14 @@ func file_google_api_expr_v1alpha1_syntax_proto_init() {
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_google_api_expr_v1alpha1_syntax_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 14,
+ NumEnums: 1,
+ NumMessages: 16,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_google_api_expr_v1alpha1_syntax_proto_goTypes,
DependencyIndexes: file_google_api_expr_v1alpha1_syntax_proto_depIdxs,
+ EnumInfos: file_google_api_expr_v1alpha1_syntax_proto_enumTypes,
MessageInfos: file_google_api_expr_v1alpha1_syntax_proto_msgTypes,
}.Build()
File_google_api_expr_v1alpha1_syntax_proto = out.File
diff --git a/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/value.pb.go b/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/value.pb.go
index 91d122c5bed..033f238684f 100644
--- a/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/value.pb.go
+++ b/vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/value.pb.go
@@ -1,4 +1,4 @@
-// Copyright 2022 Google LLC
+// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.26.0
-// protoc v3.21.5
+// protoc v4.24.4
// source: google/api/expr/v1alpha1/value.proto
package expr
diff --git a/yt/python/yt/type_info/test/lib/ya.make b/yt/python/yt/type_info/test/lib/ya.make
index ffbccab8508..d372b4fe4c3 100644
--- a/yt/python/yt/type_info/test/lib/ya.make
+++ b/yt/python/yt/type_info/test/lib/ya.make
@@ -1,22 +1,28 @@
PY23_LIBRARY()
-TEST_SRCS(
- conftest.py
- test_common.py
- test_helpers.py
- test_typing.py
- test_io.py
- helpers.py
-)
+INCLUDE(${ARCADIA_ROOT}/yt/opensource.inc)
-PEERDIR(
- library/python/cyson
- yt/python/yt/type_info
-)
+IF (PYTHON2)
+ PEERDIR(yt/python_py2/yt/type_info/test/lib)
+ELSE()
+ TEST_SRCS(
+ conftest.py
+ test_common.py
+ test_helpers.py
+ test_typing.py
+ test_io.py
+ helpers.py
+ )
-RESOURCE_FILES(
- library/cpp/type_info/ut/test-data/good-types.txt
- library/cpp/type_info/ut/test-data/bad-types.txt
-)
+ PEERDIR(
+ library/python/cyson
+ yt/python/yt/type_info
+ )
+
+ RESOURCE_FILES(
+ library/cpp/type_info/ut/test-data/good-types.txt
+ library/cpp/type_info/ut/test-data/bad-types.txt
+ )
+ENDIF()
END()
diff --git a/yt/python/yt/type_info/ya.make b/yt/python/yt/type_info/ya.make
index 22777dca01d..8725b464ad4 100644
--- a/yt/python/yt/type_info/ya.make
+++ b/yt/python/yt/type_info/ya.make
@@ -1,16 +1,22 @@
PY23_LIBRARY()
-PY_SRCS(
- NAMESPACE yt.type_info
+INCLUDE(${ARCADIA_ROOT}/yt/opensource.inc)
- __init__.py
- typing.py
- type_base.py
-)
+IF (PYTHON2)
+ PEERDIR(yt/python_py2/yt/type_info)
+ELSE()
+ PY_SRCS(
+ NAMESPACE yt.type_info
-PEERDIR(
- contrib/python/six
-)
+ __init__.py
+ typing.py
+ type_base.py
+ )
+
+ PEERDIR(
+ contrib/python/six
+ )
+ENDIF()
END()
diff --git a/yt/python/yt/ya.make b/yt/python/yt/ya.make
index 7d72655d65d..f12e6b9cdc3 100644
--- a/yt/python/yt/ya.make
+++ b/yt/python/yt/ya.make
@@ -1,26 +1,32 @@
PY23_LIBRARY()
-PEERDIR(
- contrib/python/simplejson
- contrib/python/six
- yt/python/yt/type_info
-)
+INCLUDE(${ARCADIA_ROOT}/yt/opensource.inc)
-IF(LINUX)
+IF (PYTHON2)
+ PEERDIR(yt/python_py2/yt)
+ELSE()
PEERDIR(
- library/python/prctl
+ contrib/python/simplejson
+ contrib/python/six
+ yt/python/yt/type_info
)
-ENDIF()
-PY_SRCS(
- NAMESPACE yt
+ IF(LINUX)
+ PEERDIR(
+ library/python/prctl
+ )
+ ENDIF()
+
+ PY_SRCS(
+ NAMESPACE yt
- __init__.py
- common.py
- json_wrapper.py
- logger.py
- logger_config.py
- subprocess_wrapper.py
-)
+ __init__.py
+ common.py
+ json_wrapper.py
+ logger.py
+ logger_config.py
+ subprocess_wrapper.py
+ )
+ENDIF()
END()
diff --git a/yt/python/yt/yson/ya.make b/yt/python/yt/yson/ya.make
index 37bf8a4046a..51b95bb143a 100644
--- a/yt/python/yt/yson/ya.make
+++ b/yt/python/yt/yson/ya.make
@@ -1,23 +1,29 @@
PY23_LIBRARY()
-PEERDIR(
- yt/python/yt
+INCLUDE(${ARCADIA_ROOT}/yt/opensource.inc)
- contrib/python/six
-)
+IF (PYTHON2)
+ PEERDIR(yt/python_py2/yt/yson)
+ELSE()
+ PEERDIR(
+ yt/python/yt
-PY_SRCS(
- NAMESPACE yt.yson
+ contrib/python/six
+ )
- __init__.py
- common.py
- convert.py
- lexer.py
- parser.py
- tokenizer.py
- writer.py
- yson_token.py
- yson_types.py
-)
+ PY_SRCS(
+ NAMESPACE yt.yson
+
+ __init__.py
+ common.py
+ convert.py
+ lexer.py
+ parser.py
+ tokenizer.py
+ writer.py
+ yson_token.py
+ yson_types.py
+ )
+ENDIF()
END()
diff --git a/yt/yt/client/api/journal_client.h b/yt/yt/client/api/journal_client.h
index 35d4beee58d..457ad7597d6 100644
--- a/yt/yt/client/api/journal_client.h
+++ b/yt/yt/client/api/journal_client.h
@@ -63,8 +63,7 @@ struct TJournalWriterOptions
{
TJournalWriterConfigPtr Config;
bool EnableMultiplexing = true;
- // TODO(babenko): enable by default
- bool EnableChunkPreallocation = false;
+ bool EnableChunkPreallocation = true;
i64 ReplicaLagLimit = NJournalClient::DefaultReplicaLagLimit;
diff --git a/yt/yt/client/api/persistent_queue.cpp b/yt/yt/client/api/persistent_queue.cpp
index 77d88ba1e5b..1e334e7f7a2 100644
--- a/yt/yt/client/api/persistent_queue.cpp
+++ b/yt/yt/client/api/persistent_queue.cpp
@@ -424,12 +424,12 @@ private:
i64 batchBeginRowIndex = -1;
- auto beginBatch = [&] () {
+ auto beginBatch = [&] {
YT_VERIFY(batchBeginRowIndex < 0);
batchBeginRowIndex = currentRowIndex;
};
- auto endBatch = [&] () {
+ auto endBatch = [&] {
if (batchBeginRowIndex < 0) {
return;
}
diff --git a/yt/yt/client/api/rpc_proxy/table_reader.cpp b/yt/yt/client/api/rpc_proxy/table_reader.cpp
index 2bb1410874c..7703fc4c5ec 100644
--- a/yt/yt/client/api/rpc_proxy/table_reader.cpp
+++ b/yt/yt/client/api/rpc_proxy/table_reader.cpp
@@ -210,7 +210,7 @@ private:
};
if (rowsWithStatistics.Rows.Empty()) {
- return ExpectEndOfStream(Underlying_).Apply(BIND([=] () {
+ return ExpectEndOfStream(Underlying_).Apply(BIND([=] {
return std::move(rowsWithStatistics);
}));
}
diff --git a/yt/yt/client/api/rpc_proxy/transaction_impl.cpp b/yt/yt/client/api/rpc_proxy/transaction_impl.cpp
index 28027efa251..a5819f423a7 100644
--- a/yt/yt/client/api/rpc_proxy/transaction_impl.cpp
+++ b/yt/yt/client/api/rpc_proxy/transaction_impl.cpp
@@ -478,7 +478,7 @@ void TTransaction::ModifyRows(
if (future) {
future
- .Subscribe(BIND([=, this, this_ = MakeStrong(this)](const TError& error) {
+ .Subscribe(BIND([=, this, this_ = MakeStrong(this)] (const TError& error) {
if (!error.IsOK()) {
YT_LOG_DEBUG(error, "Error sending row modifications");
YT_UNUSED_FUTURE(Abort());
diff --git a/yt/yt/client/driver/cypress_commands.cpp b/yt/yt/client/driver/cypress_commands.cpp
index 0d3c4a3c824..622e20fe5b7 100644
--- a/yt/yt/client/driver/cypress_commands.cpp
+++ b/yt/yt/client/driver/cypress_commands.cpp
@@ -395,7 +395,7 @@ void TLockCommand::DoExecute(ICommandContextPtr context)
ProduceSingleOutputValue(context, "lock_id", lockResult.LockId);
break;
default:
- ProduceOutput(context, [&](NYson::IYsonConsumer* consumer) {
+ ProduceOutput(context, [&] (NYson::IYsonConsumer* consumer) {
BuildYsonFluently(consumer)
.BeginMap()
.Item("lock_id").Value(lockResult.LockId)
diff --git a/yt/yt/client/driver/journal_commands.cpp b/yt/yt/client/driver/journal_commands.cpp
index 5ab1a6abcc2..5e48c447dd2 100644
--- a/yt/yt/client/driver/journal_commands.cpp
+++ b/yt/yt/client/driver/journal_commands.cpp
@@ -84,7 +84,7 @@ void TReadJournalCommand::DoExecute(ICommandContextPtr context)
// TODO(babenko): provide custom allocation tag
TBlobOutput buffer;
- auto flushBuffer = [&] () {
+ auto flushBuffer = [&] {
WaitFor(output->Write(buffer.Flush()))
.ThrowOnError();
};
@@ -268,10 +268,8 @@ private:
void TWriteJournalCommand::Register(TRegistrar registrar)
{
registrar.Parameter("path", &TThis::Path);
-
registrar.Parameter("journal_writer", &TThis::JournalWriter)
.Default();
-
registrar.ParameterWithUniversalAccessor<bool>(
"enable_chunk_preallocation",
[] (TThis* command) -> auto& {
diff --git a/yt/yt/client/driver/queue_commands.cpp b/yt/yt/client/driver/queue_commands.cpp
index ccb52d8cc1b..f3504ad8c9e 100644
--- a/yt/yt/client/driver/queue_commands.cpp
+++ b/yt/yt/client/driver/queue_commands.cpp
@@ -79,7 +79,7 @@ void TListQueueConsumerRegistrationsCommand::DoExecute(ICommandContextPtr contex
auto registrations = WaitFor(asyncResult)
.ValueOrThrow();
- ProduceOutput(context, [&](NYson::IYsonConsumer* consumer) {
+ ProduceOutput(context, [&] (NYson::IYsonConsumer* consumer) {
BuildYsonFluently(consumer)
.DoListFor(registrations, [=] (TFluentList fluent, const TListQueueConsumerRegistrationsResult& registration) {
fluent
diff --git a/yt/yt/client/driver/table_commands.cpp b/yt/yt/client/driver/table_commands.cpp
index 3945305f115..b52ea8e631b 100644
--- a/yt/yt/client/driver/table_commands.cpp
+++ b/yt/yt/client/driver/table_commands.cpp
@@ -110,7 +110,7 @@ void TReadTableCommand::DoExecute(ICommandContextPtr context)
BuildYsonMapFragmentFluently(consumer)
.Item("approximate_row_count").Value(reader->GetTotalRowCount())
.Item("omitted_inaccessible_columns").Value(reader->GetOmittedInaccessibleColumns())
- .DoIf(reader->GetTotalRowCount() > 0, [&](auto fluent) {
+ .DoIf(reader->GetTotalRowCount() > 0, [&] (auto fluent) {
fluent
.Item("start_row_index").Value(reader->GetStartRowIndex());
});
@@ -130,7 +130,7 @@ void TReadTableCommand::DoExecute(ICommandContextPtr context)
ControlAttributes,
0);
- auto finally = Finally([&] () {
+ auto finally = Finally([&] {
auto dataStatistics = reader->GetDataStatistics();
YT_LOG_DEBUG("Command statistics (RowCount: %v, WrittenSize: %v, "
"ReadUncompressedDataSize: %v, ReadCompressedDataSize: %v, "
diff --git a/yt/yt/client/federated/client.cpp b/yt/yt/client/federated/client.cpp
index fa7407095a3..32bc9bfdbe9 100644
--- a/yt/yt/client/federated/client.cpp
+++ b/yt/yt/client/federated/client.cpp
@@ -559,7 +559,7 @@ TClient::TClient(const std::vector<IClientPtr>& underlyingClients, TFederationCo
int priority = GetDataCenterByClient(client) == localDatacenter ? 1 : 0;
UnderlyingClients_.push_back(New<TClientDescription>(client, priority));
}
- std::stable_sort(UnderlyingClients_.begin(), UnderlyingClients_.end(), [](const auto& lhs, const auto& rhs) {
+ std::stable_sort(UnderlyingClients_.begin(), UnderlyingClients_.end(), [] (const auto& lhs, const auto& rhs) {
return lhs->Priority > rhs->Priority;
});
diff --git a/yt/yt/client/federated/unittests/client_ut.cpp b/yt/yt/client/federated/unittests/client_ut.cpp
index cedef2e3c55..8588e6dc66e 100644
--- a/yt/yt/client/federated/unittests/client_ut.cpp
+++ b/yt/yt/client/federated/unittests/client_ut.cpp
@@ -33,7 +33,7 @@ struct TTestDataStorage
{
TTestDataStorage()
{
- LookupResult1 = [&]() {
+ LookupResult1 = [&] {
auto rowBuffer = NYT::New<NTableClient::TRowBuffer>();
std::vector<NTableClient::TUnversionedRow> rows;
for (ui64 key : {10, 11}) {
@@ -47,7 +47,7 @@ struct TTestDataStorage
};
} ();
- LookupResult2 = [&]() {
+ LookupResult2 = [&] {
auto rowBuffer = NYT::New<NTableClient::TRowBuffer>();
std::vector<NTableClient::TUnversionedRow> rows;
for (ui64 key : {12, 13}) {
@@ -64,7 +64,7 @@ struct TTestDataStorage
NameTable = NYT::New<NTableClient::TNameTable>();
i32 keyField = NameTable->GetIdOrRegisterName(KeyColumn);
- auto keys = [&]() {
+ auto keys = [&] {
auto rowBuffer = NYT::New<NTableClient::TRowBuffer>();
std::vector<NTableClient::TUnversionedRow> keysVector;
for (ui64 key : {10, 11}) {
diff --git a/yt/yt/client/hedging/unittests/hedging_ut.cpp b/yt/yt/client/hedging/unittests/hedging_ut.cpp
index 6362d491b96..43ce0d0cb6f 100644
--- a/yt/yt/client/hedging/unittests/hedging_ut.cpp
+++ b/yt/yt/client/hedging/unittests/hedging_ut.cpp
@@ -209,7 +209,7 @@ TEST(THedgingClientTest, GetclientResult2WhenFirstClientIsSleeping)
auto mockClient2 = New<TStrictMockClient>();
EXPECT_CALL(*mockClient1, ListNode(path, _))
- .WillOnce(Return(NConcurrency::TDelayedExecutor::MakeDelayed(TDuration::Seconds(2)).Apply(BIND([=] () { return clientResult1; }))));
+ .WillOnce(Return(NConcurrency::TDelayedExecutor::MakeDelayed(TDuration::Seconds(2)).Apply(BIND([=] { return clientResult1; }))));
EXPECT_CALL(*mockClient2, ListNode(path, _))
.WillRepeatedly(Return(MakeFuture(clientResult2)));
@@ -235,7 +235,7 @@ TEST(THedgingClientTest, FirstClientIsBannedBecauseResponseWasCancelled)
auto mockClient2 = New<TStrictMockClient>();
EXPECT_CALL(*mockClient1, ListNode(path, _))
- .WillOnce(Return(NConcurrency::TDelayedExecutor::MakeDelayed(SleepQuantum * 2).Apply(BIND([=] () { return clientResult1; }))))
+ .WillOnce(Return(NConcurrency::TDelayedExecutor::MakeDelayed(SleepQuantum * 2).Apply(BIND([=] { return clientResult1; }))))
.WillRepeatedly(Return(MakeFuture(clientResult1)));
EXPECT_CALL(*mockClient2, ListNode(path, _))
.WillRepeatedly(Return(MakeFuture(clientResult2)));
@@ -276,10 +276,10 @@ TEST(THedgingClientTest, AmnestyBanPenaltyIfClientSucceeded)
.WillRepeatedly(Return(MakeFuture(clientResult1)));
EXPECT_CALL(*mockClient2, ListNode(path, _))
.WillOnce(Return(MakeFuture(clientResult2)))
- .WillOnce(Return(NConcurrency::TDelayedExecutor::MakeDelayed(TDuration::Seconds(100)).Apply(BIND([=] () { return clientResult2; }))))
+ .WillOnce(Return(NConcurrency::TDelayedExecutor::MakeDelayed(TDuration::Seconds(100)).Apply(BIND([=] { return clientResult2; }))))
.WillRepeatedly(Return(MakeFuture(clientResult2)));
EXPECT_CALL(*mockClient3, ListNode(path, _))
- .WillRepeatedly(Return(NConcurrency::TDelayedExecutor::MakeDelayed(TDuration::Seconds(100)).Apply(BIND([=] () { return thirdClientResult; }))));
+ .WillRepeatedly(Return(NConcurrency::TDelayedExecutor::MakeDelayed(TDuration::Seconds(100)).Apply(BIND([=] { return thirdClientResult; }))));
auto client = CreateTestHedgingClient(
SleepQuantum * 2,
@@ -320,7 +320,7 @@ TEST(THedgingClientTest, MultiThread)
EXPECT_CALL(*mockClient1, ListNode(path, _)).WillRepeatedly([=] (const NYPath::TYPath&, const NApi::TListNodeOptions& options) {
if (options.Timeout) {
- return NConcurrency::TDelayedExecutor::MakeDelayed(*options.Timeout).Apply(BIND([=] () {
+ return NConcurrency::TDelayedExecutor::MakeDelayed(*options.Timeout).Apply(BIND([=] {
return clientResult1;
}));
}
@@ -337,7 +337,7 @@ TEST(THedgingClientTest, MultiThread)
auto threadPool = NConcurrency::CreateThreadPool(10, "test");
std::vector<TFuture<void>> futures;
for (int i = 0; i < 100; ++i) {
- futures.push_back(BIND([=] () {
+ futures.push_back(BIND([=] {
for (int j = 0; j < 100; ++j) {
NApi::TListNodeOptions options;
// on each 5th request for 1st and 2nd thread, the first client will timeout
diff --git a/yt/yt/client/table_client/comparator.cpp b/yt/yt/client/table_client/comparator.cpp
index f49bec0fba6..34aefde9db0 100644
--- a/yt/yt/client/table_client/comparator.cpp
+++ b/yt/yt/client/table_client/comparator.cpp
@@ -19,9 +19,9 @@ static const TLogger Logger("TableClientComparator");
////////////////////////////////////////////////////////////////////////////////
-TComparator::TComparator(std::vector<ESortOrder> sortOrders, TCallback<TUUComparerSignature> CGComparator)
+TComparator::TComparator(std::vector<ESortOrder> sortOrders, TCallback<TUUComparerSignature> cgComparator)
: SortOrders_(std::move(sortOrders))
- , CGComparator_(CGComparator)
+ , CGComparator_(std::move(cgComparator))
{ }
void TComparator::Persist(const TPersistenceContext& context)
diff --git a/yt/yt/client/table_client/comparator.h b/yt/yt/client/table_client/comparator.h
index b228356555b..b272c6569e3 100644
--- a/yt/yt/client/table_client/comparator.h
+++ b/yt/yt/client/table_client/comparator.h
@@ -28,7 +28,7 @@ public:
public:
TComparator() = default;
- TComparator(std::vector<ESortOrder> sortOrders, TCallback<TUUComparerSignature> CGComparator = {});
+ explicit TComparator(std::vector<ESortOrder> sortOrders, TCallback<TUUComparerSignature> cgComparator = {});
void Persist(const TPersistenceContext& context);
diff --git a/yt/yt/client/table_client/key.cpp b/yt/yt/client/table_client/key.cpp
index 895ec5d5ac7..92953c792d2 100644
--- a/yt/yt/client/table_client/key.cpp
+++ b/yt/yt/client/table_client/key.cpp
@@ -143,7 +143,7 @@ void Serialize(const TKey& key, IYsonConsumer* consumer)
{
if (key) {
BuildYsonFluently(consumer)
- .DoListFor(MakeRange(key.Begin(), key.End()), [&](TFluentList fluent, const TUnversionedValue& value) {
+ .DoListFor(MakeRange(key.Begin(), key.End()), [&] (TFluentList fluent, const TUnversionedValue& value) {
fluent
.Item()
.Value(value);
diff --git a/yt/yt/client/table_client/logical_type.cpp b/yt/yt/client/table_client/logical_type.cpp
index 50ff4ceacc0..c2a051630c0 100644
--- a/yt/yt/client/table_client/logical_type.cpp
+++ b/yt/yt/client/table_client/logical_type.cpp
@@ -33,7 +33,7 @@ static void WalkImpl(
{
onElement(*walkContext, descriptor);
walkContext->Stack.push_back(descriptor);
- auto g = Finally([&]() {
+ auto g = Finally([&] {
walkContext->Stack.pop_back();
});
const auto metatype = descriptor.GetType()->GetMetatype();
@@ -801,7 +801,7 @@ int TDictLogicalType::GetTypeComplexity() const
void TDictLogicalType::ValidateNode(const TWalkContext&) const
{
TComplexTypeFieldDescriptor descriptor("<dict-key>", GetKey());
- Walk(descriptor, [](const TWalkContext&, const TComplexTypeFieldDescriptor& descriptor) {
+ Walk(descriptor, [] (const TWalkContext&, const TComplexTypeFieldDescriptor& descriptor) {
const auto& logicalType = descriptor.GetType();
// NB. We intentionally list all metatypes and simple types here.
@@ -1702,7 +1702,7 @@ void Deserialize(TTypeV3LogicalTypeWrapper& wrapper, NYTree::INodePtr node)
if (node->GetType() == NYTree::ENodeType::String) {
auto typeNameString = node->AsString()->GetValue();
auto typeName = FromTypeV3(typeNameString);
- std::visit([&](const auto& arg) {
+ std::visit([&] (const auto& arg) {
using T = std::decay_t<decltype(arg)>;
if constexpr (std::is_same_v<T, ESimpleLogicalValueType>) {
wrapper.LogicalType = SimpleLogicalType(arg);
@@ -1724,7 +1724,7 @@ void Deserialize(TTypeV3LogicalTypeWrapper& wrapper, NYTree::INodePtr node)
auto mapNode = node->AsMap();
auto typeNameString = mapNode->GetChildValueOrThrow<TString>("type_name");
auto typeName = FromTypeV3(typeNameString);
- std::visit([&](const auto& typeName) {
+ std::visit([&] (const auto& typeName) {
using T = std::decay_t<decltype(typeName)>;
if constexpr (std::is_same_v<T, ESimpleLogicalValueType>) {
wrapper.LogicalType = SimpleLogicalType(typeName);
@@ -1835,7 +1835,7 @@ void DeserializeV3Impl(TLogicalTypePtr& type, TYsonPullParserCursor* cursor, int
if ((*cursor)->GetType() == EYsonItemType::StringValue) {
auto typeNameString = (*cursor)->UncheckedAsString();
auto typeName = FromTypeV3(typeNameString);
- std::visit([&](const auto& arg) {
+ std::visit([&] (const auto& arg) {
using T = std::decay_t<decltype(arg)>;
if constexpr (std::is_same_v<T, ESimpleLogicalValueType>) {
type = SimpleLogicalType(arg);
@@ -1947,7 +1947,7 @@ void DeserializeV3Impl(TLogicalTypePtr& type, TYsonPullParserCursor* cursor, int
THROW_ERROR_EXCEPTION("\"type_name\" is required");
}
- type = std::visit([&](const auto& typeName) {
+ type = std::visit([&] (const auto& typeName) {
using T = std::decay_t<decltype(typeName)>;
if constexpr (std::is_same_v<T, ESimpleLogicalValueType>) {
return SimpleLogicalType(typeName);
diff --git a/yt/yt/client/table_client/row_buffer.cpp b/yt/yt/client/table_client/row_buffer.cpp
index dddcbd9ce3e..40a2703ea50 100644
--- a/yt/yt/client/table_client/row_buffer.cpp
+++ b/yt/yt/client/table_client/row_buffer.cpp
@@ -115,14 +115,14 @@ TMutableUnversionedRow TRowBuffer::CaptureAndPermuteRow(
const TTableSchema& tableSchema,
int schemafulColumnCount,
const TNameTableToSchemaIdMapping& idMapping,
- std::vector<bool>* columnPresenceBuffer,
+ bool validateDuplicateAndRequiredValueColumns,
bool preserveIds,
std::optional<TUnversionedValue> addend)
{
int valueCount = schemafulColumnCount;
- if (columnPresenceBuffer) {
- ValidateDuplicateAndRequiredValueColumns(row, tableSchema, idMapping, columnPresenceBuffer);
+ if (validateDuplicateAndRequiredValueColumns) {
+ ValidateDuplicateAndRequiredValueColumns(row, tableSchema, idMapping);
}
for (const auto& value : row) {
@@ -212,7 +212,7 @@ TMutableVersionedRow TRowBuffer::CaptureAndPermuteRow(
TVersionedRow row,
const TTableSchema& tableSchema,
const TNameTableToSchemaIdMapping& idMapping,
- std::vector<bool>* columnPresenceBuffer,
+ bool validateDuplicateAndRequiredValueColumns,
bool allowMissingKeyColumns)
{
int keyColumnCount = tableSchema.GetKeyColumnCount();
@@ -242,12 +242,11 @@ TMutableVersionedRow TRowBuffer::CaptureAndPermuteRow(
writeTimestamps.erase(std::unique(writeTimestamps.begin(), writeTimestamps.end()), writeTimestamps.end());
int writeTimestampCount = static_cast<int>(writeTimestamps.size());
- if (columnPresenceBuffer) {
+ if (validateDuplicateAndRequiredValueColumns) {
ValidateDuplicateAndRequiredValueColumns(
row,
tableSchema,
idMapping,
- columnPresenceBuffer,
writeTimestamps.data(),
writeTimestampCount);
}
diff --git a/yt/yt/client/table_client/row_buffer.h b/yt/yt/client/table_client/row_buffer.h
index 46096046737..2f9a8d4d225 100644
--- a/yt/yt/client/table_client/row_buffer.h
+++ b/yt/yt/client/table_client/row_buffer.h
@@ -89,9 +89,9 @@ public:
const TTableSchema& tableSchema,
int schemafulColumnCount,
const TNameTableToSchemaIdMapping& idMapping,
- std::vector<bool>* columnPresenceBuffer,
+ bool validateDuplicateAndRequiredValueColumns,
bool preserveIds = false,
- std::optional<TUnversionedValue> addend = std::nullopt);
+ std::optional<TUnversionedValue> addend = {});
//! Captures the row applying #idMapping to value ids.
//! #idMapping must be identity for key columns.
@@ -100,7 +100,7 @@ public:
TVersionedRow row,
const TTableSchema& tableSchema,
const TNameTableToSchemaIdMapping& idMapping,
- std::vector<bool>* columnPresenceBuffer,
+ bool validateDuplicateAndRequiredValueColumns,
bool allowMissingKeyColumns = false);
i64 GetSize() const;
diff --git a/yt/yt/client/table_client/schema.cpp b/yt/yt/client/table_client/schema.cpp
index 241c8019f29..29ac95929d1 100644
--- a/yt/yt/client/table_client/schema.cpp
+++ b/yt/yt/client/table_client/schema.cpp
@@ -1305,7 +1305,7 @@ TTableSchemaPtr TTableSchema::ToModifiedSchema(ETableSchemaModification schemaMo
}
}
-TComparator TTableSchema::ToComparator(TCallback<TUUComparerSignature> CGComparator) const
+TComparator TTableSchema::ToComparator(TCallback<TUUComparerSignature> cgComparator) const
{
std::vector<ESortOrder> sortOrders;
if (ColumnInfo_) {
@@ -1317,7 +1317,7 @@ TComparator TTableSchema::ToComparator(TCallback<TUUComparerSignature> CGCompara
}
}
- return TComparator(std::move(sortOrders), std::move(CGComparator));
+ return TComparator(std::move(sortOrders), std::move(cgComparator));
}
void TTableSchema::Save(TStreamSaveContext& context) const
diff --git a/yt/yt/client/table_client/schema.h b/yt/yt/client/table_client/schema.h
index 8ece5019e9e..9c6e7940726 100644
--- a/yt/yt/client/table_client/schema.h
+++ b/yt/yt/client/table_client/schema.h
@@ -381,7 +381,7 @@ public:
TTableSchemaPtr ToModifiedSchema(ETableSchemaModification schemaModification) const;
- TComparator ToComparator(TCallback<TUUComparerSignature> CGComparator = {}) const;
+ TComparator ToComparator(TCallback<TUUComparerSignature> cgComparator = {}) const;
TKeyColumnTypes GetKeyColumnTypes() const;
diff --git a/yt/yt/client/table_client/unversioned_row.cpp b/yt/yt/client/table_client/unversioned_row.cpp
index 18cfd89d7e9..cbf238516cf 100644
--- a/yt/yt/client/table_client/unversioned_row.cpp
+++ b/yt/yt/client/table_client/unversioned_row.cpp
@@ -22,6 +22,8 @@
#include <library/cpp/yt/misc/hash.h>
+#include <library/cpp/yt/memory/tls_scratch.h>
+
#include <library/cpp/yt/farmhash/farm_hash.h>
#include <library/cpp/yt/coding/varint.h>
@@ -1235,13 +1237,9 @@ void ValidateClientDataRow(
void ValidateDuplicateAndRequiredValueColumns(
TUnversionedRow row,
const TTableSchema& schema,
- const TNameTableToSchemaIdMapping& idMapping,
- std::vector<bool>* columnPresenceBuffer)
+ const TNameTableToSchemaIdMapping& idMapping)
{
- auto& columnSeen = *columnPresenceBuffer;
- YT_VERIFY(std::ssize(columnSeen) >= schema.GetColumnCount());
- std::fill(columnSeen.begin(), columnSeen.end(), 0);
-
+ auto columnSeenFlags = GetTlsScratchBuffer<bool>(schema.GetColumnCount());
for (const auto& value : row) {
int mappedId = ApplyIdMapping(value, &idMapping);
if (mappedId < 0) {
@@ -1249,17 +1247,17 @@ void ValidateDuplicateAndRequiredValueColumns(
}
const auto& column = schema.Columns()[mappedId];
- if (columnSeen[mappedId]) {
+ if (columnSeenFlags[mappedId]) {
THROW_ERROR_EXCEPTION(
NTableClient::EErrorCode::DuplicateColumnInSchema,
"Duplicate column %v in table schema",
column.GetDiagnosticNameString());
}
- columnSeen[mappedId] = true;
+ columnSeenFlags[mappedId] = true;
}
for (int index = schema.GetKeyColumnCount(); index < schema.GetColumnCount(); ++index) {
- if (!columnSeen[index] && schema.Columns()[index].Required()) {
+ if (!columnSeenFlags[index] && schema.Columns()[index].Required()) {
THROW_ERROR_EXCEPTION(
NTableClient::EErrorCode::MissingRequiredColumnInSchema,
"Missing required column %v in table schema",
diff --git a/yt/yt/client/table_client/unversioned_row.h b/yt/yt/client/table_client/unversioned_row.h
index f23a1783666..24fd6a9288d 100644
--- a/yt/yt/client/table_client/unversioned_row.h
+++ b/yt/yt/client/table_client/unversioned_row.h
@@ -439,8 +439,7 @@ void ValidateClientDataRow(
void ValidateDuplicateAndRequiredValueColumns(
TUnversionedRow row,
const TTableSchema& schema,
- const TNameTableToSchemaIdMapping& idMapping,
- std::vector<bool>* columnPresenceBuffer);
+ const TNameTableToSchemaIdMapping& idMapping);
//! Checks that #row contains write lock for non-key columns and returns true if any non-key columns encountered.
bool ValidateNonKeyColumnsAgainstLock(
diff --git a/yt/yt/client/table_client/versioned_row.cpp b/yt/yt/client/table_client/versioned_row.cpp
index e06544fac22..013a3d1bee3 100644
--- a/yt/yt/client/table_client/versioned_row.cpp
+++ b/yt/yt/client/table_client/versioned_row.cpp
@@ -6,6 +6,8 @@
#include <library/cpp/yt/coding/varint.h>
+#include <library/cpp/yt/memory/tls_scratch.h>
+
#include <numeric>
namespace NYT::NTableClient {
@@ -220,7 +222,6 @@ void ValidateDuplicateAndRequiredValueColumns(
TVersionedRow row,
const TTableSchema& schema,
const TNameTableToSchemaIdMapping& idMapping,
- std::vector<bool>* columnPresenceBuffer,
const TTimestamp* writeTimestamps,
int writeTimestampCount)
{
@@ -228,9 +229,7 @@ void ValidateDuplicateAndRequiredValueColumns(
return;
}
- auto& columnSeen = *columnPresenceBuffer;
- YT_VERIFY(std::ssize(columnSeen) >= schema.GetColumnCount());
- std::fill(columnSeen.begin(), columnSeen.end(), 0);
+ auto columnSeenFlags = GetTlsScratchBuffer<bool>(schema.GetColumnCount());
for (const auto *valueGroupBeginIt = row.BeginValues(), *valueGroupEndIt = valueGroupBeginIt;
valueGroupBeginIt != row.EndValues();
@@ -246,11 +245,11 @@ void ValidateDuplicateAndRequiredValueColumns(
}
const auto& column = schema.Columns()[mappedId];
- if (columnSeen[mappedId]) {
+ if (columnSeenFlags[mappedId]) {
THROW_ERROR_EXCEPTION("Duplicate value group %v in versioned row",
column.GetDiagnosticNameString());
}
- columnSeen[mappedId] = true;
+ columnSeenFlags[mappedId] = true;
if (column.Required()) {
auto mismatch = std::mismatch(
@@ -279,7 +278,7 @@ void ValidateDuplicateAndRequiredValueColumns(
}
for (int index = schema.GetKeyColumnCount(); index < schema.GetColumnCount(); ++index) {
- if (!columnSeen[index] && schema.Columns()[index].Required()) {
+ if (!columnSeenFlags[index] && schema.Columns()[index].Required()) {
THROW_ERROR_EXCEPTION("Missing values for required column %v",
schema.Columns()[index].GetDiagnosticNameString());
}
diff --git a/yt/yt/client/table_client/versioned_row.h b/yt/yt/client/table_client/versioned_row.h
index 2ab7a9874f6..8d72048d0c8 100644
--- a/yt/yt/client/table_client/versioned_row.h
+++ b/yt/yt/client/table_client/versioned_row.h
@@ -294,7 +294,6 @@ void ValidateDuplicateAndRequiredValueColumns(
TVersionedRow row,
const TTableSchema& schema,
const TNameTableToSchemaIdMapping& idMapping,
- std::vector<bool>* columnPresenceBuffer,
const TTimestamp* writeTimestamps,
int writeTimestampCount);
diff --git a/yt/yt/client/unittests/logical_type_ut.cpp b/yt/yt/client/unittests/logical_type_ut.cpp
index 4912ccbf7c7..3c0b8669cf6 100644
--- a/yt/yt/client/unittests/logical_type_ut.cpp
+++ b/yt/yt/client/unittests/logical_type_ut.cpp
@@ -756,61 +756,61 @@ using TCombineTypeFunc = std::function<TLogicalTypePtr(const TLogicalTypePtr&)>;
std::vector<std::pair<TString, TCombineTypeFunc>> CombineFunctions = {
{
"optional",
- [](const TLogicalTypePtr& type) {
+ [] (const TLogicalTypePtr& type) {
return OptionalLogicalType(type);
},
},
{
"list",
- [](const TLogicalTypePtr& type) {
+ [] (const TLogicalTypePtr& type) {
return ListLogicalType(type);
},
},
{
"struct",
- [](const TLogicalTypePtr& type) {
+ [] (const TLogicalTypePtr& type) {
return StructLogicalType({{"field", type}});
},
},
{
"tuple",
- [](const TLogicalTypePtr& type) {
+ [] (const TLogicalTypePtr& type) {
return TupleLogicalType({type});
},
},
{
"variant_struct",
- [](const TLogicalTypePtr& type) {
+ [] (const TLogicalTypePtr& type) {
return VariantStructLogicalType({{"field", type}});
},
},
{
"variant_tuple",
- [](const TLogicalTypePtr& type) {
+ [] (const TLogicalTypePtr& type) {
return VariantTupleLogicalType({type});
},
},
{
"dict",
- [](const TLogicalTypePtr& type) {
+ [] (const TLogicalTypePtr& type) {
return DictLogicalType(SimpleLogicalType(ESimpleLogicalValueType::String), type);
},
},
{
"dict-key",
- [](const TLogicalTypePtr& type) {
+ [] (const TLogicalTypePtr& type) {
return DictLogicalType(type, SimpleLogicalType(ESimpleLogicalValueType::String));
},
},
{
"dict-value",
- [](const TLogicalTypePtr& type) {
+ [] (const TLogicalTypePtr& type) {
return DictLogicalType(SimpleLogicalType(ESimpleLogicalValueType::String), type);
}
},
{
"tagged",
- [](const TLogicalTypePtr& type) {
+ [] (const TLogicalTypePtr& type) {
return TaggedLogicalType("foo", type);
}
}
diff --git a/yt/yt/client/ypath/rich.cpp b/yt/yt/client/ypath/rich.cpp
index c1afa96d297..03484638e1f 100644
--- a/yt/yt/client/ypath/rich.cpp
+++ b/yt/yt/client/ypath/rich.cpp
@@ -128,7 +128,7 @@ auto RunAttributeAccessor(const TRichYPath& path, const TString& key, TFunc acce
template <class T>
T GetAttribute(const TRichYPath& path, const TString& key, const T& defaultValue)
{
- return RunAttributeAccessor(path, key, [&] () {
+ return RunAttributeAccessor(path, key, [&] {
return path.Attributes().Get(key, defaultValue);
});
}
@@ -136,14 +136,14 @@ T GetAttribute(const TRichYPath& path, const TString& key, const T& defaultValue
template <class T>
typename TOptionalTraits<T>::TOptional FindAttribute(const TRichYPath& path, const TString& key)
{
- return RunAttributeAccessor(path, key, [&] () {
+ return RunAttributeAccessor(path, key, [&] {
return path.Attributes().Find<T>(key);
});
}
TYsonString FindAttributeYson(const TRichYPath& path, const TString& key)
{
- return RunAttributeAccessor(path, key, [&] () {
+ return RunAttributeAccessor(path, key, [&] {
return path.Attributes().FindYson(key);
});
}
diff --git a/yt/yt/core/actions/unittests/bind_ut.cpp b/yt/yt/core/actions/unittests/bind_ut.cpp
index 3b0fe909892..3311dc8cf84 100644
--- a/yt/yt/core/actions/unittests/bind_ut.cpp
+++ b/yt/yt/core/actions/unittests/bind_ut.cpp
@@ -1091,7 +1091,7 @@ TEST_F(TBindTest, LambdaSupport)
{
int n = 1;
- TClosure closure = BIND([&n] () { ++n; });
+ TClosure closure = BIND([&n] { ++n; });
EXPECT_EQ(1, n);
closure();
EXPECT_EQ(2, n);
@@ -1125,7 +1125,7 @@ TEST_F(TBindTest, MutableLambdaSupport)
TEST_F(TBindTest, ConstLambdaSupport)
{
int n = 1;
- const auto l = [&n] () { ++n; return n; };
+ const auto l = [&n] { ++n; return n; };
const auto f = BIND(l);
EXPECT_EQ(2, f());
EXPECT_EQ(3, f());
@@ -1161,7 +1161,7 @@ TEST_F(TBindTest, MoveOnlyLambdaSupport)
TMoveOnly outer(5);
EXPECT_EQ(5u, outer.Value());
- auto f = BIND([inner = std::move(outer)] () { return inner.Value(); });
+ auto f = BIND([inner = std::move(outer)] { return inner.Value(); });
EXPECT_EQ(0u, outer.Value());
// Call twice just in case
diff --git a/yt/yt/core/actions/unittests/future_ut.cpp b/yt/yt/core/actions/unittests/future_ut.cpp
index 5185d0cd8d4..96ee01ade99 100644
--- a/yt/yt/core/actions/unittests/future_ut.cpp
+++ b/yt/yt/core/actions/unittests/future_ut.cpp
@@ -1414,7 +1414,7 @@ TEST_F(TFutureTest, AsyncViaCanceledInvoker)
{
auto context = New<TCancelableContext>();
auto invoker = context->CreateInvoker(GetSyncInvoker());
- auto generator = BIND([] () {}).AsyncVia(invoker);
+ auto generator = BIND([] {}).AsyncVia(invoker);
context->Cancel(TError("oops"));
auto future = generator();
auto error = future.Get();
diff --git a/yt/yt/core/bus/tcp/connection.cpp b/yt/yt/core/bus/tcp/connection.cpp
index 8ca65d22b54..7423eb8ee5a 100644
--- a/yt/yt/core/bus/tcp/connection.cpp
+++ b/yt/yt/core/bus/tcp/connection.cpp
@@ -1475,7 +1475,7 @@ bool TTcpConnection::MaybeEncodeFragments()
size_t encodedSize = 0;
size_t coalescedSize = 0;
- auto flushCoalesced = [&] () {
+ auto flushCoalesced = [&] {
if (coalescedSize > 0) {
EncodedFragments_.push(TRef(buffer->End() - coalescedSize, coalescedSize));
coalescedSize = 0;
diff --git a/yt/yt/core/compression/zstd.cpp b/yt/yt/core/compression/zstd.cpp
index e24a076938f..da70d042dd0 100644
--- a/yt/yt/core/compression/zstd.cpp
+++ b/yt/yt/core/compression/zstd.cpp
@@ -50,7 +50,7 @@ void ZstdCompress(int level, TSource* source, TBlob* output)
}
auto context = ZSTD_createCCtx();
- auto contextGuard = Finally([&] () {
+ auto contextGuard = Finally([&] {
ZSTD_freeCCtx(context);
});
diff --git a/yt/yt/core/concurrency/fair_share_invoker_pool.cpp b/yt/yt/core/concurrency/fair_share_invoker_pool.cpp
index 7841446b7e4..1f2f26fc78c 100644
--- a/yt/yt/core/concurrency/fair_share_invoker_pool.cpp
+++ b/yt/yt/core/concurrency/fair_share_invoker_pool.cpp
@@ -14,6 +14,8 @@
#include <yt/yt/library/ytprof/api/api.h>
+#include <library/cpp/yt/misc/port.h>
+
#include <library/cpp/yt/memory/weak_ptr.h>
#include <library/cpp/yt/threading/rw_spin_lock.h>
@@ -33,14 +35,6 @@ constinit YT_THREAD_LOCAL(TCpuProfilerTagGuard) FairShareInvokerPoolProfilerTagG
////////////////////////////////////////////////////////////////////////////////
-#if defined(_unix_)
- #define NO_UNIQUE_ADDRESS [[no_unique_address]]
-#else
- #define NO_UNIQUE_ADDRESS
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-
class TFairShareCallbackQueue
: public IFairShareCallbackQueue
{
diff --git a/yt/yt/core/concurrency/parallel_runner-inl.h b/yt/yt/core/concurrency/parallel_runner-inl.h
new file mode 100644
index 00000000000..ca906dfe185
--- /dev/null
+++ b/yt/yt/core/concurrency/parallel_runner-inl.h
@@ -0,0 +1,78 @@
+#ifndef PARALLEL_RUNNER_INL_H_
+#error "Direct inclusion of this file is not allowed, include parallel_runner.h"
+// For the sake of sane code completion.
+#include "parallel_runner.h"
+#endif
+#undef PARALLEL_RUNNER_INL_H_
+
+namespace NYT::NConcurrency {
+
+////////////////////////////////////////////////////////////////////////////////
+
+template <class T>
+TParallelRunner<T>::TParallelRunner(
+ IInvokerPtr invoker,
+ i64 batchSize)
+ : Invoker_(std::move(invoker))
+ , BatchSize_(batchSize)
+{ }
+
+template <class T>
+TParallelRunner<T> TParallelRunner<T>::CreateAsync(
+ IInvokerPtr invoker,
+ i64 batchSize)
+{
+ return TParallelRunner(std::move(invoker), batchSize);
+}
+
+template <class T>
+TParallelRunner<T> TParallelRunner<T>::CreateSync()
+{
+ return TParallelRunner(
+ /*invoker*/ nullptr,
+ /*batchSize*/ std::numeric_limits<i64>::max());
+}
+
+template <class T>
+void TParallelRunner<T>::Add(T item)
+{
+ CurrentBatch_.push_back(std::move(item));
+ if (std::ssize(CurrentBatch_) >= BatchSize_) {
+ Batches_.push_back(std::exchange(CurrentBatch_, {}));
+ }
+}
+
+template <class T>
+template <class F>
+TFuture<void> TParallelRunner<T>::Run(F func)
+{
+ if (Invoker_) {
+ if (!CurrentBatch_.empty()) {
+ Batches_.push_back(std::move(CurrentBatch_));
+ }
+
+ std::vector<TFuture<void>> futures;
+ futures.reserve(Batches_.size());
+ for (auto& batch : Batches_) {
+ futures.push_back(
+ BIND([func, batch = std::move(batch)] () mutable {
+ for (auto& item : batch) {
+ func(item);
+ }
+ })
+ .AsyncVia(Invoker_)
+ .Run());
+ }
+
+ return AllSucceeded(std::move(futures));
+ } else {
+ for (auto& item : CurrentBatch_) {
+ func(item);
+ }
+ return VoidFuture;
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+} // namespace NYT::NConcurrency
diff --git a/yt/yt/core/concurrency/parallel_runner.h b/yt/yt/core/concurrency/parallel_runner.h
new file mode 100644
index 00000000000..17bc22d1ba2
--- /dev/null
+++ b/yt/yt/core/concurrency/parallel_runner.h
@@ -0,0 +1,54 @@
+#pragma once
+
+#include "public.h"
+
+#include <yt/yt/core/actions/future.h>
+
+namespace NYT::NConcurrency {
+
+////////////////////////////////////////////////////////////////////////////////
+
+//! Groups given items into batches (of a given size) and invokes
+//! a function for each batch in parallel.
+template <class T>
+class TParallelRunner
+{
+public:
+ static TParallelRunner CreateAsync(
+ IInvokerPtr invoker,
+ i64 batchSize);
+ static TParallelRunner CreateSync();
+
+ //! Registers an item to be processed.
+ void Add(T item);
+
+ //! Runs #func for each registered item.
+ /*!
+ * For a runner created via #CreateAsync, function invocations happen asynchronously
+ * in a given invoker.
+ *
+ * For a runner created via #CreateSync, these invocations happen synchronously
+ * in the current thread.
+ */
+ template <class F>
+ TFuture<void> Run(F func);
+
+private:
+ TParallelRunner(
+ IInvokerPtr invoker,
+ i64 batchSize);
+
+ const IInvokerPtr Invoker_;
+ const i64 BatchSize_;
+
+ std::vector<std::vector<T>> Batches_;
+ std::vector<T> CurrentBatch_;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+
+} // namespace NYT::NConcurrency
+
+#define PARALLEL_RUNNER_INL_H_
+#include "parallel_runner-inl.h"
+#undef PARALLEL_RUNNER_INL_H_
diff --git a/yt/yt/core/concurrency/periodic_executor.cpp b/yt/yt/core/concurrency/periodic_executor.cpp
index 17797eb35bd..74470806863 100644
--- a/yt/yt/core/concurrency/periodic_executor.cpp
+++ b/yt/yt/core/concurrency/periodic_executor.cpp
@@ -57,7 +57,7 @@ void TDefaultInvocationTimePolicy::SetOptions(std::optional<TDuration> period)
TInstant TDefaultInvocationTimePolicy::NextDeadline()
{
- auto randomGenerator = [] () {
+ auto randomGenerator = [] {
double rand = RandomNumber<double>();
return 2.0 * rand - 1.0;
diff --git a/yt/yt/core/concurrency/thread_pool_detail.cpp b/yt/yt/core/concurrency/thread_pool_detail.cpp
index 9e2b0ee1b2a..0008f4a8c6a 100644
--- a/yt/yt/core/concurrency/thread_pool_detail.cpp
+++ b/yt/yt/core/concurrency/thread_pool_detail.cpp
@@ -73,7 +73,7 @@ TClosure TThreadPoolBase::MakeFinalizerCallback()
std::swap(threads, Threads_);
}
- return BIND_NO_PROPAGATE([threads = std::move(threads)] () {
+ return BIND_NO_PROPAGATE([threads = std::move(threads)] {
for (const auto& thread : threads) {
thread->Stop();
}
diff --git a/yt/yt/core/concurrency/unittests/count_down_latch_ut.cpp b/yt/yt/core/concurrency/unittests/count_down_latch_ut.cpp
index 6078e838a53..3e7172689b4 100644
--- a/yt/yt/core/concurrency/unittests/count_down_latch_ut.cpp
+++ b/yt/yt/core/concurrency/unittests/count_down_latch_ut.cpp
@@ -56,14 +56,14 @@ TEST(TCountDownLatch, TwoThreadsTwoLatches)
TCountDownLatch first(1);
TCountDownLatch second(1);
- std::thread t1([&] () {
+ std::thread t1([&] {
first.Wait();
second.CountDown();
EXPECT_EQ(0, first.GetCount());
EXPECT_EQ(0, second.GetCount());
});
- std::thread t2([&] () {
+ std::thread t2([&] {
first.CountDown();
second.Wait();
EXPECT_EQ(0, first.GetCount());
diff --git a/yt/yt/core/concurrency/unittests/delayed_executor_ut.cpp b/yt/yt/core/concurrency/unittests/delayed_executor_ut.cpp
index b453b96fbab..138c7a9cd95 100644
--- a/yt/yt/core/concurrency/unittests/delayed_executor_ut.cpp
+++ b/yt/yt/core/concurrency/unittests/delayed_executor_ut.cpp
@@ -20,7 +20,7 @@ TEST(TDelayedExecutorTest, SubmitLarge)
auto state = std::make_shared<TProbeState>();
auto cookie = TDelayedExecutor::Submit(
- BIND([fired, state, probe = TProbe(state.get())] () { ++*fired; }),
+ BIND([fired, state, probe = TProbe(state.get())] { ++*fired; }),
TDuration::MilliSeconds(1000));
Sleep(TDuration::MilliSeconds(500));
@@ -40,7 +40,7 @@ TEST(TDelayedExecutorTest, SubmitSmall)
auto state = std::make_shared<TProbeState>();
auto cookie = TDelayedExecutor::Submit(
- BIND([fired, state, probe = TProbe(state.get())] () { ++*fired; }),
+ BIND([fired, state, probe = TProbe(state.get())] { ++*fired; }),
TDuration::MilliSeconds(100));
Sleep(TDuration::MilliSeconds(50));
@@ -60,7 +60,7 @@ TEST(TDelayedExecutorTest, SubmitZeroDelay)
auto state = std::make_shared<TProbeState>();
auto cookie1 = TDelayedExecutor::Submit(
- BIND([fired, state, probe = TProbe(state.get())] () { ++*fired; }),
+ BIND([fired, state, probe = TProbe(state.get())] { ++*fired; }),
TDuration::MilliSeconds(0));
Sleep(TDuration::MilliSeconds(10));
@@ -68,7 +68,7 @@ TEST(TDelayedExecutorTest, SubmitZeroDelay)
EXPECT_EQ(1, *fired);
auto cookie2 = TDelayedExecutor::Submit(
- BIND([fired, state, probe = TProbe(state.get())]() { ++*fired; }),
+ BIND([fired, state, probe = TProbe(state.get())] { ++*fired; }),
TDuration::MilliSeconds(10));
Sleep(TDuration::MilliSeconds(50));
@@ -88,7 +88,7 @@ TEST(TDelayedExecutorTest, StressTest)
auto delay = rand() % 50;
auto cookie = TDelayedExecutor::Submit(
- BIND([start, delay, fired] () {
+ BIND([start, delay, fired] {
i64 diff = (TInstant::Now() - start).MilliSeconds();
EXPECT_LE(delay, diff + 10);
EXPECT_LE(diff, delay + 100);
@@ -110,7 +110,7 @@ TEST(TDelayedExecutorTest, SubmitAndCancel)
auto state = std::make_shared<TProbeState>();
auto cookie = TDelayedExecutor::Submit(
- BIND([fired, state, probe = TProbe(state.get())] () { ++*fired; }),
+ BIND([fired, state, probe = TProbe(state.get())] { ++*fired; }),
TDuration::MilliSeconds(10));
TDelayedExecutor::CancelAndClear(cookie);
diff --git a/yt/yt/core/concurrency/unittests/fair_share_invoker_pool_ut.cpp b/yt/yt/core/concurrency/unittests/fair_share_invoker_pool_ut.cpp
index e6f0b6feaca..8c7efa2adb0 100644
--- a/yt/yt/core/concurrency/unittests/fair_share_invoker_pool_ut.cpp
+++ b/yt/yt/core/concurrency/unittests/fair_share_invoker_pool_ut.cpp
@@ -251,7 +251,7 @@ protected:
auto invokerPool = CreateInvokerPool(Queues_[0]->GetInvoker(), switchToCount + 1);
- auto callback = BIND([this, invokerPool, switchToCount] () {
+ auto callback = BIND([this, invokerPool, switchToCount] {
for (int i = 1; i <= switchToCount; ++i) {
ExpectInvokerIndex(i - 1);
Spin(Quantum * i);
diff --git a/yt/yt/core/concurrency/unittests/parallel_runner_ut.cpp b/yt/yt/core/concurrency/unittests/parallel_runner_ut.cpp
new file mode 100644
index 00000000000..16966a96e6b
--- /dev/null
+++ b/yt/yt/core/concurrency/unittests/parallel_runner_ut.cpp
@@ -0,0 +1,78 @@
+#include <yt/yt/core/test_framework/framework.h>
+
+#include <yt/yt/core/concurrency/action_queue.h>
+#include <yt/yt/core/concurrency/parallel_runner.h>
+
+#include <atomic>
+
+namespace NYT::NConcurrency {
+namespace {
+
+////////////////////////////////////////////////////////////////////////////////
+
+class TSyncParallelRunnerTest
+ : public ::testing::Test
+ , public ::testing::WithParamInterface<std::tuple<int, int>>
+{ };
+
+TEST_P(TSyncParallelRunnerTest, Do)
+{
+ auto [count, expectedSum] = GetParam();
+ auto runner = TParallelRunner<int>::CreateSync();
+ for (int index = 0; index < count; ++index) {
+ runner.Add(index);
+ }
+ int sum = 0;
+ auto future = runner.Run([&] (int arg) {
+ sum += arg;
+ });
+ EXPECT_TRUE(future.IsSet());
+ EXPECT_TRUE(future.Get().IsOK());
+ EXPECT_EQ(sum, expectedSum);
+}
+
+INSTANTIATE_TEST_SUITE_P(
+ TSyncParallelRunnerTest,
+ TSyncParallelRunnerTest,
+ ::testing::Values(
+ std::tuple( 0, 0),
+ std::tuple(10, 45)));
+
+////////////////////////////////////////////////////////////////////////////////
+
+class TAsyncParallelRunnerTest
+ : public ::testing::Test
+ , public ::testing::WithParamInterface<std::tuple<int, int, int>>
+{
+protected:
+ const TActionQueuePtr ActionQueue_ = New<TActionQueue>("Queue");
+};
+
+TEST_P(TAsyncParallelRunnerTest, Do)
+{
+ auto [batchSize, count, expectedSum] = GetParam();
+ auto runner = TParallelRunner<int>::CreateAsync(ActionQueue_->GetInvoker(), batchSize);
+ for (int index = 0; index < count; ++index) {
+ runner.Add(index);
+ }
+ std::atomic<int> sum = 0;
+ runner.Run([&] (int arg) {
+ sum += arg;
+ })
+ .Get()
+ .ThrowOnError();
+ EXPECT_EQ(sum.load(), expectedSum);
+}
+
+INSTANTIATE_TEST_SUITE_P(
+ TAsyncParallelRunnerTest,
+ TAsyncParallelRunnerTest,
+ ::testing::Values(
+ std::tuple(1, 0, 0),
+ std::tuple(3, 10, 45),
+ std::tuple(3, 9, 36)));
+
+////////////////////////////////////////////////////////////////////////////////
+
+} // namespace
+} // namespace NYT:::NConcurrency
diff --git a/yt/yt/core/concurrency/unittests/periodic_ut.cpp b/yt/yt/core/concurrency/unittests/periodic_ut.cpp
index d033ed3f934..fb452bfc6e3 100644
--- a/yt/yt/core/concurrency/unittests/periodic_ut.cpp
+++ b/yt/yt/core/concurrency/unittests/periodic_ut.cpp
@@ -30,7 +30,7 @@ TEST_W(TPeriodicTest, Simple)
{
std::atomic<int> count = {0};
- auto callback = BIND([&] () {
+ auto callback = BIND([&] {
TDelayedExecutor::WaitForDuration(TDuration::MilliSeconds(200));
++count;
});
@@ -66,7 +66,7 @@ TEST_W(TPeriodicTest, SimpleScheduleOutOfBand)
{
std::atomic<int> count = {0};
- auto callback = BIND([&] () {
+ auto callback = BIND([&] {
++count;
});
@@ -94,7 +94,7 @@ TEST_W(TPeriodicTest, ParallelStop)
{
std::atomic<int> count = {0};
- auto callback = BIND([&] () {
+ auto callback = BIND([&] {
++count;
TDelayedExecutor::WaitForDuration(TDuration::MilliSeconds(500));
++count;
@@ -132,7 +132,7 @@ TEST_W(TPeriodicTest, ParallelOnExecuted1)
{
std::atomic<int> count = 0;
- auto callback = BIND([&] () {
+ auto callback = BIND([&] {
TDelayedExecutor::WaitForDuration(TDuration::MilliSeconds(500));
++count;
});
@@ -169,7 +169,7 @@ TEST_W(TPeriodicTest, ParallelOnExecuted2)
{
std::atomic<int> count = 0;
- auto callback = BIND([&] () {
+ auto callback = BIND([&] {
TDelayedExecutor::WaitForDuration(TDuration::MilliSeconds(100));
++count;
});
@@ -206,7 +206,7 @@ TEST_W(TPeriodicTest, OnExecutedEventCanceled)
{
std::atomic<int> count = 0;
- auto callback = BIND([&] () {
+ auto callback = BIND([&] {
TDelayedExecutor::WaitForDuration(TDuration::MilliSeconds(100));
++count;
});
diff --git a/yt/yt/core/concurrency/unittests/profiled_fair_share_invoker_pool_ut.cpp b/yt/yt/core/concurrency/unittests/profiled_fair_share_invoker_pool_ut.cpp
index 86055fe9aae..2fbfa3fb279 100644
--- a/yt/yt/core/concurrency/unittests/profiled_fair_share_invoker_pool_ut.cpp
+++ b/yt/yt/core/concurrency/unittests/profiled_fair_share_invoker_pool_ut.cpp
@@ -264,7 +264,7 @@ protected:
auto invokerPool = CreateInvokerPool(Queues_[0]->GetInvoker(), switchToCount + 1);
- auto callback = BIND([this, invokerPool, switchToCount] () {
+ auto callback = BIND([this, invokerPool, switchToCount] {
for (int i = 1; i <= switchToCount; ++i) {
ExpectInvokerIndex(i - 1);
Spin(Quantum * i);
diff --git a/yt/yt/core/concurrency/unittests/scheduled_executor_ut.cpp b/yt/yt/core/concurrency/unittests/scheduled_executor_ut.cpp
index e04160aa3a8..f19dc8278cd 100644
--- a/yt/yt/core/concurrency/unittests/scheduled_executor_ut.cpp
+++ b/yt/yt/core/concurrency/unittests/scheduled_executor_ut.cpp
@@ -31,7 +31,7 @@ TEST_W(TScheduledExecutorTest, Simple)
const auto& interval = TDuration::MilliSeconds(200);
std::atomic<int> count = {0};
- auto callback = BIND([&] () {
+ auto callback = BIND([&] {
CheckTimeSlotCorrectness(interval);
++count;
});
@@ -54,7 +54,7 @@ TEST_W(TScheduledExecutorTest, SimpleScheduleOutOfBand)
{
std::atomic<int> count = {0};
- auto callback = BIND([&] () {
+ auto callback = BIND([&] {
++count;
});
@@ -84,7 +84,7 @@ TEST_W(TScheduledExecutorTest, ParallelStop)
const auto& interval = TDuration::MilliSeconds(10);
std::atomic<int> count = {0};
- auto callback = BIND([&] () {
+ auto callback = BIND([&] {
CheckTimeSlotCorrectness(interval);
++count;
TDelayedExecutor::WaitForDuration(TDuration::MilliSeconds(500));
@@ -124,7 +124,7 @@ TEST_W(TScheduledExecutorTest, ParallelOnExecuted1)
const auto& interval = TDuration::MilliSeconds(10);
std::atomic<int> count = 0;
- auto callback = BIND([&] () {
+ auto callback = BIND([&] {
CheckTimeSlotCorrectness(interval);
TDelayedExecutor::WaitForDuration(TDuration::MilliSeconds(500));
++count;
@@ -163,7 +163,7 @@ TEST_W(TScheduledExecutorTest, ParallelOnExecuted2)
const auto& interval = TDuration::MilliSeconds(400);
std::atomic<int> count = 0;
- auto callback = BIND([&] () {
+ auto callback = BIND([&] {
CheckTimeSlotCorrectness(interval);
TDelayedExecutor::WaitForDuration(TDuration::MilliSeconds(100));
++count;
@@ -202,7 +202,7 @@ TEST_W(TScheduledExecutorTest, OnExecutedEventCanceled)
const auto& interval = TDuration::MilliSeconds(50);
std::atomic<int> count = 0;
- auto callback = BIND([&] () {
+ auto callback = BIND([&] {
CheckTimeSlotCorrectness(interval);
TDelayedExecutor::WaitForDuration(TDuration::MilliSeconds(200));
++count;
diff --git a/yt/yt/core/concurrency/unittests/scheduler_ut.cpp b/yt/yt/core/concurrency/unittests/scheduler_ut.cpp
index 9424918fa01..12a8b326073 100644
--- a/yt/yt/core/concurrency/unittests/scheduler_ut.cpp
+++ b/yt/yt/core/concurrency/unittests/scheduler_ut.cpp
@@ -57,7 +57,7 @@ template <class T>
TFuture<T> MakeDelayedFuture(T x)
{
return TDelayedExecutor::MakeDelayed(SleepQuantum)
- .Apply(BIND([=] () { return x; }));
+ .Apply(BIND([=] { return x; }));
}
class TSchedulerTest
@@ -238,7 +238,7 @@ TEST_W(TSchedulerTest, WaitForCancelableInvoker1)
promise.Set();
}),
SleepQuantum);
- WaitFor(BIND([=] () {
+ WaitFor(BIND([=] {
EXPECT_THROW({ WaitFor(future).ThrowOnError(); }, TFiberCanceledException);
})
.AsyncVia(invoker)
@@ -378,7 +378,7 @@ TEST_F(TSchedulerTest, CurrentInvokerSync)
TEST_F(TSchedulerTest, CurrentInvokerInActionQueue)
{
auto invoker = Queue1->GetInvoker();
- BIND([=] () {
+ BIND([=] {
EXPECT_EQ(invoker, GetCurrentInvoker());
})
.AsyncVia(invoker).Run()
@@ -390,7 +390,7 @@ TEST_F(TSchedulerTest, Intercept)
auto invoker = Queue1->GetInvoker();
int counter1 = 0;
int counter2 = 0;
- BIND([&] () {
+ BIND([&] {
TContextSwitchGuard guard(
[&] {
EXPECT_EQ(counter1, 0);
@@ -417,7 +417,7 @@ TEST_F(TSchedulerTest, InterceptEnclosed)
int counter2 = 0;
int counter3 = 0;
int counter4 = 0;
- BIND([&] () {
+ BIND([&] {
{
TContextSwitchGuard guard(
[&] { ++counter1; },
@@ -446,11 +446,11 @@ TEST_F(TSchedulerTest, CurrentInvokerConcurrent)
auto invoker1 = Queue1->GetInvoker();
auto invoker2 = Queue2->GetInvoker();
- auto result1 = BIND([=] () {
+ auto result1 = BIND([=] {
EXPECT_EQ(invoker1, GetCurrentInvoker());
}).AsyncVia(invoker1).Run();
- auto result2 = BIND([=] () {
+ auto result2 = BIND([=] {
EXPECT_EQ(invoker2, GetCurrentInvoker());
}).AsyncVia(invoker2).Run();
@@ -462,7 +462,7 @@ TEST_W(TSchedulerTest, WaitForAsyncVia)
{
auto invoker = Queue1->GetInvoker();
- auto x = BIND([&] () { }).AsyncVia(invoker).Run();
+ auto x = BIND([&] { }).AsyncVia(invoker).Run();
WaitFor(x)
.ThrowOnError();
@@ -473,7 +473,7 @@ TEST_W(TSchedulerTest, WaitForAsyncVia)
TEST_F(TSchedulerTest, WaitForInSerializedInvoker1)
{
auto invoker = CreateSerializedInvoker(Queue1->GetInvoker());
- BIND([&] () {
+ BIND([&] {
for (int i = 0; i < 10; ++i) {
TDelayedExecutor::WaitForDuration(SleepQuantum);
}
@@ -489,12 +489,12 @@ TEST_F(TSchedulerTest, WaitForInSerializedInvoker2)
std::vector<TFuture<void>> futures;
bool finishedFirstAction = false;
- futures.emplace_back(BIND([&] () {
+ futures.emplace_back(BIND([&] {
TDelayedExecutor::WaitForDuration(SleepQuantum);
finishedFirstAction = true;
}).AsyncVia(invoker).Run());
- futures.emplace_back(BIND([&] () {
+ futures.emplace_back(BIND([&] {
if (finishedFirstAction) {
THROW_ERROR_EXCEPTION("Serialization error");
}
@@ -506,7 +506,7 @@ TEST_F(TSchedulerTest, WaitForInSerializedInvoker2)
TEST_F(TSchedulerTest, WaitForInBoundedConcurrencyInvoker1)
{
auto invoker = CreateBoundedConcurrencyInvoker(Queue1->GetInvoker(), 1);
- BIND([&] () {
+ BIND([&] {
for (int i = 0; i < 10; ++i) {
TDelayedExecutor::WaitForDuration(SleepQuantum);
}
@@ -520,11 +520,11 @@ TEST_F(TSchedulerTest, WaitForInBoundedConcurrencyInvoker2)
auto promise = NewPromise<void>();
auto future = promise.ToFuture();
- auto a1 = BIND([&] () {
+ auto a1 = BIND([&] {
promise.Set();
});
- auto a2 = BIND([&] () {
+ auto a2 = BIND([&] {
invoker->Invoke(a1);
WaitFor(future)
.ThrowOnError();
@@ -542,7 +542,7 @@ TEST_F(TSchedulerTest, WaitForInBoundedConcurrencyInvoker3)
bool a1called = false;
bool a1finished = false;
- auto a1 = BIND([&] () {
+ auto a1 = BIND([&] {
a1called = true;
WaitFor(future)
.ThrowOnError();
@@ -550,7 +550,7 @@ TEST_F(TSchedulerTest, WaitForInBoundedConcurrencyInvoker3)
});
bool a2called = false;
- auto a2 = BIND([&] () {
+ auto a2 = BIND([&] {
a2called = true;
});
@@ -621,7 +621,7 @@ TEST_F(TSchedulerTest, TestWaitUntilSet)
auto p1 = NewPromise<void>();
auto f1 = p1.ToFuture();
- YT_UNUSED_FUTURE(BIND([=] () {
+ YT_UNUSED_FUTURE(BIND([=] {
Sleep(SleepQuantum);
p1.Set();
}).AsyncVia(Queue1->GetInvoker()).Run());
@@ -634,10 +634,10 @@ TEST_F(TSchedulerTest, TestWaitUntilSet)
TEST_F(TSchedulerTest, AsyncViaCanceledBeforeStart)
{
auto invoker = Queue1->GetInvoker();
- auto asyncResult1 = BIND([] () {
+ auto asyncResult1 = BIND([] {
Sleep(SleepQuantum * 10);
}).AsyncVia(invoker).Run();
- auto asyncResult2 = BIND([] () {
+ auto asyncResult2 = BIND([] {
Sleep(SleepQuantum * 10);
}).AsyncVia(invoker).Run();
EXPECT_FALSE(asyncResult1.IsSet());
@@ -652,7 +652,7 @@ TEST_F(TSchedulerTest, AsyncViaCanceledBeforeStart)
TEST_F(TSchedulerTest, CancelCurrentFiber)
{
auto invoker = Queue1->GetInvoker();
- auto asyncResult = BIND([=] () {
+ auto asyncResult = BIND([=] {
NYT::NConcurrency::GetCurrentFiberCanceler().Run(TError("Error"));
SwitchTo(invoker);
}).AsyncVia(invoker).Run();
@@ -668,7 +668,7 @@ TEST_F(TSchedulerTest, YieldToFromCanceledFiber)
auto invoker2 = Queue2->GetInvoker();
auto asyncResult = BIND([=] () mutable {
- BIND([=] () {
+ BIND([=] {
NYT::NConcurrency::GetCurrentFiberCanceler().Run(TError("Error"));
}).AsyncVia(invoker2).Run().Get();
WaitFor(promise.ToFuture(), invoker2)
@@ -685,7 +685,7 @@ TEST_F(TSchedulerTest, YieldToFromCanceledFiber)
TEST_F(TSchedulerTest, JustYield1)
{
auto invoker = Queue1->GetInvoker();
- auto asyncResult = BIND([] () {
+ auto asyncResult = BIND([] {
for (int i = 0; i < 10; ++i) {
Yield();
}
@@ -699,7 +699,7 @@ TEST_F(TSchedulerTest, JustYield2)
bool flag = false;
- auto asyncResult = BIND([&] () {
+ auto asyncResult = BIND([&] {
for (int i = 0; i < 2; ++i) {
Sleep(SleepQuantum);
Yield();
@@ -708,7 +708,7 @@ TEST_F(TSchedulerTest, JustYield2)
}).AsyncVia(invoker).Run();
// This callback must complete before the first.
- auto errorOrValue = BIND([&] () {
+ auto errorOrValue = BIND([&] {
return flag;
}).AsyncVia(invoker).Run().Get();
@@ -720,10 +720,10 @@ TEST_F(TSchedulerTest, JustYield2)
TEST_F(TSchedulerTest, CancelInAdjacentCallback)
{
auto invoker = Queue1->GetInvoker();
- auto asyncResult1 = BIND([=] () {
+ auto asyncResult1 = BIND([=] {
NYT::NConcurrency::GetCurrentFiberCanceler().Run(TError("Error"));
}).AsyncVia(invoker).Run().Get();
- auto asyncResult2 = BIND([=] () {
+ auto asyncResult2 = BIND([=] {
Yield();
}).AsyncVia(invoker).Run().Get();
EXPECT_TRUE(asyncResult1.IsOK());
@@ -734,7 +734,7 @@ TEST_F(TSchedulerTest, CancelInApply)
{
auto invoker = Queue1->GetInvoker();
- BIND([=] () {
+ BIND([=] {
auto promise = NewPromise<void>();
YT_UNUSED_FUTURE(promise.ToFuture().Apply(BIND([] {
@@ -766,7 +766,7 @@ TEST_F(TSchedulerTest, CancelInApplyUnique)
{
auto invoker = Queue1->GetInvoker();
- BIND([=] () {
+ BIND([=] {
auto promise = NewPromise<int>();
auto f2 = promise.ToFuture().ApplyUnique(BIND([] (TErrorOr<int>&& /*error*/) {
@@ -789,11 +789,11 @@ TEST_F(TSchedulerTest, CancelInAdjacentThread)
{
auto closure = TCallback<void(const TError&)>();
auto invoker = Queue1->GetInvoker();
- auto asyncResult1 = BIND([=, &closure] () {
+ auto asyncResult1 = BIND([=, &closure] {
closure = NYT::NConcurrency::GetCurrentFiberCanceler();
}).AsyncVia(invoker).Run().Get();
closure.Run(TError("Error")); // *evil laugh*
- auto asyncResult2 = BIND([=] () {
+ auto asyncResult2 = BIND([=] {
Yield();
}).AsyncVia(invoker).Run().Get();
closure.Reset(); // *evil smile*
@@ -810,7 +810,7 @@ TEST_F(TSchedulerTest, SerializedDoubleWaitFor)
auto promise = NewPromise<void>();
- BIND([&] () {
+ BIND([&] {
WaitFor(VoidFuture)
.ThrowOnError();
WaitFor(VoidFuture)
@@ -1167,7 +1167,7 @@ TEST_F(TSuspendableInvokerTest, PollSuspendFuture)
auto suspendableInvoker = CreateSuspendableInvoker(Queue1->GetInvoker());
- BIND([&] () {
+ BIND([&] {
Sleep(SleepQuantum * 10);
flag = true;
})
@@ -1193,7 +1193,7 @@ TEST_F(TSuspendableInvokerTest, SuspendableDoubleWaitFor)
auto promise = NewPromise<void>();
- auto setFlagFuture = BIND([&] () {
+ auto setFlagFuture = BIND([&] {
WaitFor(VoidFuture)
.ThrowOnError();
Sleep(SleepQuantum);
@@ -1232,7 +1232,7 @@ TEST_F(TSuspendableInvokerTest, EarlySuspend)
auto promise = NewPromise<void>();
- BIND([&] () {
+ BIND([&] {
promise.Set();
})
.Via(suspendableInvoker)
@@ -1248,7 +1248,7 @@ TEST_F(TSuspendableInvokerTest, ResumeBeforeFullSuspend)
{
auto suspendableInvoker = CreateSuspendableInvoker(Queue1->GetInvoker());
- BIND([&] () {
+ BIND([&] {
Sleep(SleepQuantum);
})
.Via(suspendableInvoker)
@@ -1269,7 +1269,7 @@ TEST_F(TSuspendableInvokerTest, AllowSuspendOnContextSwitch)
auto promise = NewPromise<void>();
auto future = promise.ToFuture();
- auto setFlagFuture = BIND([&] () {
+ auto setFlagFuture = BIND([&] {
Sleep(SleepQuantum);
WaitUntilSet(future);
flag = true;
@@ -1292,7 +1292,7 @@ TEST_F(TSuspendableInvokerTest, SuspendResumeOnFinishedRace)
std::atomic<bool> flag(false);
auto suspendableInvoker = CreateSuspendableInvoker(Queue1->GetInvoker());
- BIND([&] () {
+ BIND([&] {
for (int i = 0; i < 100; ++i) {
Sleep(TDuration::MilliSeconds(1));
Yield();
@@ -1305,7 +1305,7 @@ TEST_F(TSuspendableInvokerTest, SuspendResumeOnFinishedRace)
while (hits < 100) {
flag = false;
auto future = suspendableInvoker->Suspend()
- .Apply(BIND([=, &flag] () { flag = true; }));
+ .Apply(BIND([=, &flag] { flag = true; }));
if (future.IsSet()) {
++hits;
@@ -1327,14 +1327,14 @@ TEST_F(TSuspendableInvokerTest, ResumeInApply)
{
auto suspendableInvoker = CreateSuspendableInvoker(Queue1->GetInvoker());
- BIND([&] () {
+ BIND([&] {
Sleep(SleepQuantum);
})
.Via(suspendableInvoker)
.Run();
auto suspendFuture = suspendableInvoker->Suspend()
- .Apply(BIND([=] () { suspendableInvoker->Resume(); }));
+ .Apply(BIND([=] { suspendableInvoker->Resume(); }));
EXPECT_TRUE(suspendFuture.Get().IsOK());
}
@@ -1352,7 +1352,7 @@ TEST_F(TSuspendableInvokerTest, VerifySerializedActionsOrder)
std::atomic<int> reorderingCount = {0};
for (int i = 0; i < totalActionCount / 2; ++i) {
- BIND([&actionIndex, &reorderingCount, i] () {
+ BIND([&actionIndex, &reorderingCount, i] {
reorderingCount += (actionIndex != i);
++actionIndex;
})
@@ -1361,13 +1361,13 @@ TEST_F(TSuspendableInvokerTest, VerifySerializedActionsOrder)
}
TDelayedExecutor::Submit(
- BIND([&] () {
+ BIND([&] {
suspendableInvoker->Resume();
}),
SleepQuantum / 10);
for (int i = totalActionCount / 2; i < totalActionCount; ++i) {
- BIND([&actionIndex, &reorderingCount, i] () {
+ BIND([&actionIndex, &reorderingCount, i] {
reorderingCount += (actionIndex != i);
++actionIndex;
})
diff --git a/yt/yt/core/concurrency/unittests/throughput_throttler_ut.cpp b/yt/yt/core/concurrency/unittests/throughput_throttler_ut.cpp
index 8f8f283f901..ce9a3139517 100644
--- a/yt/yt/core/concurrency/unittests/throughput_throttler_ut.cpp
+++ b/yt/yt/core/concurrency/unittests/throughput_throttler_ut.cpp
@@ -381,7 +381,7 @@ TEST_F(TPrefetchingThrottlerExponentialGrowthTest, DoNotOverloadUnderlyingWhenTh
EXPECT_CALL(*Underlying_, Throttle(_))
.Times(AtMost(9))
.WillRepeatedly(DoAll(
- [&] () { lastRequest = requests.emplace_back(NewPromise<void>()); },
+ [&] { lastRequest = requests.emplace_back(NewPromise<void>()); },
ReturnPointee(&lastRequest)
));
@@ -402,7 +402,7 @@ TEST_F(TPrefetchingThrottlerExponentialGrowthTest, DoNotHangUpAfterAnError)
EXPECT_CALL(*Underlying_, Throttle(_))
.Times(AtLeast(2))
.WillRepeatedly(DoAll(
- [&] () { lastRequest = requests.emplace_back(NewPromise<void>()); },
+ [&] { lastRequest = requests.emplace_back(NewPromise<void>()); },
ReturnPointee(&lastRequest)
));
@@ -496,7 +496,7 @@ TEST_P(TPrefetchingStressTest, Stress)
EXPECT_CALL(*Underlying_, Throttle(_))
.WillRepeatedly(DoAll(
SaveArg<0>(&lastUnderlyingAmount),
- [&] () {
+ [&] {
lastRequest = requests.emplace_back(NewPromise<void>());
++underlyingRequestCount;
iterationUnderlyingAmount += lastUnderlyingAmount;
@@ -504,7 +504,7 @@ TEST_P(TPrefetchingStressTest, Stress)
ReturnPointee(&lastRequest)
));
- auto processUnderlyingRequest = [&](double errorProbability) {
+ auto processUnderlyingRequest = [&] (double errorProbability) {
if (!requests.empty()) {
if (probabilisticOutcome(engine) < errorProbability) {
requests.front().Set(TError(NYT::EErrorCode::Generic, "Test error"));
diff --git a/yt/yt/core/concurrency/unittests/ya.make b/yt/yt/core/concurrency/unittests/ya.make
index 4abc7ebc0ea..ab8db2de4ca 100644
--- a/yt/yt/core/concurrency/unittests/ya.make
+++ b/yt/yt/core/concurrency/unittests/ya.make
@@ -26,6 +26,7 @@ SRCS(
invoker_pool_ut.cpp
nonblocking_batcher_ut.cpp
nonblocking_queue_ut.cpp
+ parallel_runner_ut.cpp
periodic_ut.cpp
profiled_fair_share_invoker_pool_ut.cpp
propagating_storage_ut.cpp
diff --git a/yt/yt/core/crypto/tls.cpp b/yt/yt/core/crypto/tls.cpp
index 5da176043d9..8144fb7cedf 100644
--- a/yt/yt/core/crypto/tls.cpp
+++ b/yt/yt/core/crypto/tls.cpp
@@ -268,7 +268,7 @@ public:
{
auto promise = NewPromise<size_t>();
++ActiveIOCount_;
- Invoker_->Invoke(BIND([this, this_ = MakeStrong(this), promise, buffer] () {
+ Invoker_->Invoke(BIND([this, this_ = MakeStrong(this), promise, buffer] {
ReadBuffer_ = buffer;
ReadPromise_ = promise;
@@ -289,7 +289,7 @@ public:
{
auto promise = NewPromise<void>();
++ActiveIOCount_;
- Invoker_->Invoke(BIND([this, this_ = MakeStrong(this), promise, buffer] () {
+ Invoker_->Invoke(BIND([this, this_ = MakeStrong(this), promise, buffer] {
WriteBuffer_ = buffer;
WritePromise_ = promise;
@@ -316,7 +316,7 @@ public:
TFuture<void> Close() override
{
++ActiveIOCount_;
- return BIND([this, this_ = MakeStrong(this)] () {
+ return BIND([this, this_ = MakeStrong(this)] {
CloseRequested_ = true;
DoRun();
@@ -332,7 +332,7 @@ public:
TFuture<void> Abort() override
{
- return BIND([this, this_ = MakeStrong(this)] () {
+ return BIND([this, this_ = MakeStrong(this)] {
if (Error_.IsOK()) {
Error_ = TError("TLS connection aborted");
CheckError();
@@ -562,7 +562,7 @@ public:
TFuture<IConnectionPtr> Dial(const TNetworkAddress& remote, TDialerContextPtr context) override
{
return Underlying_->Dial(remote)
- .Apply(BIND([ctx = Ctx_, poller = Poller_, context = std::move(context)](const IConnectionPtr& underlying) -> IConnectionPtr {
+ .Apply(BIND([ctx = Ctx_, poller = Poller_, context = std::move(context)] (const IConnectionPtr& underlying) -> IConnectionPtr {
auto connection = New<TTlsConnection>(ctx, poller, underlying);
if (context != nullptr && context->Host != std::nullopt) {
connection->SetHost(*(context->Host));
diff --git a/yt/yt/core/http/retrying_client.cpp b/yt/yt/core/http/retrying_client.cpp
index 51e36cd9d7a..50ece57066a 100644
--- a/yt/yt/core/http/retrying_client.cpp
+++ b/yt/yt/core/http/retrying_client.cpp
@@ -179,7 +179,7 @@ private:
const TString& url,
Args&&... args)
{
- return BIND([=, this, this_ = MakeStrong(this), func = std::move(func), ...args = std::move(args)] () {
+ return BIND([=, this, this_ = MakeStrong(this), func = std::move(func), ...args = std::move(args)] {
return DoMakeRequest(std::move(func), responseChecker, url, std::forward<Args>(args)...);
}).AsyncVia(Invoker_).Run();
}
diff --git a/yt/yt/core/logging/zstd_compression.cpp b/yt/yt/core/logging/zstd_compression.cpp
index fe7a3306f50..a41d6ff3d69 100644
--- a/yt/yt/core/logging/zstd_compression.cpp
+++ b/yt/yt/core/logging/zstd_compression.cpp
@@ -80,7 +80,7 @@ public:
void Compress(const TBuffer& input, TBuffer& output) override
{
auto context = ZSTD_createCCtx();
- auto contextGuard = Finally([&] () {
+ auto contextGuard = Finally([&] {
ZSTD_freeCCtx(context);
});
diff --git a/yt/yt/core/misc/arithmetic_formula.cpp b/yt/yt/core/misc/arithmetic_formula.cpp
index 6aa84df4656..fba6bab4690 100644
--- a/yt/yt/core/misc/arithmetic_formula.cpp
+++ b/yt/yt/core/misc/arithmetic_formula.cpp
@@ -611,7 +611,7 @@ std::vector<TFormulaToken> TGenericFormulaImpl::Parse(
ThrowError(formula, position, message, context);
};
- auto finishSubformula = [&] () {
+ auto finishSubformula = [&] {
while (!stack.empty() && stack.back().Type != EFormulaTokenType::LeftBracket) {
result.push_back(stack.back());
stack.pop_back();
diff --git a/yt/yt/core/misc/dnf.cpp b/yt/yt/core/misc/dnf.cpp
deleted file mode 100644
index a51fdc34bc4..00000000000
--- a/yt/yt/core/misc/dnf.cpp
+++ /dev/null
@@ -1,212 +0,0 @@
-#include "dnf.h"
-
-#include <yt/yt/core/misc/error.h>
-
-#include <yt/yt/core/yson/string.h>
-
-#include <yt/yt/core/ytree/fluent.h>
-#include <yt/yt/core/ytree/node.h>
-
-#include <util/generic/hash.h>
-
-namespace NYT {
-
-using namespace NYson;
-using namespace NYTree;
-
-////////////////////////////////////////////////////////////////////////////////
-
-TConjunctiveClause::TConjunctiveClause(const std::vector<TString>& include, const std::vector<TString>& exclude)
- : Include_(include)
- , Exclude_(exclude)
-{
- std::sort(Include_.begin(), Include_.end());
- std::sort(Exclude_.begin(), Exclude_.end());
- // Exception can be thrown here.
- Validate();
-}
-
-void TConjunctiveClause::Validate() const
-{
- for (const auto& includeItem : Include_) {
- if (std::binary_search(Exclude_.begin(), Exclude_.end(), includeItem)) {
- THROW_ERROR_EXCEPTION("Include and exclude sets must be disjoint, but item %Qv is present in both",
- includeItem);
- }
- }
-}
-
-template <class TContainer>
-bool TConjunctiveClause::IsSatisfiedByImpl(const TContainer& value) const
-{
- int includeCount = 0;
- for (const auto& item : value) {
- if (std::binary_search(Exclude_.begin(), Exclude_.end(), item)) {
- return false;
- }
- if (std::binary_search(Include_.begin(), Include_.end(), item)) {
- ++includeCount;
- }
- }
- return includeCount == std::ssize(Include_);
-}
-
-bool TConjunctiveClause::IsSatisfiedBy(const std::vector<TString>& value) const
-{
- return IsSatisfiedByImpl(value);
-}
-
-bool TConjunctiveClause::IsSatisfiedBy(const THashSet<TString>& value) const
-{
- return IsSatisfiedByImpl(value);
-}
-
-size_t TConjunctiveClause::GetHash() const
-{
- const size_t multiplier = 1000003;
-
- auto hashOfSet = [] (const std::vector<TString>& container) {
- const size_t multiplier = 67;
-
- size_t result = 0;
- for (const auto& str : container) {
- result = result * multiplier + ComputeHash(str);
- }
- return result;
- };
-
- return multiplier * hashOfSet(Include_) + hashOfSet(Exclude_);
-}
-
-void Serialize(const TConjunctiveClause& clause, IYsonConsumer* consumer)
-{
- BuildYsonFluently(consumer)
- .BeginMap()
- .Item("include").Value(clause.Include())
- .Item("exclude").Value(clause.Exclude())
- .EndMap();
-}
-
-void Deserialize(TConjunctiveClause& clause, INodePtr node)
-{
- if (node->GetType() == ENodeType::String) {
- clause.Include() = std::vector<TString>({node->AsString()->GetValue()});
- } else if (node->GetType() == ENodeType::Map) {
- auto mapNode = node->AsMap();
- auto includeNode = mapNode->FindChild("include");
- if (includeNode) {
- if (includeNode->GetType() != ENodeType::List) {
- THROW_ERROR_EXCEPTION("Conjunction include item must be \"list\"");
- }
- clause.Include() = ConvertTo<std::vector<TString>>(includeNode);
- }
-
- auto excludeNode = mapNode->FindChild("exclude");
- if (excludeNode) {
- if (excludeNode->GetType() != ENodeType::List) {
- THROW_ERROR_EXCEPTION("Conjunction exclude item must be \"list\"");
- }
- clause.Exclude() = ConvertTo<std::vector<TString>>(excludeNode);
- }
- } else {
- THROW_ERROR_EXCEPTION("Conjunction clause can only be parsed from \"string\" or \"map\"");
- }
-}
-
-bool operator==(const TConjunctiveClause& lhs, const TConjunctiveClause& rhs)
-{
- return lhs.Include() == rhs.Include() &&
- lhs.Exclude() == rhs.Exclude();
-}
-
-bool operator<(const TConjunctiveClause& lhs, const TConjunctiveClause& rhs)
-{
- if (lhs.Include() != rhs.Include()) {
- return lhs.Include() < rhs.Include();
- }
- return lhs.Exclude() < rhs.Exclude();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-TDnfFormula::TDnfFormula(const std::vector<TConjunctiveClause>& clauses)
- : Clauses_(clauses)
-{
- std::sort(Clauses_.begin(), Clauses_.end());
-}
-
-template <class TContainer>
-bool TDnfFormula::IsSatisfiedByImpl(const TContainer& value) const
-{
- for (const auto& clause : Clauses_) {
- if (clause.IsSatisfiedBy(value)) {
- return true;
- }
- }
- return false;
-}
-
-bool TDnfFormula::IsSatisfiedBy(const std::vector<TString>& value) const
-{
- return IsSatisfiedByImpl(value);
-}
-
-bool TDnfFormula::IsSatisfiedBy(const THashSet<TString>& value) const
-{
- return IsSatisfiedByImpl(value);
-}
-
-size_t TDnfFormula::GetHash() const
-{
- const size_t multiplier = 424243;
-
- size_t result = 0;
- for (const auto& clause : Clauses_) {
- result = result * multiplier + clause.GetHash();
- }
- return result;
-}
-
-bool operator<(const TDnfFormula& lhs, const TDnfFormula& rhs)
-{
- return lhs.Clauses() < rhs.Clauses();
-}
-
-bool operator==(const TDnfFormula& lhs, const TDnfFormula& rhs)
-{
- return lhs.Clauses() == rhs.Clauses();
-}
-
-void Serialize(const TDnfFormula& dnf, NYson::IYsonConsumer* consumer)
-{
- BuildYsonFluently(consumer)
- .DoListFor(dnf.Clauses(), [=] (TFluentList fluent, const TConjunctiveClause& clause) {
- fluent
- .Item().Value(clause);
- });
-}
-
-void Deserialize(TDnfFormula& dnf, NYTree::INodePtr node)
-{
- auto clauses = ConvertTo<std::vector<TConjunctiveClause>>(node);
- dnf = TDnfFormula(clauses);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-} // namespace NYT
-
-////////////////////////////////////////////////////////////////////////////////
-
-size_t THash<NYT::TConjunctiveClause>::operator()(const NYT::TConjunctiveClause& clause) const
-{
- return clause.GetHash();
-}
-
-size_t THash<NYT::TDnfFormula>::operator()(const NYT::TDnfFormula& dnf) const
-{
- return dnf.GetHash();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
diff --git a/yt/yt/core/misc/dnf.h b/yt/yt/core/misc/dnf.h
deleted file mode 100644
index c54f7d1c33b..00000000000
--- a/yt/yt/core/misc/dnf.h
+++ /dev/null
@@ -1,85 +0,0 @@
-#pragma once
-
-#include "property.h"
-
-#include <yt/yt/core/yson/public.h>
-
-#include <yt/yt/core/ytree/public.h>
-
-namespace NYT {
-
-////////////////////////////////////////////////////////////////////////////////
-
-class TConjunctiveClause
-{
-public:
- DEFINE_BYREF_RW_PROPERTY(std::vector<TString>, Include);
- DEFINE_BYREF_RW_PROPERTY(std::vector<TString>, Exclude);
-
-public:
- TConjunctiveClause() = default;
- TConjunctiveClause(const std::vector<TString>& include, const std::vector<TString>& exclude);
-
- bool IsSatisfiedBy(const std::vector<TString>& value) const;
- bool IsSatisfiedBy(const THashSet<TString>& value) const;
-
- size_t GetHash() const;
-
-private:
- void Validate() const;
-
- template<class TContainer>
- bool IsSatisfiedByImpl(const TContainer& value) const;
-};
-
-bool operator<(const TConjunctiveClause& lhs, const TConjunctiveClause& rhs);
-bool operator==(const TConjunctiveClause& lhs, const TConjunctiveClause& rhs);
-
-void Serialize(const TConjunctiveClause& rule, NYson::IYsonConsumer* consumer);
-void Deserialize(TConjunctiveClause& rule, NYTree::INodePtr node);
-
-////////////////////////////////////////////////////////////////////////////////
-
-class TDnfFormula
-{
-public:
- DEFINE_BYREF_RW_PROPERTY(std::vector<TConjunctiveClause>, Clauses);
-
-public:
- explicit TDnfFormula(const std::vector<TConjunctiveClause>& clauses = {});
-
- bool IsSatisfiedBy(const std::vector<TString>& value) const;
- bool IsSatisfiedBy(const THashSet<TString>& value) const;
-
- size_t GetHash() const;
-
-private:
- template<class TContainer>
- bool IsSatisfiedByImpl(const TContainer& value) const;
-};
-
-bool operator<(const TDnfFormula& lhs, const TDnfFormula& rhs);
-bool operator==(const TDnfFormula& lhs, const TDnfFormula& rhs);
-
-void Serialize(const TDnfFormula& rule, NYson::IYsonConsumer* consumer);
-void Deserialize(TDnfFormula& rule, NYTree::INodePtr node);
-
-////////////////////////////////////////////////////////////////////////////////
-
-} // namespace NYT
-
-////////////////////////////////////////////////////////////////////////////////
-
-template <>
-struct THash<NYT::TConjunctiveClause>
-{
- size_t operator()(const NYT::TConjunctiveClause& clause) const;
-};
-
-template <>
-struct THash<NYT::TDnfFormula>
-{
- size_t operator()(const NYT::TDnfFormula& dnf) const;
-};
-
-////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/core/misc/fenwick_tree-inl.h b/yt/yt/core/misc/fenwick_tree-inl.h
index 095f0165912..e41b2fd0ba8 100644
--- a/yt/yt/core/misc/fenwick_tree-inl.h
+++ b/yt/yt/core/misc/fenwick_tree-inl.h
@@ -112,7 +112,7 @@ template <class TItem>
template <class TValue, class TComparer>
int TFenwickTree<TItem>::UpperBound(const TValue& sum, TComparer&& comparer) const
{
- return LowerBound(sum, [&comparer](const auto& lhs, const auto& rhs) {
+ return LowerBound(sum, [&comparer] (const auto& lhs, const auto& rhs) {
return !comparer(rhs, lhs);
});
}
diff --git a/yt/yt/core/misc/proc.cpp b/yt/yt/core/misc/proc.cpp
index a3b630383c1..e757d73ffd4 100644
--- a/yt/yt/core/misc/proc.cpp
+++ b/yt/yt/core/misc/proc.cpp
@@ -1616,7 +1616,7 @@ TFile MemfdCreate(const TString& name)
const TString& GetLinuxKernelVersion()
{
#ifdef _linux_
- static TString release = []() -> TString {
+ static TString release = [] () -> TString {
utsname buf{};
if (uname(&buf) != 0) {
return "unknown";
diff --git a/yt/yt/core/misc/protobuf_helpers-inl.h b/yt/yt/core/misc/protobuf_helpers-inl.h
index bb5894c723d..2dd1757eeaf 100644
--- a/yt/yt/core/misc/protobuf_helpers-inl.h
+++ b/yt/yt/core/misc/protobuf_helpers-inl.h
@@ -37,6 +37,10 @@ DEFINE_TRIVIAL_PROTO_CONVERSIONS(bool)
////////////////////////////////////////////////////////////////////////////////
+#define YT_PROTO_OPTIONAL_CONVERT(...) __VA_OPT__(::NYT::FromProto<__VA_ARGS__>)
+
+////////////////////////////////////////////////////////////////////////////////
+
// These conversions work in case if the patched protobuf that uses
// TString is used.
inline void ToProto(TString* serialized, TString original)
diff --git a/yt/yt/core/misc/protobuf_helpers.h b/yt/yt/core/misc/protobuf_helpers.h
index 55caf57468a..70e163c7a7f 100644
--- a/yt/yt/core/misc/protobuf_helpers.h
+++ b/yt/yt/core/misc/protobuf_helpers.h
@@ -378,8 +378,17 @@ google::protobuf::Timestamp GetProtoNow();
////////////////////////////////////////////////////////////////////////////////
-//! This macro may be used to extract std::optional<T> from protobuf message field of type T.
-#define YT_PROTO_OPTIONAL(message, field) (((message).has_##field()) ? std::make_optional((message).field()) : std::nullopt)
+//! This macro may be used to extract std::optional<T> from protobuf message
+//! field. Macro accepts desired target type as optional third parameter.
+//! Usage:
+//! // Get as is.
+//! int instantInt = YT_PROTO_OPTIONAL(message, instant);
+//! // Get with conversion.
+//! TInstant instant = YT_PROTO_OPTIONAL(message, instant, TInstant);
+#define YT_PROTO_OPTIONAL(message, field, ...) \
+ (((message).has_##field()) \
+ ? std::optional(YT_PROTO_OPTIONAL_CONVERT(__VA_ARGS__)((message).field())) \
+ : std::nullopt)
////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/core/misc/public.h b/yt/yt/core/misc/public.h
index 7d002624e23..b43ad3d9f60 100644
--- a/yt/yt/core/misc/public.h
+++ b/yt/yt/core/misc/public.h
@@ -3,6 +3,8 @@
#include "common.h"
#include "error_code.h"
+#include <library/cpp/yt/misc/concepts.h>
+
// Google Protobuf forward declarations.
namespace google::protobuf {
@@ -173,37 +175,4 @@ DECLARE_REFCOUNTED_STRUCT(IMemoryUsageTracker)
////////////////////////////////////////////////////////////////////////////////
-template <class TObject, class TScalar>
-concept CScalable = requires (TObject object, TScalar scalar)
-{
- { object * scalar } -> std::same_as<TObject>;
-};
-
-////////////////////////////////////////////////////////////////////////////////
-
-template <class T, class Sig>
-struct TIsInvocable;
-
-template <class T, class TRet, bool NoExcept, class... TArgs>
-struct TIsInvocable<T, TRet(TArgs...) noexcept(NoExcept)>
-{
-private:
- static constexpr bool IsInvocable_ = requires (T&& t, TArgs&&... args) {
- { std::forward<T>(t)(std::forward<TArgs>(args)...) } -> std::same_as<TRet>;
- };
-
- static constexpr bool IsNoThrowInvocable_ = requires (T&& t, TArgs&&... args) {
- { std::forward<T>(t)(std::forward<TArgs>(args)...) } noexcept;
- };
-public:
- static constexpr bool Value =
- IsInvocable_ &&
- (!NoExcept || IsNoThrowInvocable_);
-};
-
-template <class T, class Sig>
-concept CInvocable = TIsInvocable<T, Sig>::Value;
-
-////////////////////////////////////////////////////////////////////////////////
-
} // namespace NYT
diff --git a/yt/yt/core/misc/unittests/arithmetic_formula_ut.cpp b/yt/yt/core/misc/unittests/arithmetic_formula_ut.cpp
index e1bdf8059dd..b72b15d886d 100644
--- a/yt/yt/core/misc/unittests/arithmetic_formula_ut.cpp
+++ b/yt/yt/core/misc/unittests/arithmetic_formula_ut.cpp
@@ -244,7 +244,7 @@ TEST(TArithmeticFormulaTest, Equality)
auto fn1 = MakeArithmeticFormula("1");
auto fn2 = MakeArithmeticFormula("2");
- auto assertComparison = [](const TArithmeticFormula& lhs, const TArithmeticFormula& rhs, bool equal) {
+ auto assertComparison = [] (const TArithmeticFormula& lhs, const TArithmeticFormula& rhs, bool equal) {
if (equal) {
EXPECT_TRUE(lhs == rhs);
EXPECT_EQ(lhs.GetHash(), rhs.GetHash());
diff --git a/yt/yt/core/misc/unittests/async_expiring_cache_ut.cpp b/yt/yt/core/misc/unittests/async_expiring_cache_ut.cpp
index 6fec652cd15..80a739d4b18 100644
--- a/yt/yt/core/misc/unittests/async_expiring_cache_ut.cpp
+++ b/yt/yt/core/misc/unittests/async_expiring_cache_ut.cpp
@@ -57,7 +57,7 @@ template <class T>
TFuture<T> MakeDelayedFuture(const TDuration& duration, T x)
{
return TDelayedExecutor::MakeDelayed(duration)
- .Apply(BIND([=] () { return x; }));
+ .Apply(BIND([=] { return x; }));
}
class TDelayedExpiringCache
@@ -116,7 +116,7 @@ TEST(TAsyncExpiringCacheTest, TestConcurrentAccess)
std::vector<TFuture<void>> asyncResult;
for (int i = 0; i < 10; ++i) {
- auto callback = BIND([=] () {
+ auto callback = BIND([=] {
for (int j = 0; j < 1000; ++j) {
YT_UNUSED_FUTURE(cache->Get(0));
diff --git a/yt/yt/core/misc/unittests/dnf_ut.cpp b/yt/yt/core/misc/unittests/dnf_ut.cpp
deleted file mode 100644
index df007eb3794..00000000000
--- a/yt/yt/core/misc/unittests/dnf_ut.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-#include <yt/yt/core/test_framework/framework.h>
-
-#include <yt/yt/core/misc/dnf.h>
-
-#include <yt/yt/core/yson/string.h>
-
-#include <yt/yt/core/ytree/convert.h>
-
-namespace NYT {
-namespace {
-
-////////////////////////////////////////////////////////////////////////////////
-
-using namespace NYTree;
-using namespace NYson;
-
-TEST(TDnfTest, Conjunctions)
-{
- TConjunctiveClause clause;
- EXPECT_TRUE(clause.IsSatisfiedBy(std::vector<TString>()));
- EXPECT_TRUE(clause.IsSatisfiedBy(std::vector<TString>({TString("aaa")})));
-
- clause = TConjunctiveClause({"aaa"}, {});
- EXPECT_FALSE(clause.IsSatisfiedBy(std::vector<TString>()));
- EXPECT_TRUE(clause.IsSatisfiedBy(std::vector<TString>({TString("aaa")})));
-
- clause = TConjunctiveClause({"aaa", "bbb"}, {});
- EXPECT_FALSE(clause.IsSatisfiedBy(std::vector<TString>()));
- EXPECT_FALSE(clause.IsSatisfiedBy(std::vector<TString>({TString("aaa")})));
- EXPECT_TRUE(clause.IsSatisfiedBy(std::vector<TString>({TString("aaa"), TString("bbb")})));
-
- clause = TConjunctiveClause({"aaa", "bbb"}, {"ccc"});
- EXPECT_FALSE(clause.IsSatisfiedBy(std::vector<TString>()));
- EXPECT_FALSE(clause.IsSatisfiedBy(std::vector<TString>({TString("aaa")})));
- EXPECT_TRUE(clause.IsSatisfiedBy(std::vector<TString>({TString("aaa"), TString("bbb")})));
- EXPECT_FALSE(clause.IsSatisfiedBy(std::vector<TString>({TString("aaa"), TString("bbb"), TString("ccc")})));
-}
-
-TEST(TDnfTest, Dnf)
-{
- TDnfFormula dnf;
-
- EXPECT_FALSE(dnf.IsSatisfiedBy(std::vector<TString>()));
- EXPECT_FALSE(dnf.IsSatisfiedBy(std::vector<TString>({TString("aaa")})));
-
- dnf.Clauses().push_back(TConjunctiveClause({"aaa", "bbb"}, {"ccc"}));
-
- EXPECT_FALSE(dnf.IsSatisfiedBy(std::vector<TString>()));
- EXPECT_FALSE(dnf.IsSatisfiedBy(std::vector<TString>({TString("aaa")})));
- EXPECT_TRUE(dnf.IsSatisfiedBy(std::vector<TString>({TString("aaa"), TString("bbb")})));
- EXPECT_FALSE(dnf.IsSatisfiedBy(std::vector<TString>({TString("aaa"), TString("bbb"), TString("ccc")})));
-
- dnf.Clauses().push_back(TConjunctiveClause({"ccc"}, {}));
-
- EXPECT_FALSE(dnf.IsSatisfiedBy(std::vector<TString>()));
- EXPECT_FALSE(dnf.IsSatisfiedBy(std::vector<TString>({TString("aaa")})));
- EXPECT_TRUE(dnf.IsSatisfiedBy(std::vector<TString>({TString("aaa"), TString("bbb")})));
- EXPECT_TRUE(dnf.IsSatisfiedBy(std::vector<TString>({TString("ccc")})));
- EXPECT_FALSE(dnf.IsSatisfiedBy(std::vector<TString>({TString("bbb")})));
-}
-
-TEST(TDnfTest, Serialization)
-{
- auto clause = TConjunctiveClause({"aaa", "bbb"}, {"ccc"});
- auto conjunctionString = ConvertToYsonString(clause, EYsonFormat::Text);
- EXPECT_EQ("{\"include\"=[\"aaa\";\"bbb\";];\"exclude\"=[\"ccc\";];}", conjunctionString.AsStringBuf());
- EXPECT_EQ(clause, ConvertTo<TConjunctiveClause>(conjunctionString));
-
- auto dnf = TDnfFormula({
- TConjunctiveClause({"aaa", "bbb"}, {"ccc"}),
- TConjunctiveClause({"ccc"}, {})});
- auto dnfString = ConvertToYsonString(dnf, EYsonFormat::Text);
- EXPECT_EQ("[{\"include\"=[\"aaa\";\"bbb\";];\"exclude\"=[\"ccc\";];};{\"include\"=[\"ccc\";];\"exclude\"=[];};]", dnfString.AsStringBuf());
- EXPECT_EQ(dnf, ConvertTo<TDnfFormula>(dnfString));
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-} // namespace
-} // namespace NYT
diff --git a/yt/yt/core/misc/unittests/error_ut.cpp b/yt/yt/core/misc/unittests/error_ut.cpp
index 9b33cb935c9..13c347be5c5 100644
--- a/yt/yt/core/misc/unittests/error_ut.cpp
+++ b/yt/yt/core/misc/unittests/error_ut.cpp
@@ -832,7 +832,7 @@ TEST(TErrorTest, SimpleLoadAfterSave)
TEST(TErrorTest, AttributeSerialization)
{
- auto getWeededText = [](const TError& err) {
+ auto getWeededText = [] (const TError& err) {
std::vector<TString> lines;
for (const auto& line : StringSplitter(ToString(err)).Split('\n')) {
if (!line.Contains("origin") && !line.Contains("datetime")) {
diff --git a/yt/yt/core/misc/unittests/fenwick_tree_ut.cpp b/yt/yt/core/misc/unittests/fenwick_tree_ut.cpp
index c05552fd09f..d72056985d2 100644
--- a/yt/yt/core/misc/unittests/fenwick_tree_ut.cpp
+++ b/yt/yt/core/misc/unittests/fenwick_tree_ut.cpp
@@ -140,7 +140,7 @@ TEST(TFenwickTreeTest, TCustomStructureTest)
int X = 0;
int Y = 0;
- TItem() {}
+ TItem() = default;
TItem(int x, int y)
: X(x)
@@ -165,20 +165,20 @@ TEST(TFenwickTreeTest, TCustomStructureTest)
EXPECT_EQ(tree.GetCumulativeSum(2), TItem(3, 3));
- auto cmp = [](TItem lhs, TItem rhs) {
+ auto cmp = [] (TItem lhs, TItem rhs) {
return std::tie(lhs.X, lhs.Y) < std::tie(rhs.X, rhs.Y);
};
EXPECT_EQ(tree.LowerBound(TItem(1, 1), cmp), 1);
EXPECT_EQ(tree.UpperBound(TItem(1, 1), cmp), 2);
- auto cmpLower = [](TItem lhs, int rhs) {
+ auto cmpLower = [] (TItem lhs, int rhs) {
return lhs.X < rhs;
};
EXPECT_EQ(tree.LowerBound(1, cmpLower), 1);
- auto cmpUpper = [](int rhs, TItem lhs) {
+ auto cmpUpper = [] (int rhs, TItem lhs) {
return rhs < lhs.X;
};
diff --git a/yt/yt/core/misc/unittests/ref_counted_tracker_ut.cpp b/yt/yt/core/misc/unittests/ref_counted_tracker_ut.cpp
index faf1352a5b3..e121b951977 100644
--- a/yt/yt/core/misc/unittests/ref_counted_tracker_ut.cpp
+++ b/yt/yt/core/misc/unittests/ref_counted_tracker_ut.cpp
@@ -123,7 +123,7 @@ TYPED_TEST_SUITE(TRefCountedTrackerTest, TypeList);
TYPED_TEST(TRefCountedTrackerTest, SinglethreadedRefCounted)
{
const auto instanceSize = TRefCountedTraits<TypeParam>::GetInstanceSize();
- auto create = [] () {
+ auto create = [] {
return TRefCountedTraits<TypeParam>::Create();
};
@@ -174,7 +174,7 @@ TYPED_TEST(TRefCountedTrackerTest, SinglethreadedRefCounted)
TYPED_TEST(TRefCountedTrackerTest, MultithreadedRefCounted)
{
const auto instanceSize = TRefCountedTraits<TypeParam>::GetInstanceSize();
- auto create = [] () {
+ auto create = [] {
return TRefCountedTraits<TypeParam>::Create();
};
@@ -184,7 +184,7 @@ TYPED_TEST(TRefCountedTrackerTest, MultithreadedRefCounted)
auto obj1 = create();
auto queue = New<TActionQueue>();
- BIND([&] () {
+ BIND([&] {
auto obj2 = create();
EXPECT_EQ(countBase + 2u, GetAllocatedCount<TypeParam>());
EXPECT_EQ(2u, GetAliveCount<TypeParam>());
diff --git a/yt/yt/core/misc/unittests/topological_ordering_ut.cpp b/yt/yt/core/misc/unittests/topological_ordering_ut.cpp
index 1c95aba99bc..dee7e531d10 100644
--- a/yt/yt/core/misc/unittests/topological_ordering_ut.cpp
+++ b/yt/yt/core/misc/unittests/topological_ordering_ut.cpp
@@ -39,7 +39,8 @@ protected:
}
}
- void Clear() {
+ void Clear()
+ {
CurrentEdges_.clear();
IncrementalOrdering_ = TIncrementalTopologicalOrdering<int>();
}
diff --git a/yt/yt/core/misc/unittests/ya.make b/yt/yt/core/misc/unittests/ya.make
index 6591f7d4357..777ae5e4df0 100644
--- a/yt/yt/core/misc/unittests/ya.make
+++ b/yt/yt/core/misc/unittests/ya.make
@@ -23,7 +23,6 @@ SRCS(
codicil_ut.cpp
concurrent_cache_ut.cpp
default_map_ut.cpp
- dnf_ut.cpp
digest_ut.cpp
ema_counter_ut.cpp
enum_ut.cpp
diff --git a/yt/yt/core/net/address.cpp b/yt/yt/core/net/address.cpp
index e06ae312ff4..97a9112816d 100644
--- a/yt/yt/core/net/address.cpp
+++ b/yt/yt/core/net/address.cpp
@@ -545,11 +545,11 @@ bool ParseIP6Address(TStringBuf* str, TIP6Address* address)
auto words = address->GetRawWords();
std::fill_n(address->GetRawBytes(), TIP6Address::ByteSize, 0);
- auto isEnd = [&] () {
+ auto isEnd = [&] {
return str->empty() || (*str)[0] == '/';
};
- auto tokenizeAbbrev = [&] () {
+ auto tokenizeAbbrev = [&] {
if (str->size() >= 2 && (*str)[0] == ':' && (*str)[1] == ':') {
str->Skip(2);
return true;
@@ -709,7 +709,7 @@ void FormatValue(TStringBuilderBase* builder, const TIP6Address& address, TStrin
std::pair<int, int> maxRun = {-1, -1};
int start = -1;
int end = -1;
- auto endRun = [&] () {
+ auto endRun = [&] {
if ((end - start) >= (maxRun.second - maxRun.first) && (end - start) > 1) {
maxRun = {start, end};
}
diff --git a/yt/yt/core/rpc/grpc/server.cpp b/yt/yt/core/rpc/grpc/server.cpp
index 169bd8cb1ea..013f21d2583 100644
--- a/yt/yt/core/rpc/grpc/server.cpp
+++ b/yt/yt/core/rpc/grpc/server.cpp
@@ -354,7 +354,7 @@ private:
switch (cookie) {
case EServerCallCookie::Normal:
{
- const auto stage = [&] () {
+ const auto stage = [&] {
auto guard = Guard(SpinLock_);
return Stage_;
}();
diff --git a/yt/yt/core/rpc/server_detail.cpp b/yt/yt/core/rpc/server_detail.cpp
index bf8886478b1..7164443d9c5 100644
--- a/yt/yt/core/rpc/server_detail.cpp
+++ b/yt/yt/core/rpc/server_detail.cpp
@@ -973,7 +973,7 @@ TFuture<void> TServerBase::Stop(bool graceful)
YT_LOG_INFO("Stopping RPC server (Graceful: %v)",
graceful);
- return DoStop(graceful).Apply(BIND([this, this_ = MakeStrong(this)] () {
+ return DoStop(graceful).Apply(BIND([this, this_ = MakeStrong(this)] {
YT_LOG_INFO("RPC server stopped");
}));
}
diff --git a/yt/yt/core/rpc/stream.cpp b/yt/yt/core/rpc/stream.cpp
index cf1cc9ff930..ede479d0b8a 100644
--- a/yt/yt/core/rpc/stream.cpp
+++ b/yt/yt/core/rpc/stream.cpp
@@ -528,7 +528,7 @@ TFuture<TSharedRef> TRpcClientInputStream::Read()
return MakeFuture(ref);
}
- return invokeResult.Apply(BIND([] () {
+ return invokeResult.Apply(BIND([] {
return TSharedRef();
}));
}));
@@ -639,7 +639,7 @@ TFuture<void> TRpcClientOutputStream::Write(const TSharedRef& data)
TFuture<void> TRpcClientOutputStream::Close()
{
CloseResult_.TrySetFrom(Underlying_->Close());
- return CloseResult_.ToFuture().Apply(BIND([invokeResult = InvokeResult_] () {
+ return CloseResult_.ToFuture().Apply(BIND([invokeResult = InvokeResult_] {
return invokeResult;
}));
}
diff --git a/yt/yt/core/ya.make b/yt/yt/core/ya.make
index 80afdd3e95e..9e820939ac3 100644
--- a/yt/yt/core/ya.make
+++ b/yt/yt/core/ya.make
@@ -117,7 +117,6 @@ SRCS(
misc/coro_pipe.cpp
misc/crash_handler.cpp
misc/digest.cpp
- misc/dnf.cpp
misc/error.cpp
misc/error_code.cpp
misc/ema_counter.cpp
diff --git a/yt/yt/core/yson/unittests/protobuf_yson_ut.cpp b/yt/yt/core/yson/unittests/protobuf_yson_ut.cpp
index e2550ea7748..c355ae09792 100644
--- a/yt/yt/core/yson/unittests/protobuf_yson_ut.cpp
+++ b/yt/yt/core/yson/unittests/protobuf_yson_ut.cpp
@@ -1058,7 +1058,7 @@ TEST(TYsonToProtobufTest, CustomUnknownFieldsModeResolver)
// Basic usage of custom resolver with state.
TProtobufWriterOptions options;
int unknownKeyCount = 0;
- options.UnknownYsonFieldModeResolver = [&unknownKeyCount](const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
+ options.UnknownYsonFieldModeResolver = [&unknownKeyCount] (const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
if (path == "/nested_message1/nested_message/unknown_map") {
return NYson::EUnknownYsonFieldsMode::Forward;
} else if (path == "/nested_message1/nested_message/unknown_map/first_unknown_key" || path == "/nested_message1/nested_message/unknown_map/second_unknown_key") {
@@ -1131,7 +1131,7 @@ TEST(TYsonToProtobufTest, CustomUnknownFieldsModeResolver)
TString protobufString;
StringOutputStream protobufOutput(&protobufString);
TProtobufWriterOptions options;
- options.UnknownYsonFieldModeResolver = [](const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
+ options.UnknownYsonFieldModeResolver = [] (const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
if (path == "/unknown_map1") {
return NYson::EUnknownYsonFieldsMode::Forward;
}
@@ -1187,7 +1187,7 @@ TEST(TYsonToProtobufTest, CustomUnknownFieldsModeResolver)
}
{
TProtobufWriterOptions options;
- options.UnknownYsonFieldModeResolver = [](const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
+ options.UnknownYsonFieldModeResolver = [] (const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
if (path == "/nested_message1/unknown_map") {
return NYson::EUnknownYsonFieldsMode::Forward;
}
@@ -1215,7 +1215,7 @@ TEST(TYsonToProtobufTest, CustomUnknownFieldsModeResolver)
{
// Don't fail if Forward is returned on empty map or empty list.
TProtobufWriterOptions options;
- options.UnknownYsonFieldModeResolver = [](const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
+ options.UnknownYsonFieldModeResolver = [] (const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
if (path == "/nested_message1/unknown_map") {
return NYson::EUnknownYsonFieldsMode::Forward;
}
@@ -1248,7 +1248,7 @@ TEST(TYsonToProtobufTest, CustomUnknownFieldsModeResolver)
// Fail if leaf is scalar and returns Forward.
{
TProtobufWriterOptions options;
- options.UnknownYsonFieldModeResolver = [](const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
+ options.UnknownYsonFieldModeResolver = [] (const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
if (path == "/nested_message1/unknown_map") {
return NYson::EUnknownYsonFieldsMode::Forward;
}
@@ -1272,7 +1272,7 @@ TEST(TYsonToProtobufTest, CustomUnknownFieldsModeResolver)
{
// Fail on forwarded scalar value on the top level.
TProtobufWriterOptions options;
- options.UnknownYsonFieldModeResolver = [](const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
+ options.UnknownYsonFieldModeResolver = [] (const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
if (path == "/nested_message1/unknown_map") {
return NYson::EUnknownYsonFieldsMode::Forward;
}
@@ -1300,7 +1300,7 @@ TEST(TYsonToProtobufTest, CustomUnknownFieldsModeResolver)
}
{
TProtobufWriterOptions options;
- options.UnknownYsonFieldModeResolver = [](const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
+ options.UnknownYsonFieldModeResolver = [] (const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
if (path == "/nested_message1/unknown_map") {
return NYson::EUnknownYsonFieldsMode::Forward;
}
@@ -1368,7 +1368,7 @@ TEST(TYsonToProtobufTest, CustomUnknownFieldsModeResolver)
TString protobufString;
StringOutputStream protobufOutput(&protobufString);
TProtobufWriterOptions options;
- options.UnknownYsonFieldModeResolver = [](const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
+ options.UnknownYsonFieldModeResolver = [] (const NYPath::TYPath& path) -> NYson::EUnknownYsonFieldsMode {
if (path == "/nested_message1/unknown_map1") {
return NYson::EUnknownYsonFieldsMode::Forward;
}
@@ -1427,7 +1427,7 @@ TEST(TYsonToProtobufTest, CustomUnknownFieldsModeResolver)
}
{
TProtobufWriterOptions options;
- options.UnknownYsonFieldModeResolver = [](const NYPath::TYPath& path) {
+ options.UnknownYsonFieldModeResolver = [] (const NYPath::TYPath& path) {
if (path == "/forwarded_attr") {
return NYson::EUnknownYsonFieldsMode::Forward;
}
diff --git a/yt/yt/core/yson/unittests/yson_pull_parser_ut.cpp b/yt/yt/core/yson/unittests/yson_pull_parser_ut.cpp
index e03740e0de0..33ae5d39249 100644
--- a/yt/yt/core/yson/unittests/yson_pull_parser_ut.cpp
+++ b/yt/yt/core/yson/unittests/yson_pull_parser_ut.cpp
@@ -145,7 +145,8 @@ public:
}
private:
- void NextBuffer() {
+ void NextBuffer()
+ {
if (Data_.empty()) {
CurrentInput_.reset();
} else {
diff --git a/yt/yt/core/ytree/helpers-inl.h b/yt/yt/core/ytree/helpers-inl.h
index 4f19dc18140..e0d177fd55e 100644
--- a/yt/yt/core/ytree/helpers-inl.h
+++ b/yt/yt/core/ytree/helpers-inl.h
@@ -56,19 +56,4 @@ IYPathServicePtr IYPathService::FromMethod(
////////////////////////////////////////////////////////////////////////////////
-template <class TReq, class TRsp>
-TIntrusivePtr<TTypedYPathServiceContext<TReq, TRsp>> DeserializeAsTypedOrThrow(
- const IYPathServiceContextPtr& context,
- const NRpc::THandlerInvocationOptions& options)
-{
- auto typedContext = New<TTypedYPathServiceContext<TReq, TRsp>>(context, options);
- if (!typedContext->DeserializeRequest()) {
- THROW_ERROR_EXCEPTION("Error deserializing request");
- }
-
- return typedContext;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
} // namespace NYT::NYTree
diff --git a/yt/yt/core/ytree/helpers.h b/yt/yt/core/ytree/helpers.h
index cc7c736c514..b7308f30de8 100644
--- a/yt/yt/core/ytree/helpers.h
+++ b/yt/yt/core/ytree/helpers.h
@@ -55,13 +55,6 @@ void ValidateYPathResolutionDepth(const NYPath::TYPath& path, int depth);
//! of providing a custom efficient implementation.
std::vector<std::pair<TString, NYson::TYsonString>> ListAttributesPairs(const IAttributeDictionary& attributes);
-////////////////////////////////////////////////////////////////////////////////
-
-//! Creates typed context and deserializes it. Throws if deserialization fails.
-template <class TReq, class TRsp>
-TIntrusivePtr<TTypedYPathServiceContext<TReq, TRsp>> DeserializeAsTypedOrThrow(
- const IYPathServiceContextPtr& context,
- const NRpc::THandlerInvocationOptions& options);
////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/core/ytree/unittests/yson_struct_ut.cpp b/yt/yt/core/ytree/unittests/yson_struct_ut.cpp
index b86a966d95c..0337b098be0 100644
--- a/yt/yt/core/ytree/unittests/yson_struct_ut.cpp
+++ b/yt/yt/core/ytree/unittests/yson_struct_ut.cpp
@@ -1544,7 +1544,7 @@ public:
static void Register(TRegistrar registrar)
{
registrar.Parameter("yson_struct", &TThis::YsonStruct)
- .DefaultCtor([] () { return CreateCustomDefault<TSimpleYsonStruct>(); });
+ .DefaultCtor([] { return CreateCustomDefault<TSimpleYsonStruct>(); });
}
};
diff --git a/yt/yt/core/ytree/ypath_client.cpp b/yt/yt/core/ytree/ypath_client.cpp
index d01b4a7859a..ef2fbaf76cc 100644
--- a/yt/yt/core/ytree/ypath_client.cpp
+++ b/yt/yt/core/ytree/ypath_client.cpp
@@ -593,7 +593,7 @@ void SetNodeByYPath(
TString currentToken;
TString currentLiteralValue;
- auto nextSegment = [&] () {
+ auto nextSegment = [&] {
tokenizer.Skip(NYPath::ETokenType::Ampersand);
tokenizer.Expect(NYPath::ETokenType::Slash);
tokenizer.Advance();
@@ -694,7 +694,7 @@ void ForceYPath(
TString currentToken;
TString currentLiteralValue;
- auto nextSegment = [&] () {
+ auto nextSegment = [&] {
tokenizer.Skip(NYPath::ETokenType::Ampersand);
tokenizer.Expect(NYPath::ETokenType::Slash);
tokenizer.Advance();
diff --git a/yt/yt/core/ytree/ypath_detail.cpp b/yt/yt/core/ytree/ypath_detail.cpp
index 0e15508993b..0ccbe25b7ca 100644
--- a/yt/yt/core/ytree/ypath_detail.cpp
+++ b/yt/yt/core/ytree/ypath_detail.cpp
@@ -145,65 +145,19 @@ bool TYPathServiceBase::ShouldHideAttributes()
////////////////////////////////////////////////////////////////////////////////
-#define IMPLEMENT_SUPPORTS_VERB_RESOLVE(method, onPathError) \
- DEFINE_RPC_SERVICE_METHOD(TSupports##method, method) \
- { \
- NYPath::TTokenizer tokenizer(GetRequestTargetYPath(context->RequestHeader())); \
- if (tokenizer.Advance() == NYPath::ETokenType::EndOfStream) { \
- method##Self(request, response, context); \
- return; \
- } \
- tokenizer.Skip(NYPath::ETokenType::Ampersand); \
- if (tokenizer.GetType() != NYPath::ETokenType::Slash) { \
- onPathError \
- return; \
- } \
- if (tokenizer.Advance() == NYPath::ETokenType::At) { \
- method##Attribute(TYPath(tokenizer.GetSuffix()), request, response, context); \
- } else { \
- method##Recursive(TYPath(tokenizer.GetInput()), request, response, context); \
- } \
- }
-
-#define IMPLEMENT_SUPPORTS_VERB(method) \
- IMPLEMENT_SUPPORTS_VERB_RESOLVE( \
- method, \
- { \
- tokenizer.ThrowUnexpected(); \
- } \
- ) \
- \
- void TSupports##method::method##Attribute(const TYPath& /*path*/, TReq##method* /*request*/, TRsp##method* /*response*/, const TCtx##method##Ptr& context) \
- { \
- ThrowMethodNotSupported(context->GetMethod(), TString("attribute")); \
- } \
- \
- void TSupports##method::method##Self(TReq##method* /*request*/, TRsp##method* /*response*/, const TCtx##method##Ptr& context) \
- { \
- ThrowMethodNotSupported(context->GetMethod(), TString("self")); \
- } \
- \
- void TSupports##method::method##Recursive(const TYPath& /*path*/, TReq##method* /*request*/, TRsp##method* /*response*/, const TCtx##method##Ptr& context) \
- { \
- ThrowMethodNotSupported(context->GetMethod(), TString("recursive")); \
- }
+IMPLEMENT_SUPPORTS_METHOD(GetKey)
+IMPLEMENT_SUPPORTS_METHOD(Get)
+IMPLEMENT_SUPPORTS_METHOD(Set)
+IMPLEMENT_SUPPORTS_METHOD(List)
+IMPLEMENT_SUPPORTS_METHOD(Remove)
-IMPLEMENT_SUPPORTS_VERB(GetKey)
-IMPLEMENT_SUPPORTS_VERB(Get)
-IMPLEMENT_SUPPORTS_VERB(Set)
-IMPLEMENT_SUPPORTS_VERB(List)
-IMPLEMENT_SUPPORTS_VERB(Remove)
-
-IMPLEMENT_SUPPORTS_VERB_RESOLVE(
+IMPLEMENT_SUPPORTS_METHOD_RESOLVE(
Exists,
{
context->SetRequestInfo();
Reply(context, /*exists*/ false);
})
-#undef IMPLEMENT_SUPPORTS_VERB
-#undef IMPLEMENT_SUPPORTS_VERB_RESOLVE
-
void TSupportsExists::ExistsAttribute(
const TYPath& /*path*/,
TReqExists* /*request*/,
diff --git a/yt/yt/core/ytree/ypath_detail.h b/yt/yt/core/ytree/ypath_detail.h
index e52b8cd9293..b952736463b 100644
--- a/yt/yt/core/ytree/ypath_detail.h
+++ b/yt/yt/core/ytree/ypath_detail.h
@@ -62,13 +62,13 @@ DEFINE_REFCOUNTED_TYPE(TYPathServiceContextWrapper)
////////////////////////////////////////////////////////////////////////////////
#define DECLARE_YPATH_SERVICE_METHOD(ns, method) \
- using TCtx##method = ::NYT::NYTree::TTypedYPathServiceContext<ns::TReq##method, ns::TRsp##method>; \
+ using TCtx##method = TYPathTypedServiceContextImpl<ns::TReq##method, ns::TRsp##method>; \
using TCtx##method##Ptr = ::NYT::TIntrusivePtr<TCtx##method>; \
using TReq##method = TCtx##method::TTypedRequest; \
using TRsp##method = TCtx##method::TTypedResponse; \
\
void method##Thunk( \
- const ::NYT::NYTree::IYPathServiceContextPtr& context, \
+ const ::NYT::TIntrusivePtr<IYPathServiceContextImpl>& context, \
const ::NYT::NRpc::THandlerInvocationOptions& options) \
{ \
auto typedContext = ::NYT::New<TCtx##method>(context, options); \
@@ -102,6 +102,16 @@ DEFINE_REFCOUNTED_TYPE(TYPathServiceContextWrapper)
////////////////////////////////////////////////////////////////////////////////
+//! These aliases provide an option to replace default typed service context class
+//! with a custom one which may be richer in some way.
+#define DEFINE_YPATH_CONTEXT_IMPL(serviceContext, typedServiceContext) \
+ using IYPathServiceContextImpl = serviceContext; \
+ \
+ template <class RequestMessage, class ResponseMessage> \
+ using TYPathTypedServiceContextImpl = typedServiceContext<RequestMessage, ResponseMessage>;
+
+////////////////////////////////////////////////////////////////////////////////
+
class TYPathServiceBase
: public virtual IYPathService
{
@@ -115,6 +125,8 @@ public:
bool ShouldHideAttributes() override;
protected:
+ DEFINE_YPATH_CONTEXT_IMPL(IYPathServiceContext, TTypedYPathServiceContext);
+
virtual void BeforeInvoke(const IYPathServiceContextPtr& context);
virtual bool DoInvoke(const IYPathServiceContextPtr& context);
virtual void AfterInvoke(const IYPathServiceContextPtr& context);
@@ -131,12 +143,59 @@ protected:
: public base \
{ \
protected: \
- DECLARE_YPATH_SERVICE_METHOD(NProto, method); \
+ DECLARE_YPATH_SERVICE_METHOD(::NYT::NYTree::NProto, method); \
virtual void method##Self(TReq##method* request, TRsp##method* response, const TCtx##method##Ptr& context); \
virtual void method##Recursive(const TYPath& path, TReq##method* request, TRsp##method* response, const TCtx##method##Ptr& context); \
virtual void method##Attribute(const TYPath& path, TReq##method* request, TRsp##method* response, const TCtx##method##Ptr& context); \
}
+#define IMPLEMENT_SUPPORTS_METHOD_RESOLVE(method, onPathError) \
+ DEFINE_RPC_SERVICE_METHOD(TSupports##method, method) \
+ { \
+ NYPath::TTokenizer tokenizer(GetRequestTargetYPath(context->RequestHeader())); \
+ if (tokenizer.Advance() == NYPath::ETokenType::EndOfStream) { \
+ method##Self(request, response, context); \
+ return; \
+ } \
+ tokenizer.Skip(NYPath::ETokenType::Ampersand); \
+ if (tokenizer.GetType() != NYPath::ETokenType::Slash) { \
+ onPathError \
+ return; \
+ } \
+ if (tokenizer.Advance() == NYPath::ETokenType::At) { \
+ method##Attribute(TYPath(tokenizer.GetSuffix()), request, response, context); \
+ } else { \
+ method##Recursive(TYPath(tokenizer.GetInput()), request, response, context); \
+ } \
+ }
+
+#define IMPLEMENT_SUPPORTS_METHOD(method) \
+ IMPLEMENT_SUPPORTS_METHOD_RESOLVE( \
+ method, \
+ { \
+ tokenizer.ThrowUnexpected(); \
+ } \
+ ) \
+ \
+ void TSupports##method::method##Attribute(const TYPath& /*path*/, TReq##method* /*request*/, TRsp##method* /*response*/, const TCtx##method##Ptr& context) \
+ { \
+ ThrowMethodNotSupported(context->GetMethod(), TString("attribute")); \
+ } \
+ \
+ void TSupports##method::method##Self(TReq##method* /*request*/, TRsp##method* /*response*/, const TCtx##method##Ptr& context) \
+ { \
+ ThrowMethodNotSupported(context->GetMethod(), TString("self")); \
+ } \
+ \
+ void TSupports##method::method##Recursive(const TYPath& /*path*/, TReq##method* /*request*/, TRsp##method* /*response*/, const TCtx##method##Ptr& context) \
+ { \
+ ThrowMethodNotSupported(context->GetMethod(), TString("recursive")); \
+ }
+
+////////////////////////////////////////////////////////////////////////////////
+
+DEFINE_YPATH_CONTEXT_IMPL(IYPathServiceContext, TTypedYPathServiceContext);
+
class TSupportsExistsBase
: public virtual TRefCounted
{
@@ -174,8 +233,6 @@ DECLARE_SUPPORTS_METHOD(List, virtual TRefCounted);
DECLARE_SUPPORTS_METHOD(Remove, virtual TRefCounted);
DECLARE_SUPPORTS_METHOD(Exists, TSupportsExistsBase);
-#undef DECLARE_SUPPORTS_METHOD
-
////////////////////////////////////////////////////////////////////////////////
class TSupportsPermissions
diff --git a/yt/yt/core/ytree/ypath_service.cpp b/yt/yt/core/ytree/ypath_service.cpp
index 96950cb16d1..676d16824ce 100644
--- a/yt/yt/core/ytree/ypath_service.cpp
+++ b/yt/yt/core/ytree/ypath_service.cpp
@@ -600,7 +600,7 @@ private:
bool DoInvoke(const IYPathServiceContextPtr& context) override
{
- Invoker_->Invoke(BIND([=, this, this_ = MakeStrong(this)] () {
+ Invoker_->Invoke(BIND([=, this, this_ = MakeStrong(this)] {
ExecuteVerb(UnderlyingService_, context);
}));
return true;
@@ -820,7 +820,7 @@ void ReplyErrorOrValue(const IYPathServiceContextPtr& context, const TErrorOr<TS
bool TCachedYPathService::DoInvoke(const IYPathServiceContextPtr& context)
{
if (IsCacheEnabled_ && IsCacheValid_) {
- WorkerInvoker_->Invoke(BIND([this, context, this_ = MakeStrong(this)]() {
+ WorkerInvoker_->Invoke(BIND([this, context, this_ = MakeStrong(this)] {
try {
auto cacheSnapshot = CurrentCacheSnapshot_.Acquire();
YT_VERIFY(cacheSnapshot);
diff --git a/yt/yt/core/ytree/yson_struct_detail-inl.h b/yt/yt/core/ytree/yson_struct_detail-inl.h
index de2050819ba..8c02116c432 100644
--- a/yt/yt/core/ytree/yson_struct_detail-inl.h
+++ b/yt/yt/core/ytree/yson_struct_detail-inl.h
@@ -315,7 +315,7 @@ void LoadFromCursor(
try {
parameter.clear();
int index = 0;
- cursor->ParseList([&](NYson::TYsonPullParserCursor* cursor) {
+ cursor->ParseList([&] (NYson::TYsonPullParserCursor* cursor) {
LoadFromCursor(
parameter.emplace_back(),
cursor,
diff --git a/yt/yt/core/ytree/yson_struct_detail.cpp b/yt/yt/core/ytree/yson_struct_detail.cpp
index 83079749f95..12307266f51 100644
--- a/yt/yt/core/ytree/yson_struct_detail.cpp
+++ b/yt/yt/core/ytree/yson_struct_detail.cpp
@@ -71,7 +71,7 @@ IYsonStructParameterPtr TYsonStructMeta::GetParameter(const TString& keyOrAlias)
void TYsonStructMeta::LoadParameter(TYsonStructBase* target, const TString& key, const NYTree::INodePtr& node) const
{
const auto& parameter = GetParameter(key);
- auto validate = [&] () {
+ auto validate = [&] {
parameter->PostprocessParameter(target, "/" + key);
try {
for (const auto& postprocessor : Postprocessors_) {
diff --git a/yt/yt/library/decimal/unittests/decimal_ut.cpp b/yt/yt/library/decimal/unittests/decimal_ut.cpp
index f8827a3dbbb..739d585276f 100644
--- a/yt/yt/library/decimal/unittests/decimal_ut.cpp
+++ b/yt/yt/library/decimal/unittests/decimal_ut.cpp
@@ -155,7 +155,8 @@ class TDecimalWithPrecisionTest
, public ::testing::WithParamInterface<int>
{
public:
- static std::vector<int> GetAllPossiblePrecisions() {
+ static std::vector<int> GetAllPossiblePrecisions()
+ {
std::vector<int> result;
for (int i = 1; i <= TDecimal::MaxPrecision; ++i) {
result.push_back(i);
@@ -296,4 +297,4 @@ TEST_P(TDecimalWithPrecisionTest, TestBinaryValidation)
// Check -100..0
binaryValueDecrement(binBuffer, binValue.size());
EXPECT_THROW_WITH_SUBSTRING(TDecimal::ValidateBinaryValue(binValue, precision, 0), "does not have enough precision to represent");
-} \ No newline at end of file
+}
diff --git a/yt/yt/library/formats/protobuf_parser.cpp b/yt/yt/library/formats/protobuf_parser.cpp
index 5b3a5750912..0df9018f0b9 100644
--- a/yt/yt/library/formats/protobuf_parser.cpp
+++ b/yt/yt/library/formats/protobuf_parser.cpp
@@ -441,7 +441,7 @@ private:
{
const auto inRoot = (depth == 0);
- auto skipElements = [&](int count) {
+ auto skipElements = [&] (int count) {
if (inRoot) {
return;
}
@@ -484,7 +484,7 @@ private:
OutputChild(fieldRangeBegin, fieldIt, childDescription, depth);
lastOutputStructFieldIndex = structFieldIndex;
} else {
- auto isStructFieldPresentOrLegallyMissing = [&] () {
+ auto isStructFieldPresentOrLegallyMissing = [&] {
if (ShouldOutputValueImmediately(inRoot, childDescription)) {
if (RootChildOutputFlags_[childIndex]) {
// The value is already output.
diff --git a/yt/yt/library/formats/protobuf_writer.cpp b/yt/yt/library/formats/protobuf_writer.cpp
index 90be9baaba7..d7e0d8001de 100644
--- a/yt/yt/library/formats/protobuf_writer.cpp
+++ b/yt/yt/library/formats/protobuf_writer.cpp
@@ -302,7 +302,7 @@ Y_FORCE_INLINE void WriteProtobufEnum(
extractor.ExtractEnum(&visitor, type);
- auto getEnumerationName = [&] () {
+ auto getEnumerationName = [&] {
return type->EnumerationDescription
? type->EnumerationDescription->GetEnumerationName()
: "<unknown>";
@@ -678,7 +678,7 @@ public:
int parentEmbeddingIndex = 0;
- std::function<int(int)> EmitMessage = [&](int parentEmbeddingIndex) {
+ std::function<int(int)> EmitMessage = [&] (int parentEmbeddingIndex) {
auto& embeddingDescription = embeddings[parentEmbeddingIndex];
auto& blob = EmbeddedBuffers[parentEmbeddingIndex];
diff --git a/yt/yt/library/formats/schemaful_dsv_writer.cpp b/yt/yt/library/formats/schemaful_dsv_writer.cpp
index 17b9210ff9a..60f5c9e803b 100644
--- a/yt/yt/library/formats/schemaful_dsv_writer.cpp
+++ b/yt/yt/library/formats/schemaful_dsv_writer.cpp
@@ -102,7 +102,7 @@ public:
: -1)
{
BlobOutput_ = GetOutputStream();
- WriteColumnNamesHeader([this](TStringBuf buf, char c) {
+ WriteColumnNamesHeader([this] (TStringBuf buf, char c) {
WriteRaw(buf);
WriteRaw(c);
});
@@ -186,7 +186,7 @@ public:
IdToIndexInRow)
, Output_(CreateBufferedSyncAdapter(stream))
{
- WriteColumnNamesHeader([this](TStringBuf buf, char c) {
+ WriteColumnNamesHeader([this] (TStringBuf buf, char c) {
Output_->Write(buf);
Output_->Write(c);
});
diff --git a/yt/yt/library/formats/skiff_yson_converter.cpp b/yt/yt/library/formats/skiff_yson_converter.cpp
index e7d1d899efc..24164556bf3 100644
--- a/yt/yt/library/formats/skiff_yson_converter.cpp
+++ b/yt/yt/library/formats/skiff_yson_converter.cpp
@@ -1030,11 +1030,11 @@ TYsonToSkiffConverter CreateStructYsonToSkiffConverter(
const TConverterCreationContext& context,
const TYsonToSkiffConverterConfig& config)
{
- TYsonToSkiffConverter skipYsonValue = [](TYsonPullParserCursor* cursor, TCheckedInDebugSkiffWriter* /*writer*/) {
+ TYsonToSkiffConverter skipYsonValue = [] (TYsonPullParserCursor* cursor, TCheckedInDebugSkiffWriter* /*writer*/) {
cursor->SkipComplexValue();
};
- TYsonToSkiffConverter writeNullUnknownField = [](TYsonPullParserCursor*, TCheckedInDebugSkiffWriter* writer) {
+ TYsonToSkiffConverter writeNullUnknownField = [] (TYsonPullParserCursor*, TCheckedInDebugSkiffWriter* writer) {
writer->WriteVariant8Tag(0);
};
@@ -1088,7 +1088,7 @@ TYsonToSkiffConverter CreateTupleYsonToSkiffConverter(
const TConverterCreationContext& context,
const TYsonToSkiffConverterConfig& config)
{
- TYsonToSkiffConverter skipYsonValue = [](TYsonPullParserCursor* cursor, TCheckedInDebugSkiffWriter* /*writer*/) {
+ TYsonToSkiffConverter skipYsonValue = [] (TYsonPullParserCursor* cursor, TCheckedInDebugSkiffWriter* /*writer*/) {
cursor->SkipComplexValue();
};
@@ -1154,7 +1154,7 @@ public:
static_assert(wireType == EWireType::Variant16);
writer->WriteVariant16Tag(tag);
}
- ConverterList_[tag](cursor, writer);
+ ConverterList_[tag] (cursor, writer);
if (cursor->GetCurrent().GetType() != EYsonItemType::EndList) {
ThrowBadYsonToken(Descriptor_, {EYsonItemType::EndList}, cursor->GetCurrent().GetType());
}
@@ -1610,7 +1610,7 @@ TSkiffToYsonConverter CreateListSkiffToYsonConverter(
auto match = MatchListTypes(descriptor, skiffSchema);
auto innerConverter = CreateSkiffToYsonConverterImpl(std::move(match.first), match.second, context, config);
- return [innerConverter = innerConverter, descriptor=std::move(descriptor)](TCheckedInDebugSkiffParser* parser, TCheckedInDebugYsonTokenWriter* writer) {
+ return [innerConverter = innerConverter, descriptor=std::move(descriptor)] (TCheckedInDebugSkiffParser* parser, TCheckedInDebugYsonTokenWriter* writer) {
writer->WriteBeginList();
while (true) {
auto tag = parser->ParseVariant8Tag();
@@ -1636,7 +1636,7 @@ TSkiffToYsonConverter CreateStructSkiffToYsonConverter(
const TConverterCreationContext& context,
const TSkiffToYsonConverterConfig& config)
{
- const auto insertEntity = [](TCheckedInDebugSkiffParser* /*parser*/, TCheckedInDebugYsonTokenWriter* writer) {
+ const auto insertEntity = [] (TCheckedInDebugSkiffParser* /*parser*/, TCheckedInDebugYsonTokenWriter* writer) {
writer->WriteEntity();
};
@@ -1658,7 +1658,7 @@ TSkiffToYsonConverter CreateStructSkiffToYsonConverter(
}
}
- return [converterList = converterList](TCheckedInDebugSkiffParser* parser, TCheckedInDebugYsonTokenWriter* writer) {
+ return [converterList = converterList] (TCheckedInDebugSkiffParser* parser, TCheckedInDebugYsonTokenWriter* writer) {
writer->WriteBeginList();
for (const auto& converter : converterList) {
converter(parser, writer);
@@ -1679,7 +1679,7 @@ TSkiffToYsonConverter CreateTupleSkiffToYsonConverter(
for (const auto& [fieldDescriptor, fieldSkiffSchema] : tupleMatch) {
converterList.emplace_back(CreateSkiffToYsonConverterImpl(fieldDescriptor, fieldSkiffSchema, context, config));
}
- return [converterList = converterList](TCheckedInDebugSkiffParser* parser, TCheckedInDebugYsonTokenWriter* writer) {
+ return [converterList = converterList] (TCheckedInDebugSkiffParser* parser, TCheckedInDebugYsonTokenWriter* writer) {
writer->WriteBeginList();
for (const auto& converter : converterList) {
converter(parser, writer);
diff --git a/yt/yt/library/numeric/algorithm_helpers-inl.h b/yt/yt/library/numeric/algorithm_helpers-inl.h
index ea04df3a32d..980fccb5c34 100644
--- a/yt/yt/library/numeric/algorithm_helpers-inl.h
+++ b/yt/yt/library/numeric/algorithm_helpers-inl.h
@@ -129,7 +129,7 @@ void PartialShuffle(TIter begin, TIter end, TIter last)
template <class T, class TGetKey>
std::pair<const T&, const T&> MinMaxBy(const T& first, const T& second, const TGetKey& getKey)
{
- return std::minmax(first, second, [&](auto&& left, auto&& right) { return getKey(left) < getKey(right); });
+ return std::minmax(first, second, [&] (auto&& left, auto&& right) { return getKey(left) < getKey(right); });
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/library/process/process.cpp b/yt/yt/library/process/process.cpp
index dba02116e92..49836d3d1ee 100644
--- a/yt/yt/library/process/process.cpp
+++ b/yt/yt/library/process/process.cpp
@@ -377,7 +377,7 @@ TFuture<void> TProcessBase::Spawn()
void TSimpleProcess::DoSpawn()
{
#ifdef _unix_
- auto finally = Finally([&] () {
+ auto finally = Finally([&] {
StdPipes_[STDIN_FILENO].CloseReadFD();
StdPipes_[STDOUT_FILENO].CloseWriteFD();
StdPipes_[STDERR_FILENO].CloseWriteFD();
@@ -433,7 +433,7 @@ void TSimpleProcess::DoSpawn()
if (!WorkingDirectory_.empty()) {
SpawnActions_.push_back(TSpawnAction{
- [&] () {
+ [&] {
NFs::SetCurrentWorkingDirectory(WorkingDirectory_);
return true;
},
@@ -443,7 +443,7 @@ void TSimpleProcess::DoSpawn()
if (CreateProcessGroup_) {
SpawnActions_.push_back(TSpawnAction{
- [&] () {
+ [&] {
setpgrp();
return true;
},
diff --git a/yt/yt/library/process/unittests/pipes_ut.cpp b/yt/yt/library/process/unittests/pipes_ut.cpp
index f8eba17da23..4200e389156 100644
--- a/yt/yt/library/process/unittests/pipes_ut.cpp
+++ b/yt/yt/library/process/unittests/pipes_ut.cpp
@@ -359,7 +359,7 @@ TEST_P(TPipeBigReadWriteTest, RealReadWrite)
std::vector<char> data(dataSize, 'a');
- YT_UNUSED_FUTURE(BIND([&] () {
+ YT_UNUSED_FUTURE(BIND([&] {
auto dice = std::bind(
std::uniform_int_distribution<int>(0, 127),
std::default_random_engine());
diff --git a/yt/yt/library/process/unittests/process_ut.cpp b/yt/yt/library/process/unittests/process_ut.cpp
index 55f7fc65c88..01a1468e59a 100644
--- a/yt/yt/library/process/unittests/process_ut.cpp
+++ b/yt/yt/library/process/unittests/process_ut.cpp
@@ -183,7 +183,7 @@ TEST(TProcessTest, Kill)
auto finished = p->Spawn();
NConcurrency::TDelayedExecutor::Submit(
- BIND([&] () {
+ BIND([&] {
p->Kill(SIGKILL);
}),
TDuration::MilliSeconds(100));
diff --git a/yt/yt/library/process/unittests/subprocess_ut.cpp b/yt/yt/library/process/unittests/subprocess_ut.cpp
index 932d2507840..32120a89a6e 100644
--- a/yt/yt/library/process/unittests/subprocess_ut.cpp
+++ b/yt/yt/library/process/unittests/subprocess_ut.cpp
@@ -43,7 +43,7 @@ TEST(TSubprocessTest, PipeStdin)
{
auto queue = New<TActionQueue>();
- BIND([] () {
+ BIND([] {
TSubprocess subprocess("/bin/cat");
subprocess.AddArgument("-");
@@ -61,7 +61,7 @@ TEST(TSubprocessTest, PipeBigOutput)
{
auto queue = New<TActionQueue>();
- auto result = BIND([] () {
+ auto result = BIND([] {
TSubprocess subprocess("/bin/bash");
subprocess.AddArgument("-c");
@@ -79,7 +79,7 @@ TEST(TSubprocessTest, PipeBigError)
{
auto queue = New<TActionQueue>();
- auto result = BIND([] () {
+ auto result = BIND([] {
TSubprocess subprocess("/bin/bash");
subprocess.AddArgument("-c");
diff --git a/yt/yt/library/profiling/perf/counters.cpp b/yt/yt/library/profiling/perf/counters.cpp
index e9f2ee2c617..f5f54557255 100644
--- a/yt/yt/library/profiling/perf/counters.cpp
+++ b/yt/yt/library/profiling/perf/counters.cpp
@@ -227,7 +227,7 @@ void EnablePerfCounters()
auto exportCounter = [&] (const TString& category, const TString& name, EPerfEventType type) {
try {
owner->Counters.emplace_back(new TPerfEventCounter{type});
- TProfiler{category}.AddFuncCounter(name, owner, [counter=owner->Counters.back().get()] () {
+ TProfiler{category}.AddFuncCounter(name, owner, [counter=owner->Counters.back().get()] {
return counter->Read();
});
} catch (const std::exception&) {
diff --git a/yt/yt/library/profiling/solomon/cube.cpp b/yt/yt/library/profiling/solomon/cube.cpp
index 5b8f72d6b79..f96c3bc6869 100644
--- a/yt/yt/library/profiling/solomon/cube.cpp
+++ b/yt/yt/library/profiling/solomon/cube.cpp
@@ -731,13 +731,16 @@ int TCube<T>::ReadSensorValues(
}
template <class T>
-void TCube<T>::DumpCube(NProto::TCube *cube) const
+void TCube<T>::DumpCube(NProto::TCube *cube, const std::vector<TTagId>& extraTags) const
{
for (const auto& [tagIds, window] : Projections_) {
auto projection = cube->add_projections();
for (auto tagId : tagIds) {
projection->add_tag_ids(tagId);
}
+ for (auto tagId : extraTags) {
+ projection->add_tag_ids(tagId);
+ }
projection->set_has_value(window.HasValue[Index_]);
if constexpr (std::is_same_v<T, i64>) {
diff --git a/yt/yt/library/profiling/solomon/cube.h b/yt/yt/library/profiling/solomon/cube.h
index 7e51f6f9615..2d4eddfdd96 100644
--- a/yt/yt/library/profiling/solomon/cube.h
+++ b/yt/yt/library/profiling/solomon/cube.h
@@ -113,7 +113,7 @@ public:
const TTagRegistry& tagRegistry,
NYTree::TFluentAny fluent) const;
- void DumpCube(NProto::TCube* cube) const;
+ void DumpCube(NProto::TCube* cube, const std::vector<TTagId>& extraTags) const;
private:
const int WindowSize_;
diff --git a/yt/yt/library/profiling/solomon/exporter.cpp b/yt/yt/library/profiling/solomon/exporter.cpp
index a7d2a356ecd..b60be17740c 100644
--- a/yt/yt/library/profiling/solomon/exporter.cpp
+++ b/yt/yt/library/profiling/solomon/exporter.cpp
@@ -1031,7 +1031,7 @@ TSharedRef TSolomonExporter::DumpSensors()
Registry_->ProcessRegistrations();
Registry_->Collect(OffloadThreadPool_->GetInvoker());
- return SerializeProtoToRef(Registry_->DumpSensors());
+ return SerializeProtoToRef(Registry_->DumpSensors(Config_->Host, Config_->InstanceTags));
}
void TSolomonExporter::AttachRemoteProcess(TCallback<TFuture<TSharedRef>()> dumpSensors)
diff --git a/yt/yt/library/profiling/solomon/registry.cpp b/yt/yt/library/profiling/solomon/registry.cpp
index 18c8ba61cf0..4b65c3c2d05 100644
--- a/yt/yt/library/profiling/solomon/registry.cpp
+++ b/yt/yt/library/profiling/solomon/registry.cpp
@@ -40,7 +40,7 @@ ICounterImplPtr TSolomonRegistry::RegisterCounter(
TSensorOptions options)
{
return SelectImpl<ICounterImpl, TSimpleCounter, TPerCpuCounter>(options.Hot, [&, this] (const auto& counter) {
- DoRegister([this, name, tags, options = std::move(options), counter] () {
+ DoRegister([this, name, tags, options = std::move(options), counter] {
auto reader = [ptr = counter.Get()] {
return ptr->GetValue();
};
@@ -59,7 +59,7 @@ ITimeCounterImplPtr TSolomonRegistry::RegisterTimeCounter(
return SelectImpl<ITimeCounterImpl, TSimpleTimeCounter, TPerCpuTimeCounter>(
options.Hot,
[&, this] (const auto& counter) {
- DoRegister([this, name, tags, options = std::move(options), counter] () {
+ DoRegister([this, name, tags, options = std::move(options), counter] {
auto set = FindSet(name, options);
set->AddTimeCounter(New<TTimeCounterState>(counter, Tags_.Encode(tags), tags));
});
@@ -76,7 +76,7 @@ IGaugeImplPtr TSolomonRegistry::RegisterGauge(
gauge->Update(std::numeric_limits<double>::quiet_NaN());
}
- DoRegister([this, name, tags, options = std::move(options), gauge] () {
+ DoRegister([this, name, tags, options = std::move(options), gauge] {
auto reader = [ptr = gauge.Get()] {
return ptr->GetValue();
};
@@ -94,7 +94,7 @@ ITimeGaugeImplPtr TSolomonRegistry::RegisterTimeGauge(
{
auto gauge = New<TSimpleTimeGauge>();
- DoRegister([this, name, tags, options = std::move(options), gauge] () {
+ DoRegister([this, name, tags, options = std::move(options), gauge] {
auto reader = [ptr = gauge.Get()] {
return ptr->GetValue().SecondsFloat();
};
@@ -112,7 +112,7 @@ ISummaryImplPtr TSolomonRegistry::RegisterSummary(
TSensorOptions options)
{
return SelectImpl<ISummaryImpl, TSimpleSummary<double>, TPerCpuSummary<double>>(options.Hot, [&, this] (const auto& summary) {
- DoRegister([this, name, tags, options = std::move(options), summary] () {
+ DoRegister([this, name, tags, options = std::move(options), summary] {
auto set = FindSet(name, options);
set->AddSummary(New<TSummaryState>(summary, Tags_.Encode(tags), tags));
});
@@ -125,7 +125,7 @@ IGaugeImplPtr TSolomonRegistry::RegisterGaugeSummary(
TSensorOptions options)
{
auto gauge = New<TSimpleGauge>();
- DoRegister([this, name, tags, options = std::move(options), gauge] () {
+ DoRegister([this, name, tags, options = std::move(options), gauge] {
auto set = FindSet(name, options);
set->AddSummary(New<TSummaryState>(gauge, Tags_.Encode(tags), tags));
});
@@ -139,7 +139,7 @@ ITimeGaugeImplPtr TSolomonRegistry::RegisterTimeGaugeSummary(
TSensorOptions options)
{
auto gauge = New<TSimpleTimeGauge>();
- DoRegister([this, name, tags, options = std::move(options), gauge] () {
+ DoRegister([this, name, tags, options = std::move(options), gauge] {
auto set = FindSet(name, options);
set->AddTimerSummary(New<TTimerSummaryState>(gauge, Tags_.Encode(tags), tags));
});
@@ -155,7 +155,7 @@ ITimerImplPtr TSolomonRegistry::RegisterTimerSummary(
return SelectImpl<ITimerImpl, TSimpleSummary<TDuration>, TPerCpuSummary<TDuration>>(
options.Hot,
[&, this] (const auto& timer) {
- DoRegister([this, name, tags, options = std::move(options), timer] () {
+ DoRegister([this, name, tags, options = std::move(options), timer] {
auto set = FindSet(name, options);
set->AddTimerSummary(New<TTimerSummaryState>(timer, Tags_.Encode(tags), tags));
});
@@ -168,7 +168,7 @@ ITimerImplPtr TSolomonRegistry::RegisterTimeHistogram(
TSensorOptions options)
{
auto hist = New<THistogram>(options);
- DoRegister([this, name, tags, options = std::move(options), hist] () {
+ DoRegister([this, name, tags, options = std::move(options), hist] {
auto set = FindSet(name, options);
set->AddTimeHistogram(New<THistogramState>(hist, Tags_.Encode(tags), tags));
});
@@ -181,7 +181,7 @@ IHistogramImplPtr TSolomonRegistry::RegisterGaugeHistogram(
TSensorOptions options)
{
auto hist = New<THistogram>(options);
- DoRegister([this, name, tags, options = std::move(options), hist] () {
+ DoRegister([this, name, tags, options = std::move(options), hist] {
auto set = FindSet(name, options);
set->AddGaugeHistogram(New<THistogramState>(hist, Tags_.Encode(tags), tags));
});
@@ -194,7 +194,7 @@ IHistogramImplPtr TSolomonRegistry::RegisterRateHistogram(
TSensorOptions options)
{
auto hist = New<THistogram>(options);
- DoRegister([this, name, tags, options = std::move(options), hist] () {
+ DoRegister([this, name, tags, options = std::move(options), hist] {
auto set = FindSet(name, options);
set->AddRateHistogram(New<THistogramState>(hist, Tags_.Encode(tags), tags));
});
@@ -208,7 +208,7 @@ void TSolomonRegistry::RegisterFuncCounter(
const TRefCountedPtr& owner,
std::function<i64()> reader)
{
- DoRegister([this, name, tags, options = std::move(options), owner, reader] () {
+ DoRegister([this, name, tags, options = std::move(options), owner, reader] {
auto set = FindSet(name, options);
set->AddCounter(New<TCounterState>(owner, reader, Tags_.Encode(tags), tags));
});
@@ -221,7 +221,7 @@ void TSolomonRegistry::RegisterFuncGauge(
const TRefCountedPtr& owner,
std::function<double()> reader)
{
- DoRegister([this, name, tags, options = std::move(options), owner, reader] () {
+ DoRegister([this, name, tags, options = std::move(options), owner, reader] {
auto set = FindSet(name, options);
set->AddGauge(New<TGaugeState>(owner, reader, Tags_.Encode(tags), tags));
});
@@ -233,7 +233,7 @@ void TSolomonRegistry::RegisterProducer(
TSensorOptions options,
const ISensorProducerPtr& producer)
{
- DoRegister([this, prefix, tags, options = std::move(options), producer] () {
+ DoRegister([this, prefix, tags, options = std::move(options), producer] {
Producers_.AddProducer(New<TProducerState>(prefix, tags, options, producer));
});
}
@@ -517,7 +517,15 @@ TSensorSet* TSolomonRegistry::FindSet(const TString& name, const TSensorOptions&
}
}
-NProto::TSensorDump TSolomonRegistry::DumpSensors() {
+NProto::TSensorDump TSolomonRegistry::DumpSensors(std::vector<TTagId> extraTags)
+{
+ {
+ auto guard = Guard(DynamicTagsLock_);
+ for (const auto& [key, value] : DynamicTags_) {
+ extraTags.push_back(Tags_.Encode(std::make_pair(key, value)));
+ }
+ }
+
NProto::TSensorDump dump;
Tags_.DumpTags(&dump);
@@ -528,12 +536,29 @@ NProto::TSensorDump TSolomonRegistry::DumpSensors() {
auto cube = dump.add_cubes();
cube->set_name(name);
- set.DumpCube(cube);
+ set.DumpCube(cube, extraTags);
}
return dump;
}
+NProto::TSensorDump TSolomonRegistry::DumpSensors()
+{
+ return DumpSensors({});
+}
+
+NProto::TSensorDump TSolomonRegistry::DumpSensors(const std::optional<TString>& host, const THashMap<TString, TString>& instanceTags)
+{
+ std::vector<TTagId> extraTags;
+ if (host) {
+ extraTags.push_back(Tags_.Encode(std::make_pair("host", *host)));
+ }
+ for (const auto& [key, value] : instanceTags) {
+ extraTags.push_back(Tags_.Encode(std::make_pair(key, value)));
+ }
+ return DumpSensors(extraTags);
+}
+
////////////////////////////////////////////////////////////////////////////////
#ifdef _unix_
diff --git a/yt/yt/library/profiling/solomon/registry.h b/yt/yt/library/profiling/solomon/registry.h
index 5b8174db026..1d850d3a9bb 100644
--- a/yt/yt/library/profiling/solomon/registry.h
+++ b/yt/yt/library/profiling/solomon/registry.h
@@ -153,6 +153,8 @@ public:
const TProfiler& GetSelfProfiler() const;
NProto::TSensorDump DumpSensors();
+ NProto::TSensorDump DumpSensors(std::vector<TTagId> extraTags);
+ NProto::TSensorDump DumpSensors(const std::optional<TString>& host, const THashMap<TString, TString>& instanceTags);
private:
i64 Iteration_ = 0;
diff --git a/yt/yt/library/profiling/solomon/sensor_set.cpp b/yt/yt/library/profiling/solomon/sensor_set.cpp
index 489923fbdbc..5c857061ffb 100644
--- a/yt/yt/library/profiling/solomon/sensor_set.cpp
+++ b/yt/yt/library/profiling/solomon/sensor_set.cpp
@@ -406,7 +406,7 @@ void TSensorSet::InitializeType(ESensorType type)
}
}
-void TSensorSet::DumpCube(NProto::TCube *cube) const
+void TSensorSet::DumpCube(NProto::TCube *cube, const std::vector<TTagId>& extraTags) const
{
cube->set_sparse(Options_.Sparse);
cube->set_global(Options_.Global);
@@ -414,14 +414,14 @@ void TSensorSet::DumpCube(NProto::TCube *cube) const
cube->set_disable_sensors_rename(Options_.DisableSensorsRename);
cube->set_summary_policy(ToProto<ui64>(Options_.SummaryPolicy));
- CountersCube_.DumpCube(cube);
- TimeCountersCube_.DumpCube(cube);
- GaugesCube_.DumpCube(cube);
- SummariesCube_.DumpCube(cube);
- TimersCube_.DumpCube(cube);
- TimeHistogramsCube_.DumpCube(cube);
- GaugeHistogramsCube_.DumpCube(cube);
- RateHistogramsCube_.DumpCube(cube);
+ CountersCube_.DumpCube(cube, extraTags);
+ TimeCountersCube_.DumpCube(cube, extraTags);
+ GaugesCube_.DumpCube(cube, extraTags);
+ SummariesCube_.DumpCube(cube, extraTags);
+ TimersCube_.DumpCube(cube, extraTags);
+ TimeHistogramsCube_.DumpCube(cube, extraTags);
+ GaugeHistogramsCube_.DumpCube(cube, extraTags);
+ RateHistogramsCube_.DumpCube(cube, extraTags);
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/library/profiling/solomon/sensor_set.h b/yt/yt/library/profiling/solomon/sensor_set.h
index a873254e069..7ecdc3d7f4d 100644
--- a/yt/yt/library/profiling/solomon/sensor_set.h
+++ b/yt/yt/library/profiling/solomon/sensor_set.h
@@ -219,7 +219,7 @@ public:
const TTagRegistry& tagRegistry,
NYTree::TFluentAny fluent) const;
- void DumpCube(NProto::TCube* cube) const;
+ void DumpCube(NProto::TCube* cube, const std::vector<TTagId>& extraTags) const;
int GetGridFactor() const;
int GetObjectCount() const;
diff --git a/yt/yt/library/profiling/unittests/deps/main.cpp b/yt/yt/library/profiling/unittests/deps/main.cpp
index ac20c4df89c..65e02e9149b 100644
--- a/yt/yt/library/profiling/unittests/deps/main.cpp
+++ b/yt/yt/library/profiling/unittests/deps/main.cpp
@@ -7,7 +7,8 @@ using namespace NYT::NProfiling;
////////////////////////////////////////////////////////////////////////////////
-int main() {
+int main()
+{
NYT::NProfiling::TProfiler profiler{"/foo"};
auto gauge = profiler.Gauge("/bar");
gauge.Update(1.0);
diff --git a/yt/yt/library/program/config.cpp b/yt/yt/library/program/config.cpp
index 9e9437bddb0..b5b05c16f04 100644
--- a/yt/yt/library/program/config.cpp
+++ b/yt/yt/library/program/config.cpp
@@ -84,7 +84,7 @@ void TSingletonsConfig::Register(TRegistrar registrar)
registrar.Parameter("solomon_exporter", &TThis::SolomonExporter)
.DefaultNew();
registrar.Parameter("logging", &TThis::Logging)
- .DefaultCtor([] () { return NLogging::TLogManagerConfig::CreateDefault(); });
+ .DefaultCtor([] { return NLogging::TLogManagerConfig::CreateDefault(); });
registrar.Parameter("jaeger", &TThis::Jaeger)
.DefaultNew();
registrar.Parameter("tracing_transport", &TThis::TracingTransport)
diff --git a/yt/yt/library/tracing/jaeger/tracer.cpp b/yt/yt/library/tracing/jaeger/tracer.cpp
index dec77c7f904..574c59add3e 100644
--- a/yt/yt/library/tracing/jaeger/tracer.cpp
+++ b/yt/yt/library/tracing/jaeger/tracer.cpp
@@ -440,7 +440,7 @@ void TJaegerTracer::DequeueAll(const TJaegerTracerConfigPtr& config)
}
THashMap<TString, NProto::Batch> batches;
- auto flushBatch = [&](TString endpoint) {
+ auto flushBatch = [&] (TString endpoint) {
auto itBatch = batches.find(endpoint);
if (itBatch == batches.end()) {
return;
diff --git a/yt/yt/library/ytprof/cpu_profiler.cpp b/yt/yt/library/ytprof/cpu_profiler.cpp
index e04aefa4249..3e64ea38364 100644
--- a/yt/yt/library/ytprof/cpu_profiler.cpp
+++ b/yt/yt/library/ytprof/cpu_profiler.cpp
@@ -183,7 +183,7 @@ TCpuProfilerOptions::TSampleFilter GetActionMinExecTimeFilter(TDuration minExecT
{
auto minCpuDuration = DurationToCpuDuration(minExecTime);
- return [minCpuDuration] () {
+ return [minCpuDuration] {
auto fiberStartTime = GetTraceContextTimingCheckpoint();
if (fiberStartTime == 0) {
return false;
diff --git a/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto b/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto
index 3795f80077b..5242e321cfb 100644
--- a/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto
+++ b/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto
@@ -368,7 +368,7 @@ message TReqStartTransaction
{
message TReplicateToMasterCellTags
{
- repeated int32 cell_tags = 1;
+ repeated uint32 cell_tags = 1;
}
required ETransactionType type = 1;