Commit Graph
3 Commits
Author SHA1 Message Date
TermiNexus e82640ac94 fix(gentype): c.Deref 类型推断支持转换包裹与联合全 side
_infer_deref_target_type 仅在 Deref 为赋值直接 RHS 时推断加载类型,
被类型转换链包裹(如 (T | t.CPtr)(t.CPtr(c.Deref(p))))时返回 None →
回退 load 1 字节 → 读回垃圾指针(BuildPipeline run_llc_parallel 存
Thread* 后 join/is_alive 失效、llc 并行 5 秒误报失败的根因)。
增强:新增 _IsCastWrappingDeref 放行"转换链包裹 Deref"(ifexp/binop
仍不放行);联合注解(A | B)遍历全部 side,取第一个可解析类型。
2026-08-19 21:14:13 +08:00
TermiNexus 6fc9e19e24 feat(vast): 新增自研 Viper/Python 语法解析器取代标准库 ast
TPC 侧取缔对 Python 标准库 ast 模块的依赖,改用 lib/vast 包:
- Nodes: 与 CPython 3.12 ast 完全同构的 131 个节点类(含抽象基类继承)
- Tokenizer: 词法分析(缩进/字符串/f-string/数字/运算符/软关键字)
- ExprParser: 表达式递归下降解析(优先级/lambda/推导式/f-string/切片)
- Parser: 语句解析(def/class/if/for/try/with/match/import/注解)
- Utils/Unparser: walk/dump/unparse/copy_location/literal_eval 等辅助
- 软关键字 fn/fun/func/function 并入解析器, 废除 ExpandSoftKeywords 预处理
- lib/_bootstrap 将 lib 目录加入 sys.path, import vast as ast 零修改替换
- 52 个文件 import ast 替换为 import vast as ast; 94 文件差分测试 0 失败
2026-08-17 09:36:38 +08:00
t 796222a300 snapshot before regression test 2026-07-18 19:25:40 +08:00