viable/strict/1790321594: [Dynamo] Port CPython 3.13 test_fnmatch (#197389)
PyTorch 合并 PR #197389,将 CPython 3.13 的 test_fnmatch.py 移植到 PyTorch Dynamo,属于跟踪 issue #196238 的 CPython 测试套件迁移工作。其中依赖 Dynamo 引擎支持的两个测试 test_bytes 与 test_mix_bytes_str 以 @unittest.skip 跳过,引擎层修复留待后续单独 PR。测试计划包含直接运行、PYTORCH_TEST_WITH_DYNAMO=1 运行以及 tools/regenerate_cpython_diffs.py --check。
Development
- First Reportviable/strict/1790321594: [Dynamo] Port CPython 3.13 test_fnmatch (#197389)PyTorch Core
- Industry Responsetrunk/47b776c01f9fa5a10c208cad270672cc0aecc63b: [Dynamo] Port CPython 3.13 test_fnmatch (#197389)PyTorch Core
- Current Assessment这是编译器/运行时兼容性工程的常规增量,而非能力跃迁。它反映 PyTorch 正以 CPython 官方测试套件作为 Dynamo 正确性的外部基准,把「Python 语义等价」变成可回归的工程指标。判断:此类迁移的产业意义在于降低用户把既有 Python 代码交给编译加速时的隐性行为差异,但单条 PR 不足以说明生态格局变化。Agent Pulse · analysis
PyTorch 仓库出现两个发布标签(viable/strict/1790321594 与 trunk/47b776c01f9fa5a10c208cad270672cc0aecc63b),对应同一 PR #197389:把 CPython 3.13 的 test_fnmatch.py 移植进 PyTorch Dynamo 的 CPython 测试目录 test/cpython/v3_13/。该 PR 明确只做测试迁移,不修引擎:test_bytes 与 test_mix_bytes_str 因需要 Dynamo 引擎支持而被 @unittest.skip 跳过,引擎级修复另开 PR。验证方式为直接运行该测试、在 PYTORCH_TEST_WITH_DYNAMO=1 下运行,以及用 regenerate_cpython_diffs.py --check 校验差异。作者为 Guilherme Leobas(Quansight),已获批准。
从证据看,Dynamo 对 CPython 标准库测试的兼容是逐文件、逐用例推进的:fnmatch 中涉及 bytes 与 bytes/str 混合匹配的两个用例仍无法在 Dynamo 下通过,说明编译路径对字节级字符串操作的支持尚不完整。可验证的下一信号是后续单独 PR 是否移除这两个 @unittest.skip,以及 regenerate_cpython_diffs.py --check 的差异清单是否随之收敛。
这是编译器/运行时兼容性工程的常规增量,而非能力跃迁。它反映 PyTorch 正以 CPython 官方测试套件作为 Dynamo 正确性的外部基准,把「Python 语义等价」变成可回归的工程指标。判断:此类迁移的产业意义在于降低用户把既有 Python 代码交给编译加速时的隐性行为差异,但单条 PR 不足以说明生态格局变化。
对使用 torch.compile 的团队,价值在于可预期性:标准库行为被纳入回归测试,意味着升级 PyTorch 时因编译导致的语义偏差更可能被提前发现。建议在自身依赖 fnmatch 等标准库模块的路径上,用 PYTORCH_TEST_WITH_DYNAMO=1 做一次本地验证,作为是否跟进该迁移的判据。
若后续 PR 补齐 bytes 相关引擎支持并取消跳过,可视为 Dynamo 对 CPython 字符串/字节语义覆盖度提升的实证;反之若长期保持 skip,则说明该路径存在结构性限制。观察点是 issue #196238 下 v3_13 目录的 skip 数量变化。