Die Version SBCL 2.4.0 (Steel Bank Common Lisp) wurde veröffentlicht, eine freie Implementierung der Programmiersprache Common Lisp. Der Projektcode ist in den Sprachen Common Lisp und C geschrieben und wird unter der BSD-Lizenz verbreitet.
In der neuen Version:
- Änderungen, die die Kompatibilität beeinträchtigen:
- *COMPILE-VERBOSE* und *LOAD-VERBOSE* sind beim Start des Systems mit dem Befehlszeilenparameter "--script" auf NIL gebunden.
- Beim Suchen nach der Core-Datei überprüft das System die Korrektheit des in /proc/self/exe angegebenen Pfads und, falls /proc/self/exe fehlerhaft ist, überprüft es argv[0].
- Das System liefert keine Typnamen mehr für die Standard-(CL)-Symbole ARRAY-RANK, ARRAY-TOTAL-SIZE, PATHNAME-HOST, PATHNAME-TYPE, PATHNAME-DIRECTORY, FLOAT-RADIX oder FLOAT-DIGITS.
- Unterstützte Plattformen:
- Auf arm64-Systemen gibt es die Möglichkeit, den parallelen Garbage Collector zu aktivieren, der den mark-region-Algorithmus verwendet.
- Probleme beim Bauen in neuen Versionen von FreeBSD wurden behoben.
- Fehlerbehebungen:
- Die Korrektheit der Typausgabe durch den Compiler wurde bei Aufrufen von REDUCE mit ":INITIAL-VALUE", aber ohne ":FROM-END", wiederhergestellt.
- Ein Compilerfehler wurde behoben, der bei der Deklaration von "SB-EXT:MUFFLE-CONDITIONS" für unbekannte Typen auftrat.
- In einigen Fällen lieferte der Disassembler nicht gut formatierten Output für Register.
- Die Wahrscheinlichkeit, dass das System bei der Ausgabe einer Fehlermeldung über einen erschöpften Kontrollstack erneut den Stack erschöpft, wurde leicht verringert.
- Optimierungen:
- In vielen Fällen wurden Schreibverzögerungen im Garbage Collector behoben.
- Die Typausgabe für Iterationsvariablen mit gemischten Typen wurde verbessert.
- Unnötige Initialisierungswerte für LET-Bindungen wurden entfernt, wodurch die Typwahl für Register verbessert wurde.
- EQUALP/EQUAL/EQL wurden in FIND/MEMBER auf EQL/EQ gesenkt, basierend auf den Eingabetypen.
- Die Typausgabe für DPB und LOGIOR wurde verbessert.
Quelle: opennet.ru
