A fost lansată versiunea SBCL 2.4.1 (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:
- În colectorul de gunoi paralel, care utilizează algoritmul mark-region, a fost adăugată suport parțial pentru anteturile instanțelor compacte.
- Pentru funcțiile cu tipuri de returnare declarate, în modurile de optimizare cu valori mari de SAFETY și în modul DEBUG 3, se asigură verificarea tipului pentru valorile returnate.
- Pe platforma FreeBSD s-a realizat legarea cu libpthread și a fost dezactivată întâmplarea spațiului de adresare (ASLR).
- S-a restabilit construcția pe arhitecturi de 64 de biți riscv și ppc.
- Pentru toate platformele, s-a implementat suport pentru fastrem-32 (pentru calcule optimizate FLOOR).
- S-a eliminat o eroare care ducea la curățarea repetată a liniilor mutate după compactarea memoriei prin colectorul de gunoi paralel mark-region.
- S-a rezolvat problema cu ciclarea compilatorului la procesarea unor construcții cu tipurile SATISFIES.
- Tabelele hash utilizate în diverse părți ale sistemului (pachete, tabele Unicode) au fost transformate pentru a folosi funcții hash fără coliziuni (perfecte).
- Macro UL TYPECASE pentru ierarhiile structurilor de clase a fost implementat folosind un hash fără coliziuni.
- Pentru a optimiza performanța, au fost eliminate verificările de limită pentru indexurile cu ofseturi constante, atunci când compilatorul știe că indexul este mai mic decât diferența dintre dimensiune și ofset.
- În compilator, au fost luate în considerare date suplimentare despre optimizarea DIGIT-CHAR.
- În compilator a fost implementată posibilitatea de a exclude valorile intermediare în unele apeluri APPLY, CONCATENATE și MAKE-ARRAY pentru argumente construite din succesiuni cu modificări fresh cons.
- A fost accelerată executarea ciclului „(LOOP FOR X IN (REVERSE LIST) …)”, care acum folosește mai puține cons-uri.
- Ciclul „(LOOP … APPEND …)” a devenit mai compact și efectuează mai puțină muncă la adăugarea NIL.
- Verificările de tip pentru diverse array-uri au fost accelerate și reduse.
Sursa: opennet.ro
