Foi lançado o SBCL 2.4.2 (Steel Bank Common Lisp), uma implementação livre 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.
No novo lançamento:
- A compilação do sistema por si mesmo em sistemas x86-64 com Linux agora produz fasls cruzados idênticos bit a bit onde o host de compilação é cmucl, ccl, clisp ou sbcl.
- Otimizações:
- Um grande número de tabelas internas, especialmente aquelas relacionadas ao suporte a Unicode, foram convertidas para usar funções de hash livres de colisões (perfeitas), o que melhorou a velocidade e reduziu o tamanho.
- FIND, POSITION, ASSOC e RASSOC com argumentos de sequência imutável contendo símbolos como chaves agora são compilados para busca usando hashes livres de colisões.
- Em sistemas x86-64, o compilador garante a eliminação do salto jump-to-jump.
- Correções de bugs:
- A funcionalidade de herança de SEQUENCE e de SB-MOP:FUNCALLABLE-STANDARD-OBJECT foi restaurada.
- COERCE não converterá formas lambda em funções se o tipo nomeado for uma subclasse de FUNCTION.
- LOG com argumentos double-float e racionais (em qualquer ordem) não perde precisão através de um argumento intermedio single-float.
- LOG com base 2 de uma potência inteira de 2 provavelmente dará uma resposta matematicamente exata.
- LOG em números racionais próximos de um com numerador ou denominador próximo de uma potência de 2 usará log1p e, assim, perderá menos precisão.
- O formato externo utf-8 com quebras de linha Unix atualiza a informação sobre o tamanho dos caracteres ao aplicar um caminho rápido para buffers de caracteres ASCII.
- O conteúdo de cons que provavelmente é mais inválido não foi impresso no método PRINT-OBJECT para objetos THREAD.
- Alocação permanente de pontos de entrada externos para funções antes de quaisquer outras funções locais.
- Remoção de observações de otimização inativas para formas entre aspas e chamadas unitárias de APPEND em alta velocidade.
- Um loop infinito em COPY-SEQ em arrays de comprimento zero com tipo de elementos NIL.
- Correção da compilação de construtores de estruturas não de nível superior.
- Correções em SB-SIMD:
- Melhoria da verificação de limites no SB-SIMD.
- Correção do SB-SIMD AVX f64.4-reverse.
- Correção de embaralhamento no SB-SIMD em AVX e SSE2.
- Correção do tempo de vida em VOPs sse+xmm0.
Fonte: opennet.ru
