取消了 i8* == i8* 实际使用 strcmp 的规则

This commit is contained in:
2026-07-30 21:56:41 +08:00
parent cfc30d735c
commit 377b60fd67
54 changed files with 129 additions and 3730 deletions

View File

@@ -11,13 +11,13 @@ TransPyC 已用自身实现以下组件,证明其作为系统级语言的成
- **自研 LLVM IR 生成库** —— [includes/llvmlite/](includes/llvmlite/)~1,500 LOC用 TransPyC 自己写的 IR 文本生成器18/18 测试通过
- **zlib 移植** —— [Test/ZlibTest/](Test/ZlibTest/),完整 deflate/inflate/huffman/checksum~1,900 LOC
- **Win32 FFI 绑定** —— [includes/w32/](includes/w32/)file/memory/process/sync/console 全覆盖
- **泛型容器** —— [includes/linkedlist.py](includes/linkedlist.py)`@t.NoVTable` + PEP 695 递归泛型继承 `class GNode(GSListNode[GNode])`
- **泛型容器** —— [includes/linkedlist.vp](includes/linkedlist.vp)`@t.NoVTable` + PEP 695 递归泛型继承 `class GNode(GSListNode[GNode])`
## 核心设计理念
- **Python 语法LLVM 语义**:源文件是合法的 Python 语法,但通过 `t` 模块类型注解赋予 LLVM 级别的语义
- **类型注解即编译指令**:类型注解决定 LLVM IR 的生成,不是可选的提示
- **两阶段编译**:先提取声明接口(`.pyi` + `.stub.ll`),再翻译源文件为含代码的 `.ll`
- **两阶段编译**:先提取声明接口(`.vpi` + `.stub.ll`),再翻译源文件为含代码的 `.ll`
- **SHA1 命名空间**:每个源文件按内容 SHA1 哈希命名,自动消除跨模块符号冲突
- **零运行时开销**:编译为原生代码,无 GC、无解释器、无虚拟机