Release van SBCL 2.3.9, een implementatie van de Common Lisp-taal

De release van SBCL 2.3.9 (Steel Bank Common Lisp), een gratis implementatie van de Common Lisp-programmeertaal, is gepubliceerd. De projectcode is geschreven in Common Lisp en C, en wordt gedistribueerd onder de BSD-licentie.

In de nieuwe uitgave:

  • Stapeltoewijzing via DYNAMIC-EXTENT geldt nu niet alleen voor de initiële binding, maar ook voor alle waarden die de variabele kan aannemen (bijvoorbeeld via SETQ). Dit maakt het bijvoorbeeld mogelijk om door iteratie de constructie van complexe of recursieve structuren in een stapel te vereenvoudigen.
  • Sommige interfaces in de SB-POSIX-module zijn gemaakt om te voldoen aan de specificatie, en een NULL-resultaat van de C-bibliotheek wordt als een fout beschouwd als en alleen als errno door de aanroep wordt gewijzigd. In dit geval wordt het signaal SYSCALL-ERROR gegenereerd.
  • Verbeterde werking van de DO-PASSWDS- en DO-GROUPS-macro's in de SB-POSIX-module. Deze macro's zijn ontworpen om veilig te werken met de wachtwoord- en groepsdatabase.
  • Ondersteuning voor de Darwin x86- en PowerPC-platforms is hersteld (dankzij Kirill A. Korinsky, Sergey Fedorov en barracuda156).
  • Een onjuiste compilatie opgelost die optrad als gevolg van foutieve type-inferentie bij het vermenigvuldigen van fixnum-waarden met fractionele waarden.
  • Een compilerfout opgelost die in sommige gevallen optrad bij het controleren van ondertekende en niet-ondertekende 64-bits waarden.
  • Er is een compileerfout opgelost waarbij het argument ":INITIAL-CONTENTS" voor MAKE-ARRAY een niet-reeksconstante is.
  • Er is een fout opgelost bij het compileren van convolutiefuncties in een bepaalde reeksconstante bij het retourneren van een valse waarde van de functies “:TEST” of “:KEY”.
  • Er is een bug opgelost bij het compileren van arrayfuncties of reeksen met argumenten die zeer grote reeksgroottes impliceren.
  • Een compilerfout opgelost die optrad wanneer de waarde die werd geretourneerd door ADJUST-ARRAY niet werd gebruikt.
  • Geoptimaliseerde compiler-inferentie van functietypen die achterwaarts kunnen worden gepropageerd via een tussenrepresentatie.
  • Verbeterde type-inferentie voor LDB, LOGBITP en RATIO.
  • Er zijn optimalisaties doorgevoerd om onnodige grenscontroles voor veel gevallen van transitieve vergelijkingen te elimineren.

Bron: opennet.ru

Voeg een reactie