PEP 11 – CPython 平台支持

猫勺猫勺 02-21 423 阅读 0 评论

抽象

PEP 记录了操作系统(平台)如何成为 在 CPython 中支持,目前支持哪些平台,以及 记录过去的支持。

理由

随着时间的流逝,CPython 源代码收集了各种 特定于平台的代码,在某个时间点,它是 认为有必要在特定平台上使用 CPython。 如果无法访问此平台,则无法确定 是否仍需要此代码。因此,此代码可能会 要么在 CPython 的进化过程中中断,要么可能成为 随着平台的发展,也没有必要。

允许这些片段生长会带来以下风险: 不可维护性:没有大量专家 平台,无法确定某某 对 CPython 源代码的更改将适用于所有受支持的 平台。

为了降低这种风险,此 PEP 指定了 平台被认为是由 CPython 支持的,并提供 删除 CPython 很少或没有 CPython 的平台的代码的过程 用户。

此 PEP 还列出了 CPython 支持的平台 译员。这让人们直接知道什么是平台 由 CPython 开发团队提供支持。

支持层

平台支持分为多个层。每一层都配有 不同的要求导致做出不同的承诺 关于支持。

要晋升到一个级别,需要指导委员会的支持,并且是 预计将由团队共识驱动。降级到较低级别 当不再满足当前层的要求时发生 基于以下判断的延长时间的平台 发布经理或指导委员会。对于不再的平台 通过新功能版本的 B1 满足任何层的要求,即 将发布公告,警告社区即将删除 对平台的支持(例如在 B1 公告中)。如果 平台未在至少一个层中对齐 第一个候选版本,它将在此 PEP 中列为不受支持。

第 1 层

  • 地位

  • CI 故障会阻止发布。

  • 不允许合并会破坏分支的更改; 任何破损都应立即修复或恢复。main

  • 所有核心开发人员都有责任保留 ,因此这些 平台,工作。main

  • 这些平台上的故障会阻止发布。

目标三人组笔记
i686-pc-窗口-msvc
x86_64-pc-窗口-msvc
x86_64-苹果-达尔文BSD libc,叮当声
x86_64-未知-linux-gnu格利布卡、海湾合作委员会

第2层

  • 地位

  • 必须有一个可靠的构建机器人。

  • 至少有两名核心开发人员已注册以支持该平台。

  • 破坏任何这些平台的更改将被修复,或者 在 24 小时内恢复。

  • 这些平台上的故障会阻止发布。

目标三人组笔记接触
aarch64-苹果-达尔文内德·戴利、罗纳德·奥索伦、那东熙
aarch64-unknown-linux-gnu

格利布卡、海湾合作委员会

格利布克,叮当声

彼得·维克托林,维克多·斯廷纳

维克多·斯蒂纳,格雷戈里·史密斯

wasm32-未知-wasiWASI SDK、Wasmtime布雷特·坎农,埃里克·斯诺
x86_64-未知-linux-gnu格利布克,叮当声维克多·斯蒂纳,格雷戈里·史密斯

第3层

  • 地位

  • 必须有一个可靠的构建机器人。

  • 至少有一名核心开发人员已注册以支持该平台。

  • 对故障没有响应 SLA。

  • 这些平台上的故障不会阻止发布。

目标三人组笔记
接触
aarch64-pc-窗口-msvc
史蒂夫·道尔
armv7l-unknown-linux-gnueabihfRaspberry Pi 操作系统、glibc、gcc格雷戈里·史密斯
powerpc64le-未知-linux-gnu

格利布克,叮当声

格利布卡、海湾合作委员会

维克多·斯廷纳

维克多·斯廷纳

s390x-未知-linux-gnu格利布卡、海湾合作委员会维克多·斯廷纳
x86_64-未知-freeBSDBSD libc,叮当声维克多·斯廷纳

所有其他平台

