a635505a99
[Code Clean] Remove deadcodes about Python3.9 [6/N] ( #163645 )
...
As the title stated.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/163645
Approved by: https://github.com/albanD
ghstack dependencies: #163626 , #163627 , #163629 , #163643 , #163644
2025-09-24 07:30:50 +00:00
c8255c67cd
redirect iter(range)
to range.__iter__()
( #161803 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/161803
Approved by: https://github.com/anijain2305
ghstack dependencies: #161801 , #161802
2025-09-04 02:33:03 +00:00
e3718c4855
[dict] Implement dict.__ior__ and fix return type in dict.__or__ ( #155072 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/155072
Approved by: https://github.com/anijain2305
ghstack dependencies: #160156
2025-08-27 15:46:40 +00:00
3d406429b0
[dynamo][vllm] Support typing.get_type_hints ( #161362 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/161362
Approved by: https://github.com/Skylion007 , https://github.com/StrongerXi , https://github.com/jansel
2025-08-27 09:55:31 +00:00
4c36c8a994
[dynamo] Support method calls on complex ConstantVariables ( #161122 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/161122
Approved by: https://github.com/mlazos , https://github.com/guilhermeleobas
2025-08-22 21:40:03 +00:00
35e4d97e04
[dynamo] Support builtin complex with constant args ( #160799 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/160799
Approved by: https://github.com/guilhermeleobas , https://github.com/mlazos
2025-08-19 20:38:54 +00:00
c6333f7dae
Fixes for collections.NamedTuple
( #159367 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/159367
Approved by: https://github.com/mlazos
ghstack dependencies: #159365 , #159366 , #159368 , #159483 , #159902 , #159864 , #159865
2025-08-18 17:32:59 +00:00
74871d4d46
[collections.abc] Ensure that binop calls works with UserDefinedObjects ( #159865 )
...
Changes:
(1) Replace UserDefinedSetVariable by UserDefinedObjectVariable in all binop calls
Test plan:
(1) The three tests from CPython `test_collections.py` ensures that Dynamo can trace through a dunder method (e.g. __add__, __ixor__, etc) defined in a user defined class
Pull Request resolved: https://github.com/pytorch/pytorch/pull/159865
Approved by: https://github.com/mlazos
ghstack dependencies: #159365 , #159366 , #159368 , #159483 , #159902 , #159864
2025-08-16 20:44:40 +00:00
f019da2979
Implement list(UserDefinedObject)
via force_unpack_var_sequence
( #159864 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/159864
Approved by: https://github.com/mlazos
ghstack dependencies: #159365 , #159366 , #159368 , #159483 , #159902
2025-08-16 20:44:40 +00:00
b78968b4d1
Support next(iterator, default)
( #159483 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/159483
Approved by: https://github.com/mlazos
ghstack dependencies: #159365 , #159366 , #159368
2025-08-15 19:08:21 +00:00
e5621b4d8b
Fixes for collections.Counter
( #159368 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/159368
Approved by: https://github.com/mlazos
ghstack dependencies: #159365 , #159366
2025-08-15 19:08:21 +00:00
2542e71f3f
Change mutation type of MutableMappingVariable
to AttributeMutationNew
( #159366 )
...
Also add MutableMappingVariable to `call_or_` / `call_ior`
Pull Request resolved: https://github.com/pytorch/pytorch/pull/159366
Approved by: https://github.com/zou3519
ghstack dependencies: #159365
2025-08-15 19:08:21 +00:00
f9be65cea4
[iter] Wrap iter(..) call in a ObjectIteratorVariable ( #156460 )
...
This object keeps track when the iterator is exhausted (raise Stopiteration).
Pull Request resolved: https://github.com/pytorch/pytorch/pull/156460
Approved by: https://github.com/zou3519
ghstack dependencies: #156371 , #156416
2025-07-29 21:24:20 +00:00
4e3e3dc0a7
[iter] support iter(callable, sentinel)
( #156416 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/156416
Approved by: https://github.com/XuehaiPan , https://github.com/zou3519
ghstack dependencies: #156371
2025-07-29 21:24:20 +00:00
fcf59df2b6
[iter] Add support for sequence protocol in iter(..)
( #156371 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/156371
Approved by: https://github.com/zou3519
2025-07-29 21:24:20 +00:00
efc810c7d0
[Bugfix] Fix circular import between export and dynamo from tensor fn map ( #158931 )
...
Fixes #158120
The issue was caused by populating a builtin tensor fn map at import time; if torch.export.export was called before any dynamo imports with the `meta` device, this map would not be populated, and so would populate on import time which would try to call `torch.disable`, which would not yet be initialized
Fix is to populate this map lazily
```
python test/dynamo/imports_non_circular_repro.py TestImports.test_circular_import_with_export_meta
```
Pull Request resolved: https://github.com/pytorch/pytorch/pull/158931
Approved by: https://github.com/StrongerXi , https://github.com/mlazos , https://github.com/anijain2305
2025-07-24 22:24:57 +00:00
0204099762
Raise exception in Dynamo if op fails in the interpreter ( #158661 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/158661
Approved by: https://github.com/williamwen42
ghstack dependencies: #158660
2025-07-23 22:31:51 +00:00
576253c476
[math] Trace float.fromhex
( #156976 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/156976
Approved by: https://github.com/zou3519
ghstack dependencies: #156975 , #156977
2025-07-23 16:12:08 +00:00
ba8d19ec02
[dict] Allow Dynamo to trace through explicit dict dunder method call ( #154794 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/154794
Approved by: https://github.com/mlazos
ghstack dependencies: #154003 , #154793
2025-07-10 22:50:39 +00:00
e84710d1e7
[dict] Raise TypeError in dict methods ( #154003 )
...
Raise TypeError in the following scenarios:
* #args mismatch
* arg is unhashable
Pull Request resolved: https://github.com/pytorch/pytorch/pull/154003
Approved by: https://github.com/mlazos , https://github.com/zou3519
2025-07-10 22:50:39 +00:00
e49acfc5c5
[list] Raise exception in invalid list method call ( #156148 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/156148
Approved by: https://github.com/zou3519
ghstack dependencies: #153969
2025-07-07 14:51:10 +00:00
dfcda613b6
Ensure Dynamo can trace through explicit dunder method call ( #154366 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/154366
Approved by: https://github.com/zou3519
ghstack dependencies: #153150 , #152991 , #154539 , #153553 , #154063 , #154064 , #154065 , #154066 , #154263
2025-07-04 00:46:05 +00:00
11c71053e0
[Dynamo] [Set] Implement some binop operators for dict/set/frozenset/dict_keys ( #154063 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/154063
Approved by: https://github.com/williamwen42 , https://github.com/zou3519
ghstack dependencies: #153150 , #152991 , #154539 , #153553
2025-07-04 00:45:34 +00:00
f651e28f80
[FrozenSet] Fixes for FrozenSet ( #152991 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/152991
Approved by: https://github.com/zou3519
ghstack dependencies: #153150
2025-07-04 00:45:11 +00:00
48560eef80
[dynamo] Fix bug in dict(mapping_proxy) ( #157467 )
...
Fixes https://github.com/pytorch/pytorch/issues/157284
Pull Request resolved: https://github.com/pytorch/pytorch/pull/157467
Approved by: https://github.com/jansel , https://github.com/StrongerXi
Co-authored-by: Aaron Gokaslan <aaronGokaslan@gmail.com >
2025-07-02 22:13:02 +00:00
9d175bc7e6
Fixes for CPython int/float tests ( #155978 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/155978
Approved by: https://github.com/zou3519
2025-07-02 15:04:00 +00:00
c202a7329a
Revert "Fixes for CPython int/float tests ( #155978 )"
...
This reverts commit 23491519d288dedb2a54cfad5fef7fcb2ad8eade.
Reverted https://github.com/pytorch/pytorch/pull/155978 on behalf of https://github.com/XuehaiPan due to sys.get_int_max_str_digits is not always available ([comment](https://github.com/pytorch/pytorch/pull/155978#issuecomment-3021990027 ))
2025-07-01 06:16:49 +00:00
23491519d2
Fixes for CPython int/float tests ( #155978 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/155978
Approved by: https://github.com/zou3519
2025-06-30 19:42:11 +00:00
da1f337bc4
Revert "Fixes for CPython int/float tests ( #155978 )"
...
This reverts commit fab53dfdf1d89cecd5e82b12cced9b6dd217e87c.
Reverted https://github.com/pytorch/pytorch/pull/155978 on behalf of https://github.com/guilhermeleobas due to failing in trunk ([comment](https://github.com/pytorch/pytorch/pull/155978#issuecomment-3019457531 ))
2025-06-30 14:49:44 +00:00
fab53dfdf1
Fixes for CPython int/float tests ( #155978 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/155978
Approved by: https://github.com/zou3519
2025-06-30 14:15:47 +00:00
0decd966af
Revert "Fixes for CPython int/float tests ( #155978 )"
...
This reverts commit 216bd6091ec52865052282eced7e6d5d2a4b4fb4.
Reverted https://github.com/pytorch/pytorch/pull/155978 on behalf of https://github.com/huydhn due to Some tests are still failing in trunk ([comment](https://github.com/pytorch/pytorch/pull/155978#issuecomment-3014185210 ))
2025-06-27 19:39:41 +00:00
216bd6091e
Fixes for CPython int/float tests ( #155978 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/155978
Approved by: https://github.com/zou3519
2025-06-27 16:41:00 +00:00
d06a406656
[dynamo] Graph break on torch.Tensor.data
assignment with mismatched dtype ( #156623 )
...
Fixes #152162 . Discussed with @bdhirsh and decided this is the easiest
workaround for now.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/156623
Approved by: https://github.com/bdhirsh
2025-06-25 02:03:04 +00:00
1dc1eedd43
Revert "[dynamo] Graph break on torch.Tensor.data
assignment with mismatched dtype ( #156623 )"
...
This reverts commit c1ad4b8e7a16f54c35a3908b56ed7d9f95eef586.
Reverted https://github.com/pytorch/pytorch/pull/156623 on behalf of https://github.com/albanD due to Breaks Dynamo tests in trunk ([comment](https://github.com/pytorch/pytorch/pull/156623#issuecomment-3001806841 ))
2025-06-24 20:44:42 +00:00
c1ad4b8e7a
[dynamo] Graph break on torch.Tensor.data
assignment with mismatched dtype ( #156623 )
...
Fixes #152162 . Discussed with @bdhirsh and decided this is the easiest
workaround for now.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/156623
Approved by: https://github.com/bdhirsh
2025-06-24 19:33:11 +00:00
640f5a7090
[dynamo] Support builtin bool on non-constant VTs ( #155863 )
...
In practice `bool(...)` is either constant folded by Dynamo or used for
branching (so most of its emulation logic lived in
`InstructionTranslator.generic_jump`.
This patch adds a dedicated `bool` hanlder (only for symbolic
bool/int/float for now), and fixes #136075 .
Pull Request resolved: https://github.com/pytorch/pytorch/pull/155863
Approved by: https://github.com/williamwen42
2025-06-23 15:53:15 +00:00
1b2146fc6d
[BE][4/16] fix typos in torch/ (torch/_dynamo/) ( #156314 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/156314
Approved by: https://github.com/jingsh
ghstack dependencies: #156313
2025-06-23 02:57:19 +00:00
5b427c92a8
Revert "[BE][4/16] fix typos in torch/ (torch/_dynamo/) ( #156314 )"
...
This reverts commit ead741c5fb0036e0fc95b79d4fe1af3a426e1306.
Reverted https://github.com/pytorch/pytorch/pull/156314 on behalf of https://github.com/atalman due to export/test_torchbind.py::TestCompileTorchbind::test_compile_error_on_input_aliasing_contents_backend_aot_eager [GH job link](https://github.com/pytorch/pytorch/actions/runs/15804799771/job/44548489912 ) [HUD commit link](c95f7fa874
) ([comment](https://github.com/pytorch/pytorch/pull/156313#issuecomment-2994171213 ))
2025-06-22 12:31:57 +00:00
ead741c5fb
[BE][4/16] fix typos in torch/ (torch/_dynamo/) ( #156314 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/156314
Approved by: https://github.com/jingsh
ghstack dependencies: #156313
2025-06-22 08:43:18 +00:00
d1947a8707
Migrate from lru_cache to cache ( #155613 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/155613
Approved by: https://github.com/ezyang
ghstack dependencies: #155612
2025-06-11 19:44:18 +00:00
07eb374e7e
[dynamo] Avoid unncessary caching source codegen ( #155376 )
...
We only need to cache a source (e.g., `x.y.z`) into a temporary local if
it's used multiple times in the codegen, otherwise we'd just be creating
redundant `DUP` and `STORE_FAST tmp_...` instructions, which might
degrade perf and definitely makes generated bytecode harder to read.
Example:
```python
import torch
@torch.compile(backend="eager")
def fn(x, y):
return x + y
fn(torch.ones(2), torch.ones(1))
```
Original bytecode:
```verbatim
[0/0] [__bytecode] 3 0 RESUME 0
[0/0] [__bytecode]
[0/0] [__bytecode] 5 2 LOAD_FAST 0 (x)
[0/0] [__bytecode] 4 LOAD_FAST 1 (y)
[0/0] [__bytecode] 6 BINARY_OP 0 (+)
[0/0] [__bytecode] 10 RETURN_VALUE
```
Modified bytecode (before this patch):
```verbatim
[__bytecode] 3 0 RESUME 0
[__bytecode] 2 LOAD_GLOBAL 1 (NULL + __compiled_fn_1_578c8d9a_2a9b_4d15_bac7_267591cdee32)
[__bytecode] 14 LOAD_FAST 0 (x)
[__bytecode] 16 COPY 1
[__bytecode] 18 STORE_FAST 3 (tmp_1)
[__bytecode] 20 LOAD_FAST 1 (y)
[__bytecode] 22 COPY 1
[__bytecode] 24 STORE_FAST 4 (tmp_2)
[__bytecode] 26 PRECALL 2
[__bytecode] 30 CALL 2
[__bytecode] 40 STORE_FAST 2 (graph_out_0)
[__bytecode] 42 LOAD_FAST 2 (graph_out_0)
[__bytecode] 44 LOAD_CONST 1 (0)
[__bytecode] 46 BINARY_SUBSCR
[__bytecode] 56 DELETE_FAST 2 (graph_out_0)
[__bytecode] 58 RETURN_VALUE
```
Modified bytecode (after this patch):
```verbatim
[__bytecode] 3 0 RESUME 0
[__bytecode] 2 LOAD_GLOBAL 1 (NULL + __compiled_fn_1_2c498af2_ce5c_49cb_abba_a0c7489b09ce)
[__bytecode] 14 LOAD_FAST 0 (x)
[__bytecode] 16 LOAD_FAST 1 (y)
[__bytecode] 18 PRECALL 2
[__bytecode] 22 CALL 2
[__bytecode] 32 STORE_FAST 2 (graph_out_0)
[__bytecode] 34 LOAD_FAST 2 (graph_out_0)
[__bytecode] 36 LOAD_CONST 1 (0)
[__bytecode] 38 BINARY_SUBSCR
[__bytecode] 48 DELETE_FAST 2 (graph_out_0)
[__bytecode] 50 RETURN_VALUE
```
Pull Request resolved: https://github.com/pytorch/pytorch/pull/155376
Approved by: https://github.com/williamwen42
2025-06-10 19:38:15 +00:00
b981fb6744
Add docblock to torch/_dynamo/variables/builtin.py ( #155402 )
...
Add comprehensive module docstring explaining built-in function and type
variable tracking, including handling of Python built-ins, type constructors,
operators, and special constructs during symbolic execution.
Originally generated by claude but reviewed and edited by me.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/155402
Approved by: https://github.com/Skylion007
ghstack dependencies: #155403
2025-06-08 15:24:29 +00:00
e9c31fb86d
[torch.compile] handle a custom __delattr__ method correctly ( #150899 )
...
Fixes #150765
- handle a custom __delattr__ method correctly
Test:
```
import torch
class MyObject:
def __init__(self, val):
self.val = val
# Flag to track deletion attempts instead of using print
self.deletion_attempted = False
def __delattr__(self, attr):
if attr == "val":
# Set flag instead of printing
self.deletion_attempted = True
else:
super().__delattr__(attr)
@torch.compile(fullgraph=True, backend="eager")
def test(input_tensor):
instance_a = MyObject(1)
instance_b = MyObject(2)
del instance_a.val
del instance_b.val
exists_a = hasattr(instance_a, 'val')
exists_b = hasattr(instance_b, 'val')
deletion_attempted_a = instance_a.deletion_attempted
deletion_attempted_b = instance_b.deletion_attempted
return input_tensor + 1, exists_a, exists_b, deletion_attempted_a, deletion_attempted_b
# Run the test
result = test(torch.ones(1))
print(f"Result tensor: {result[0]}")
print(f"val attribute still exists on instance_a: {result[1]}")
print(f"val attribute still exists on instance_b: {result[2]}")
print(f"Deletion was attempted on instance_a: {result[3]}")
print(f"Deletion was attempted on instance_b: {result[4]}")
```
output:
```
(base) sany@sandishs-Laptop pytorch % python3 test_delattr_fix.py
Result tensor: tensor([2.])
val attribute still exists on instance_a: True
val attribute still exists on instance_b: True
Deletion was attempted on instance_a: True
Deletion was attempted on instance_b: True
```
```
(pytorch-dev) sany@sandishs-Laptop pytorch % python3 -m pytest test/dynamo/test_repros.py::ReproTests::test_delattr_return -v
========================================================= test session starts =========================================================
platform darwin -- Python 3.12.5, pytest-8.3.5, pluggy-1.5.0 -- /Library/Frameworks/Python.framework/Versions/3.12/bin/python3
cachedir: .pytest_cache
rootdir: /Users/sany/git/pytorch
configfile: pytest.ini
plugins: typeguard-4.3.0
collected 1 item
Running 1 items in this shard
test/dynamo/test_repros.py::ReproTests::test_delattr_return PASSED [0.0659s] [100%]
========================================================== 1 passed in 1.71s ==========================================================
(pytorch-dev) sany@sandishs-Laptop pytorch %
```
Pull Request resolved: https://github.com/pytorch/pytorch/pull/150899
Approved by: https://github.com/jansel , https://github.com/StrongerXi
2025-06-04 17:27:20 +00:00
1258aac1c2
[dynamo] Upcast torch.Size + tuple to be of size torch.Size ( #154830 )
...
Fixes https://github.com/pytorch/pytorch/issues/154432
Pull Request resolved: https://github.com/pytorch/pytorch/pull/154830
Approved by: https://github.com/StrongerXi , https://github.com/Skylion007 , https://github.com/williamwen42
2025-06-02 17:57:23 +00:00
7368eeba5e
[dynamo][guards] Prevent LENGTH guard on nn modules ( #154763 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/154763
Approved by: https://github.com/williamwen42
2025-05-31 05:32:31 +00:00
7183f52675
[dynamo] Support namedtuple subclass ( #153982 )
...
Fixes #133762 . This involves
1. support tuple subclass constructed inside compile region.
2. handle the "fake" global scope associated with NamedTuple-generated
`__new__`.
3. handle `namedtuple._tuplegetter` more faithfully.
Differential Revision: [D75488091](https://our.internmc.facebook.com/intern/diff/D75488091 )
Pull Request resolved: https://github.com/pytorch/pytorch/pull/153982
Approved by: https://github.com/jansel
ghstack dependencies: #154176
2025-05-30 16:14:37 +00:00
f66a159db5
[Set] Raise TypeError if set is called with the wrong number of arguments ( #152990 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/152990
Approved by: https://github.com/anijain2305
ghstack dependencies: #150792 , #152987 , #152988 , #152904 , #152901 , #152902 , #152903 , #152905 , #152906 , #152989 , #152907 , #152908
2025-05-16 14:28:32 +00:00
cf7021a0ee
[Set] Handle exception in ConstantVariable operation ( #152987 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/152987
Approved by: https://github.com/williamwen42 , https://github.com/anijain2305
ghstack dependencies: #150792
2025-05-16 14:28:32 +00:00
a4459cd4e3
Remove property
from python_type function ( #152900 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/152900
Approved by: https://github.com/amjames , https://github.com/anijain2305
ghstack dependencies: #153070
2025-05-13 16:26:25 +00:00
ae1e51b6ad
Add infra to run CPython tests under Dynamo ( #150787 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/150787
Approved by: https://github.com/zou3519
2025-05-07 04:03:14 +00:00