86 lines
3.8 KiB
Plaintext
86 lines
3.8 KiB
Plaintext
更复杂的 泛型
|
||
复杂原始(仿Python)函数装饰器
|
||
# main 收集(和 导入模块的自动执行)
|
||
元类型
|
||
# @p.set
|
||
# 函数的描述符用装饰器而不是返回值
|
||
崩溃/返回作用域 回调
|
||
# 假鸭子
|
||
# f-string 自动 snprintf
|
||
# __doc__(后续需完善)
|
||
# 自动索引
|
||
# testcheck默认中文
|
||
|
||
vdebug 工具和 vsdt 工具
|
||
多态 ops 允许单个函数拥有装饰器(可修改,走函数指针)
|
||
协程关键字支持
|
||
with 出入多态
|
||
# 哈希表
|
||
内联快速迭代器
|
||
出栈调用函数
|
||
# 构造函数隐式参数
|
||
小数组直接栈上创建+ i in [xxx]
|
||
# 字符串索引
|
||
|
||
单函数 @t.CVTable
|
||
import 自动执行代码
|
||
限制全局 import 符号到局部(其他文件import而本文件没import,但是仍然生效不报错)
|
||
生成器表达式
|
||
await 表达式(平台无关协程支持)
|
||
|
||
# 统一 mpool 和 mbuddy 接口
|
||
MCViper after 自举
|
||
# Ptr解引用含义冲突,a[x]与ptr[x]冲突
|
||
__iter__ 期望 for a, b in __iter__
|
||
|
||
init_set 构造
|
||
|
||
不在乎编译器时间的大小优化(无关符号剔除)
|
||
给 linkedlist 库改成 node 库,或者拆分 linkedlist 库
|
||
TPV 的 typedef 名是硬编码的,后期尝试修正
|
||
TPV 再次支持泛型能力检查和字节序
|
||
不应编码class X[T搜索泛型
|
||
string的"%"格式化
|
||
|
||
TPV 避免虚类问题,参见 ast/base.vp:224行
|
||
TPV 虚类判断问题,参见 ast/parser.vp:2037行
|
||
|
||
替换式实现注入猴子,带有含函数指针检测和函数指针还原
|
||
高级 define(时间戳,版本,config项)
|
||
更多新关键字
|
||
编译期表达式计算
|
||
结构子(反射型 runtime lookup 鸭子(看起来像跑起来像,就是鸭子,愿意))
|
||
函数前后父子构造钩子
|
||
元对象协议 MOP 的编译期版本
|
||
多分派实验
|
||
Mixin 方法直接调用的合法性静态检查:MixinC2.outer2(c) 用非组合类实例直接调用,编译通过(兜底 this_adjust 前移)但运行期越界——Mixin 方法必须经组合类实例调用。日后"编译器提前报错预警"功能需在调用处验证 self 类型的组合完整性(NoVTableCrossMixinTest Test 2/3 边界)
|
||
if not c.CIf(T.__lt__):
|
||
c.CError("...")
|
||
c.CError(f"File {T.__T_file__},{T.__T_line__}.....")
|
||
def a(b: str, *args: rawptr[list], **kwargs: rawptr[dict]):
|
||
# args和kwargs是栈上分配的list/dict
|
||
|
||
|
||
# ========== 去除 Handles 层(计划 2026-08-21,StringTest Phase A 字段分裂已修复) ==========
|
||
# 目标:删除 lib/core/Handles/(32 文件 469 模块函数 98.9% 纯 _g_gen 委托壳),逻辑并入 Gen
|
||
# 子对象,调用点改 self.Gen.X 真源(防字段分裂),管线经 gen 对象调用,删 _g_gen 注入。
|
||
# 阶段 0: 基线——StringTest Phase A 修复已验证通过
|
||
# 阶段 1: 常量/数据类/实体类迁入 Gen(Translator/TypeRegistry/ExprHandle/ExprCallHandle/13 数据类/常量,保留 HT 别名)
|
||
# 阶段 2A: HandlesType(558)→TypeGen*/ClassGen*/StmtGenCif
|
||
# 阶段 2B: HandlesStruct(476)→StructGenMixin; HandlesExpr(417)→ExprGen*
|
||
# 阶段 2C: HandlesVar(269)→VarGenMixin; HandlesExprCall(217)+ExprCall* 6 文件(104 _g_gen 样板)→CallGen*
|
||
# 阶段 2D: HandlesClassDef(120)→ClassGen*; HandlesImports(84)→ImportsGenMixin; HandlesFunctions(40)→FuncGen*
|
||
# 阶段 2E: 小模块 Body/Enum/Nonlocal/Return/If/While/For/Match/Assign/AnnAssign/AugAssign/Main/ExprOps/Base/ForHandle* 删除
|
||
# 阶段 3: 管线入口改造(BuildPipeline/Phase1/2/StubMerger*/VpiReader/Converter ~60-70 处)+ main/BuildPipeline _g_gen 注入块删除
|
||
# 阶段 4: 删 Handles/ 目录、清 import、全量自举验证(Phase A/B/C)
|
||
# 风险: 字段分裂铁律(一律 self.Gen.宿主.字段 真源); Translator 395 处 HT 类型注解用别名; 链式调用深度
|
||
|
||
|
||
|
||
|
||
|
||
$env:TPC_ASAN="0"
|
||
|
||
|
||
|