YXB 与独立应用
把言序项目编译为不依赖原始源码的确定性应用制品。
言序 1.1.8 沿用 1.1.7 引入的“完整编译”:它是完整包字节码编译,不是 LLVM 或 Cranelift 机器码后端。编译器读取格式 2 锁图,把入口、项目模块、依赖模块、声明资源、权限、应用元数据、当前目标原生制品和调试路径写入 YXB 应用归档。
直接使用核心
yanxu compile . -o build/我的应用.yxb --release
yanxu run build/我的应用.yxb -- 参数甲 参数乙生成后可以把 YXB 复制到临时目录、删除源码副本再运行。YXB 仍需要目标机器安装兼容的言序 VM,但不会重新读取.yx、依赖清单或资源目录。
YXB v1 使用确定性压缩载荷,并只保留报错所需的紧凑源码位置。1.1.7 以可选字段兼容携带原生模块和应用元数据;旧版压缩或未压缩 YXB v1 仍可读取。读取前后会限制压缩/展开 JSON、模块、资源、原生制品、指令、函数、类和调试跨度,并重新验证路径、目标、ABI、大小与 SHA-256。
使用言包工作流
yanbao check
yanbao test
yanbao build --release
yanxu run build/我的应用.yxb言包会把制品放入项目build/,工作区则按成员逐项执行。yanbao clean清理派生制品;增量缓存以内容校验和为键,不把源码时间戳作为语义输入。
当前平台自包含程序
yanbao build --release --standalone该命令把当前执行的言序 VM 与 YXB 封装为一个程序,目标机器不需要另装言序。制品只适用于构建时目标;应在 Windows、Linux、macOS 各自构建,不能跨系统复制代替交叉编译。
桌面 GUI Bundle
yanbao build --release --bundle
# 或 yanxu compile . --release --bundleBundle 包含 standalone、可检查 YXB、锁定 GUI 后端、资源、图标、应用元数据、许可证和逐文件摘要。macOS 生成标准.app,Windows 生成嵌入图标/版本/PerMonitorV2 manifest 的 GUI 子系统 PE 目录,Linux 生成 AppDir、Desktop Entry 和 hicolor 图标。构建器验证 PE/ELF/Mach-O 目标架构,在同级随机暂存目录组装并验证后原子替换输出;首次启动不联网。两条路线的选择见图形界面概览;言界项目的具体流程见打包与发布。
确定性与发布门禁
- 相同源码、锁图、资源、目标和配置必须生成逐字节相同的 YXB/YXP。
- 构建前必须验证完整锁图和每个包的内容校验和,不会在导入时临时选版。
- 资源只来自
[资源]声明,归档路径会拒绝绝对路径和父目录越界;程序通过标准:资源的读取与目录接口访问。 - 应用清单中的权限只是申请。实际权限始终是“宿主权限上限 ∩ 应用申请”,YXB 不能自行提升文件、网络、监听、环境、进程或原生扩展权限。
- 应在删除源码副本后运行 YXB,并在每个支持平台验证独立应用。
归档 SHA-256 只证明内容没有在校验后变化,不证明发布者身份;需要身份认证时还必须通过受信任渠道核对摘要。Bundle 清单提供平台签名顺序,但不会把摘要伪称为代码签名。
YXB 不是原生机器码,也不提供服务端 TLS、HTTP/2/3、异步 I/O 或多线程任务调度。