Steel Bank Common Lisp 2.6.7 版本說明
Steel Bank Common Lisp 2.6.7 版本說明
SBCL 2.6.7 版本概覽
SBCL 2.6.7 引入了 SB-MANUAL contrib,擴展了 SIMD 支持,並解決了若干錯誤並添加了編譯器。
新貢獻: SB-MANUAL
SB-MANUAL 將 SBCL 手冊以區段定義的 docstrings 形式提供,允許透過 Slime 的 M-. 進行互動探索,或透過 MGL-PAX 程式庫瀏覽;替代渲染可在 https://fixnum.com/ 取得。
平台支援增強
SB-SIMD 現在支援 ARM64,AVX512 指令在 X86-64 上受支援,並為兩種架構額外增加了 SIMD 支持;已修復 ARM64 上 SAP-REF-N 的錯誤編譯,並且在 MIPS 和 LoongArch 上的原始類型上實作了無循環的 INTEGER-LENGTH。
錯誤修復
將 READ-SUPPRESS 設為 T 時進行 READing 不再會發出關於缺失內部特徵的警告;編譯 CONCATENATE 時,當條件已知的非序列參數導致的類型錯誤已被修復;(EQL
最佳化
將常數複數傳遞給局部函數可以在不產生 cons 的情況下進行;在可用時,增強的 SIMD 常規用於 UTF-8 轉換;COUNT 的編譯變換現在適用於更廣泛的關鍵字參數;已從 SB-ALIEN:DEREF 中移除至少一個冗餘指令;編譯器中的稀疏集合實作已進行調整,以在真實工作負載上獲得更佳效能。
文件更新
手冊現在正確地指出陣列是 row-major(不是 column-major)在 SB-MANUAL:@FOREIGN-FUNCTION-INTERFACE 內部;內部 docstrings 符合 Markdown 的一個子集,但 DOCUMENTATION 會去除某些標記;已添加聲明的單獨索引;許多錯字和排版問題已被修復。
社群討論
一位評論者指出了 SIMD 的增強,並詢問:「有人知道 SIMD 在 SBCL 中是如何運作的嗎?這是在程式碼生成層嗎?也就是說,它能自動向量化或類似的東西嗎?還是這些內建函式必須顯式請求?」版本說明描述了 SB-SIMD contrib 對 ARM64 和 AVX512 的支援,表明該功能是透過 contrib 提供,而不是自動向量化。