From d5e6f4209424b96237ea5468dd47899e1124dfcb Mon Sep 17 00:00:00 2001 From: PyTorch MergeBot Date: Mon, 30 Jun 2025 18:08:54 +0000 Subject: [PATCH] Revert "Use std::string_view in torchgen (#157050)" This reverts commit 064288cbab94c9931ca2296a2b9723e864f9050a. Reverted https://github.com/pytorch/pytorch/pull/157050 on behalf of https://github.com/jeanschmidt due to Seems to have broken internal builds, more details on D77449943. @ezyang may I count on your help to get those changes merged? ([comment](https://github.com/pytorch/pytorch/pull/157050#issuecomment-3020222668)) --- test/test_overrides.py | 2 ++ tools/autograd/load_derivatives.py | 2 +- torch/csrc/utils/python_arg_parser.cpp | 1 + torchgen/api/python.py | 2 +- torchgen/api/types/types.py | 2 +- torchgen/dest/lazy_ir.py | 14 +++----------- torchgen/gen_aoti_c_shim.py | 2 +- torchgen/static_runtime/generator.py | 3 ++- 8 files changed, 12 insertions(+), 16 deletions(-) diff --git a/test/test_overrides.py b/test/test_overrides.py index 034223543aa..8575bb90271 100644 --- a/test/test_overrides.py +++ b/test/test_overrides.py @@ -675,6 +675,8 @@ def generate_tensor_like_override_tests(cls): return None elif arg_type == "ScalarType": return torch.float32 + elif arg_type == "c10::string_view": + return "" elif arg_type in ("std::string_view", "::std::string_view"): return "" elif arg_type == "SymInt": diff --git a/tools/autograd/load_derivatives.py b/tools/autograd/load_derivatives.py index 28fddf0fb85..f61226f25fb 100644 --- a/tools/autograd/load_derivatives.py +++ b/tools/autograd/load_derivatives.py @@ -969,7 +969,7 @@ def saved_variables( if nctype.type == OptionalCType(BaseCType(stringT)): formula = re.sub( rf"\b{name}\b", - f"{name}.has_value() ? std::optional<::std::string_view>({name}.value()) : std::nullopt", + f"{name}.has_value() ? std::optional({name}.value()) : std::nullopt", formula, ) diff --git a/torch/csrc/utils/python_arg_parser.cpp b/torch/csrc/utils/python_arg_parser.cpp index 6177fcc4086..36a68a2449b 100644 --- a/torch/csrc/utils/python_arg_parser.cpp +++ b/torch/csrc/utils/python_arg_parser.cpp @@ -46,6 +46,7 @@ static std::unordered_map type_map = { {"DeviceIndex", ParameterType::INT64}, {"Stream", ParameterType::STREAM}, {"std::string", ParameterType::STRING}, + {"c10::string_view", ParameterType::STRING}, {"std::string_view", ParameterType::STRING}, {"::std::string_view", ParameterType::STRING}, {"Dimname", ParameterType::DIMNAME}, diff --git a/torchgen/api/python.py b/torchgen/api/python.py index 0c5b9ad5e7b..dbfa7306016 100644 --- a/torchgen/api/python.py +++ b/torchgen/api/python.py @@ -683,7 +683,7 @@ def argument_type_str( elif t.name == BaseTy.float: return "double" elif t.name == BaseTy.str: - return "std::string_view" + return "c10::string_view" elif t.name in [ BaseTy.Tensor, BaseTy.bool, diff --git a/torchgen/api/types/types.py b/torchgen/api/types/types.py index c065934927f..8e068291738 100644 --- a/torchgen/api/types/types.py +++ b/torchgen/api/types/types.py @@ -52,7 +52,7 @@ float8_e5m2fnuzT = BaseCppType("at", "Float8_e5m2fnuz") float8_e4m3fnT = BaseCppType("at", "Float8_e4m3fn") float8_e4m3fnuzT = BaseCppType("at", "Float8_e4m3fnuz") float8_e8m0fnuT = BaseCppType("at", "Float8_e8m0fnu") -stringT = BaseCppType("::std", "string_view") +stringT = BaseCppType("c10", "string_view") generatorT = BaseCppType("at", "Generator") scalarTypeT = BaseCppType("at", "ScalarType") tensorT = BaseCppType("at", "Tensor") diff --git a/torchgen/dest/lazy_ir.py b/torchgen/dest/lazy_ir.py index 258985d015f..b912b8f2427 100644 --- a/torchgen/dest/lazy_ir.py +++ b/torchgen/dest/lazy_ir.py @@ -256,11 +256,7 @@ class GenLazyIR(ABC): [ # This code is just special casing the mapping from string_view -> strings f"{a.name}({a.name}.has_value() ? ::std::make_optional(std::string(*{a.name})) : ::std::nullopt)" - if a.lazy_type.cpp_type() - in ( - "::std::optional<::std::string_view>", - "::std::optional", - ) + if a.lazy_type.cpp_type() == "::std::optional" else f"{a.name}({a.name})" for a in scalar_args ] @@ -270,13 +266,9 @@ class GenLazyIR(ABC): scalar_decls = "\n ".join( [ f"std::string {a.name};" - if a.lazy_type.cpp_type() in ("::std::string_view", "std::string_view") + if a.lazy_type.cpp_type() == "c10::string_view" else f"::std::optional {a.name};" - if a.lazy_type.cpp_type() - in ( - "::std::optional<::std::string_view>", - "::std::optional", - ) + if a.lazy_type.cpp_type() == "::std::optional" else f"{a.lazy_type.cpp_type()} {a.name};" for a in scalar_args ] diff --git a/torchgen/gen_aoti_c_shim.py b/torchgen/gen_aoti_c_shim.py index d6777b267cf..965ae8d2689 100644 --- a/torchgen/gen_aoti_c_shim.py +++ b/torchgen/gen_aoti_c_shim.py @@ -54,7 +54,7 @@ base_type_to_aten_type = { BaseTy.SymInt: "c10::SymInt", BaseTy.Scalar: "c10::Scalar", BaseTy.float: "double", - BaseTy.str: "std::string_view", + BaseTy.str: "::std::string_view", BaseTy.DeviceIndex: "c10::DeviceIndex", BaseTy.Layout: "c10::Layout", BaseTy.MemoryFormat: "c10::MemoryFormat", diff --git a/torchgen/static_runtime/generator.py b/torchgen/static_runtime/generator.py index a9814bd4dee..8ad2fd3c458 100644 --- a/torchgen/static_runtime/generator.py +++ b/torchgen/static_runtime/generator.py @@ -323,7 +323,8 @@ def ivalue_type_conversion_method( ), BaseTy.str: ( (False, "toStringView()"), - (False, "toOptional()"), + (False, "toOptional()"), + (False, "toOptional<::std::string_view>()"), ), }