Bylo zveřejněno vydání SBCL 2.4.1 (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í:
- Přidána částečná podpora pro záhlaví kompaktních instancí do paralelního garbage collectoru pomocí algoritmu mark-region.
- U funkcí s deklarovanými návratovými typy zajišťují velké optimalizační režimy SAFETY a DEBUG 3 provedení kontroly typu na návratových hodnotách.
- Na platformě FreeBSD je implementováno propojení s libpthread a je zakázána randomizace adresního prostoru (ASLR).
- Sestavení na 64bitových architekturách riscv a ppc bylo obnoveno.
- Podpora Fastrem-32 byla implementována pro všechny platformy (pro optimalizované výpočty FLOOR).
- Opravena chyba, která způsobovala, že přesunuté řádky byly po zhutnění paměti znovu vyprázdněny paralelním garbage collectorem mark-region.
- Problém se zacyklením kompilátoru při zpracování některých konstrukcí s typy SATIFIES byl vyřešen.
- Hashovací tabulky používané v různých částech systému (balíčky, Unicode tabulky) jsou převedeny na použití hashovacích funkcí, které jsou bez kolizí (perfektní).
- Makro TYPECASE pro hierarchie struktury tříd je implementováno pomocí hashe bez kolizí.
- Pro optimalizaci výkonu byly odstraněny kontroly hranic pro indexy s konstantním posunem, kde kompilátor ví, že index je menší než rozdíl mezi velikostí a posunem.
- Kompilátor bere v úvahu další optimalizační data DIGIT-CHAR.
- Kompilátor implementoval možnost vyloučit mezilehlé hodnoty v některých voláních APPLY, CONCATENATE a MAKE-ARRAY pro argumenty vytvořené ze sekvencí s novými modifikacemi záporů.
- Provoz smyčky „(LOOP FOR X IN (REVERSE LIST) ...)“ byl zrychlen, což nyní využívá méně nevýhod.
- Smyčka "(LOOP... APPEND...)" je kompaktnější a při přidávání NIL odvádí méně práce.
- Typové kontroly pro různá pole byly zrychleny a zkráceny.
Zdroj: opennet.ru