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