SBCL 2.3.11 väljalase, Common Lispi keele realiseerimine

Ilmuv ilmus SBCL 2.3.11 (Steel Bank Common Lisp), avatud rakenduse Common Lispi programmeerimiskeele jaoks. Projekti kood on kirjutatud Common Lispi ja C keeles ning levitatakse BSD litsentsi all. Uues versioonis:

  • Väikesed ühilduvusprobleemid:
    • Voogud, mille external-format parameeter on määratud „:REPLACEMENT” abil, rakendavad asendamise andmed voos vaid korra, mis toob kaasa dekodeerimisvead (erinevalt mõnest muust juhul, kus see toimub ühekorraga iga byte’i järje jaoks, mis ei ole lubatud sümboli alguspositsioon selle external-format jaoks).
    • External-format määrattajad, kui kasutatakse toetamata või tundmatuid variante, annavad nüüd veasignaali.
  • Parandused:
    • Üldfuntsioonide suunamises, kasutades standardset või lühikest kombinatsioonimeetodit, süsteem kutsub üldfunktsiooni SB-PCL:NO-PRIMARY-METHOD, kui peamine rakendatav meetod puudub, mille standardne käitumine seisneb veateate andmises. Kasutajad saavad määrata meetodeid selle üldfunktsiooni jaoks.
    • Välistes formaatides toetatakse nüüd reavahetuse variante ühekaupa ja utf-8 kodeeringute jaoks.
    • Voogude või oktettide funktsioonide poolt signaalitud sümbolite kodeerimise ja dekodeerimise vead toetavad nüüd USE-VALUE taaskäivitamist töötlejatele, kes pakuvad asendusi sisendi või väljundi jaoks.
    • READ-SEQUENCE ja WRITE-SEQUENCE toetavad kasutaja määratud järjekordi; standardne teostus töötleb elementi elementide kaupa, lugedes või kirjutades voogu vastavalt ühe byte’i või sümboli.
  • Optimeerimised:
    • External-formatid koos :REPLACEMENT ei seosta enam töötlejaid konversioonifunktsioonide vigadega, mis peaks vähendama cons-tehingute arvu ja suurendama jõudlust.
    • Kui :EXTERNAL-FORMAT on STRING-TO-OCTETS või OCTETS-TO-STRING argumendiks ja on kompileerimise ajal konstant, siis väline formaat lahendatakse laadimise ajal, mitte iga kord kutsumise hetkel.
    • Kompilaator võib piirata argumentide tüüpe teatud funktsioonide jaoks lähtudes tüübist, mis on saadud või eeldatav, mis see funktsioon tagastab.
    • Kompilaator vähendab tüübi üleliigsete kontrollide arvu funktsioonides, nagu ASSOC ja GETF.
  • Vigade parandamine:
    • OCTETS-TO-STRING annab õiged signaalid või rakendab asendusi, kui kasutatakse ühebaidiseid välist formaate harvaesinevates kodeeringutes (nt iso-8859-3), mitte ei võta bitte NIL aadressilt ja ei muuda neid bitte sümboliteks.
    • FILE-STRING-LENGTH tagastab nüüd NIL, kui sisendväärtusi ei kodeerita välistesse voogudesse.
    • Tabelilised mitme baidi välist formaati (EUC-JP, Shift-JIS, GBK) arvestavad nüüd asendussümbolit (välistes formaatides või käivitamise ajal) oktettidesse kodeerimisel.
    • Oktettide konverteerimine välistest formaatidest UCS-2, UCS-4 ja UTF-32 ei loe enam oktettide massi lõppu, millel on mitteüheharuline kahe- või nelja baidised üksused.
    • Oktettide konverteerimine välistest formaatidest UCS-2, UCS-4 ja UTF-32 tagastab nüüd lihtsa stringi, nagu nõutakse OCTETS-TO-STRING tüübi määratlemisel.
    • Vale välist formaati argumendi jaoks OPEN või WITH-OPEN-FILE (või sisemine MAKE-FD-STREAM) ei põhjusta enam failikirjelduri leket.
    • SB-ROTATE-BYTE määratleb BYTE spetsifikatsioonid kehtivast väärtusest kõrgemal enne, kui konsulteerib väga suurte täisarvude kasutamiseks maske ja nihkeid.
    • SB-ROTATE-BYTE vormide tüübiväljundi parandamine mitte nulliga POSITION-i määratlemisel.
    • Parandatud mitmeid assembleri vigu MAKE-ARRAY, MAKE-STRING ja muude kompilatsiooni käigus suure pideva suurusega.
    • Parandatud sisemine viga kompilatsiooni käigus (SETF-SBIT) suure pideva indeksiga.
    • Parandatud sisemine veakompilaatoris lambda-funktsiooni jaoks vale parameetrite loendiga LABELS.
    • Parandatud sisemine veakompilaatoris mõningate lõpmatute rekursside LABELS vormide kompilatsiooni käigus.
    • Parandatud sisemine veakompilaatoris ürituste tegemisel juba eemaldatud etiketile hüpata.
    • FILL-POINTER ei tohiks kunagi olla negatiivne.

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster