Utgivelsen av SBCL 2.3.9 (Steel Bank Common Lisp), en gratis implementering av Common Lisp-programmeringsspråket, har blitt publisert. Prosjektkoden er skrevet i Common Lisp og C, og distribueres under BSD-lisensen.
I den nye utgivelsen:
- Stackallokering via DYNAMIC-EXTENT gjelder nå ikke bare for den første bindingen, men også for alle verdier som variabelen kan ta (for eksempel via SETQ). Dette gjør det for eksempel mulig å forenkle konstruksjonen av komplekse eller rekursive strukturer i en stabel gjennom iterasjon.
- Noen grensesnitt i SB-POSIX-modulen er laget for å samsvare med spesifikasjonen, og et NULL-resultat fra C-biblioteket anses som en feil hvis og bare hvis feilen endres av anropet. I dette tilfellet vil SYSCALL-ERROR-signalet genereres.
- Forbedret drift av DO-PASSWDS- og DO-GROUPS-makroene i SB-POSIX-modulen. Disse makroene er laget for å fungere sikkert med passordet og gruppedatabasen.
- Støtte for Darwin x86- og PowerPC-plattformene er gjenopprettet (takket være Kirill A. Korinsky, Sergey Fedorov og barracuda156).
- Rettet feil kompilering som oppsto på grunn av feilaktig typeslutning ved multiplikasjon av fiksnummerverdier med brøkverdier.
- Rettet en kompilatorfeil som oppstod i noen tilfeller ved kontroll av signerte og usignerte 64-bits verdier.
- Rettet en kompilatorfeil når ":INITIAL-CONTENTS"-argumentet til MAKE-ARRAY er en ikke-sekvenskonstant.
- Rettet en feil ved kompilering av konvolusjonsfunksjoner til en gitt sekvenskonstant ved retur av en falsk verdi fra funksjonene ":TEST" eller ":KEY".
- Rettet en feil ved kompilering av array-funksjoner eller sekvenser med argumenter som innebærer svært store sekvensstørrelser.
- Rettet en kompilatorfeil som oppstår når verdien returnert fra ADJUST-ARRAY ikke brukes.
- Optimalisert kompilatorinferens av funksjonstyper som kan forplantes bakover gjennom en mellomrepresentasjon.
- Forbedret typeslutning for LDB, LOGBITP og RATIO.
- Optimaliseringer er gjort for å eliminere unødvendige grensekontroller for mange tilfeller av transitive sammenligninger.
Kilde: opennet.ru
