Udgivelse af SBCL 2.3.9, en implementering af Common Lisp-sproget

Udgivelsen af ​​SBCL 2.3.9 (Steel Bank Common Lisp), en gratis implementering af Common Lisp-programmeringssproget, er blevet offentliggjort. Projektkoden er skrevet i Common Lisp og C, og distribueres under BSD-licensen.

I den nye udgivelse:

  • Stackallokering via DYNAMIC-EXTENT gælder nu ikke kun for den indledende binding, men også for alle værdier, som variablen kan tage (for eksempel via SETQ). Dette gør det for eksempel muligt at forenkle konstruktionen af ​​komplekse eller rekursive strukturer i en stak gennem iteration.
  • Nogle grænseflader i SB-POSIX-modulet er lavet til at være i overensstemmelse med specifikationen, og et NULL-resultat fra C-biblioteket betragtes som en fejl, hvis og kun hvis errno ændres af opkaldet. I dette tilfælde vil SYSCALL-FEJL-signalet blive genereret.
  • Forbedret drift af DO-PASSWDS og DO-GROUPS makroerne i SB-POSIX modulet. Disse makroer er designet til at fungere sikkert med adgangskoden og gruppedatabasen.
  • Understøttelse af Darwin x86- og PowerPC-platformene er blevet gendannet (takket være Kirill A. Korinsky, Sergey Fedorov og barracuda156).
  • Rettet forkert kompilering, der opstod på grund af fejlagtig typeslutning ved multiplikation af fixnum-værdier med brøkværdier.
  • Rettede en kompileringsfejl, der opstod i nogle tilfælde ved kontrol af signerede og usignerede 64-bit værdier.
  • Rettede en compilerfejl, når ":INITIAL-CONTENTS"-argumentet til MAKE-ARRAY er en ikke-sekvenskonstant.
  • Rettede en fejl ved kompilering af foldningsfunktioner til en given sekvenskonstant, når der returneredes en falsk værdi fra funktionerne ":TEST" eller ":KEY".
  • Rettede en fejl ved kompilering af array-funktioner eller sekvenser med argumenter, der indebærer meget store sekvensstørrelser.
  • Rettede en compilerfejl, der opstår, når værdien returneret fra ADJUST-ARRAY ikke bruges.
  • Optimeret compiler-inferens af funktionstyper, der kan udbredes baglæns gennem en mellemrepræsentation.
  • Forbedret typeinferens for LDB, LOGBITP og RATIO.
  • Der er foretaget optimeringer for at eliminere unødvendige grænsekontrol i mange tilfælde af transitive sammenligninger.

Kilde: opennet.ru

Tilføj en kommentar