Bylo zveřejněno vydání SBCL 2.3.9 (Steel Bank Common Lisp), bezplatná implementace programovacího jazyka Common Lisp. Kód projektu je napsán v Common Lisp a C a je distribuován pod licencí BSD.
V novém vydání:
- Alokace zásobníku pomocí DYNAMIC-EXTENT se nyní vztahuje nejen na počáteční vazbu, ale také na všechny hodnoty, které může proměnná nabývat (například prostřednictvím SETQ). To umožňuje například zjednodušit konstrukci složitých nebo rekurzivních struktur v zásobníku pomocí iterace.
- Některá rozhraní v modulu SB-POSIX jsou vyrobena tak, aby odpovídala specifikaci, a výsledek NULL z knihovny C je považován za chybu tehdy a pouze tehdy, když se voláním změní errno. V tomto případě bude generován signál SYSCALL-ERROR.
- Vylepšené ovládání maker DO-PASSWDS a DO-GROUPS v modulu SB-POSIX. Tato makra jsou navržena tak, aby bezpečně pracovala s databází hesel a skupin.
- Podpora platforem Darwin x86 a PowerPC byla obnovena (díky Kirillu A. Korinskému, Sergeji Fedorovovi a barracuda156).
- Opravena nesprávná kompilace, ke které došlo v důsledku chybného odvození typu při násobení hodnot fixnum zlomkovými hodnotami.
- Opravena chyba kompilátoru, která se v některých případech vyskytovala při kontrole podepsaných a nepodepsaných 64bitových hodnot.
- Opravena chyba kompilátoru, kdy argument ":INITIAL-CONTENTS" pro MAKE-ARRAY je nesekvenční konstanta.
- Opravena chyba při kompilaci konvolučních funkcí do dané sekvenční konstanty při vracení falešné hodnoty z funkcí „:TEST“ nebo „:KEY“.
- Opravena chyba při kompilaci funkcí pole nebo sekvencí s argumenty, které implikují velmi velké velikosti sekvencí.
- Opravena chyba kompilátoru, ke které dochází, když není použita hodnota vrácená z ADJUST-ARRAY.
- Optimalizované vyvozování typů funkcí kompilátoru, které lze šířit zpětně prostřednictvím střední reprezentace.
- Vylepšené odvození typu pro LDB, LOGBITP a RATIO.
- Byly provedeny optimalizace, aby se odstranily zbytečné kontroly hranic pro mnoho případů tranzitivních srovnání.
Zdroj: opennet.ru