Foi lançada a SBCL 2.3.9 (Steel Bank Common Lisp), uma implementação gratuita da linguagem de programação Common Lisp. O código do projeto foi escrito em Common Lisp e C e é distribuído sob a licença BSD.
Na nova versão:
- A alocação de pilha via DYNAMIC-EXTENT agora se aplica não apenas à ligação inicial, mas também a todos os valores que a variável pode assumir (por exemplo, via SETQ). Isso permite, por exemplo, a construção mais fácil de estruturas de pilha complexas ou recursivas por meio de iteração.
- Algumas interfaces no módulo SB-POSIX foram atualizadas para estarem em conformidade com a especificação, e um resultado NULL da biblioteca C é considerado um erro se, e somente se, o valor de errno for alterado pela chamada. Nesse caso, o sinal SYSCALL-ERROR é gerado.
- Melhoria no desempenho das macros DO-PASSWDS e DO-GROUPS no módulo SB-POSIX. Essas macros foram projetadas para acesso seguro ao banco de dados de senhas e grupos.
- O suporte para as plataformas Darwin x86 e PowerPC foi restaurado (obrigado a Kirill A. Korinsky, Sergey Fedorov e barracuda156).
- Corrigida a compilação incorreta que ocorria devido à inferência de tipo errônea ao multiplicar valores fixos por valores fracionários.
- Corrigido um erro de compilação que ocorria em alguns casos ao verificar valores de 64 bits com e sem sinal.
- Corrigido um erro de compilação que ocorria quando o argumento ":INITIAL-CONTENTS" da função MAKE-ARRAY era uma constante não sequencial.
- Corrigido um erro na compilação de funções de redução (fold functions) em uma constante de uma determinada sequência quando as funções ":TEST" ou ":KEY" retornavam um valor falso.
- Corrigido um erro de compilação para funções de matriz ou sequência com argumentos que implicam tamanhos de sequência muito grandes.
- Corrigido um erro de compilação que ocorria quando o valor de retorno de ADJUST-ARRAY não era utilizado.
- A inferência do compilador sobre os tipos de funções que podem ser propagadas retroativamente através da representação intermediária foi otimizada.
- Inferência de tipo aprimorada para LDB, LOGBITP e RATIO.
- Foram feitas otimizações para eliminar verificações de limites desnecessárias em muitos casos de comparação transitiva.
Fonte: opennet.ru
