A fost publicată versiunea SBCL 2.4.2 (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:
- Compilarea sistemului pe sine în sistemele x86-64 cu Linux produce acum fasl-uri cross-compilate identice la nivel de bit acolo unde gazda de compilare este cmucl, ccl, clisp sau însuși sbcl.
- Optimizări:
- Un număr mare de tabele interne, în special cele legate de suportul Unicode, au fost migrate pentru a utiliza funcții hash, fără coliziuni (perfecte), ceea ce a îmbunătățit viteza și redus dimensiunea.
- FIND, POSITION, ASSOC și RASSOC cu argumente de secvență constantă, care conțin simboluri ca chei, sunt acum compilate pentru a căuta folosind hash-uri fără coliziuni.
- Pe sistemele x86-64, compilatorul asigură eliminarea tranziției jump-to-jump.
- Corecturi de erori:
- A fost restabilită posibilitatea de a moșteni atât de la SEQUENCE cât și de la SB-MOP:FUNCALLABLE-STANDARD-OBJECT.
- COERCE nu va converti forme lambda în funcții dacă numele tipului specificat este un subclasă a FUNCTION.
- LOG cu argumente double-float și raționale (în orice ordine) nu pierde precizie prin intermediul unui argument single-float intermediar.
- LOG la baza 2 a unei puteri întregi a lui 2 va da cu siguranță un răspuns matematic precis.
- LOG pe numere raționale apropiate de unu cu un numărător sau un numitor aproape de o putere de 2 vor utiliza log1p și, prin urmare, vor pierde mai puțină precizie.
- Formatul extern utf-8 cu terminații de linie Unix actualizează informațiile dimensiunilor caracterelor sale atunci când se aplică o cale rapidă pentru bufere ASCII.
- Conținutul probabil mai puțin valid al cons-urilor existente dinamic nu a fost tipărit în metoda PRINT-OBJECT pentru obiectele THREAD.
- Plasarea constantă a punctelor de intrare externe pentru funcții înainte de orice alte funcții locale.
- Eliminarea observațiilor inactive de optimizare pentru formele între ghilimele și apelurile unice APPEND la viteză mare.
- Ciclul infinit în COPY-SEQ pe arii de lungime zero cu tip de element NIL.
- Corectarea compilării constructorilor de structuri ne-înalte.
- Corecturi în SB-SIMD:
- Îmbunătățirea verificării limitelor în SB-SIMD.
- Corectarea SB-SIMD AVX f64.4-reverse.
- Corectarea amestecului SB-SIMD pe AVX și SSE2.
- Corectarea duratei de viață în VOP-urile sse+xmm0.
Sursa: opennet.ro
