Se ha publicado la versión SBCL 2.4.0 (Steel Bank Common Lisp), una implementación libre del lenguaje de programación Common Lisp. El código del proyecto está escrito en los lenguajes Common Lisp y C, y se distribuye bajo la licencia BSD.
En esta nueva versión:
- Cambios que rompen la compatibilidad:
- *COMPILE-VERBOSE* y *LOAD-VERBOSE* están fijados en NIL al iniciar el sistema con el argumento de línea de comandos «—script».
- Al buscar el archivo core, el sistema verifica la validez de lo que se indica en /proc/self/exe, y si /proc/self/exe resulta incorrecto, verifica argv[0].
- El sistema ya no proporciona nombres de tipo para los símbolos estándar (CL) ARRAY-RANK, ARRAY-TOTAL-SIZE, PATHNAME-HOST, PATHNAME-TYPE, PATHNAME-DIRECTORY, FLOAT-RADIX o FLOAT-DIGITS.
- Soporte de plataformas:
- En sistemas arm64, se ha agregado la posibilidad de habilitar un recolector de basura paralelo que usa el algoritmo mark-region.
- Se han resuelto problemas de compilación en las nuevas versiones de FreeBSD.
- Correcciones de errores:
- Se ha restaurado la corrección de la salida de tipo del compilador al llamar a REDUCE con «:INITIAL-VALUE» pero sin «:FROM-END».
- Se ha corregido un error del compilador al declarar «SB-EXT:MUFFLE-CONDITIONS» para un tipo desconocido.
- En algunos casos, el desensamblador proporcionaba una salida mal formateada para los registros.
- Se ha reducido ligeramente la probabilidad de que el sistema agote la pila al mostrar un error de agotamiento de la pila de control;
- Optimizaciones:
- En muchos casos se han eliminado las barreras de escritura en el recolector de basura.
- Se ha mejorado la salida de tipos para variables iterativas con tipos mixtos.
- Se han eliminado los valores de inicialización no utilizados para las vinculaciones LET, mejorando la selección del tipo de registros.
- Se han reducido EQUALP/EQUAL/EQL a EQL/EQ en FIND/MEMBER, basándose en los tipos de entrada.
- Se ha mejorado la salida de tipo para DPB, LOGIOR.
Fuente: opennet.ru
