Izdaja SBCL 2.3.11, implementacije jezika Common Lisp

Objavljena je bila različica 2.3.11 programa SBCL (Steel Bank Common Lisp), brezplačne implementacije programskega jezika Common Lisp. Koda projekta je napisana v programskih jezikih Common Lisp in C ter se distribuira pod licenco BSD. Ta izdaja vključuje:

  • Manjše nezdružljivosti:
    • Tokovi z zunanjo obliko zapisa, definirano z ":REPLACEMENT", bodo nadomestne podatke uporabili enkrat na tok, kar bo povzročilo napake pri dekodiranju (namesto, kot v nekaterih primerih, enkrat na zaporedje bajtov, od katerih vsak ni veljaven začetni položaj znaka za to zunanjo obliko zapisa).
    • Zunanji specifikatorji formata bodo zdaj sprožili napako pri uporabi nepodprtih ali neprepoznanih različic.
  • Izboljšave:
    • Pri pošiljanju generičnih funkcij z uporabo privzete ali kratke kombinacijske metode, če ni ustreznih primarnih metod, bo sistem poklical generično funkcijo SB-PCL:NO-PRIMARY-METHOD, katere privzeto vedenje je signalizirati napako. Uporabniki lahko definirajo metode za to generično funkcijo.
    • Zunanji formati zdaj podpirajo različice za novo vrstico za enobajtna in utf-8 kodiranja.
    • Napake pri kodiranju in dekodiranju znakov, ki jih signalizirajo funkcije stream ali octet, zdaj podpirajo ponovni zagon USE-VALUE za obdelovalce, ki zagotavljajo zamenjave za vhod ali izhod.
    • READ-SEQUENCE in WRITE-SEQUENCE podpirata uporabniško definirana zaporedja; privzeta izvedba jih obdeluje element za elementom, pri čemer bere ali zapisuje en bajt oziroma znak v ali iz toka.
  • Optimizacije:
    • Zunanji formati z :REPLACEMENT ne vežejo več obdelovalcev za napake pretvorbenih funkcij, kar bi moralo zmanjšati število operacij cons in izboljšati zmogljivost.
    • Če je :EXTERNAL-FORMAT argument funkcije STRING-TO-OCTETS ali OCTETS-TO-STRING in je konstanta v času prevajanja, se zunanji format razreši ob nalaganju in ne ob vsakem klicu.
    • Prevajalnik lahko omeji tipe argumentov za nekatere funkcije na podlagi izpeljanega ali implicitnega tipa vrednosti, ki jo vrne funkcija.
    • Prevajalnik zmanjša število odvečnih preverjanj tipov v funkcijah, kot sta ASSOC in GETF.
  • Popravljene napake:
    • Funkcija OCTETS-TO-STING pravilno signalizira ali uporabi zamenjave pri uporabi enobajtnih zunanjih formatov za manj pogosta kodiranja (npr. iso-8859-3), namesto da bi vzeta bitov iz naslova NIL in jih pretvorila v znake.
    • DATOTEKA-DOLŽINA-NIZA sedaj vrne NIL, če vhodne vrednosti niso kodirane v zunanji format toka.
    • Tabelarni večbajtni zunanji formati (EUC-JP, Shift-JIS, GBK) zdaj pri kodiranju v oktete upoštevajo nadomestni znak (v zunanjem formatu ali prek ponovnega zagona).
    • Pretvorba iz oktetov z uporabo zunanjih formatov UCS-2, UCS-4 in UTF-32 ne prebere več konca oktetnega polja z necelim številom dvo- ali štiribajtnih enot.
    • Pretvorba iz oktetov z uporabo zunanjih formatov UCS-2, UCS-4 in UTF-32 zdaj vrne preprost niz, kot to zahteva definicija tipa OCTETS-TO-STRING.
    • Uporaba neveljavne zunanje oblike argumenta za OPEN ali WITH-OPEN-FILE (ali interno MAKE-FD-STREAM) ne povzroči več puščanja deskriptorja datoteke.
    • SB-ROTATE-BYTE določi specifikacijo BYTE zunaj meja, preden se za uporabo mask in premikov omejijo zelo velika cela števila.
    • Popravljeno sklepanje tipov pri prevajanju obrazcev SB-ROTATE-BYTE z neničelno vrednostjo POSITION v definiciji bajta.
    • Odpravljenih je bilo več napak v zbirniku pri prevajanju MAKE-ARRAY, MAKE-STRING in drugih velikih spremenljivk konstantne velikosti.
    • Odpravljena notranja napaka pri prevajanju (SETF-SBIT) z velikim konstantnim indeksom.
    • Odpravljena notranja napaka prevajalnika za funkcijo lambda z neveljavnim seznamom parametrov v LABELS.
    • Odpravljena je notranja napaka prevajalnika pri prevajanju nekaterih neskončno rekurzivnih oblik OZNAK.
    • Odpravljena je notranja napaka prevajalnika pri poskusu vstavljanja skoka na že izbrisano oznako.
    • FILL-POINTER ne sme biti nikoli negativen.

Vir: opennet.ru

Kupite zanesljivo gostovanje za strani z DDoS zaščito, VPS VDS strežniki 🔥 Kupite zanesljivo spletno gostovanje z zaščito DDoS, VPS VDS strežniki | ProHoster