Lansarea SBCL 2.4.2, implementarea limbajului Common Lisp

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

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster