Vydání SBCL 2.4.1, implementace jazyka Common Lisp

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

Přidat komentář