UtgÄvan av SBCL 2.3.9 (Steel Bank Common Lisp) har publicerats, en fri implementation av programmeringssprÄket Common Lisp. Projektkoden Àr skriven i Common Lisp och C, och distribueras under BSD-licensen.
I den nya utgÄvan:
- Stack-allokering via DYNAMIC-EXTENT tillÀmpas nu inte bara pÄ den initiala bindningen, utan Àven pÄ alla vÀrden som variabeln kan anta (t.ex. via SETQ). Detta möjliggör bland annat enklare konstruktion av komplexa eller rekursiva strukturer i stacken genom iterationer.
- Vissa grÀnssnitt i modulen SB-POSIX har anpassats för att motsvara specifikationen, och NULL-resultatet frÄn C-biblioteket betraktas som ett fel endast nÀr errno har Àndrats av anropet. I sÄ fall kommer ett SYSCALL-ERROR-signal att genereras.
- Prestandan för makron DO-PASSWDS och DO-GROUPS i modulen SB-POSIX har förbÀttrats. Dessa makron Àr avsedda för sÀker hantering av databasen för lösenord och grupper.
- Stödet för Darwin-plattformar x86 och PowerPC har ÄterstÀllts (tack till Kirill A. Korinskiy, Sergey Fyodorov och barracuda156).
- Ett fel vid kompilering, som intrÀffade pÄ grund av felaktig typutmatning vid multiplikation av fixnum-vÀrden med flyttal, har ÄtgÀrdats.
- Ett kompilatorfel som uppstod i vissa fall vid kontroll av tecknade och obeskrivna 64-bitarsvÀrden har ÄtgÀrdats.
- Ett kompilatorfel har ÄtgÀrdats nÀr argumentet ":INITIAL-CONTENTS" för MAKE-ARRAY var en konstant icke-sekvens.
- Ett fel vid kompilering av funktionskompression till en konstant angiven sekvens vid ÄterlÀmnande av falskt vÀrde frÄn funktionerna ":TEST" eller ":KEY" har ÄtgÀrdats.
- Ett kompilationsfel har ÄtgÀrdats för array- eller sekvensfunktioner med argument som antyder mycket stora sekvensstorlekar.
- Ett kompilatorfel har ÄtgÀrdats som uppstod nÀr vÀrdet som returnerades av ADJUST-ARRAY inte anvÀndes.
- Typutmatningen av funktioner i kompilatorn, som kan spridas bakÄt genom det mellanliggande representationslagret, har optimerats.
- Typutmatningen för LDB, LOGBITP och RATIO har förbÀttrats.
- Optimeringar har genomförts för att eliminera onödiga grÀnskontroller för mÄnga fall av transitiva jÀmförelser.
KĂ€lla: opennet.ru
