长期路线图
言序从 0.3 数据与诊断阶段到 1.0 稳定语言的演进边界。
本路线以“先稳定语义,再优化执行”为原则。版本号代表语言能力的稳定层级,而不是单纯的功能数量。
设计原则
- 中文是语言本体:错误信息、关键字和核心库首先以中文设计,不把其他语言逐词翻译过来。
- 文言重可读,不求拟古:程序应简洁、有节奏,同时让现代中文使用者无需古汉语训练即可理解。
- 渐进式类型:无标注代码保持轻便;有标注代码获得明确约束。静态检查器与运行时遵循同一套类型关系。
- 模块即边界:文件、命名空间、缓存和未来的包系统围绕同一个模块模型演进。
- 前端与执行器解耦:词法、AST 和语义不依赖树遍历解释器,未来可平滑增加字节码后端。
- 错误可行动:错误应说明位置、所需类型、实际类型和调用路径,不只报告“失败”。
0.2:结构化程序(已完成)
- 可选变量类型:
令 年岁:数 为 18; - 参数与返回类型:
法 加一(值:数):数 则 … 终 - 类、实例、动态字段、方法绑定、
此和初始化 - 文件模块、相对路径、命名空间、单次加载缓存和循环依赖检测
- 持久化多行 REPL、表达式回显、上下文清理和文卷载入
类型约束当前在运行时执行。这是有意的渐进策略:先让标注语法和类型关系经过真实程序验证,再把同一规则前移到静态检查器。
0.3:数据与诊断(已完成)
已完成:
-
列、典、下标读写与稳定顺序
-
列、文字、典的统一迭代语义和
逐…于…则 -
定不可改写绑定 -
试/救/抛、结构化错误值与函数/模块踪迹 -
独立语义解析阶段,检查重复声明、非法
归和非法此 -
不可变元组、结构相等、统一迭代和长度
-
列、元组、文字的半开切片与省略端点
-
Token、表达式和语句的完整源码跨度
-
带源码片段、行列号、函数位置和模块路径的统一诊断
-
捕获与重抛时保留原始错误位置
-
插入、删除、键列、值列容器原语
退出条件:常见数据处理程序无需依赖宿主内置函数;所有运行错误均能指回源码范围。
0.4:类型系统与对象复用(已完成)
- 独立静态检查命令
yanxu 查 A|B联合类型,并与运行时约束共享类型关系- 变量、参数、归值、算术、调用元数与可变性检查
承受限单继承与继承方法查找- 可空、函数、联合和泛型容器的结构化类型 AST
- 容器/调用推断与控制流收窄
协/纳结构协议,公开/私有/只读/静态字段和方法- 不执行代码的跨模块公开 API 类型摘要
退出条件:带完整标注的项目可在执行前发现类型错误;无标注项目仍可正常运行。
0.5:模块、标准库与包(已完成)
公显式导出和默认私有言序.toml包清单、向上发现与本地路径依赖包:与标准:规范化模块名- 完整 TOML/SemVer 清单与固定来源、修订、入口、校验和的
言序.lock - 路径、Git、中央索引依赖与离线校验缓存
- 确定初始化顺序和完整循环依赖链诊断
- 文字、数学、时间、文件、JSON、网络与测试标准模块基线
退出条件:多包项目可被可靠安装、检查、测试和执行。
0.6:字节码虚拟机(已完成)
- AST 到字节码的编译阶段
- 栈式 VM、常量池、变量槽、控制流跳转和源码映射
- 函数原型、调用帧、递归闭包、容器、迭代、异常与内建法
- 类、协议、继承、方法绑定、字段约束和模块独立执行
- 可观测标记清扫 GC、属性内联缓存与可失效模块字节码缓存
- 树解释器/VM 全语义一致性规格与
yanxu 基准 - 树遍历解释器保留为语义参考实现
退出条件:语言一致性测试在两个执行器上结果相同,典型程序获得数量级性能提升。
0.7:开发工具(已完成)
- 官方格式化器
yanxu 格 - 支持过滤、并发、预期失败、超时和 JSON 报告的测试运行器
- LSP 诊断/格式化及语义补全、定义、引用、重命名、悬停和文档符号
- 源码踪迹与 DAP 断点、继续、单步、调用栈和变量检查
- 带声明注释、类型链接、模块索引和稳定锚点的 API 文档生成器
- 终端级方向键历史、Tab 会话补全、Ctrl-C 和多行 REPL
- 可单独发布的 Tree-sitter 语法与 VS Code 集成
0.8:并发与宿主交互(已完成)
- 基于任务的结构化并发
- 异步函数与可取消任务
- Rust FFI 与稳定的宿主嵌入 API
- WASM/WASI 执行目标
- 权限清单:文件、网络、环境变量和进程能力
任务冻结为单线程、确定性的协作模型;重复等候缓存结果,自相等候报错,结构化并候失败时取消尚未开始的同组任务。嵌入默认沙箱,包运行按清单权限执行。
0.9:稳定化(已完成)
- 语言规范、兼容性测试套件和实现一致性测试
- 性能、内存、安全与模糊测试基线
- 标准库 API 审核
- 弃用流程和自动迁移工具
- 0.3–0.9 双执行器兼容语料、资源预算、版本化格式和三个模糊测试入口
yanxu 迁与机器可读标准库 API 审计
1.0:稳定语言(稳定基线,已完成)
1.0 已发布源代码兼容策略、稳定模块/包/锁/字节码与报告格式 1、Rust/C/WASI 嵌入边界、完整工具链,以及“诗笺台”“账册分析”两个中等规模参考项目。1.0 之后新语法必须经过 YXP 提案、原型、兼容性与工具链影响评审。
1.1:标准库、对象、生产 I/O 与工程化(当前版本 1.1.8)
1.1 的向后兼容扩建已经完成:Base64处理标准与 URL 安全 UTF-8 编解码,正则提供线性时间 Unicode 匹配,URL负责纯地址解析与相对合并,日期提供确定性的 ISO 公历运算。四个模块不申请宿主权限,并已同步双运行时、静态类型、机器 API 清单、兼容语料、示例、文档和 VS Code,标准模块总数由 17 个增至 21 个。
1.1.1 进一步完成父.方法/父.初始化、继承赋值与覆写检查、值 是 类型和分支收窄;网络栈支持 HTTPS、分块传输、全程超时、响应大小限制、结构化响应与稳定NET_*错误。1.1.2 新增原生 TCP/UDP套接字资源,所有阻塞入口有调用级超时、读取硬上限与稳定SOCKET_*错误,WASI 保持明确拒绝语义。
1.1.3 完成安全收口:HTTP 重定向逐跳授权,DNS 后复查真实 IP,外连/TCP 监听/UDP 绑定权限分离;统一 DNS 与传输截止时间,增加 UTF-8 分片缓冲和套接字配额。同版本还加固包制品解压、失败后持久 Engine 一致性和发布供应链。
1.1.4 完成面向网络应用的底层二进制能力:不可变字节串、二进制文件/HTTP/TCP/UDP、明确 EOF 与精确读取、安全随机、HMAC、常量时间比较、HTTP 日期、文件状态和程序参数。树解释器、独立 VM、静态类型、LSP、格式化器、文档生成器、嵌入接口和跨平台门禁同步验收;HTML、HTTP 服务端、Web 框架、异步 I/O 与服务端 TLS 明确不在本版范围。
1.1.5 完成工程化与包生态基础:格式 2 清单、完整确定性锁图、依赖别名/显式导出/工作区/开发依赖、离线辖制与审计、YXP 打包、源码无关 YXB、当前平台自包含应用和原生扩展 ABI v1。言包 0.2.0 完全改用言序实现,只通过核心工程协议工作;新增进程和资源后标准模块共 25 个。HIR/MIR、机器码后端、编译器自举、异步运行时、多线程调度和未经安全评审的公开注册表继续留待后续版本。
1.1.6 不引入新的破坏性语法,集中收口 1.1.5 发布后的稳定性与供应链问题:YXB 权限取宿主上限与应用申请的交集,外部归档执行完整大小和结构预算,原生动态库使用已验证字节的私有只读副本并以 RAII 覆盖异常释放路径;包写入与并发执行采用原子替换和项目锁,版本、CI、标签、Release、安装器、言包与生态仓库拥有可追溯的统一验收基线。
1.1.7 保持语法、ABI v1、旧 YXB 与嵌入接口兼容,新增原生 ABI v2、持久回调、有界宿主事件、父子资源和独立 GUI 权限。官方言窗以真实桌面后端提供中文 GUI API;YXB 可携带锁定原生制品,言包可生成 Windows、macOS、Linux 自包含 Bundle,六目标在原生 CI runner 分别构建和验收。
1.1.8 保持上述全部格式与接口兼容,为 Windows x86_64/ARM64 官方运行时保留 8 MiB 所有者线程栈,并以 PE32+ 回归和 Release 制品检查覆盖原生 GUI 回调中的言序方法嵌套。
跨版本工程要求
每个里程碑都必须同时具备:
- 语法和语义文档
- 正向、错误与回归测试
- 可运行示例
cargo fmt、cargo test、严格 Clippy 全部通过- 对上一版本示例的兼容验证
- 变更日志与迁移提示