Common Lisp プログラミング言語の無料実装である SBCL 2.4.1 (Steel Bank Common Lisp) のリリースが公開されました。プロジェクト コードは Common Lisp と C で書かれており、BSD ライセンスの下で配布されます。
新しいリリースでは:
- マーク領域アルゴリズムを使用して、コンパクト インスタンス ヘッダーの部分的なサポートを並列ガベージ コレクターに追加しました。
- 宣言された戻り値の型を持つ関数の場合、大規模な SAFETY および DEBUG 3 最適化モードにより、戻り値の型チェックが確実に実行されます。
- FreeBSD プラットフォームでは、libpthread とのリンクが実装されており、アドレス空間ランダム化 (ASLR) は無効になっています。
- 64 ビット riscv および ppc アーキテクチャ上のアセンブリが復元されました。
- Fastrem-32 サポートがすべてのプラットフォームに実装されました (最適化された FLOOR 計算用)。
- マーク領域の並列ガベージ コレクターによるメモリ圧縮後に、移動された行が再フラッシュされるバグを修正しました。
- SATISFIES 型を使用した一部の構造を処理するときにコンパイラがループする問題は解決されました。
- システムのさまざまな部分 (パッケージ、Unicode テーブル) で使用されるハッシュ テーブルは、衝突のない (完全な) ハッシュ関数を使用するように変換されます。
- クラス構造階層の TYPECASE マクロは、衝突のないハッシュを使用して実装されます。
- パフォーマンスを最適化するために、定数オフセットを持つインデックスの境界チェックが削除されました。コンパイラーは、インデックスがサイズとオフセットの差よりも小さいことを認識します。
- コンパイラーは、追加の DIGIT-CHAR 最適化データを考慮します。
- コンパイラは、新たに cons を変更したシーケンスから構築された引数に対する一部の APPLY、CONCATENATE、および MAKE-ARRAY 呼び出しで中間値を除外する機能を実装しました。
- ループ「(LOOP FOR X IN (REVERSE LIST) ...)」の操作が高速化され、使用する短所が減りました。
- 「(LOOP... APPEND...)」ループはよりコンパクトで、NIL を追加するときの作業が少なくなります。
- さまざまな配列の型チェックが高速化され、短縮されました。
出所: オープンネット.ru