Veröffentlichung von SBCL 2.3.9, einer Implementierung der Programmiersprache Common Lisp.

Die Version SBCL 2.3.9 (Steel Bank Common Lisp) wurde veröffentlicht, eine freie Implementierung der Programmiersprache Common Lisp. Der Projektcode ist in Common Lisp und C geschrieben und wird unter der BSD-Lizenz veröffentlicht.

In der neuen Version:

  • Die Stack-Zuweisung durch DYNAMIC-EXTENT gilt jetzt nicht nur für die anfängliche Bindung, sondern auch für alle Werte, die eine Variable annehmen kann (zum Beispiel durch SETQ). Dies ermöglicht es beispielsweise, den Aufbau komplexer oder rekursiver Strukturen im Stack durch Iterationen zu vereinfachen.
  • Einige Schnittstellen im Modul SB-POSIX sind an die Spezifikation angepasst, und das NULL-Ergebnis aus der C-Bibliothek wird nur dann als Fehler betrachtet, wenn errno durch einen Aufruf verändert wird. In diesem Fall wird ein SIGNAL SYSCALL-ERROR ausgelöst.
  • Die Funktionsweise der Makros DO-PASSWDS und DO-GROUPS im Modul SB-POSIX wurde verbessert. Diese Makros sind für den sicheren Umgang mit der Passwort- und Gruppen-Datenbank gedacht.
  • Die Unterstützung für die Plattformen Darwin x86 und PowerPC wurde wiederhergestellt (Dank an Kirill A. Korinsky, Sergey Fyodorov und barracuda156).
  • Ein Fehler bei der Kompilierung, der aufgrund fehlerhafter Typausgabe beim Multiplizieren von fixnum-Werten mit Gleitkomma-Werten auftrat, wurde behoben.
  • Ein Compilerfehler, der in bestimmten Fällen bei der Überprüfung von 64-Bit signierten und nicht signierten Werten auftrat, wurde korrigiert.
  • Ein Compilerfehler wurde behoben, der auftrat, wenn das Argument „:INITIAL-CONTENTS“ für MAKE-ARRAY eine Konstante-Non-Sequenz war.
  • Ein Kompilierungsfehler, der auftrat, wenn Funktionen zur Reduzierung in eine Konstante der gegebenen Sequenz bei Rückgabe eines falschen Wertes von den Funktionen „:TEST“ oder „:KEY“ zurückverwandelt wurden, wurde korrigiert.
  • Ein Fehler bei der Kompilierung von Array- oder Sequenzfunktionen mit Argumenten, die sehr große Sequenzgrößen implizierten, wurde behoben.
  • Ein Compilerfehler, der auftritt, wenn der Rückgabewert von ADJUST-ARRAY nicht verwendet wird, wurde behoben.
  • Die Typausgabe von Funktionen, die rückwärts propagiert werden können, wurde optimiert.
  • Die Typausgabe für LDB, LOGBITP und RATIO wurde verbessert.
  • Optimierungen wurden vorgenommen, um überflüssige Grenzprüfungen in vielen Fällen transitiver Vergleiche auszuschließen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4