Opublikowano wydanie SBCL 2.4.0 (Steel Bank Common Lisp), wolnej implementacji języka programowania Common Lisp. Kod projektu napisany jest w językach Common Lisp i C, i jest rozpowszechniany na licencji BSD.
W nowym wydaniu:
- Zmiany naruszające zgodność:
- *COMPILE-VERBOSE* i *LOAD-VERBOSE* są ustawione na NIL podczas uruchamiania systemu z argumentem wiersza poleceń „—script”.
- podczas wyszukiwania pliku core, system sprawdza poprawność tego, co jest podane w /proc/self/exe, a jeśli /proc/self/exe okaże się niepoprawny, sprawdza argv[0].
- system nie zapewnia już nazw typów dla standardowych (CL) symboli ARRAY-RANK, ARRAY-TOTAL-SIZE, PATHNAME-HOST, PATHNAME-TYPE, PATHNAME-DIRECTORY, FLOAT-RADIX lub FLOAT-DIGITS.
- Wsparcie platform:
- Na systemach arm64 wprowadzono możliwość włączenia równoległego zbieracza śmieci korzystającego z algorytmu mark-region.
- Rozwiązano problemy z kompilacją w nowych wersjach FreeBSD.
- Poprawki błędów:
- Przywrócono poprawność wyjścia typu przez kompilator podczas wywołań REDUCE z „:INITIAL-VALUE” ale bez „:FROM-END”.
- Usunięto błąd kompilatora przy deklaracji „SB-EXT:MUFFLE-CONDITIONS” dla nieznanego typu.
- W niektórych przypadkach disassembler generował źle sformatowane wyjście dla rejestrów.
- Nieco zmniejszona prawdopodobieństwo ponownego wyczerpania stosu przez system przy wyświetlaniu błędu wyczerpania kontrolnego stosu;
- Optymalizacje:
- W wielu przypadkach usunięto przeszkody zapisu w zbieraczu śmieci.
- Ulepszono wyjście typów dla zmiennych iteracyjnych o mieszanych typach.
- Usunięto nieużywane wartości inicjalizacyjne dla powiązań LET, poprawiono wybór typu rejestrów.
- Zredukowano EQUALP/EQUAL/EQL do EQL/EQ w FIND/MEMBER, na podstawie wprowadzonych typów.
- Ulepszono wyjście typu dla DPB, LOGIOR.
Źródło: opennet.ru
