Lanzamento de SBCL 2.3.9, unha implementación da linguaxe Common Lisp

Publicouse o lanzamento de SBCL 2.3.9 (Steel Bank Common Lisp), unha implementación gratuíta da linguaxe de programación Common Lisp. O código do proxecto está escrito en Common Lisp e C, e distribúese baixo a licenza BSD.

Na nova versión:

  • A asignación de pila mediante DYNAMIC-EXTENT agora aplícase non só á vinculación inicial, senón tamén a todos os valores que pode tomar a variable (por exemplo, a través de SETQ). Isto fai posible, por exemplo, simplificar a construción de estruturas complexas ou recursivas nunha pila mediante a iteración.
  • Algunhas interfaces do módulo SB-POSIX están feitas para axustarse á especificación, e un resultado NULL da biblioteca C considérase un erro se e só se errno é cambiado pola chamada. Neste caso, xerarase o sinal SYSCALL-ERROR.
  • Mellora do funcionamento das macros DO-PASSWDS e DO-GROUPS no módulo SB-POSIX. Estas macros están deseñadas para funcionar de forma segura coa base de datos de contrasinais e grupos.
  • Restableceuse o soporte para as plataformas Darwin x86 e PowerPC (grazas a Kirill A. Korinsky, Sergey Fedorov e barracuda156).
  • Corrixiuse a compilación incorrecta que se producía debido a unha inferencia de tipo errónea ao multiplicar os valores fixnum por valores fraccionarios.
  • Corrixiuse un erro do compilador que se producía nalgúns casos ao comprobar os valores de 64 bits asinados e sen asinar.
  • Corrixiuse un erro do compilador cando o argumento ":INITIAL-CONTENTS" de MAKE-ARRAY non é unha constante de secuencia.
  • Corrixiuse un erro ao compilar funcións de convolución nunha constante de secuencia determinada ao devolver un valor falso das funcións ":TEST" ou ":KEY".
  • Corrixiuse un erro ao compilar funcións de matriz ou secuencias con argumentos que implicaban tamaños de secuencia moi grandes.
  • Corrixiuse un erro do compilador que se producía cando non se utilizaba o valor devolto desde ADJUST-ARRAY.
  • Inferencia optimizada do compilador de tipos de función que se poden propagar cara atrás mediante unha representación intermedia.
  • Inferencia de tipos mellorada para LDB, LOGBITP e RATIO.
  • Realizáronse optimizacións para eliminar comprobacións de límites innecesarias para moitos casos de comparacións transitivas.

Fonte: opennet.ru

Engadir un comentario