Bolo zverejnené vydanie SBCL 2.4.1 (Steel Bank Common Lisp), voľnej implementácie programovacieho jazyka Common Lisp. Kód projektu je napísaný v jazykoch Common Lisp a C a je distribuovaný pod licenciou BSD.
V novom vydaní:
- Pridaná čiastočná podpora pre hlavičky kompaktných inštancií do paralelného zberača odpadu pomocou algoritmu mark-region.
- Pre funkcie s deklarovanými návratovými typmi zaisťujú veľké optimalizačné režimy SAFETY a DEBUG 3, že kontrola typu sa vykonáva na návratových hodnotách.
- Na platforme FreeBSD je implementované prepojenie s libpthread a je zakázaná randomizácia adresného priestoru (ASLR).
- Zostava na 64-bitových architektúrach riscv a ppc bola obnovená.
- Podpora Fastrem-32 bola implementovaná pre všetky platformy (pre optimalizované výpočty FLOOR).
- Opravená chyba, ktorá spôsobovala opätovné vyprázdnenie presunutých riadkov po zhutnení pamäte paralelným zberačom odpadkov mark-region.
- Problém so zacyklením kompilátora pri spracovaní niektorých konštrukcií s typmi SATISFIES bol vyriešený.
- Hashovacie tabuľky používané v rôznych častiach systému (balíčky, Unicode tabuľky) sú konvertované na používanie hašovacích funkcií, ktoré sú bez kolízií (perfektné).
- Makro TYPECASE pre hierarchie štruktúry tried je implementované pomocou bezkolízneho hashu.
- Na optimalizáciu výkonu boli odstránené kontroly hraníc pre indexy s konštantnými posunmi, kde kompilátor vie, že index je menší ako rozdiel medzi veľkosťou a posunom.
- Kompilátor berie do úvahy ďalšie optimalizačné údaje DIGIT-CHAR.
- Kompilátor implementoval možnosť vylúčiť stredné hodnoty v niektorých výzvach APPLY, CONCATENATE a MAKE-ARRAY pre argumenty zostavené zo sekvencií s novými modifikáciami nevýhod.
- Prevádzka slučky „(LOOP FOR X IN (REVERSE LIST) ...)“ bola zrýchlená, čo teraz využíva menej nevýhod.
- Slučka "(LOOP... APPEND...)" je kompaktnejšia a pri pridávaní NIL robí menej práce.
- Typové kontroly pre rôzne polia boli zrýchlené a skrátené.
Zdroj: opennet.ru