Utjefte fan SBCL 2.3.11, in ymplemintaasje fan 'e Common Lisp-taal

De frijlitting fan SBCL 2.3.11 (Steel Bank Common Lisp), in fergese ymplemintaasje fan 'e Common Lisp-programmearringstaal, is publisearre. De projektkoade is skreaun yn Common Lisp en C, en wurdt ferspraat ûnder de BSD-lisinsje. Yn de nije release:

  • Lytse ynkompatibiliteiten:
    • Streamen mei eksterne opmaak spesifisearre mei ": REPLACEMENT" sille de gegevens tapasse om de ynformaasje ien kear per stream te ferfangen, wat resulteart yn dekodearringsflaters (ynstee fan, yn guon gefallen, ien kear foar in opienfolging fan bytes dy't elk net in jildich karakter is startposysje foar dit eksterne formaat).
    • Spesifikaasjes fan eksterne formaat sille no in flater sinjalearje by it brûken fan net-stipe of net-erkende farianten.
  • Ferbetterings:
    • By it ferstjoeren fan generike funksjes dy't de standert of koarte kombinaasjemetoade brûke, as d'r gjin primêre metoaden beskikber binne, sil it systeem de generike funksje SB-PCL:NO-PRIMARY-METHOD neame, waans standertgedrach is om in flater te sinjalearjen. Brûkers kinne metoaden definiearje foar dizze generike funksje.
    • Eksterne formaten stypje no nije line farianten foar single-byte en utf-8 kodearrings.
    • Tekenkodearjen en dekodearjen fan flaters sinjalearre troch stream- of oktetfunksjes stypje no USE-VALUE opnij starte foar handlers dy't ynfier- of útfierferfangings leverje.
    • READ-SEQUENCE en WRITE-SEQUENCE stypje brûker-definieare sekwinsjes; de standert ymplemintaasje ferwurket elemint foar elemint, respektivelik it lêzen of skriuwen fan ien byte of karakter nei / fan 'e stream.
  • Optimisaasjes:
    • Eksterne formaten mei: REPLACEMENT bine net langer flaterhannelers foar konverzjefunksjes, wat it oantal neidielen operaasjes moatte ferminderje en prestaasjes ferbetterje.
    • As :EXTERNAL-FORMAT it argumint is foar STRING-TO-OCTETS of OCTETS-TO-STRING en in kompilaasjetiidkonstante is, dan wurdt it eksterne formaat oplost by laden tiid ynstee fan by elke oprop.
    • De gearstaller kin de soarten arguminten foar guon funksjes beheine op basis fan it ôflei of ymplisearre type fan 'e wearde dy't troch dy funksje weromjûn wurdt.
    • De kompilator ferminderet it oantal oerstallige typekontrôles yn funksjes lykas ASSOC en GETF.
  • Bug fixes:
    • OCTETS-TO-STRING sinjalearret of past ferfangings korrekt by it brûken fan eksterne single-byte-formaten foar minder gewoane kodearrings (lykas iso-8859-3), yn stee fan bits fan it NIL-adres te nimmen en dy bits te konvertearjen nei karakters.
    • FILE-STRING-LENGTH jout no NIL werom as de ynfierwearden net binne kodearre yn it eksterne streamformaat.
    • Tabulêre multibyte eksterne formaten (EUC-JP, Shift-JIS, GBK) respektearje no it ferfangende karakter (yn it eksterne formaat of fia opnij starte) by kodearring yn oktetten.
    • It konvertearjen fan oktetten mei eksterne UCS-2-, UCS-4- en UTF-32-formaten lêst net mear it ein fan in oktet-array mei in net-geheel getal fan twa- of fjouwer-byte-ienheden.
    • Konvertearjen fan oktetten mei eksterne UCS-2, UCS-4 en UTF-32 formaten jout no in ienfâldige tekenrige werom, lykas fereaske troch de OCTETS-TO-STRING type definysje.
    • It brûken fan in ferkeard eksterne argumintformaat foar OPEN of WITH-OPEN-FILE (of ynterne MAKE-FD-STREAM) feroarsaket net langer in triembeskriuwingslek.
    • SB-ROTATE-BYTE definiearret BYTE-spesifikaasjes bûten grinzen foar neidielen fan heul grutte heule getallen om maskers en ferskowings te brûken.
    • Fix type konklúzje by it kompilearjen fan SB-ROTATE-BYTE-foarmen mei net-nul POSITION yn 'e byte-definysje.
    • Ferskate assemblerflaters repareare by it kompilearjen fan MAKE-ARRAY, MAKE-STRING en oaren mei in grutte konstante grutte.
    • Fix ynterne flater by it kompilearjen (SETF-SBIT) mei grutte konstante yndeks.
    • Fêste ynterne kompilerflater foar lambdafunksje mei ferkearde parameterlist yn LABELS.
    • Reparearje in ynterne kompilerflater by it kompilearjen fan wat ûneinich rekursive foarmen fan LABELS.
    • In ynterne kompilerflater reparearre by it besykjen fan in sprong nei in al wiske label yn te foegjen.
    • FILL-POINTER moat nea negatyf wêze.

Boarne: opennet.ru

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster