• v0.2.2 bad6f9c551

    Alia v0.2.2 Alpha 908
    All checks were successful
    Release / release (push) Successful in 22s
    Pre-release

    LingbaSanar released this 2026-10-06 12:47:05 +08:00 | 9 commits to main since this release

    里程碑更新

    • 模组空间(ModSpace)GUI (使用Alia编写)
    • 正式支持VSCode扩展
    • gtk-alia 库

    更新、修复与优化

    • 更新:新库 Analyzer(Base/Executor/Analyzer)
      • 更新:代码格式化、高亮、符号、语境、查找、补全
      • 更新:VSCodeExt 语法分析全部迁移至 Analyzer,仅保留接口适配
      • 更新:retainDocs 保留注释与翻译指令节点,检查与执行视为空操作
      • 更新:格式化不再删除注释
    • 更新:新增 DAP 调试器(Executor/Debug、Executor/Analyzer/Debug)
      • 更新:断点、步进、暂停快照、作用域与变量查看、表达式求值
    • 更新:新增 BigInt 任意精度整数(字面量后缀 n,toBigInt/as BigInt)
    • 更新:类体成员支持类型注解,裸内置类型名同样按注解处理
    • 更新:可变性改由尾部 ... 声明,去除 class mut/typify mut
      • 更新:class C *[a: 1, ...]、const a = [0, 1, ...]、const o = *[k: v, ...]
      • 更新:mut {}/mut *{} 语法不变
    • 更新:类未声明 new 时启用默认构造,数组实参按序号键、对象实参按键名(解释器与 js/nodejs/rs)
    • 更新:编译期参数袋 __aliaParams 与配置 __aliaConfig,内核不再持有参数名知识
      • 更新:后端以 params/targetCaps/targetOutDir/targetSteps 声明所消费参数与目标行为
      • 更新:库以 declareLibAlias/declareLibDep/declareLibInline 声明归属,后端不再硬编码库名
    • 更新:Manager 支持 --outDir,按 targetSteps 执行步骤,新增 configField
    • 更新:染色方案新增 DeclKeyword/ConstVariable,Property 改蓝
    • 优化:解析性能优化(别名匹配缓存、语境链、跨 import 定义跳转)
    • 优化:编译耗时大幅下降(ModSpace 全量编译实测三目标产物逐字节不变)
      • 优化:作用域链探测不再依赖异常,新增 tryResolve 以哨兵表达未命中
        • 更新:AliasCall(语句与表达式)、类父类解析、Variable 求值器改用单遍查找
      • 优化:栈返回信号 ReturnValue 不再继承 Error,免除深栈下的栈捕获开销
      • 优化:import 目标的源码与导出解析结果按 mtime 复用,不再逐站点重复读盘与全文解析
    • 更新:新增错误码 PARSE_INVALID_TYPE_DEFINITION/PARSE_INVALID_CLASS_DEFINITION/PARSE_REMOVED_MUT_MODIFIER
    • 修复:class X extends Y 且父类未声明 new 时,子类自身成员不再被丢弃
    • 修复:匿名类具备默认构造,对象式/语法式实参按形参名绑定
    • 修复:super 不可枚举,不再出现在 Object.keys 结果中
    • 修复:Has super 判定接收者所属类型是否有父级,继承而未覆盖的方法同样返回 true
    • 修复:类型声明不再向变量名空间泄漏 _type_* 记录
    • 修复:self.<静态成员> 由 Checker 报错;成员解析优先级为自身成员 → 静态成员 → 外层语境
    • 修复:格式化器不再丢失 static 标记与类体尾部 ...
    • 修复:Analyzer 支持类/对象方法体语境链、self/super、匿名类符号与父类后置声明补全
    • 修复:rs 后端不再静默丢弃大写开头的类字段,类型注解成员不生成字段初始化器
    • 修复:rs 原生函数提升去重,实参按形参类型解包,<Dynamic> 回退 Value 运行时
    • 修复:rs 运行时助手同时接受原生标量与 Value
    • 修复:rs Object.keys 枚举类值标记与实例数据成员,类名可按名访问
    • 修复:rs web 响应解析跳过代理前置响应块,不再把响应头并入 body
    • 修复:Object.has 仅判定自有键,不再回退外层同名变量
    • 修复:catch 不再吞掉 return/break 信号
    • 修复:子语言入口变量优先于父语言同名变量
    • 修复:解释器单元素数组实参不再解包为标量
    • 修复:rs try/catch 生成类型匹配的分支,以值产生语句结尾的 catch 块不再编译失败
    • 修复:rs 属性读取/遍历助手接受原生标量与容器,5.toString、each over 原生值不再编译失败
    • 修复:rs Math.map 区间映射,按 IEEE 语义与 js 一致(含退化源区间)
    • 修复:rs 类静态方法进入静态成员表,静态方法可经类名调用并支持继承链
    • 修复:rs 类型注解成员不再生成实例字段(与解释器、js 一致)
    • 修复:rs 补齐 String.split/replace/indexOf、Array.join/indexOf/map/find/toObject/toSheet、Sheet.findIndexByValue
    • 修复:rs Object.values/entries/fromEntries/assign/create/contact/clone/set/delete/isObject 由恒等 clone_v 改为真实实现
    • 修复:rs as 转换对不可解析的目标类型抛出错误,不再静默产出 0 / false / 原值
    • 修复:rs 非有限数值统一经 value_to_string 输出 Infinity/-Infinity/NaN
    • 修复:rs 字符串长度与下标按 UTF-16 码元计(代理对占两码元),与解释器、js 一致
    • 修复:rs 标量/数组接收者的「方法作属性取值」返回可调用 Alias
    • 修复:rs 补齐 <Alias>/<Stack> 形参类型校验,非法实参不再静默通过
    • 修复:rs process 补齐 exit/kill/title;cwd/uptime/memory/envAll 改为实时读取;spawn 返回子进程 pid
      • 修复:exit 先冲刷缓冲再终止,p.exit N / call p.exit [N] 退出码与 js 一致
      • 修复:kill 发送失败(目标不存在 / 无权限 / 平台不支持)抛错,不再静默返回成功
      • 修复:spawn 采集模式显式接管 stdout/stderr(Command::spawn 默认继承父进程 stdio),并回报真实子进程 pid
    • 修复:ProcResult 补齐 pid/signal 成员声明,与各后端运行时返回值一致
    • 修复:rs 作用域栈改为按线程隔离,子线程不再弹出父线程作用域(修复 web 测试随机失败)
    • 更新:rs 未登记实现的标准库(如 FFI)显式报错并归类为 COMPILER_UNSUPPORTED_TARGET,不再静默生成空模块
    • 更新:rs panic 输出错误载荷;test 断言失败打印失败原因;try/catch 期间不重复输出
    • 修复:throw 的错误文本不再被 ThrownError 吞没,编译期/运行期限制可读
    • 修复:js Object.values/entries 等非特化成员正确传递实参
    • 修复:js 数字字面量成员取值加括号,(5).toString 不再生成非法 JS
    • 修复:js 补齐 Array.toObject;String.replace 按文档替换全部匹配(RegExp 接收者保留正则语义)
    • 修复:解释器 Array.indexOf/includes/map/find 按值比较,不再对字面量恒不命中
    • 修复:解释器 'x' as Number 抛出转换错误,不再静默产出 NaN
    • 修复:解释器类型注解成员不成为实例字段,new 不再出现在实例可枚举成员中
    • 修复:Checker 补齐 BigInt 推断、栈体检查去重
    • 修复:@compileConfig 读取仅取自身成员,未声明的步骤不再误命中同名别名
    • 优化:移除内置计时器
    Downloads