Steel Bank Common Lisp 2.6.7 发行说明
Steel Bank Common Lisp 2.6.7 Release Notes
SBCL 2.6.7 Release Overview
SBCL 2.6.7 引入了 SB-MANUAL contrib,扩展了 SIMD 支持,并解决了若干错误并添加了编译器。
New Contrib: SB-MANUAL
SB-MANUAL 在章节定义的 docstring 中提供 SBCL 手册,允许通过 Slime 的 M-. 进行交互式探索,或使用 MGL-PAX 库进行浏览;替代渲染可在 https://fixnum.com/ 获得。
Platform Support Enhancements
SB-SIMD 现在支持 ARM64,AVX512 指令在 X86-64 上受支持,并且为两种架构都添加了额外的 SIMD 支持;修复了 ARM64 上 SAP-REF-N 的误编译,并且在 MIPS 和 LoongArch 上原始类型的 INTEGER-LENGTH 实现为无循环。
Bug Fixes
当 READ-SUPPRESS 设置为 T 时,READ 操作不再发出关于缺失内部特性的警告;编译 CONCATENATE 时,当有条件的已知非序列参数导致的类型错误已被修复;(EQL
Optimizations
将常量复数传递给局部函数可以在不进行 consing 的情况下完成;增强的 SIMD 例程在可用时用于 UTF-8 转换;COUNT 的编译器转换现在适用于更广泛的关键字参数;从 SB-ALIEN:DEREF 中删除了至少一条冗余指令;编译器中的稀疏集合实现已进行调优,以在实际工作负载中获得更好的性能。
Documentation Updates
手册现在正确地指出数组是行主序(而不是列主序)在 SB-MANUAL:@FOREIGN-FUNCTION-INTERFACE 内部;内部 docstring 符合 Markdown 的一个子集,但 DOCUMENTATION 会去除一些标记;已添加一个用于声明的单独索引;许多拼写错误和排版问题已得到修复。
Community Discussion
一位评论者指出了 SIMD 的添加,并问道:“有人知道 SIMD 在 SBCL 中是如何工作的吗?这是在代码生成层吗?换句话说,它是否可以自动向量化或类似的功能?还是这些是必须显式调用的内在函数?”发行说明描述了 SB-SIMD contrib 对 ARM64 和 AVX512 的支持,表明该功能是通过 contrib 提供的,而不是自动向量化。