Udgivelsen af SBCL 2.4.0 (Steel Bank Common Lisp), en fri implementation af programmeringssproget Common Lisp, er offentliggjort. Projektets kode er skrevet i Common Lisp og C og distribueres under BSD-license.
I den nye version:
- Ændringer, der bryder kompatibiliteten:
- *COMPILE-VERBOSE* og *LOAD-VERBOSE* er bundet til NIL, når systemet startes med argumentet «—script».
- Når systemet søger efter en core-fil, kontrollerer det korrektheden af det, der er angivet i /proc/self/exe, og hvis /proc/self/exe viser sig at være ukorrekt, kontrollerer det argv[0].
- Systemet giver ikke længere type-navne for de standard (CL) symboler ARRAY-RANK, ARRAY-TOTAL-SIZE, PATHNAME-HOST, PATHNAME-TYPE, PATHNAME-DIRECTORY, FLOAT-RADIX eller FLOAT-DIGITS.
- Understøttelse af platforme:
- På arm64-systemer er det muligt at aktivere en parallel garbage collector, der bruger mark-region algoritmen.
- Problemer med kompilering i nye versioner af FreeBSD er løst.
- Fejlrettelser:
- Korrektheden af type-output fra compileren er genoprettet ved kald af REDUCE med «:INITIAL-VALUE» men uden «:FROM-END».
- En fejl i compileren ved erklæring af «SB-EXT:MUFFLE-CONDITIONS» for en ukendt type er rettet.
- I nogle tilfælde gav disassembleren et dårligt formateret output for registre.
- Sandsynligheden for, at systemet genbruger stacken ved output af en fejl ved stack-overflow, er lidt reduceret.
- Optimeringer:
- I mange tilfælde er skrivebarrierer i garbage collectoren fjernet.
- Type-output for iterative variable med blandede typer er forbedret.
- Ubrugte initialiseringsværdier for LET-bindings er fjernet, og typen af registre er forbedret.
- EQUALP/EQUAL/EQL er reduceret til EQL/EQ i FIND/MEMBER, baseret på input-typer.
- Type-output for DPB, LOGIOR er forbedret.
Kilde: opennet.ru
