Lanzamiento de SBCL 2.3.9, una implementación del lenguaje Common Lisp

Se ha publicado el lanzamiento de SBCL 2.3.9 (Steel Bank Common Lisp), una implementación gratuita del lenguaje de programación Common Lisp. El código del proyecto está escrito en Common Lisp y C, y se distribuye bajo la licencia BSD.

En el nuevo lanzamiento:

  • La asignación de pila a través de DYNAMIC-EXTENT ahora se aplica no solo al enlace inicial, sino también a todos los valores que la variable puede tomar (por ejemplo, a través de SETQ). Esto permite, por ejemplo, simplificar la construcción de estructuras complejas o recursivas en una pila mediante iteración.
  • Algunas interfaces en el módulo SB-POSIX están diseñadas para cumplir con la especificación, y un resultado NULL de la biblioteca C se considera un error si y solo si la llamada cambia errno. En este caso, se generará la señal SYSCALL-ERROR.
  • Funcionamiento mejorado de las macros DO-PASSWDS y DO-GROUPS en el módulo SB-POSIX. Estas macros están diseñadas para funcionar de forma segura con la contraseña y la base de datos del grupo.
  • Se ha restablecido el soporte para las plataformas Darwin x86 y PowerPC (gracias a Kirill A. Korinsky, Sergey Fedorov y barracuda156).
  • Se corrigió la compilación incorrecta que ocurría debido a una inferencia de tipos errónea al multiplicar valores de fixnum por valores fraccionarios.
  • Se corrigió un error del compilador que ocurría en algunos casos al verificar valores de 64 bits con y sin signo.
  • Se corrigió un error del compilador cuando el argumento ":INITIAL-CONTENTS" de MAKE-ARRAY es una constante que no es de secuencia.
  • Se corrigió un error al compilar funciones de convolución en una constante de secuencia determinada al devolver un valor falso de las funciones “:TEST” o “:KEY”.
  • Se corrigió un error al compilar funciones de matriz o secuencias con argumentos que implican tamaños de secuencia muy grandes.
  • Se corrigió un error del compilador que ocurre cuando no se usa el valor devuelto por ADJUST-ARRAY.
  • Inferencia optimizada del compilador de tipos de funciones que se pueden propagar hacia atrás a través de una representación intermedia.
  • Inferencia de tipos mejorada para LDB, LOGBITP y RATIO.
  • Se han realizado optimizaciones para eliminar comprobaciones de límites innecesarias en muchos casos de comparaciones transitivas.

Fuente: opennet.ru

Añadir un comentario