Bolo zverejnené vydanie SBCL 2.4.0 (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í:
- Zmeny, ktoré narúšajú kompatibilitu:
- *COMPILE-VERBOSE* a *LOAD-VERBOSE* sú viazané na NIL pri spustení systému s argumentom príkazového riadka "--script".
- pri hľadaní súboru jadra systém skontroluje správnosť toho, čo je uvedené v /proc/self/exe, a ak /proc/self/exe je nesprávne, skontroluje argv[0].
- systém už neposkytuje názvy typov pre štandardné (CL) symboly ARRAY-RANK, ARRAY-TOTAL-SIZE, PATHNAME-HOST, PATHNAME-TYPE, PATHNAME-DIRECTORY, FLOAT-RADIX alebo FLOAT-DIGITS.
- Podpora platformy:
- Na systémoch arm64 je možné povoliť paralelný zberač odpadu, ktorý využíva algoritmus mark-region.
- Problémy pri zostavovaní v nových vydaniach FreeBSD boli vyriešené.
- Opravy chýb:
- Správnosť odvodenia typu kompilátorom pri volaní REDUCE s „:INITIAL-VALUE“, ale bez „:FROM-END“ bola obnovená.
- Opravená chyba kompilátora pri deklarovaní "SB-EXT:MUFFLE-CONDITIONS" pre neznámy typ.
- V niektorých prípadoch disassembler produkoval nevzhľadný formátovaný výstup pre registre.
- Pravdepodobnosť, že sa systému opäť minie zásobník pri zobrazení chyby o vyčerpaní riadiaceho zásobníka, bola mierne znížená;
- Optimalizácie:
- Zábrany proti zápisu do zberača odpadu boli v mnohých prípadoch odstránené.
- Vylepšená inferencia typu pre iteračné premenné so zmiešanými typmi.
- Odstránené nepoužité inicializačné hodnoty pre väzby LET, vylepšený výber typu registra.
- Zníženie EQUAL/EQUAL/EQL na EQL/EQ v FIND/MEMBER na základe typov vstupov.
- Vylepšená inferencia typu pre DPB, LOGIOR.
Zdroj: opennet.ru
