Foi publicado o lançamento do SBCL 2.4.1 (Steel Bank Common Lisp), uma implementação gratuita da linguagem de programação Common Lisp. O código do projeto é escrito em Common Lisp e C e é distribuído sob a licença BSD.
Na nova versão:
- Adicionado suporte parcial para cabeçalhos de instância compactos ao coletor de lixo paralelo usando o algoritmo mark-region.
- Para funções com tipos de retorno declarados, os grandes modos de otimização SAFETY e DEBUG 3 garantem que a verificação de tipo seja realizada nos valores de retorno.
- Na plataforma FreeBSD, a vinculação com libpthread é implementada e a randomização do espaço de endereço (ASLR) está desabilitada.
- A montagem nas arquiteturas riscv e ppc de 64 bits foi restaurada.
- O suporte Fastrem-32 foi implementado para todas as plataformas (para cálculos FLOOR otimizados).
- Corrigido um bug que fazia com que as linhas movidas fossem liberadas novamente após a compactação da memória pelo coletor de lixo paralelo da região de marca.
- Foi resolvido o problema do loop do compilador ao processar algumas construções com tipos SATISFIES.
- As tabelas hash usadas em várias partes do sistema (pacotes, tabelas Unicode) são convertidas para usar funções hash livres de colisões (perfeitas).
- A macro TYPECASE para hierarquias de estrutura de classes é implementada usando um hash livre de colisões.
- Para otimizar o desempenho, as verificações de limites foram removidas para índices com deslocamentos constantes, onde o compilador sabe que o índice é menor que a diferença entre tamanho e deslocamento.
- O compilador leva em consideração dados adicionais de otimização DIGIT-CHAR.
- O compilador implementou a capacidade de excluir valores intermediários em algumas chamadas APPLY, CONCATENATE e MAKE-ARRAY para argumentos construídos a partir de sequências com novas modificações.
- Foi acelerada a operação do loop “(LOOP FOR X IN (REVERSE LIST) ...)”, que agora utiliza menos contras.
- O loop "(LOOP... APPEND...)" é mais compacto e funciona menos ao adicionar NIL.
- As verificações de tipo para vários arrays foram aceleradas e reduzidas.
Fonte: opennet.ru