豫言 / 豫言操作系统基础 @ 0.1.0

豫言操作系统的诊断、时钟与公共错误类型之接口规范。

源码浏览已生成;不能解析的文件以纯文本展示,不表示通过类型检查。

规范.汉语.md

# 基础接口规范 0.1.0

本包的公开类型及函数仅以同目录 `。接口。豫` 为准,宿主实现不在本包内。

- `记录诊断` 接收一条完整的豫言字符串,返回表示宿主已接收。消息可能显示在终端、开发者工具或平台日志;显示时刻、保留期限和跨实例顺序不作承诺。诊断通道不可用时宿主仍须安全地接受并可丢弃,不能因此把普通程序错误转换成未定义行为。
- `读取单调微秒` 返回整数,单位为微秒。同一运行实例中后一次读数不小于前一次;允许相等。起点不代表 Unix 时间,不与另一实例的读数比较。宿主可用更粗的时钟,但不得伪称其有微秒精度。
- `系统错误` 是其他接口包共享的运行时错误。整个接口包缺失属于装载错误。`未获授权` 指本次运行没有所需权限;`资源暂不可用` 指权限存在但资源当前不可得;`资源已失效` 指已经关闭或到期;`资源不存在` 与 `资源已存在` 供文件等具名资源使用;`资源配额已尽` 指宿主声明的限额已达;`输入无效` 指参数违反接口约定;`宿主操作失败` 的字符串只作诊断,不可作为可移植分支判断依据。

浏览器、CF Worker、Node.js 都须通过同一组测试:诊断调用返回;时钟连续读数不倒退;各错误构造器的类型身份一致。

规范.文言.md

# 基础接口规范

诊断受一文而返有;返者,宿主已受之谓,非已见、已久存之谓。道闭可弃,不得致未定之行。单调钟以微秒整数还;同一实例后读不得小于前读,原点非历日,异实例不得相校。

系统错误有未授、暂乏、已失、不存、已存、额尽、入参不合及宿主败诸类。整包若阙,于载入时拒之;宿主败所携文字惟供诊,不可据以作跨平台分支。其型与签名,见同目录接口之文;汉语详约见[汉语稿](规范.汉语.md)。