SBCL 1.5.9 发布,开源 Common Lisp 编译器

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)

详情可查看:

http://www.sbcl.org/all-news.html?1.5.9#1.5.9

猜你喜欢

转载自www.oschina.net/news/111667/sbcl-1-5-9-released