A fost publicată versiunea SBCL 2.4.0 (Steel Bank Common Lisp), o implementare liberă a limbajului de programare Common Lisp. Codul proiectului este scris în limbajele Common Lisp și C și este distribuit sub licența BSD.
În noua versiune:
- Modificări care afectează compatibilitatea:
- *COMPILE-VERBOSE* și *LOAD-VERBOSE* sunt legate la NIL la pornirea sistemului cu argumentul de linie de comandă „—script”.
- Când caută fișierul core, sistemul verifică corectitudinea a ceea ce este specificat în /proc/self/exe și, dacă /proc/self/exe se dovedește a fi incorect, atunci verifică argv[0].
- Sistemul nu mai oferă nume de tipuri pentru simbolurile standard (CL) ARRAY-RANK, ARRAY-TOTAL-SIZE, PATHNAME-HOST, PATHNAME-TYPE, PATHNAME-DIRECTORY, FLOAT-RADIX sau FLOAT-DIGITS.
- Suport pentru platforme:
- Pe sistemele arm64, a fost introdusă opțiunea de a activa un colector de gunoi paralel, care folosește algoritmul mark-region.
- Problemele de compilare în noile versiuni FreeBSD au fost rezolvate.
- Corecturi de erori:
- A fost restabilită corectitudinea tipului de ieșire al compilatorului la apelurile REDUCE cu „:INITIAL-VALUE” dar fără „:FROM-END”.
- S-a corectat o eroare a compilatorului la declarația „SB-EXT:MUFFLE-CONDITIONS” pentru un tip necunoscut.
- În unele cazuri, disassemblerul a generat o ieșire prost formatată pentru registre.
- Probabilitatea de epuizare repetată a stivei de către sistem la ieșirea unei erori de epuizare a stivei de control a fost ușor redusă;
- Optimizări:
- În multe cazuri, au fost eliminate barierele de scriere în colectorul de gunoi.
- Ieșirea tipurilor pentru variabilele de iterare cu tipuri mixte a fost îmbunătățită.
- Valorile de inițializare neutilizate pentru legăturile LET au fost eliminate, îmbunătățind selecția tipului registrelor.
- EQUALP/EQUAL/EQL au fost reduse la EQL/EQ în FIND/MEMBER, pe baza tipurilor de intrare.
- Ieșirea tipului pentru DPB, LOGIOR a fost îmbunătățită.
Sursa: opennet.ro
