发布 SBCL 2.4.1,Common Lisp 语言的实现

SBCL 2.4.1(Steel Bank Common Lisp)已发布,这是 Common Lisp 编程语言的免费实现。该项目代码是用 Common Lisp 和 C 编写的,并在 BSD 许可证下分发。

在新版本中:

  • 使用标记区域算法向并行垃圾收集器添加了对紧凑实例标头的部分支持。
  • 对于声明了返回类型的函数,大型 SAFETY 和 DEBUG 3 优化模式可确保对返回值执行类型检查。
  • 在 FreeBSD 平台上,实现了与 libpthread 的链接,并且禁用了地址空间随机化 (ASLR)。
  • 64 位 riscv 和 ppc 架构上的汇编已恢复。
  • Fastrem-32 支持已在所有平台上实现(用于优化 FLOOR 计算)。
  • 修复了导致标记区域并行垃圾收集器压缩内存后重新刷新移动行的错误。
  • 处理某些 SATISFIES 类型的构造时编译器循环的问题已得到解决。
  • 系统各个部分(包、Unicode 表)中使用的哈希表被转换为使用无冲突的哈希函数(完美)。
  • 类结构层次结构的 TYPECASE 宏是使用无冲突哈希实现的。
  • 为了优化性能,已删除具有常量偏移量的索引的边界检查,其中编译器知道索引小于大小和偏移量之间的差值。
  • 编译器会考虑其他 DIGIT-CHAR 优化数据。
  • 编译器实现了在某些 APPLY、CONCATENATE 和 MAKE-ARRAY 调用中排除中间值的功能,这些调用是从具有新 cons 修改的序列构造的。
  • 循环“(LOOP FOR X IN (REVERSE LIST) ...)”的操作已加速,现在使用的缺点更少。
  • “(LOOP...APPEND...)”循环更加紧凑,并且在添加 NIL 时所做的工作更少。
  • 各种数组的类型检查已加速并缩短。

来源: opennet.ru

添加评论