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

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

60GB SSD 8Gb DDR4