Byl zveřejněn SBCL 2.3.9 (Steel Bank Common Lisp), svobodná implementace programovacího jazyka Common Lisp. Kód projektu je napsán v jazycích Common Lisp a C, a je distribuován pod licencí BSD.
V novém vydání:
- Uvolnění zásobníku pomocí DYNAMIC-EXTENT se nyní vztahuje nejen na počáteční vazbu, ale i na všechna hodnoty, které může proměnná nabývat (například prostřednictvím SETQ). To umožňuje například zjednodušit konstrukci složených nebo rekurzivních struktur na zásobníku pomocí iterací.
- Některé rozhraní v modulu SB-POSIX byla sladěna se specifikací a výsledek NULL z C-knihovny je považován za chybu pouze tehdy, když dojde ke změně errno voláním. V takovém případě bude vyvolán signál SYSCALL-ERROR.
- Byla vylepšena funkčnost makrosů DO-PASSWDS a DO-GROUPS v modulu SB-POSIX. Tyto makrosy jsou určeny pro bezpečnou práci s databází hesel a skupin.
- Obnovená podpora platforem Darwin x86 a PowerPC (děkujeme Kirillu A. Korinsku, Sergeji Fjodorovovi a barracuda156).
- Opraveno nesprávné kompilování, které vznikalo v důsledku chybného výstupu typu při násobení hodnot fixnum s desetinnými hodnotami.
- Opravená chyba kompilátoru, k níž dojde v některých případech při kontrole znaménkových a bezznamkových 64bitových hodnot.
- Opravená chyba kompilátoru v případě, kdy je argument ":INITIAL-CONTENTS" pro MAKE-ARRAY konstantou, která není sekvencí.
- Opravená chyba kompilování funkcí zúžení na konstantu zadané sekvence při vracení nepravdivé hodnoty z funkcí ":TEST" nebo ":KEY".
- Opravená chyba kompilace funkcí pole nebo sekvencí s argumenty, které naznačují velmi velké velikosti sekvence.
- Opravená chyba kompilátoru, kdy nebyla použita hodnota vrácená z ADJUST-ARRAY.
- Optimalizován výstup typů funkcí kompilátorem, které mohou být zpětně šířeny (propagated backwards) skrze mezilehlé reprezentace.
- Vylepšený výstup typů pro LDB, LOGBITP a RATIO.
- Implementovány optimalizace zabývající se vyloučením nadbytečných kontrol hranic v mnoha případech tranzitivních porovnání.
Zdroj: opennet.ru
