Byla vydána verze SBCL 2.4.0 (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í:
- Změny, které narušují kompatibilitu:
- *COMPILE-VERBOSE* a *LOAD-VERBOSE* jsou při spuštění systému s argumentem příkazového řádku „—script“ svázány s NIL.
- při hledání core souboru systém kontroluje správnost uvedenou v /proc/self/exe, a pokud /proc/self/exe nebude správné, zkontroluje argv[0].
- systém již neposkytuje názvy typů pro standardní (CL) symboly ARRAY-RANK, ARRAY-TOTAL-SIZE, PATHNAME-HOST, PATHNAME-TYPE, PATHNAME-DIRECTORY, FLOAT-RADIX nebo FLOAT-DIGITS.
- Podpora platforem:
- Na systémech arm64 je umožněno zapnout paralelní sběrač odpadků, který používá algoritmus mark-region.
- Byly vyřešeny problémy se sestavením v nových verzích FreeBSD.
- Opravy chyb:
- Byla obnovena správnost výstupu typu kompilátorem při voláních REDUCE s „:INITIAL-VALUE“ ale bez „:FROM-END“.
- Byla odstraněna chyba kompilátoru při deklaraci „SB-EXT:MUFFLE-CONDITIONS“ pro neznámý typ.
- V některých případech disasembler vykazoval špatně formátovaný výstup pro registry.
- Mírně byla snížena pravděpodobnost opětovného vyčerpání zásobníku systémem při výstupu chyby o vyčerpání kontrolního zásobníku;
- Optimalizace:
- Ve většině případů byla odstraněna zápisová bariéra ve sběrači odpadků.
- Byl vylepšen výstup typů pro iterativní proměnné se smíšenými typy.
- Byly odstraněny nepoužívané iniciační hodnoty pro LET vazby, vylepšena volba typu registrů.
- Byly sníženy EQUALP/EQUAL/EQL na EQL/EQ v FIND/MEMBER na základě vstupních typů.
- Byl vylepšen výstup typu pro DPB, LOGIOR.
Zdroj: opennet.ru
