Lux 0.7 已发布,这是一门函数式、具备静态类型的 Lisp 编程语言,支持在 Java 虚拟机、JavaScript、Python、Lua 和 Ruby 解释器上运行。
Lux 0.7 主要变化
新增
- 内联函数
- 支持将配置参数从构建描述 (build description) 传递给编译器
- 基于配置参数的代码选择
- 基于编译器版本的代码选择
- 实验性阶段的可扩展元编译器 (meta-compiler) 架构
- 导出 machinery 以使用来自宿主语言程序的 Lux 代码
- Generalized/type-agnostic arithmetic
- 【可选】更快(但不安全)的数组处理机制
- 【可选】更快(但不安全)的文本处理机制
- 【可选】更快(但不安全)的二进制处理机制
- 使用 Aedifex 部署版本
- 可扩展的 import 语法
- 上下文感知的宏
- 用于更可控的宏扩展的宏词汇表
变更
- JVM 编译不再依赖 ASM 库
- 更友好的语法
- 在 JVM FFI 中不再自动转换基本类型
- 现在要求使用强制性的 loop name,而不是使用默认的 "again" name
- 改进 JVM 互操作语法
- 宏作为一等公民的值
- 模式匹配现在支持匹配全局定义的常量
- 模式中的所有(正常)宏现在都会自动展开
Bugfix
- 修复支持原语冗余的模式匹配错误
- 修复与编译器扩展相关的各种错误
- 修复多项 JVM 互操作错误
详情查看 release note。