UtgÄvan av SBCL 2.3.11, en implementation av sprÄket Common Lisp

UtgÄvan av SBCL 2.3.11 (Steel Bank Common Lisp), en fri implementation av programmeringssprÄket Common Lisp, har publicerats. Projektkoden Àr skriven i sprÄken Common Lisp och C, och distribueras under BSD-licens. I den nya versionen:

  • SmĂ„ inkompatibiliteter:
    • Strömmar med parametern external-format, definierad med ':REPLACEMENT', kommer att tillĂ€mpa data för att ersĂ€tta information en gĂ„ng i strömmen, vilket leder till avkodningsfel (till skillnad frĂ„n i vissa fall, en gĂ„ng för varje byte-sekvens som inte Ă€r en giltig startposition för symbolen för detta external-format).
    • External-format specifikationer som anvĂ€nder stödja eller oidentifierade varianter kommer nu att signalera ett fel.
  • FörbĂ€ttringar:
    • Vid dispatching av generiska funktioner, som anvĂ€nder standard- eller korta kombinationsmetoder, nĂ€r inga huvudmetoder Ă€r tillgĂ€ngliga, kommer systemet att anropa den generiska funktionen SB-PCL:NO-PRIMARY-METHOD, vars standardbeteende Ă€r att signalera ett fel. AnvĂ€ndare kan definiera metoder för denna generiska funktion.
    • External-formats stödjer nu newline-varianter för en-bytars och utf-8 kodningar.
    • Fel som signaleras av ström- eller oktettfunktioner angĂ„ende encoding och decoding av symboler stöder nu USE-VALUE omstart för hanterare som tillhandahĂ„ller ersĂ€ttningar för in- eller utdata.
    • READ-SEQUENCE och WRITE-SEQUENCE stödjer anvĂ€ndardefinierade sekvenser; standardimplementeringen hanterar element för element, lĂ€sande eller skrivande en byte eller symbol i/frĂ„n strömmen respektive.
  • Optimeringar:
    • External-formats med :REPLACEMENT binder inte lĂ€ngre hanterare för fel i konverteringsfunktioner, vilket bör minska antal cons-operationer och öka prestandan.
    • Om :EXTERNAL-FORMAT fungerar som ett argument för STRING-TO-OCTETS eller OCTETS-TO-STRING och Ă€r en konstant under kompilering, sĂ„ kommer den externa formatet att lösas vid laddning istĂ€llet för vid varje anrop.
    • Kompilatoren kan begrĂ€nsa typer av argument för vissa funktioner baserat pĂ„ den avledda eller underförstĂ„dda typen av vĂ€rdet som returneras av denna funktion.
    • Kompilatoren minskar antalet överflödiga typkontroller i funktioner som ASSOC och GETF.
  • Buggfixar:
    • OCTETS-TO-STRING signalerar korrekt eller tillĂ€mpar ersĂ€ttningar vid anvĂ€ndning av ensamma byte externa format för mindre vanliga teckenkodningar (till exempel iso-8859-3), istĂ€llet för att ta bitar frĂ„n NIL-adressen och konvertera dessa bitar till tecken.
    • FILE-STRING-LENGTH returnerar nu NIL om indata inte kan kodas till ett externt strömformat.
    • Tabellformat med flera byte (EUC-JP, Shift-JIS, GBK) tar nu hĂ€nsyn till ersĂ€ttningstecknet (i det externa formatet eller genom omstart) vid kodning till oktetter.
    • Konvertering frĂ„n oktetter med hjĂ€lp av externa format UCS-2, UCS-4 och UTF-32 lĂ€ser inte lĂ€ngre slutet av oktettarrayen med ett icke heltal av tvĂ„- eller fyrabyte enheter.
    • Konvertering frĂ„n oktetter med hjĂ€lp av externa format UCS-2, UCS-4 och UTF-32 returnerar nu en enkel strĂ€ng, som definierat av typen OCTETS-TO-STRING.
    • AnvĂ€ndning av ett ogiltigt externt format för argumentet i OPEN eller WITH-OPEN-FILE (eller interna MAKE-FD-STREAM) resulterar inte lĂ€ngre i en lĂ€cka av filbeskrivare.
    • SB-ROTATE-BYTE definierar specifikationerna för BYTE utanför tillĂ„tet vĂ€rde före utförandet av cons med mycket stora heltal för anvĂ€ndning av maskor och skiftningar.
    • Fixa typutmatningen vid kompilering av SB-ROTATE-BYTE-former med ett icke-noll POSITION i byte-definitionen.
    • Fixa flera assemblerfel vid kompilering av MAKE-ARRAY, MAKE-STRING och andra med stort konstant storlek.
    • Fixa ett internt fel vid kompilering (SETF-SBIT) med stort konstant index.
    • Fixa ett internt fel i kompileraren för lambda-funktioner med en ogiltig parameterlista i LABELS.
    • Fixa ett internt fel i kompileraren vid kompilering av vissa oĂ€ndligt rekursiva former i LABELS.
    • Fixa ett internt fel i kompileraren vid försök att inbygga ett hopp till en redan borttagen etikett.
    • FILL-POINTER ska aldrig vara negativ.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster