Snow 编程语言 v0.10.0 发布: 实现方法重载、增加 ANY 类型
更新内容
新增功能
- 方法重载:引入按参数总数(含隐式
this)区分的重载机制;统一为为重载方法追加_N后缀的命名规则;新增重载表与addMethod/getMethod;对象/静态方法调用自动追加_N,普通函数调用不追加。 - 字符串/引用拼接:IR 新增
ADD_R,并由IROpCodeMapper映射到 VM 指令R_ADD;VM 新增RAddCommand,实现「两引用出栈 → 转字符串 → 按左到右顺序拼接 → 压栈」的语义,延续非数值+的字符串连接行为。 - 类型系统扩展:新增万能类型
ANY;isCompatible增强以支持ANY与父类引用检查;类型提升工具支持引用类型R; - 变量声明支持自动类型提升。
- 平台:新增 macOS 打包配置,完善分发能力。
性能和稳定性改进
- 数值计算精确化:实现数值加法的精确处理,消除常见浮点误差;非数值
+仍保持字符串连接语义。 - 调用链路优化:更新
CallExpressionAnalyzer与方法查找算法,按参数计数解析更快、更准确。 - 执行路径简化:精简
CallCommand,移除虚拟调用路径,仅保留静态调用;删除不再使用的Instance与VirtualTable,降低复杂度与运行开销。 - 核心组件重构:优化
IRBuilderScope、SignatureRegistrar、LocalVariableStore等类的结构与文档,职责更清晰、内存/查询开销更低。 - 健壮性:加强参数校验与异常处理,提升容错与可观测性;改进模块常量加载逻辑并简化实现。
开发者体验提升
- 统一重载命名与结构体方法降级规则(
StructName.method_N,N含隐式this),并梳理结构体签名注册与继承流程,易于理解与排错。 - 代码与注释全面整理:统一导入顺序与格式,清理未使用变量和冗余兜底逻辑,补充必要注释与包级文档。
- 日志与错误信息风格统一,定位信息更明确;示例/测试更完善,便于本地复现与演示。
- 新增 macOS 打包流程,降低本地试用与交付门槛。
Bug 修复
- 修复 成员访问表达式 在继承场景下父类字段下标重复计算的问题(已进行字段去重与索引纠正)。
- 修复
syscall子命令 的解析异常,提升命令行稳定性。
文档改进
- 补充与统一类型系统文档:完善
BuiltinTypeRegistry/BuiltinType的注释与结构说明,新增ANY、引用类型R的类型提升与兼容性示例。 - 完善 IR↔VM 指令映射文档,明确
ADD_R→R_ADD的语义与边界。 - 梳理多处 README 与类文档,统一术语与风格,提升可读性与检索性。
如遇到使用问题,欢迎及时 提交 Issue