SBCL 2.3.11 kaleratzea, Common Lisp hizkuntzaren inplementazioa

SBCL 2.3.11 (Steel Bank Common Lisp) bertsioa argitaratu da, Common Lisp programazio-lengoaiaren doako inplementazioa. Proiektuaren kodea Common Lisp eta C-n idatzita dago, eta BSD lizentziapean banatzen da. Argitalpen berrian:

  • Bateraezintasun txikiak:
    • ":REPLACEMENT"-rekin zehaztutako kanpoko formatua duten korronteek informazioa behin erreproduzitzeko aplikatuko dute korronte bakoitzeko, eta, ondorioz, deskodetze-erroreak sortuko dira (baita, kasu batzuetan, bakoitza ez den byte-sekuentzia batean behin karaktere baliozko bat da). kanpoko formatu honen hasierako posizioa).
    • Kanpo formatuaren zehaztapenek errore bat adieraziko dute onartzen ez diren edo ezagutzen ez diren aldaerak erabiltzean.
  • Hobekuntzak:
    • Konbinazio-metodo estandarra edo laburra erabiltzen duten funtzio generikoak bidaltzean, metodo nagusirik erabilgarririk ez badago, sistemak SB-PCL:NO-PRIMARY-METHOD funtzio generikoari deituko dio, zeinaren portaera lehenetsia errore bat seinalatzea baita. Erabiltzaileek funtzio generiko honetarako metodoak defini ditzakete.
    • Kanpo formatuek orain lerro berrien aldaerak onartzen dituzte byte bakarreko eta utf-8 kodifikazioetarako.
    • Korronte edo zortzikote funtzioek adierazitako karaktereen kodetze- eta deskodetze-erroreek orain USE-VALUE berrabiaraztea onartzen dute sarrera- edo irteera-ordezkapenak ematen dituzten kudeatzaileek.
    • IRAKURRI-SEKUENTZIA eta IDAZTE-SEQUENCE erabiltzaileak definitutako sekuentziak onartzen dituzte; inplementazio estandarrak elementuz elementu prozesatzen du, byte edo karaktere bat irakurtzen edo idazten du korrontetik, hurrenez hurren.
  • Optimizazioak:
    • :REPLACEMENT duten kanpoko formatuek jada ez dute errore-kudeatzaileak lotzen bihurtze-funtzioetarako, eta horrek eragiketa txarren kopurua murriztu eta errendimendua hobetu beharko luke.
    • :KANPOKO FORMATUA STRING-TO-OCTETS edo OCTETS-TO-STRING-en argumentua bada eta konpilazio-denborako konstantea bada, kanpoko formatua karga-garaian ebatziko da dei bakoitzean baino.
    • Konpilatzaileak funtzio batzuen argumentu motak muga ditzake funtzio horrek itzultzen duen balioaren ondorioztatutako edo inplizitutako motaren arabera.
    • Konpilatzaileak ASSOC eta GETF bezalako funtzioetan mota erredundanteen egiaztapenen kopurua murrizten du.
  • Akats zuzenketa:
    • OCTETS-TO-STRING behar bezala seinaleztatzen edo ordezkapenak aplikatzen ditu byte bakarreko kanpoko formatuak ez hain ohikoak diren kodeketetarako (adibidez, iso-8859-3), NIL helbidetik bitak hartu eta bit horiek karaktere bihurtu beharrean.
    • FILE-STRING-LENGTH orain NIL itzultzen du sarrerako balioak kanpoko korronte formatuan kodetzen ez badira.
    • Taula anitzeko kanpoko formatuek (EUC-JP, Shift-JIS, GBK) ordezko karakterea errespetatzen dute orain (kanpoko formatuan edo berrabiarazi bidez) zortzikoteetan kodetzean.
    • Kanpoko UCS-2, UCS-4 eta UTF-32 formatuak erabiliz zortzikoteetatik bihurtzeak jada ez du irakurtzen bi edo lau byteko unitateko zenbaki osorik ez duen zortzikote matrize baten amaiera.
    • Kanpoko UCS-2, UCS-4 eta UTF-32 formatuak erabiliz zortzikoteetatik bihurtzeak kate soil bat itzultzen du orain, OCTETS-TO-STRING motako definizioak eskatzen duen moduan.
    • OPEN edo WITH-OPEN-FILE (edo barneko MAKE-FD-STREAM) kanpoko argumentu formatu oker bat erabiltzeak ez du fitxategi-deskriptoreen ihesik sortzen.
    • SB-ROTATE-BYTE-k BYTE-ren zehaztapenak mugaz kanpo definitzen ditu zenbaki oso handien kontrako aurrean maskarak eta txandak erabiltzeko.
    • Konpondu mota inferentzia bytearen definizioan SB-ROTATE-BYTE inprimakiak konpilatzean zero ez den POSIZIOA dutenak.
    • MAKE-ARRAY, MAKE-STRING eta tamaina konstante handiko beste batzuk konpilatzean hainbat mihiztatzaile-errore konpondu dira.
    • Konpondu barne-errorea konpilatzean (SETF-SBIT) indize konstante handiarekin.
    • Lambda funtziorako barne-konpiladorearen errorea konpondu da LABELS-en parametro-zerrenda oker batekin.
    • Konpondu barne-konpilatzailearen errore bat LABELS-en forma errekurtsibo infinituak konpilatzean.
    • Barne-konpiladorearen errore bat konpondu da jada ezabatutako etiketa batera jauzi bat sartzen saiatzean.
    • FILL-POINTER ez da inoiz negatiboa izan behar.

Iturria: opennet.ru

Gehitu iruzkin berria