Avalikustati SBCL 2.4.2 (Steel Bank Common Lisp), avatud rakenduse Common Lispi programmeerimiskeele rakendus. Projekti kood on kirjutatud keeltesse Common Lisp ja C ning seda levitatakse BSD litsentsi alusel.
Uues väljaandes:
- Enda enda süsteemiga kompileerimine x86-64 Linuxi süsteemides toodab nüüd bitiliselt identseid ristkompileeritud fasl-failide, kui kokkupanekuks on cmucl, ccl, clisp või ise sbcl.
- Optimeeritud:
- Suure hulga sisetabelite, sealhulgas Unicode'i toe tabelite, toimetamine on üleminekut teinud rikka asjakohaste hash-funktsioonide poole, mis on vabad kokkutõmbumistest (perfect), mis on parandanud kiirus ja vähendanud suurust.
- FIND, POSITION, ASSOC ja RASSOC argumendiks olevatele muutmatutele järjestustele, mis sisaldavad sümboleid võtmetena, kompileeritakse nüüd hashide kasutamiseks, mis on vabad kokkutõmbumistest.
- x86-64 süsteemides on kompilaatoris kõrvaldatud hüpetest hüppesse ülemineku võimalus.
- Veaparandused:
- Rollback on taastatud SEQUENCE ja SB-MOP:FUNCALLABLE-STANDARD-OBJECT pärandava võimaluse olemasolu.
- COERCE ei konverteeri lambda vorme funktsioonideks, kui antud tüübi nimi on FUNCTION-i alamklass.
- LOG double-float ja ratsionaalsete argumentidega (mis tahes järjekorras) ei kaota täpsust vahepealses single-float argumendis.
- LOG kahe terviku astme põhjal tõenäoliselt annab matemaatiliselt täpse vastuse.
- LOG ratsionaalsetele arvudele, mis on lähedased ühele, numeraatoriga või nimetajas, mis on lähedane kahe astmele, kasutavad log1p, seega kaotavad vähem täpsust.
- UTF-8 väline formaat Unix'i ridade lõppudega värskendab sümbolite suuruste teavet, kui kasutatakse kiireid teid ASCII-sümbolite puutude jaoks.
- Tõenäoliselt ei trükitud kehtetuks osutunud dünaamiliselt eksisteerivate cons-de sisu PRINT-OBJECT meetodis THREAD objektide jaoks.
- Püsiv väline sisenemispunktide määramine funktsioonide jaoks enne kõiki teisi kohalikke funktsioone.
- Eemaldamine mitteaktiivsetest optimeerimise märkustest tsiteeritud vormide ja üksikute APPEND kutsete kõrge kiirus.
- Lõputu tsükkel COPY-SEQ nullpikkusega massiivides, mille elemendi tüüp on NIL.
- Struktuuri konstruktorite kompileerimise parandamine mitteülemiste tasemete jaoks.
- Parandused SB-SIMD-is:
- SB-SIMD piiride kontrollimise täiustamine.
- Parandamine SB-SIMD AVX f64.4-reverse.
- Parandamine SB-SIMD segamine AVX ja SSE2.
- Parandamine eluea jooksul sse+xmm0 VOP-ides.
Allikas: opennet.ru
