發布 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

添加評論