Ilmus vÀljaanne SBCL 2.3.11 (Steel Bank Common Lisp), avatud rakenduse Common Lisp programmeerimiskeele teostus. Projekti kood on kirjutatud keeltes Common Lisp ja C ning levitatakse BSD litsentsi alusel. Uues vÀljaandes:
- EbakÔlad:
- Voodid, mille external-format-parameeter on mÀÀratud "REPLACEMENT" kaudu, rakendavad asendusteadet voos ainult korra, mis pĂ”hjustab dekodeerimisprobleeme (erinevalt mĂ”nest muust juhust, kus see rakendatakse vaid ĂŒks kord iga byte jada jaoks, millest igaĂŒht ei saa kĂ€sitada kehtiva sĂŒmboli alguspunktina selle external-format'i jaoks).
- Toetamata vĂ”i tundmatute variantide kasutamisel annab external-format'i mÀÀramine nĂŒĂŒd tĂ”rke.
- Parandused:
- Ăldiste funktsioonide haldamise kĂ€igus, kui standardset ega lĂŒhendatud kombineerimismeetodit ei ole, kutsub sĂŒsteem vĂ€lja ĂŒldise funktsiooni SB-PCL:NO-PRIMARY-METHOD, mille standardne kĂ€itumine on tĂ”rke signaal. Kasutajad saavad mÀÀratleda meetodeid sellele ĂŒldisele funktsioonile.
- VĂ€lised formaadid toetavad nĂŒĂŒd uue rea variandid ĂŒhebaidiste ja utf-8 kodeeringute jaoks.
- TĂ”rked, mida signaalivad vood vĂ”i oktetid, mis on seotud sĂŒmbolite kodeerimise ja dekodeerimisega, toetavad nĂŒĂŒd USE-VALUE taaskĂ€ivitamist töötlejate jaoks, kes pakuvad asendusi sisendiks vĂ”i vĂ€ljundiks.
- READ-SEQUENCE ja WRITE-SEQUENCE toetavad kasutaja mÀÀratletud jadasid; standardne teostus kĂ€sitleb elementi elementide kaupa, lugedes vĂ”i kirjutades ĂŒhe byte vĂ”i sĂŒmboli voost vastavalt.
- Optimeeritud:
- VÀlised formaadid, millel on :REPLACEMENT, ei seo enam töödeldavaid funktsioonide vigu konversioonide jaoks, mis peaks vÀhendama cons-operatsioonide arvu ja suurendama jÔudlust.
- Kui :EXTERNAL-FORMAT on STRING-TO-OCTETS vÔi OCTETS-TO-STRING argumendiks ja on konstant kompileerimise ajal, siis mÀÀratakse vÀline formaat laadimise ajal, mitte iga kord, kui seda kutsutakse.
- Kompilaator vĂ”ib piirata argumentide tĂŒĂŒpe mĂ”nede funktsioonide jaoks vastavalt sellele, mis vÀÀrtuse tĂŒĂŒp kodustab vĂ”i mida see funktsioon tagastab.
- Kompilaator vĂ€hendab liigsete tĂŒĂŒpide kontrollide arvu funktsioonides, nagu ASSOC ja GETF.
- Veaparandused:
- OCTETS-TO-STRING signaalib Ă”igesti vĂ”i rakendab asendusi, kasutades ĂŒhebaidiseid vĂ€list formaate mittelevinud kodeeringute (nt iso-8859-3) jaoks, mitte ei vĂ”ta bitte NIL aadressilt ja ei konverteeri neid bitte sĂŒmboliteks.
- FILE-STRING-LENGTH tagastab nĂŒĂŒd NIL, kui sisendvÀÀrtused ei kodeerita voolu vĂ€listesse formaatidesse.
- Tabelilised mitme baidi vĂ€lised formaadid (EUC-JP, Shift-JIS, GBK) arvestavad nĂŒĂŒd asendussĂŒmbolit (kas vĂ€listes formaatides vĂ”i taaskĂ€ivitamise kaudu) oktettide kodeerimisel.
- Oktetidest konverteerimine lĂ€bi UCS-2, UCS-4 ja UTF-32 vĂ€listes formaatides ei loe enam oktettide massi lĂ”ppu, kasutades mitteĂŒhtlast kahekohalist vĂ”i neljakohalist ĂŒhikut.
- Oktetidest konverteerimine lĂ€bi UCS-2, UCS-4 ja UTF-32 vĂ€listes formaatides tagastab nĂŒĂŒd lihtsa stringi, nagu mÀÀratleb OCTETS-TO-STRING tĂŒĂŒp.
- Vale vÀline formaadi argumendi kasutamine OPEN vÔi WITH-OPEN-FILE (vÔi siseseke MAKE-FD-STREAM) puhul ei pÔhjusta enam failide deskriptorite leket.
- SB-ROTATE-BYTE mÀÀrab BYTE spetsiifikad vÀlja lubatud vÀÀrtuste, kui kasutatakse vÀga suuri tÀisarve maskide ja nihkude jaoks.
- Parandatud tĂŒĂŒbi vĂ€ljund kompileerimise ajal SB-ROTATE-BYTE vormide korral, mille POSITION ei ole null nĂ”udmine.
- Parandatud mitmed assembleri vead, kui kompileeriti MAKE-ARRAY, MAKE-STRING ja muid sarnase suurusega pideva mÀluga elemente.
- Parandatud kompilaatori sisemine tÔrge (SETF-SBIT) suure pideva indeksi korral.
- Parandatud kompilaatori sisemine tÔrge lambda-funktsiooni puhul vale parameetrite loendiga LABELS'is.
- Parandatud kompilaatori sisemine tÔrge, kui kompileeritakse mÔnda lÔpmatult rekursiivset LABELS'i vormi.
- Parandatud kompilaatori sisemine tĂ”rge, kui ĂŒritatakse integreerida siiret juba eemaldatud etiketile.
- FILL-POINTER ei peaks kunagi olema negatiivne.
Allikas: opennet.ru
