A fost publicat versiunea SBCL 2.3.9 (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:
- Alocarea dinamică a stivei prin DYNAMIC-EXTENT este acum aplicată nu doar la legătura inițială, ci și la toate valorile pe care le poate lua variabila (de exemplu, prin SETQ). Aceasta permite, de exemplu, simplificarea construcției unor structuri complexe sau recursive în stivă prin iterații.
- Unele interfețe din modulul SB-POSIX au fost aduse în conformitate cu specificația, iar rezultatul NULL din biblioteca C este considerat o eroare doar atunci când errno este modificat prin apel. În acest caz, va fi generat un semnal SYSCALL-ERROR.
- A fost îmbunătățită funcționarea macro-urilor DO-PASSWDS și DO-GROUPS din modulul SB-POSIX. Aceste macro-uri sunt concepute pentru a lucra în siguranță cu baza de date a parolelor și grupurilor.
- A fost restabilită suportul pentru platformele Darwin x86 și PowerPC (mulțumiri lui Kirill A. Korinsky, Sergey Fedorov și barracuda156).
- A fost corectată compilarea incorectă care avea loc din cauza unei ieșiri de tip eronate atunci când multiplicau valori fixnum cu valori fracționare.
- A fost corectată o eroare a compilatorului care apărea în anumite cazuri la verificarea valorilor de 64 de biți semnate și nesemnate.
- A fost corectată o eroare a compilatorului în cazul în care argumentul „:INITIAL-CONTENTS” pentru MAKE-ARRAY este o constantă non-secvență.
- A fost corectată o eroare de compilare a funcțiilor de reducere în constantă pentru secvența specificată atunci când se returnează o valoare falsă din funcțiile „:TEST” sau „:KEY”.
- A fost corectată o eroare de compilare a funcțiilor array sau secvențe cu argumente care implicau dimensiuni foarte mari ale secvenței.
- A fost corectată o eroare a compilatorului care apărea în cazul în care nu era folosită valoarea returnată de ADJUST-ARRAY.
- A fost optimizat output-ul tipurilor funcțiilor de compilare care pot fi propagate înapoi (propagated backwards) prin reprezentări intermediare.
- A fost îmbunătățit output-ul tipurilor pentru LDB, LOGBITP și RATIO.
- Au fost realizate optimizări legate de excluderea verificărilor de limită inutile pentru multe cazuri de comparații tranzitive.
Sursa: opennet.ro
