Versão Nim 1.2.0

Uma nova versão da linguagem de programação do sistema Nim foi lançada. Possui incompatibilidade parcial com a versão 1.0, por exemplo devido à conversão de tipo mais rígida. Mas neste caso existe um sinalizador -useVersion:1.0.

A principal inovação é um novo coletor de lixo, habilitado pela opção -gc:arc. O autor da linguagem, Andreas Rumpf, vai escrever um artigo detalhado sobre as vantagens do ARC, mas por enquanto ele convida você a ler com sua atuação no FOSDEM, que mostra os resultados do benchmark.

  • O compilador agora suporta a opção --asm para um exame mais conveniente do código assembly produzido.
  • O pragma de alinhamento pode ser usado em variáveis ​​​​e campos de objeto, é semelhante ao alinhamento em C/C++.
  • O operador =sink agora é opcional. O compilador agora pode usar uma combinação de =destroy e copyMem para mover objetos com eficiência.
  • As conversões para inteiros sem sinal não são verificadas em tempo de execução. Detalhes em https://github.com/nim-lang/RFCs/issues/175
  • Nova sintaxe para lvalue: var b {.byaddr.} = expr, conectado via import std/decls
  • O compilador suporta uma nova opção -panics:on, que transforma erros de tempo de execução, como IndexError ou OverflowError, em erros fatais que não podem ser detectados por tentativa. Isso pode melhorar a eficiência do tempo de execução e o tamanho do programa.
  • O código JS gerado usa apenas espaços em vez de uma mistura de espaços e tabulações.
  • O compilador adicionou suporte para o pragma .localPassc, que pode ser usado para manipular opções especiais de back-end C(++) para um arquivo C(++) gerado a partir do módulo Nim atual.
  • Nimpretty não aceita mais um argumento negativo para definir o recuo, pois isso estava quebrando arquivos.
  • Novas macros foram adicionadas (coletar, duplicar, capturar), conectadas via açúcar de importação.

Além disso, muitas alterações foram adicionadas à biblioteca padrão e muitas correções de bugs.

Fonte: linux.org.ru

Adicionar um comentário