Rilascio di SBCL 2.3.9, un'implementazione del linguaggio Common Lisp

È stata pubblicata la release di SBCL 2.3.9 (Steel Bank Common Lisp), un'implementazione gratuita del linguaggio di programmazione Common Lisp. Il codice del progetto è scritto in Common Lisp e C ed è distribuito sotto la licenza BSD.

Nella nuova versione:

  • L'allocazione dello stack tramite DYNAMIC-EXTENT ora si applica non solo all'associazione iniziale, ma anche a tutti i valori che la variabile può assumere (ad esempio tramite SETQ). Ciò consente, ad esempio, di semplificare la costruzione di strutture complesse o ricorsive in uno stack attraverso l'iterazione.
  • Alcune interfacce nel modulo SB-POSIX sono conformi alle specifiche e un risultato NULL dalla libreria C è considerato un errore se e solo se errno viene modificato dalla chiamata. In questo caso verrà generato il segnale SYSCALL-ERROR.
  • Migliorato il funzionamento delle macro DO-PASSWDS e DO-GROUPS nel modulo SB-POSIX. Queste macro sono progettate per funzionare in modo sicuro con la password e il database dei gruppi.
  • Il supporto per le piattaforme Darwin x86 e PowerPC è stato ripristinato (grazie a Kirill A. Korinsky, Sergey Fedorov e barracuda156).
  • Risolto il problema con la compilazione errata che si verificava a causa di un'errata inferenza del tipo durante la moltiplicazione dei valori fixnum per valori frazionari.
  • Risolto un errore del compilatore che si verificava in alcuni casi durante il controllo dei valori a 64 bit con e senza segno.
  • Risolto un errore del compilatore quando l'argomento ":INITIAL-CONTENTS" di MAKE-ARRAY è una costante non di sequenza.
  • Risolto un errore nella compilazione delle funzioni di convoluzione in una determinata costante di sequenza quando si restituiva un valore falso dalle funzioni ":TEST" o ":KEY".
  • Risolto un bug durante la compilazione di funzioni di array o sequenze con argomenti che implicano dimensioni di sequenza molto grandi.
  • Risolto un errore del compilatore che si verificava quando il valore restituito da ADJUST-ARRAY non veniva utilizzato.
  • Inferenza del compilatore ottimizzata di tipi di funzione che possono essere propagati all'indietro attraverso una rappresentazione intermedia.
  • Inferenza del tipo migliorata per LDB, LOGBITP e RATIO.
  • Sono state apportate ottimizzazioni per eliminare controlli dei limiti non necessari per molti casi di confronti transitivi.

Fonte: opennet.ru

Aggiungi un commento