Skip to content

SOT Python3.13 支持任务汇总 #69245

Open
@GoldenStain

Description

背景

SOT 新版本适配时间到~又到了一年一度的 Python 新版本适配时间(虽然实际上是两年好几度),如今 Python 3.13 已经发布,我们自然也是需要对 Python 3.13 进行适配了。

SOT 版本适配的相关背景已经在 #61173 中有所提及,这里就不再赘述一遍了。

不过值得注意的一点是,根据现在对于 EvalFrame 的适配工作难度来看,Python 3.13 的适配难度比预想的要低一些,大概和 Python 3.12 相当。因为 Python 3.13 中的 JIT、free-threading 都还是实验性功能,SOT 整体适配工作量不大。free-threading 作为单独的可执行文件,会作为额外专项进行适配,而且目前来看,对 SOT 影响不大,真正有影响的是框架其它 pybind 层的 API 变动(需要保证线程安全,避免数据竞争)。

Eval Frame 适配

字节码适配

字节码适配任务即对新版本新增、修改的字节码进行适配,根据 Python 3.13 字节码变更Python 各版本字节码差异表格,变动和新增字节码如下:

行为变动

序号 字节码名称 认领人 PR
1 RESUME
2 MAKE_FUNCTION @GoldenStain #69567

新增

序号 字节码名称 认领人 PR
1 TO_BOOL @GoldenStain #69567
2 CALL_KW @SigureMo #69431
3 SET_FUNCTION_ATTRIBUTE @GoldenStain #69567
4 CONVERT_VALUE @GoldenStain #69401
5 FORMAT_SIMPLE @GoldenStain #69346
6 FORMAT_WITH_SPEC @GoldenStain #69401

其它模块适配

TODO...

单测汇总见 #69246

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions