Files
pikasTech-unidesk/project-management/PJ2026-05/specs/PJ2026-0502-static-acceleration.md
T
2026-07-21 06:34:06 +02:00

4.2 KiB

PJ2026-0502 静态加速需求规格

修改历史

版本 对应 commit id 更新日期 变更说明
v0.1 待本版本提交 2026-07-21 建立静态加速独立路线边界,隔离 V2 动态内核。

修改历史只记录规格语义变更,不记录实现进度、阶段基线或一次性证据。

正文

PJ2026-0502 静态加速需求规格

1. 文档控制

字段 内容
编号 PJ2026-0502
短名 静态加速
层级 L1 方向
规格状态 已生效
实现引用版本 v0.1
需求规格模板 ISO/IEC/IEEE 29148 需求规格模板
上级规格 PJ2026-05 PikaPython 总规格

2. 目的和范围

2.1 目的

静态加速路线的边界如下:

  • 面向能够显式提供编译期约束的计算代码;
  • 独立研究和交付高性能执行能力;
  • 本规格只定义与 V2 的稳定隔离边界;
  • 具体类型系统、编译 IR、后端和接入方式由后续 L2 SPEC 决策。

2.2 范围内

  • 显式选择静态执行的函数、模块或文件边界。
  • 静态语义、编译诊断、独立执行产物和动态运行时边界调用。
  • 与 V1、V2、MicroPython native/Viper 和 C binding 的可比较 benchmark。

2.3 范围外

  • 改变 V2 默认动态语言语义。
  • 要求 V2 使用 type hint、LLVM、JIT 或静态产物。
  • 用静态 workload 的结果证明动态 V2 内核性能。
  • 在没有独立规格和资源验证时选定 LLVM 或其他重型工具链。

3. 术语表

术语 定义
显式选择 源码或构建配置清楚声明代码进入静态路线,不由运行时猜测。
边界调用 动态运行时与静态产物之间的参数、返回值、异常和资源所有权转换。

4. 系统边界和接口

边界项 内容
外部使用者 需要静态计算性能的嵌入式开发者和自动化构建系统。
外部输入 显式静态源码、编译约束、目标配置和边界绑定。
受控资源 静态编译器、执行产物、边界适配和诊断。
外部输出 静态执行产物、边界调用结果、编译错误和资源报告。
用户接口 后续 L2 SPEC 定义的显式选择语法和构建入口。
系统边界 静态路线只接管显式选择代码,不拥有 V2 动态内核。

5. 路线边界

flowchart LR
  SRC[显式静态源码] --> SC[静态编译路线]
  SC --> ART[独立执行产物]
  V2[V2 动态内核] <-->|稳定边界调用| ART
  SC -. 不改变 .-> V2

6. 原子需求

6.1 STATIC-L1-REQ-001 独立演进

编号 短名 主责模块 关联模块
STATIC-L1-REQ-001 独立演进 后续静态编译 L2 PJ2026-0501 V2内核

静态路线必须:

  • 独立声明语言前提、编译工具链和目标平台;
  • 独立声明资源预算和验收结果;
  • 禁止其依赖进入 V2 最小构建、默认运行时或发布门禁。

6.2 STATIC-L1-REQ-002 显式边界

编号 短名 主责模块 关联模块
STATIC-L1-REQ-002 显式边界 后续边界互操作 L2 PJ2026-0501 V2内核

静态路线的边界调用必须满足:

  • 由源码或构建配置显式选择;
  • 明确动态与静态执行之间的值表示和内存所有权;
  • 明确错误传播和调用成本;
  • 不得依赖未声明的运行时猜测。

7. 验收合同

  • 独立关闭静态路线后,V2 的构建、测试、性能和资源结果保持不变;
  • 静态 benchmark 必须与 Viper、C binding 和适用动态 VM 分开披露语义前提;
  • LLVM、其他 IR 或 native backend 只有在后续 SPEC 明确收益、工具链成本和 MCU 适用边界后才能成为实现选择。

8. 过程控制

  • 后续实现引用 PJ2026-0502 静态加速 v0.1 及相应 L2 SPEC。
  • 静态路线的当前实验、benchmark 和工具链调查进入 TaskTree 或 GitHub issue。
  • 任何影响 V2 默认语义、构建依赖或资源基线的变化必须先回到 PJ2026-0501 V2内核 重新评审。