Lansarea SBCL 2.4.1, o implementare a limbajului Common Lisp

Lansarea SBCL 2.4.1 (Steel Bank Common Lisp), o implementare gratuită a limbajului de programare Common Lisp, a fost publicată. Codul proiectului este scris în Common Lisp și C și este distribuit sub licența BSD.

În noua versiune:

  • S-a adăugat suport parțial pentru anteturile de instanță compacte la colectorul de gunoi paralel folosind algoritmul mark-region.
  • Pentru funcțiile cu tipuri de returnare declarate, modurile mari de optimizare SAFETY și DEBUG 3 asigură că verificarea tipului este efectuată pe valorile returnate.
  • Pe platforma FreeBSD, conectarea cu libpthread este implementată și randomizarea spațiului de adrese (ASLR) este dezactivată.
  • Ansamblul pe arhitecturile riscv și ppc pe 64 de biți a fost restaurat.
  • Suportul Fastrem-32 a fost implementat pentru toate platformele (pentru calcule FLOOR optimizate).
  • S-a remediat o eroare care a cauzat ca liniile mutate să fie din nou eliminate după compactarea memoriei de către colectorul de gunoi paralel al regiunii de marcare.
  • Problema cu bucla compilatorului la procesarea unor construcții cu tipuri SATISFIES a fost rezolvată.
  • Tabelele hash utilizate în diferite părți ale sistemului (pachete, tabele Unicode) sunt convertite pentru a utiliza funcții hash care sunt lipsite de coliziuni (perfect).
  • Macrograma TYPECASE pentru ierarhiile structurii de clasă este implementată folosind un hash fără coliziuni.
  • Pentru a optimiza performanța, verificările limitelor au fost eliminate pentru indici cu decalaje constante, unde compilatorul știe că indexul este mai mic decât diferența dintre dimensiune și offset.
  • Compilatorul ia în considerare date suplimentare de optimizare DIGIT-CHAR.
  • Compilatorul a implementat abilitatea de a exclude valorile intermediare în unele apeluri APPLY, CONCATENATE și MAKE-ARRAY pentru argumente construite din secvențe cu modificări noi.
  • Funcționarea buclei „(LOOP FOR X IN (REVERSE LIST) ...)” a fost accelerată, care acum utilizează mai puține contra.
  • Bucla „(LOOP... APPEND...)” este mai compactă și lucrează mai puțin atunci când adăugați NIL.
  • Verificările de tip pentru diferite matrice au fost accelerate și scurtate.

Sursa: opennet.ru

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster