Steel Bank Common Lisp 2.6.7 版本说明

Steel Bank Common Lisp 2.6.7 版本说明

Hacker News 摘要

原标题:Steel Bank Common Lisp version 2.6.7

Steel Bank Common Lisp(简称 SBCL)是一款高性能的开源 Common Lisp 编译器。该网页记录了 SBCL 从 2.6.7 版本回溯至 0.6.0 版本的完整更新历史。SBCL 通常在每月月底发布新版本,每个版本都会在功能增强、平台支持、错误修复和性能优化方面进行改进。

2.6.7 版本(2026年7月28日)

这是最新的版本,带来了多项重要更新:

新增模块:引入了 SB-MANUAL 扩展模块。该模块将 SBCL 手册以文档字符串(docstrings)的形式集成到各个部分的定义中。用户可以在开发环境(如 Slime)中使用 M-. 快捷键交互式地查阅手册,也可以通过 MGL-PAX 库浏览。此外,手册还提供了链接丰富的 PDF、HTML、Markdown 和纯文本格式。

新增功能DOCUMENTATION 函数现在支持 DOC-TYPE DECLARATION 类型。

平台支持

SB-SIMD 扩展模块现在支持 ARM64 架构。

• x86-64 架构新增了对 AVX512 指令的支持。

• 针对 ARM64 和 x86-64 架构提供了额外的 SIMD 指令支持。

• 修复了 ARM64 架构上 SAP-REF-N 的编译错误。

• 在 MIPS 和 LoongArch 架构上,为基本类型实现了无需循环的 INTEGER-LENGTH 函数。

错误修复

• 修复了当 *READ-SUPPRESS* 为 T 时,读取过程会发出内部功能缺失警告的问题。

• 修复了编译器在处理带有条件已知非序列参数的 CONCATENATE 调用时的类型错误。

• 修复了类型系统未将 (EQL <complex>) 类型视为数值的问题。

• 改进了 LOG 函数对静默 NaN 输入的处理。

性能优化

• 向局部函数传递常量复数时不再产生内存分配(consing)。

• 在支持的平台上,使用增强型 SIMD 例程加速 UTF-8 转换。

• 优化了 COUNT 函数的编译器转换,使其适用于更多关键字参数。

• 优化了编译器内的稀疏集实现,提升了实际工作负载下的性能。

文档改进

• 修复了大量拼写和排版问题。

• 纠正了 SB-MANUAL 中关于外部函数接口的说明,明确数组是行优先(row-major)排布的。

• 手册现在为声明(declarations)提供了独立的索引。

2.6.6 版本(2026年6月28日)

不兼容变更FDEFINITION 现在像 SYMBOL-FUNCTION 一样,会返回由 TRACEPROFILE 添加的最外层包装。

平台支持:修复了在开启 ELFv2 的 64位大端 PowerPC 架构上的构建问题;移动了 macOS ARM64 架构的静态空间地址。

优化:编译器在处理已知约束下的 COERCEAREFELT 时,类型推导更加精确;加快了 UTF-8 格式 C 字符串的编码和解码速度。

文档:手册新增了 SB-INTROSPECT 章节。

2.6.5 版本(2026年5月29日)

不兼容变更:访问对象中缺失的槽位或未初始化的结构体槽位时,引发的条件不再是 TYPE-ERROR;处理集合的标准化函数(如 INTERSECTIONUNION)在返回结果顺序上拥有更大的自由度。

平台支持:为 PPC64/FreeBSD 增加了浮点状态操作的底层支持;恢复了使用 musl C 库构建系统的支持。

错误修复:提高了处理大型不相交数值并集类型时的编译速度。

优化:在多种情况下,INTERSECTIONUNION 会利用哈希表来加速操作。

2.6.4 版本(2026年4月29日)

平台支持:增加了对 32位 Linux 系统中 64位 time_t 的支持;在 Windows 平台上,RUN-PROGRAM 会对独立的空参数进行转义。

错误修复:修复了编译器中的无限循环问题;解决了 CHECK-TYPE 扩展中包含内部不可外部化对象的问题。

优化:在 x86-64 架构上,使用 Lemire 等人的变换算法实现了 TRUNCATE 指令。

2.6.0 至 2.6.3 版本亮点

架构支持:正式增加了对 LoongArch(龙芯)架构的支持;为 Windows ARM64 平台提供了支持。

指令集增强:在 x86-64 平台上支持 ADCX 和 ADOX 指令;为 ARM64 平台提供了更强大的回溯工具和分析功能。

垃圾回收:改进了 mark-region 垃圾回收器的稳定性。

不兼容变更IMAGPART 对负浮点数现在返回 0.0 而非 -0.0,以保持与实数处理的一致性。

性能提升:优化了 UPGRADED-ARRAY-ELEMENT-TYPE 的速度;REDUCE 函数在列表和向量上的性能均得到提升。

核心功能与长期特性

编译器优化:SBCL 编译器以其强大的类型推导能力著称。它能够识别多种“公认的代码模式”并将其转换为更短的机器码指令序列。

多线程与同步:支持高效的线程操作、互斥锁、信号量以及无锁的数据结构。

外部函数接口(FFI):允许 Lisp 代码高效调用 C 语言库,支持结构体的传值与返回。

代码覆盖率工具:内置 SB-COVER 模块,能够生成符合 LCOV 格式的报告。

内省工具SB-INTROSPECT 提供了深入了解代码结构、定义来源和内存分配信息的能力。

SBCL 持续关注主流计算架构(如 x86、ARM、PowerPC、MIPS、SPARC 和 RISC-V)以及多种操作系统(如 Linux、Windows、macOS、FreeBSD、OpenBSD、NetBSD、Solaris 和 Haiku)的兼容性与性能表现。


原文:https://sbcl.org/all-news.html?2.6.7

评论:https://news.ycombinator.com/item?id=49086971

Report Page