Die Version SBCL 2.3.9 (Steel Bank Common Lisp), eine freie Implementierung der Programmiersprache Common Lisp, wurde veröffentlicht. Der Code des Projekts ist in den Programmiersprachen Common Lisp und C geschrieben und wird unter der BSD-Lizenz verbreitet.
In der neuen Version:
- Die Stack-Allokation über DYNAMIC-EXTENT wird jetzt nicht nur auf die initiale Bindung angewendet, sondern auch auf alle Werte, die eine Variable annehmen kann (zum Beispiel über SETQ). Dies ermöglicht es, komplexe oder rekursive Strukturen im Stack durch Iterationen zu vereinfachen.
- Einige Schnittstellen im Modul SB-POSIX wurden an die Spezifikation angepasst, und das NULL-Ergebnis von der C-Bibliothek wird nur dann als Fehler betrachtet, wenn errno durch den Aufruf geändert wurde. In diesem Fall wird ein SYSCALL-ERROR-Signal erzeugt.
- Die Funktionalität der Makros DO-PASSWDS und DO-GROUPS im Modul SB-POSIX wurde verbessert. Diese Makros sind für den sicheren Umgang mit der Datenbank für Passwörter und Gruppen vorgesehen.
- Die Unterstützung für die Plattformen Darwin x86 und PowerPC wurde wiederhergestellt (danke an Kirill A. Korinsky, Sergey Fyodorov und barracuda156).
- Ein Problem bei der fehlerhaften Kompilierung, das durch eine falsche Typausgabe beim Multiplizieren von fixnum-Werten mit Fließkommazahlen verursacht wurde, wurde behoben.
- Ein Fehler des Compilers wurde behoben, der in einigen Fällen beim Überprüfen von signierten und unsigned 64-Bit-Werten auftrat.
- Ein Compilerfehler wurde behoben, wenn das Argument «:INITIAL-CONTENTS» für MAKE-ARRAY eine Konstante und keine Sequenz war.
- Ein Fehler beim Kompilieren von Funktionen, die eine Sequenz in eine Konstante zusammenfassen, wurde behoben, wenn die Funktionen «:TEST» oder «:KEY» einen falschen Wert zurückgeben.
- Ein Kompilierungsfehler von Array- oder Sequenzfunktionen mit Argumenten, die sehr große Sequenzgrößen implizieren, wurde behoben.
- Ein Compilerfehler wurde behoben, der auftritt, wenn der Rückgabewert von ADJUST-ARRAY nicht verwendet wird.
- Der Typausgabemechanismus des Compilers wurde optimiert, um rückläufige Typweitergaben durch das zwischenliegende Format zu ermöglichen.
- Die Typausgabe für LDB, LOGBITP und RATIO wurde verbessert.
- Optimierungen wurden vorgenommen, um überflüssige Grenzkontrollen in vielen Fällen transitive Vergleiche zu vermeiden.
Quelle: opennet.ru
