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