对平台的支持可能是代码库中的部分支持,例如 从围绕平台支持的积极开发或意外。 对上述层中未列出的平台的代码更改可能会被拒绝 或者从代码库中删除,而没有弃用过程,如果它们 造成维护负担或阻碍一般改进。

此处未列出的平台可能受更广泛的 Python 支持 社区在某种程度上。如果上面未列出您想要的平台, 请在线搜索,看看是否有人已经提供了 以某种形式提供支持。

笔记

Microsoft Windows

Windows 10 之前的 Windows 版本遵循 Microsoft 的固定生命周期策略, 在发布后 5 年的主流支持阶段, 如果产品一般可以买到, 以及额外的 5 年扩展支持阶段, 付费支持仍然可用,并且发布了某些错误修复。扩展安全更新 (ESU) 是面向大量企业客户的付费计划 作为在扩展支持结束后接收某些安全更新的“最后手段”选项。 ESU 被视为扩展支持到期后的一个不同阶段。

Windows 10 及更高版本遵循 Microsoft 的现代生命周期策略, 这因产品、版本、版本和渠道而异。 通常,功能更新(1709、22H2)每 6-12 个月发生一次 并得到 18-36 个月的支持; 服务器和 IoT 版本以及 LTSC 通道版本支持 5-10 年, 以及主要版本(Windows 10、Windows 11)的最新功能发布 通常在发布后至少 10 年内收到新的更新。 Microsoft 的 Windows 生命周期常见问题解答提供了更具体和最新的指南

CPython 的 Windows 支持目前遵循 Microsoft 的生命周期。 新功能版本 X.Y.0 将支持所有 Windows 版本 其扩展支持阶段尚未到期。 后续的错误修复版本将支持相同的 Windows 版本 作为原始功能版本,即使 Microsoft 不再支持。 CPython 处于维护模式时发布的新版本 Windows 可由核心团队和发布经理自行决定是否支持。

截至 2024 年,我们目前对 Microsoft 生命周期的解释是 适用于 IoT 和嵌入式系统的 Windows 超出了新 CPython 版本的范围, 因为这样做的目的是避免功能更新。Windows Server 通常会 成为仍在接收免费安全修复程序的最旧版本,这将 确定具有等效 API 版本的最早支持的客户端版本 (通常已过了其生命周期的终点)。

每个功能版本都是由特定版本的 Microsoft 构建的 Visual Studio。该版本在以下情况下应获得主流支持 释放。扩展模块的开发人员通常需要 使用相同的 Visual Studio 版本;他们关心的是 他们需要使用的版本的可用性,以及保持 版本小的动物园。CPython 源代码树将保留 较旧的 Visual Studio 版本的未维护生成文件,用于 补丁将被接受。此类构建文件将从 源代码树 3 年后对编译器的扩展支持有 已结束(但继续在版本控制中保持可用)。

旧版 C 语言环境

从 CPython 3.7.0 开始,*nix 平台有望提供 至少一个 (full locale)、(full locale) 或 (-only locale) 作为旧区域设置的替代方法。C.UTF-8C.utf8UTF-8LC_CTYPEC

任何与 Unicode 相关的集成问题,这些问题仅在旧区域设置中发生,并且无法在适当配置的非 ASCII 中重现 locale 将关闭为“无法修复”。C

不支持的平台

如果平台退出分层支持,则必须发布注释 在此 PEP 中,该平台不再受到积极支持。这 注意必须包括:

系统的名称,

不支持此平台的第一个版本号 ,以及

历史支持代码活跃的第一个版本 删除。

在某些情况下,无法确定 使用某些代码的系统(例如,当 autoconf 测试 缺少一些被认为存在于所有特征上 支持的系统)。在这种情况下,名称将给出精确的 条件(通常是预处理器符号),将变为 支持。

同时,必须更改 CPython 构建以生成 如果有人试图在此平台上安装 CPython,则发出警告。上 使用 autoconf 的平台,configure 也应该发出警告 关于不受支持的平台。

