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

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

在新版本中:

  • 现在,通过 DYNAMIC-EXTENT 进行的堆栈分配不仅适用于初始绑定,还适用于变量可以采用的所有值(例如,通过 SETQ)。 例如,这使得可以通过迭代来简化堆栈中复杂或递归结构的构造。
  • SB-POSIX 模块中的某些接口符合规范,当且仅当调用更改了 errno 时,C 库中的 NULL 结果才被视为错误。 在这种情况下,将生成 SYSCALL-ERROR 信号。
  • 改进了 SB-POSIX 模块中 DO-PASSWDS 和 DO-GROUPS 宏的操作。 这些宏旨在与密码和组数据库安全地配合使用。
  • 恢复了对 Darwin x86 和 PowerPC 平台的支持(感谢 Kirill A. Korinsky、Sergey Fedorov 和 barracuda156)。
  • 修复了将 fixnum 值乘以小数值时由于错误类型推断而发生的错误编译。
  • 修复了检查有符号和无符号 64 位值时在某些情况下发生的编译器错误。
  • 修复了当 MAKE-ARRAY 的“:INITIAL-CONTENTS”参数是非序列常量时的编译器错误。
  • 修复了从“:TEST”或“:KEY”函数返回错误值时将卷积函数编译为给定序列常量时出现的错误。
  • 修复了编译带有意味着非常大的序列大小的参数的数组函数或序列时的错误。
  • 修复了未使用从 ADJUST-ARRAY 返回的值时发生的编译器错误。
  • 可以通过中间表示向后传播的函数类型的优化编译器推断。
  • 改进了 LDB、LOGBITP 和 RATIO 的类型推断。
  • 已经进行了优化,以消除许多传递比较情况下不必要的边界检查。

来源: opennet.ru

添加评论