豫言 / 技术规范

此篇据 4cdeca1 之实现。所据及适用之界,见基线之篇

基线与实现依据

此篇记规范所据,供审阅维护。正文须足述算法与接口;源码可溯,不代其则。

据一:基线

所定提交 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 签名乎。双语同条件,不省限制而成异约。