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
