Rilascio di SBCL 2.4.2, implementazione del linguaggio Common Lisp

È stato pubblicato il rilascio di SBCL 2.4.2 (Steel Bank Common Lisp), un'implementazione open source del linguaggio di programmazione Common Lisp. Il codice del progetto è scritto in Common Lisp e C, ed è distribuito sotto licenza BSD.

Nel nuovo rilascio:

  • La compilazione del sistema su se stesso su sistemi x86-64 con Linux ora produce fasl bitwise-identici cross-compilati quando l'host di compilazione è cmucl, ccl, clisp o lo stesso sbcl.
  • Ottimizzazioni:
    • Un gran numero di tabelle interne, in particolare quelle relative al supporto Unicode, sono state convertite per utilizzare funzioni hash prive di collisioni (perfect), migliorando la velocità e riducendo le dimensioni.
    • FIND, POSITION, ASSOC e RASSOC con argomenti di una sequenza invariata contenente simboli come chiavi, ora vengono compilati per la ricerca utilizzando hash privi di collisioni.
    • Nei sistemi x86-64, il compilatore assicura l'eliminazione del salto jump-to-jump.
  • Correzioni di bug:
    • Ripristinata la possibilità di ereditare sia da SEQUENCE che da SB-MOP:FUNCALLABLE-STANDARD-OBJECT.
    • COERCE non convertirà le forme lambda in funzioni se il tipo di nome specificato è un sottoclasse di FUNCTION.
    • Il LOG con argomenti double-float e argomenti razionali (in qualsiasi ordine) non perde precisione passando per un argomento intermedio single-float.
    • Il LOG in base 2 con potenze intere di due darà con molta probabilità una risposta matematicamente esatta.
    • Il LOG su numeri razionali vicini a uno, con numeratore o denominatore vicino a una potenza di due, utilizzerà log1p e, quindi, perderà meno precisione.
    • Il formato esterno utf-8 con terminazioni di riga Unix aggiorna le informazioni sulle dimensioni dei caratteri quando si applica una scorciatoia per i buffer di caratteri ASCII.
    • Il contenuto probabilmente non stampato di cons dinamicamente esistenti non validi nel metodo PRINT-OBJECT per oggetti THREAD.
    • Posizionamento costante di punti di ingresso esterni per funzioni prima di qualsiasi altra funzione locale.
    • Rimozione di commenti inattivi di ottimizzazione per forme racchiuse e chiamate singole ad APPEND ad alta velocità.
    • Ciclo infinito in COPY-SEQ su array di lunghezza zero con tipo di elemento NIL.
    • Correzione della compilazione di costruttori di strutture non di primo livello.
  • Correzioni in SB-SIMD:
    • Miglioramento della verifica dei limiti in SB-SIMD.
    • Correzione di SB-SIMD AVX f64.4-reverse.
    • Correzione dell'ordinamento SB-SIMD su AVX e SSE2.
    • Correzione del tempo di vita negli VOP sse+xmm0.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster