Lançamento do SBCL 2.4.1, uma implementação da linguagem Common Lisp

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

Adicionar um comentário