-
Alia v0.2.2 Alpha 908
Pre-releaseAll checks were successfulRelease / release (push) Successful in 22sreleased 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、eachover 原生值不再编译失败 - 修复: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
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
0 downloads