Objavljen je izdanak SBCL 2.4.1 (Steel Bank Common Lisp), slobodne implementacije programskog jezika Common Lisp. Kod projekta napisan je na jezicima Common Lisp i C, i distribuiran je pod BSD licencom.
U novom izdanju:
- U paralelni sakupljač smeća, koji koristi mark-region algoritam, dodana je delimična podrška za zaglavlja kompaktnih instanci.
- Za funkcije sa deklarisanim tipovima povratnih vrednosti u režimima optimizacije sa velikim vrednostima SAFETY i u režimu DEBUG 3 obezbeđena je provera tipa za povratne vrednosti.
- Na FreeBSD platformi implementirana je kompilacija sa libpthread i isključena je nasumična raspodela adresnog prostora (ASLR).
- Obnovljena je izrada na 64-bitnim arhitekturama riscv i ppc.
- Za sve platforme implementirana je podrška fastrem-32 (za optimizovane proračune FLOOR).
- Ispravljena je greška koja je dovodila do ponovnog čišćenja premještenih redova nakon kompakcije memorije paralelnim sakupljačem smeća mark-region.
- Rešen je problem sa beskrajnim ciklusom kompajlera prilikom obrade nekih konstrukcija sa tipovima SATISFIES.
- Hash-tabele, koje se koriste u različitim delovima sistema (paketi, Unicode tabele), preuređene su za korišćenje hash funkcija bez kolizija (perfect).
- Makro TYPECASE za hijerarhije struktura klasa implementiran je korišćenjem hash-a bez kolizija.
- U cilju optimizacije performansi uklonjene su provere granica za indekse sa konstantnim pomacima, kada kompajler zna da je indeks manji od razlike između veličine i pomaka.
- U kompajleru su uzeti u obzir dodatni podaci o optimizaciji DIGIT-CHAR.
- U kompajleru je implementirana mogućnost isključenja međurezultata u nekim pozivima APPLY, CONCATENATE i MAKE-ARRAY za argumente sastavljene iz sekvenci sa svežim cons modifikacijama.
- Poboljšana je brzina rada petlje "(LOOP FOR X IN (REVERSE LIST) …)", koja sada koristi manje cons-a.
- Petlja "(LOOP … APPEND …)" postala je kompaktna i obavlja manje posla prilikom dodavanja NIL.
- Poboljšane su i skraćene provere tipova različitih nizova.
Izvor: opennet.ru
