Steel Bank Common Lisp (SBCL) 源自于 CMUCL, 是一种高性能的 Common Lisp 编译器。1.5.9 版本如下:
- 平台支持
- 对于 OpenBSD 上的 mmap 失败,将显示一条旨在提供更多帮助的消息
- 更好地支持 ARM32 上的软浮点 ABI,尤其是在从调用返回双浮点到 C 的情况下
- 优化
- 如果所有结果形式都用引号或自我评估对象,则可以将以符号为键的 CASE 和 ECASE 优化为向量查找
- 如果子句键是全部 fixnum、全部字符或全部符号,则 CASE 和 ECASE 可以优化为具有任意结果形式的 x86 [-64] 后端上的跳转表
- 在有意义的情况下,许多形式被转换为使用 CASE,包括对 POSITION、MEMQ 和 MEMBER 的调用以及类型为 MEMBER/EQL 类型的 TYPECASE
- 恒定符号序列中可变符号的位置将转换为 CASE,然后转换为跳转表
- 子句为成员类型的变量的 TYPECASE 转换为 CASE,然后转换为跳转表
- x86 和 x86-64 机器上不再使用许多慢速指令
- 在 EQ 和 EQL 测试之后,编译器更擅长跟踪分支的含义
- 解析 &KEY 列表的寄存器密集度稍低
- 添加了基于模式的窥孔优化程序通道,在x86-64后端上运行了一些简单的转换
- 增强功能:对各种 initform(defclass、&key、defstruct)进行更全面的编译时类型检查
- bug 修复:复杂 CONS 类型的并集不太可能导致无限循环 (#1799719)
- bug 修复:对未由扩展功能指定符命名的功能的 DESCRIBE 不再发出类型错误信号 (#1850531)
详情可查看: