Ngaleupaskeun SBCL 2.3.11, palaksanaan tina basa Lisp umum

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

Tambahkeun komentar