Release 2.3.11 of SBCL (Steel Bank Common Lisp), palaksanaan bébas tina basa programming Common Lisp, geus diterbitkeun. Kodeu proyék ditulis dina Common Lisp sareng C sareng disebarkeun dina lisénsi BSD. Pelepasan ieu kalebet:
- Incompatibilities minor:
- Aliran sareng format éksternal anu didefinisikeun sareng ": REPLACEMENT" bakal nerapkeun data panggantian sakali per aliran, nyababkeun kasalahan decoding (tinimbang, sapertos dina sababaraha kasus, sakali per runtuyan bait, anu masing-masing sanés posisi awal karakter anu valid pikeun format éksternal éta).
- Spésifikasi format éksternal ayeuna bakal nyababkeun kasalahan nalika nganggo varian anu teu didukung atanapi teu dikenal.
- Perbaikan:
- Nalika ngirimkeun fungsi umum nganggo metodeu standar atanapi kombinasi pondok, upami teu aya metodeu primér anu tiasa dianggo, sistem bakal nyauran fungsi umum SB-PCL:NO-PRIMER-METHOD, anu paripolah standarna nyaéta sinyal kasalahan. Pamaké bisa nangtukeun métode pikeun fungsi generik ieu.
- Format éksternal ayeuna ngadukung varian baris anyar pikeun encodings bait tunggal sareng utf-8.
- Kasalahan encoding sareng decoding karakter anu ditandaan ku fungsi stream atanapi oktet ayeuna ngadukung balikan deui USE-VALUE pikeun panangan anu nyayogikeun panggantian input atanapi kaluaran.
- READ-SEQUENCE sareng WRITE-SEQUENCE ngadukung sekuen anu ditetepkeun ku pangguna; palaksanaan standar ngolah aranjeunna unsur ku unsur, maca atawa nulis hiji bait atawa karakter kana atawa ti stream, mungguh.
- Optimasi:
- Format éksternal sareng: REPLACEMENT henteu deui ngabeungkeut panangan pikeun kasalahan fungsi konvérsi, anu kedah ngirangan jumlah operasi kontra sareng ningkatkeun kinerja.
- Upami:EXTERNAL-FORMAT mangrupikeun argumen pikeun STRING-TO-OCTETS atanapi OCTETS-TO-STRING sareng mangrupikeun konstanta waktos kompilasi, format éksternal direngsekeun dina waktos beban tinimbang dina unggal sauran.
- Kompiler tiasa ngawatesan jinis argumen pikeun sababaraha fungsi dumasar kana jinis anu disimpulkeun atanapi tersirat tina nilai anu dipulangkeun ku fungsi éta.
- Kompiler ngirangan jumlah cék tipe kaleuleuwihan dina fungsi sapertos ASSOC sareng GETF.
- Perbaikan bug:
- OCTETS-TO-STRING leres masihan sinyal atanapi nerapkeun substitusi nalika nganggo format éksternal bait tunggal pikeun encodings kirang umum (misalna iso-8859-3), tinimbang nyokot bit tina alamat NIL jeung ngarobah bit eta kana karakter.
- FILE-STRING-LENGTH ayeuna mulih NIL upami nilai input henteu disandikeun kana format aliran éksternal.
- Format éksternal multibyte tabular (EUC-JP, Shift-JIS, GBK) ayeuna nyandak karakter ngagantian (dina format éksternal atanapi via restart) kana akun nalika encoding kana oktét.
- Ngarobih tina oktét nganggo format UCS-2, UCS-4, sareng UTF-32 éksternal henteu deui maca tungtung susunan oktét kalayan jumlah non-integer dua atanapi opat-bait unit.
- Konversi tina oktét nganggo format UCS-2, UCS-4, sareng UTF-32 éksternal ayeuna ngabalikeun senar saderhana, sakumaha anu diperyogikeun ku definisi jinis OCTETS-TO-STRING.
- Ngagunakeun format argumen éksternal teu valid keur OPEN atawa WITH-OPEN-FILE (atawa internal MAKE-FD-STREAM) euweuh hasilna bocor deskriptor file.
- SB-ROTATE-BYTE nangtukeun spésifikasi BYTE kaluar-of-wates saméméh consing integer kacida gedéna pikeun pamakéan ku masker jeung shifts.
- Fix tipe inferensi nalika nyusun formulir SB-ROTATE-BYTE sareng POSITION non-nol dina definisi bait.
- Ngalereskeun sababaraha kasalahan assembler nalika nyusun MAKE-ARRAY, MAKE-STRING, sareng variabel ukuran konstan anu ageung.
- Ngalereskeun kasalahan kompilasi internal (SETF-SBIT) kalawan indéks konstan badag.
- Ngalereskeun kasalahan kompiler internal pikeun fungsi lambda sareng daptar parameter anu teu valid dina LABELS.
- Ngalereskeun kasalahan kompiler internal nalika nyusun sababaraha bentuk LABELS anu teu aya watesna rekursif.
- Ngalereskeun kasalahan kompiler internal nalika nyobian inline luncat ka labél anu parantos dihapus.
- FILL-POINTER teu kedah négatip.
sumber: opennet.ru
