docs(wiki): 补充类型系统三端承载差异(TPC 继承 t.CType、TPV 内建、Vipeye 经 t.vpi/c.vpi 解析)

This commit is contained in:
TermiNexus committed 2026-10-01 23:02:12 +08:00
1 parent 762b3ceed4
commit 472ece93f2
1 file changed
+7
+7
View File
@@ -4,6 +4,13 @@ Viper 的类型系统通过 `t` 模块提供,所有类型注解继承 `t.CType
> **书写规范(重要)**:`t.C*` / `c.*` 正在被**逐步淘汰**。新代码推荐使用短名别名(`int`/`uchar`/`char`/`uint64`/`bool` …)、`T*` 指针、`&`/`*` 指针操作、前缀描述符 `const`/`volatile`/`__attribute__(...)`、前缀数组 `[N]T`,以及 `enum`/`union`/`renum`/`define`/`typedef`/`export`/`extern`/`virtual` 等软关键字。旧写法在过渡期仍可用,但不再推荐。规范原文见仓库根目录 `新规范`。
> **三端承载差异(同一套注解,三种实现)**:
> - **TPC**(CPython 实现的种子编译器):类型是**继承 `t.CType` 的类**,命名形如 `t.C{TypeName:PascalCase}`(如 `t.CInt`、`t.CUInt64T`),类型注解即这些类的实例/注解组合。
> - **TPV**(Viper 自举实现的现行编译器):这些类型是**编译器内建**,直接映射到 LLVM 类型,不依赖 `t.CType` 继承链。
> - **Vipeye**(基于 pyright 的 VSCode 分析插件):通过 `t.vpi` 与 `c.vpi` 两个存根**统一解析**类型,从而对源码给出与编译期一致的类型信息。
>
> 因此源码层面短名别名与 `t.C*` 写法等价,具体承载方式由各端自行决定。
## 类型书写规范(新语法,推荐)
### 类型别名(裸名,等价 `t.C*`)