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

Se ha publicado el lanzamiento de SBCL 2.4.1 (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:

  • Se agregó soporte parcial para encabezados de instancias compactas al recolector de basura paralelo mediante el algoritmo de región de marca.
  • Para funciones con tipos de retorno declarados, los grandes modos de optimización SAFETY y DEBUG 3 garantizan que se realice la verificación de tipos en los valores de retorno.
  • En la plataforma FreeBSD, se implementa la vinculación con libpthread y la aleatorización del espacio de direcciones (ASLR) está deshabilitada.
  • Se ha restaurado el ensamblaje en arquitecturas riscv y ppc de 64 bits.
  • Se ha implementado compatibilidad con Fastrem-32 para todas las plataformas (para cálculos de FLOOR optimizados).
  • Se corrigió un error que causaba que las líneas movidas se volvieran a vaciar después de la compactación de la memoria por parte del recolector de basura paralelo de la región de marca.
  • Se ha resuelto el problema con el bucle del compilador al procesar algunas construcciones con tipos SATISFIES.
  • Las tablas hash utilizadas en varias partes del sistema (paquetes, tablas Unicode) se convierten para utilizar funciones hash que están libres de colisiones (perfecto).
  • La macro TYPECASE para jerarquías de estructuras de clases se implementa mediante un hash sin colisiones.
  • Para optimizar el rendimiento, se han eliminado las comprobaciones de límites para los índices con desplazamientos constantes, donde el compilador sabe que el índice es menor que la diferencia entre tamaño y desplazamiento.
  • El compilador tiene en cuenta datos de optimización DIGIT-CHAR adicionales.
  • El compilador ha implementado la capacidad de excluir valores intermedios en algunas llamadas APPLY, CONCATENATE y MAKE-ARRAY para argumentos construidos a partir de secuencias con nuevas modificaciones.
  • Se ha acelerado el funcionamiento del bucle “(LOOP FOR X IN (REVERSE LIST)...)”, que ahora utiliza menos contras.
  • El bucle "(LOOP... APPEND...)" es más compacto y hace menos trabajo al agregar NIL.
  • Se han acelerado y acortado las comprobaciones de tipos para varias matrices.

Fuente: opennet.ru

Añadir un comentario