这为平台的潜在用户提供了向前迈进的机会 并提供维护。我们不会对待失去第 3 层的平台 支持比从未支持的平台更糟糕。

不再支持的平台

名称:MS-DOS、MS-Windows 3.x

不支持:Python 2.0

删除的代码:Python 2.1

名称:SunOS 4

不支持:Python 2.3

删除的代码:Python 2.4

常用中文名:DYNIX

不支持:Python 2.3

删除的代码:Python 2.4

名称:dgux

不支持:Python 2.3

删除的代码:Python 2.4

名称:Minix

不支持:Python 2.3

删除的代码:Python 2.4

名称:Irix 4 和 –with-sgi-dl

不支持:Python 2.3

删除的代码:Python 2.4

名称:Linux 1

不支持:Python 2.3

删除的代码:Python 2.4

名称:定义__d6_pthread_create的系统 (configure.in)

不支持:Python 2.3

删除的代码:Python 2.4

名称:定义PY_PTHREAD_D4、PY_PTHREAD_D6、 或PY_PTHREAD_D7 thread_pthread.h

不支持:Python 2.3

删除的代码:Python 2.4

名称:使用 –with-dl-dld 的系统

不支持:Python 2.3

删除的代码:Python 2.4

名称:使用 –without-universal-newlines 的系统,

不支持:Python 2.3

删除的代码:Python 2.4

名称:MacOS 9

不支持:Python 2.4

删除的代码:Python 2.4

名称:使用 –with-wctype-functions 的系统

不支持:Python 2.6

删除的代码:Python 2.6

名称:Win9x、WinME、NT4

不支持:Python 2.6(2.5 安装程序中的警告)

删除的代码:Python 2.6

名称:AtheOS

不支持:Python 2.6(将“AtheOS”更改为“音节”)

构建中断:Python 2.7(编辑配置以重新启用)

删除的代码:Python 3.0

名称:BeOS

不支持:Python 2.6(配置中的警告)

构建中断:Python 2.7(编辑配置以重新启用)

删除的代码:Python 3.0

名称:使用 Mach C 线程的系统

不支持:Python 3.2

删除的代码:Python 3.3

名称:SunOS 轻量级进程 (LWP)

不支持:Python 3.2

删除的代码:Python 3.3

名称:使用 –with-pth 的系统(GNU pth 线程)

不支持:Python 3.2

删除的代码:Python 3.3

名称:使用 Irix 线程的系统

不支持:Python 3.2

删除的代码:Python 3.3

名称:OSF* 系统(问题 8606)

不支持:Python 3.2

删除的代码:Python 3.3

名称:OS/2(问题 16135)

不支持:Python 3.3

删除的代码:Python 3.4

名称:VMS(问题 16136)

不支持:Python 3.3

删除的代码:Python 3.4

名称:Windows 2000

不支持:Python 3.3

删除的代码:Python 3.4

名称:COMSPEC 指向 command.com 的 Windows 系统

不支持:Python 3.3

删除的代码:Python 3.4

名称:RISC OS

不支持:Python 3.0(实际上删除了一些代码)

删除的代码:Python 3.4

常用中文名:IRIX

不支持:Python 3.7

删除的代码:Python 3.7

名称:不支持多线程的系统

不支持:Python 3.7

删除的代码:Python 3.7

名称:wasm32-unknown-emscripten

不支持:Python 3.13

代码已删除:未知

版权

本文档被置于公共领域或位于 CC0-1.0-通用许可证,以更宽松的许可证为准。

The End 微信扫一扫

文章声明:以上内容(如有图片或视频在内)除非注明,否则均为腾龙猫勺儿原创文章,转载或复制请以超链接形式并注明出处。

本文作者:猫勺本文链接:https://www.jo6.cn/post/17.html

上一篇 下一篇

相关阅读

发表评论

访客 访客
快捷回复: 表情:
评论列表 (暂无评论,423人围观)

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码