基线与实现依据
此篇记规范所据,供审阅维护。正文须足述算法与接口;源码可溯,不代其则。
据一:基线
所定提交 4cdeca11600fed16338793a494b6eecaae94485a。语言之义、验类之界、平台 ABI 各别;后端可异其表示,而同目标对象相施必守值、调用、根之约。
ABI 同,不须优化器、临名、机器字节悉同;须使受者不辨作者,仍可读值、施术、受返,历异常与迁堆而无失。
据二:所据
| 所述 | 源码 | 所核 |
|---|---|---|
| 词法 | 词法解析 | 状态、空白、注释、转义 |
| 数 | 整数小数解析 | 逐位、分隔、原小数文 |
| 结合 | 文言符集 | 六十八关系与后备次序 |
| 声明 | 抽象语法分析 | 配对、递归、自由名 |
| 名称 | 名称解析 | 诸次序、后观、重诵身份 |
| 成类 | 类型类型检查 | 形状与应用之限 |
| 双向检查 | 类型检查工具、对象检查 | 合成与检查、错误 |
| 隐参 | 隐参合成 | 预读、期望、足数 |
| 名义等 | 结构比较 | 文件及名定身份,非运行号 |
| 调用降级 | 隐参擦除 | 源足数而机逐施 |
| 闭包 | 闭包转换 | self、代码、捕获 |
| 递归 | 递归转换 | 单槽自指之次 |
| 栈与返 | 生成准备 | 帧、槽三、分派、安全点 |
| 机器 | 直接生成 | 两 i128、原爻、外调、musttail |
| 符号 | 过程工具 | 身份转义与名称 |
| 值 | 编解码 | 位、长、负数、字节 |
| GC | 回收器 | 根址、转发、扫描、迁堆 |
| 入口 | 运行栈、异常 | 根帧、处理器、续延与配置 |
| WasmGC | 直生、运行时 | 引用、逐参、表号、动态退出 |
据三:读 ABI 之例
只以文述,不另造程序。C 为二参数源函数之闭包,S 为调用帧:源 C 于 a 于 b 先验足数;机先施 C[0],槽五 C、槽六 a,得闭包 D;归而写调用者槽三为 D、槽四为复号;复后施 D[0],槽五 D、槽六 b,乃得终果。
源拒偏应用,机用中间闭包,不相悖也。一为接受之则,一为 ABI。若易 C 为一次受两参而不易公共符号,旧者不能用之。
负一低半同 ffffffffffffffff,C 高半为 ffffffffffffff02,LLVM 内建减零扩高半为 0000000000000002。同整数而不同全器之位,不可全 i128 比之。
据四:文档之完备
每句形有构树与拒绝,每核心式有类型与求值,每跨对象接口有位、宽、参数次序、寿命及双方之责。缺陷兼记事实与保证之界。
审其尚须猜者:验类与运行参组可混乎,源路与符号有漏乎,GC 可迁手持地址乎,外调守实 C 签名乎。双语同条件,不省限制而成异约。