Die Veröffentlichung von SBCL 2.4.1, einer Implementation der Programmiersprache Common Lisp

Die Veröffentlichung von SBCL 2.4.1 (Steel Bank Common Lisp), einer freien Implementierung der Programmiersprache Common Lisp, wurde bekannt gegeben. Der Projektcode ist in Common Lisp und C geschrieben und wird unter der BSD-Lizenz verbreitet.

In der neuen Version:

  • Der parallele Müllsammler, der den mark-region-Algorithmus verwendet, hat teilweise Unterstützung für die Header komprimierter Instanzen erhalten.
  • Für Funktionen mit deklarierten Rückgabetypen in Optimierungsmodi mit hohen SAFETY-Werten und im DEBUG 3-Modus wurde eine Typprüfung für Rückgabewerte sichergestellt.
  • Auf der FreeBSD-Plattform wurde die Verlinkung mit libpthread implementiert und die Zufälligkeit des Adressraums (ASLR) deaktiviert.
  • Der Bau für 64-bit Architekturen riscv und ppc wurde wiederhergestellt.
  • Für alle Plattformen wurde die Unterstützung für fastrem-32 (für optimierte FLOOR-Berechnungen) implementiert.
  • Ein Fehler wurde behoben, der zu einer wiederholten Bereinigung von verschobenen Zeilen nach der Komprimierung des Speichers durch den parallelen Müllsammler mark-region führte.
  • Ein Problem mit der Endlosschleife des Compilers bei der Verarbeitung bestimmter Konstruktionen mit SATISFIES-Typen wurde gelöst.
  • Die Hash-Tabellen, die in verschiedenen Teilen des Systems (Pakete, Unicode-Tabellen) verwendet werden, wurden umgestellt, um Hash-Funktionen ohne Kollisionen (perfect) zu verwenden.
  • Das Makro TYPECASE für Hierarchien von Klassenstrukturen wurde mit einem kollisionfreien Hash implementiert.
  • Zur Optimierung der Leistung wurden die Grenzenprüfungen für Indizes mit konstanten Offsets entfernt, wenn der Compiler weiß, dass der Index kleiner als die Differenz zwischen Größe und Offset ist.
  • Im Compiler wurden zusätzliche Daten zur Optimierung DIGIT-CHAR berücksichtigt.
  • Im Compiler wurde die Möglichkeit implementiert, Zwischenwerte in bestimmten Aufrufen von APPLY, CONCATENATE und MAKE-ARRAY für Argumente, die aus Sequenzen mit neuen cons-Modifikationen bestehen, auszuschließen.
  • Die Ausführung des Zyklus „(LOOP FOR X IN (REVERSE LIST) …)“ wurde beschleunigt, da jetzt weniger cons benötigt werden.
  • Der Zyklus „(LOOP … APPEND …)“ ist kompakter geworden und erfordert weniger Aufwand beim Hinzufügen von NIL.
  • Die Typprüfungen verschiedener Arrays wurden beschleunigt und verkürzt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4