豫豫言文档API ATLAS
入口豫言操作系统平台资料适配。包。豫
2 模块14 名称
全部模块

豫言 / 豫言操作系统平台资料适配 @ 0.1.0

经云工宿主的平台资料原语读取只读资料集:宿主取回并缓存大型压缩资料,只交出应用有权看的键与文字。

说明.汉语.md

# 平台资料云工适配

把公共[平台资料接口](../../../豫言操作系统接口/平台资料/规范.汉语.md)映射到云工宿主。适配本身很薄:参数检查(集名 1 至 64 字节且无控制字符、前缀至多 512 字节、键 1 至 512 字节,违规抛「平台资料参数无效」)和结果整形,真正的取资料、解压、筛键、排序与缓存在宿主 JS `豫言操作系统/宿主/云工/平台资料.mjs`,经两个新的宿主原语:

- `豫言_云工_平台资料列键安全(集, 前缀)` 返回(是否成功,JSON 字符串数组文字或错误文);
- `豫言_云工_平台资料读文字安全(集, 键)` 返回(状态,文字或错误文),状态 0 键存在、1 键不存在、2 失败。

两个原语都是“安全变体”:宿主失败作为值返回,适配再转成可捕获的豫言异常,不让 JS 异常越过 Wasm 边界。

- **为什么放宿主**:云工作台的资料集 `标准库` 是约 2.7 MB 的 gzip(解压后约 57 MB 的 JSON,共 1879 个条目,其中只有 51 个是豫言标准库源码)。豫言的 JSON 解析器不能吞下 57 MB,也不该每个事件解一次;宿主用 `DecompressionStream` 解压、解析,只保留键以 `/库/标准库/` 起首的字符串条目,按宿主实例缓存,应用每次只拿到需要的键列表或某个键的文字。
- **授权**:`标准库` 映射到许可授权的服务绑定 `BROWSER_COMPILER`(`许可.json` 的 `SERVICE` 里要有它),网址固定为 `https://playground.yuyan-lang.org/编译/资源/标准库.json.gz`,应用不能自选来源。
- **接入宿主的改动(已落实)**:`宿主.mjs` 头部 `import {创建平台资料} from './平台资料.mjs'`;`创建云工宿主` 里 `const 平台资料 = 创建平台资料({全局})`;能力表里登记上述两个原语;`豫言操作系统/应用/双宿主构建/入口。豫` 复制宿主文件的清单里加上 `平台资料.mjs`。改动片段见 `平台资料.mjs` 文末注释。

验证见 `一致性验证/`。

说明.文言.md

# 平台资料云工适配

以公共[平台资料公约](../../../豫言操作系统接口/平台资料/规范.文言.md)映于云工宿主。适配甚薄:验参(集名一至六十四字节而无控制之字、前缀至多五百一十二字节、键一至五百一十二字节,违者抛「平台资料参数无效」)与整形其果;真取资料、解压、筛键、排序与缓存,皆在宿主 JS `豫言操作系统/宿主/云工/平台资料.mjs`,经二新宿主原语:

- `豫言_云工_平台资料列键安全(集, 前缀)`:返(成否,JSON 字符串数组文或错误文);
- `豫言_云工_平台资料读文字安全(集, 键)`:返(状,文或错误文),状零键在、一键不在、二败。

二原语皆“安全之变体”:宿主之败以值返之,适配复转为可捕之豫言异,不令 JS 异越 Wasm 之界。

- **何以置于宿主**:云工作台之资料集 `标准库`,乃约二兆七之 gzip(解之约五十七兆之 JSON,凡一千八百七十九条,其中惟五十一条为豫言标准库之源)。豫言之 JSON 解析器不能吞五十七兆,亦不当每事一解;宿主以 `DecompressionStream` 解而析之,惟留键以 `/库/标准库/` 起首之字符串条,依宿主实例而缓之,应用每回但得所需之键列或某键之文。
- **授权**:`标准库` 映于许可所授服务绑定 `BROWSER_COMPILER`(`许可.json` 之 `SERVICE` 须有之),网址固定为 `https://playground.yuyan-lang.org/编译/资源/标准库.json.gz`,客不得自择其源。
- **接入宿主之改(已成)**:`宿主.mjs` 首 `import {创建平台资料} from './平台资料.mjs'`;`创建云工宿主` 中 `const 平台资料 = 创建平台资料({全局})`;能力表登记上二原语;`豫言操作系统/应用/双宿主构建/入口。豫` 复制宿主文件之清单添 `平台资料.mjs`。改动之片段见 `平台资料.mjs` 文末之注。

验见 `一致性验证/`。