Veröffentlichung von SBCL 2.4.2, Implementierung der Programmiersprache Common Lisp

Die Veröffentlichung von SBCL 2.4.2 (Steel Bank Common Lisp), einer freien Implementierung der Programmiersprache Common Lisp, wurde bekannt gegeben. Der Projektcode ist in den Sprachen Common Lisp und C geschrieben und unter der BSD-Lizenz verfügbar.

In der neuen Version:

  • Die Selbstkompilierung auf x86-64-Systemen mit Linux erzeugt nun bitgenau identische, plattformübergreifende fasl-Dateien, wenn der Build-Host cmucl, ccl, clisp oder sbcl selbst ist.
  • Optimierungen:
    • Eine große Anzahl interner Tabellen, insbesondere die, die die Unterstützung von Unicode betreffen, wurden auf die Verwendung von kollisionsfreien Hash-Funktionen (perfect) umgestellt, was die Geschwindigkeit verbessert und die Größe verringert hat.
    • FIND, POSITION, ASSOC und RASSOC, die unveränderliche Sequenzen mit Symbolen als Schlüssel enthalten, werden nun für die Suche unter Verwendung kollisionsfreier Hashes kompiliert.
    • Auf x86-64-Systemen wurde im Compiler das Jump-to-Jump-Problem behoben.
  • Fehlerbehebungen:
    • Die Möglichkeit zur Vererbung sowohl von SEQUENCE als auch von SB-MOP:FUNCALLABLE-STANDARD-OBJECT wurde wiederhergestellt.
    • COERCE wird Lambda-Formen nicht in Funktionen umwandeln, wenn der angegebene Typ ein Subtyp von FUNCTION ist.
    • Die LOG-Funktion mit double-float- und rationalen Argumenten (in beliebiger Reihenfolge) verliert keine Genauigkeit durch ein zwischenliegendes single-float-Argument.
    • LOG zur Basis 2 der ganzzahligen Potenz von 2 wird mit hoher Wahrscheinlichkeit mathematisch genaue Ergebnisse liefern.
    • LOG für rationale Zahlen, die nahe bei eins liegen, mit Zähler oder Nenner, die nahe an einer Zweierpotenz liegen, nutzt log1p und verliert dadurch weniger Genauigkeit.
    • Das externe Format utf-8 mit Unix-Zeilenenden aktualisiert die Informationen über die Darstellung der Zeichenlängen, wenn der Schnellzugriff für ASCII-Zeichenpuffer verwendet wird.
    • Inhalte, die wahrscheinlich dynamisch nicht mehr gültige cons-Objekte sind, wurden im PRINT-OBJECT für THREAD-Objekte nicht ausgegeben.
    • Ständige Bereitstellung externer Einstiegspunkte für Funktionen vor allen anderen lokalen Funktionen.
    • Entfernung nicht aktiver Optimierungsanmerkungen für zitierten Formen und einzelne APPEND-Aufrufe mit hoher Geschwindigkeit.
    • Ein unendlicher Zyklus in COPY-SEQ für Arrays der Länge Null mit NIL-Elementtyp.
    • Korrekturen bei der Kompilierung von Konstruktoren für nicht hochgradige Strukturen.
  • Korrekturen in SB-SIMD:
    • Verbesserung der Grenzkontrollen in SB-SIMD.
    • Korrektur von SB-SIMD AVX f64.4-reverse.
    • Behebung der Shuffle-Probleme bei SB-SIMD auf AVX und SSE2.
    • Behebung der Lebensdauer in SSE+xmm0 VOPs.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster