Se ha publicado el lanzamiento de SBCL 2.4.0 (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:
- Cambios que rompen la compatibilidad:
- *COMPILE-VERBOSE* y *LOAD-VERBOSE* están vinculados a NIL cuando se inicia el sistema con el argumento de línea de comando "--script".
- cuando busca un archivo principal, el sistema verifica la exactitud de lo especificado en /proc/self/exe, y si /proc/self/exe es 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 plataforma:
- En los sistemas arm64, es posible habilitar un recolector de basura paralelo que utilice el algoritmo de región de marca.
- Se han resuelto los problemas de compilación en las nuevas versiones de FreeBSD.
- Corrección de errores:
- Se ha restaurado la corrección de la inferencia de tipos realizada por el compilador al llamar a REDUCE con “:INITIAL-VALUE” pero sin “:FROM-END”.
- Se corrigió un error del compilador al declarar "SB-EXT:MUFFLE-CONDITIONS" para un tipo desconocido.
- En algunos casos, el desensamblador producía resultados con un formato antiestético para los registros.
- Se ha reducido ligeramente la probabilidad de que el sistema se quede sin pila nuevamente cuando muestra un error sobre el agotamiento de la pila de control;
- Reseñas:
- En muchos casos se han eliminado las barreras de escritura del recolector de basura.
- Inferencia de tipos mejorada para variables iterativas con tipos mixtos.
- Se eliminaron los valores de inicialización no utilizados para los enlaces LET y se mejoró la selección del tipo de registro.
- Se redujo EQUALP/EQUAL/EQL a EQL/EQ en FIND/MEMBER según los tipos de entrada.
- Inferencia de tipos mejorada para DPB, LOGIOR.
Fuente: opennet.ru
