SBCL 2.3.9 (Steel Bank Common Lisp), Common Lisp -ohjelmointikielen ilmainen toteutus, on julkaistu. Projektin koodi on kirjoitettu Common Lisp- ja C-kielillä ja se jaetaan BSD-lisenssin alaisuudessa.
Uudessa julkaisussa:
- DYNAMIC-EXTENT-menetelmällä tehty pinon allokointi koskee nyt paitsi alkuperäistä sidontaa, myös kaikkia muuttujan mahdollisia arvoja (esim. SETQ:n avulla). Tämä mahdollistaa esimerkiksi monimutkaisten tai rekursiivisten pinorakenteiden helpomman rakentamisen iteroinnin avulla.
- Jotkin SB-POSIX-moduulin rajapinnat on päivitetty vastaamaan spesifikaatiota, ja C-kirjaston NULL-tulosta pidetään virheenä, jos ja vain jos kutsu muuttaa errno-arvoa. Tässä tapauksessa generoidaan SYSCALL-ERROR-signaali.
- Parannettu DO-PASSWDS- ja DO-GROUPS-makrojen suorituskykyä SB-POSIX-moduulissa. Nämä makrot on suunniteltu salasana- ja ryhmätietokannan suojattuun käyttöön.
- Tuki Darwin x86- ja PowerPC-alustoille on palautettu (kiitos Kirill A. Korinskylle, Sergey Fedoroville ja barracuda156:lle).
- Korjattu virheellinen käännös, joka johtui virheellisestä tyypin päättelystä kerrottaessa fixnum-arvoja murtolukuarvoilla.
- Korjattu kääntäjävirhe, joka ilmeni joissakin tapauksissa tarkistettaessa allekirjoitettuja ja allekirjoittamattomia 64-bittisiä arvoja.
- Korjattu kääntäjävirhe, jossa MAKE-ARRAY-funktion ":INITIAL-CONTENTS"-argumentti oli ei-peräkkäinen vakio.
- Korjattu virhe, jossa taittofunktiot käännettiin tietyn sekvenssin vakioksi, kun ":TEST"- tai ":KEY"-funktiot palauttivat väärän arvon.
- Korjattu käännösvirhe taulukko- tai sekvenssifunktioille, joiden argumentit viittasivat erittäin suuriin sekvenssikokoihin.
- Korjattu kääntäjävirhe, joka ilmeni, kun ADJUST-ARRAY-funktion paluuarvoa ei käytetty.
- Kääntäjän päättely funktiotyypeistä, joita voidaan levittää taaksepäin väliesityksen kautta, on optimoitu.
- Parannettu tyypin päättely LDB:lle, LOGBITP:lle ja RATIO:lle.
- Optimointeja on tehty tarpeettomien rajatarkistusten poistamiseksi monissa transitiivisissa vertailutapauksissa.
Lähde: opennet.ru
