Linguagem de programação Nim versão 1.4.0

Uma nova versão da linguagem de programação de sistemas Nim foi lançada, tendo celebrado seu primeiro aniversário em setembro. primeira versão estávelA linguagem é semelhante ao Python em sintaxe e quase como C++ em desempenho. De acordo com Perguntas frequentes A linguagem se inspira fortemente em (em ordem de contribuição): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Funciona em qualquer lugar graças à capacidade de compilar para C/C++/Objective-C/JS. Ele oferece suporte a diversas linguagens. macros, OOP, genéricos, exceções, troca de código quente e muito mais. Licença: MIT.

As mudanças mais significativas:

  • Um novo coletor de lixo, ORC, foi adicionado. Ele usa o algoritmo ARC, mas lida com referências circulares de uma maneira especial. Pode ser ativado com a opção --gc:orc. Diferenças entre ARC e ORC. Existe um ótimo artigo sobre isso..

  • Adicionado um modo de definição de funções estritas, que permite verificação adicional de mutabilidade de objetos. Habilitado através do pragma {.experimental: "strictFuncs".} ou da chave --experimental:strictFuncs.

  • A palavra-chave "from" agora pode ser usada como um operador.

  • O pragma .noalias foi adicionado. Ele mapeia para a palavra-chave restrict da linguagem C para melhorar a eficiência que esta palavra-chave pode proporcionar.

  • Avisos específicos agora podem ser transformados em erros através de --warningAsError[X]:on|off.

  • Novo comando: `nim r main.nim [args…]`, que compila e executa o arquivo `main.nim`, e inclui a opção `--usenimcache` para que o resultado seja armazenado em `$nimcache/main$exeExt`, usando a mesma lógica de `nim c -r` para evitar a recompilação quando as fontes não foram alteradas. Exemplo:

nim r compilador/nim.nim --help # compilado pela primeira vez
echo 'import os; echo getCurrentCompilerExe()' | nim r — # isso também funciona
nim r compilador/nim.nim --fullhelp # sem recompilar
nim r --nimcache:/tmp main # o binário é salvo em /tmp/main

  • Uma nova dica foi adicionada, hint:msgOrigin, que mostra onde o compilador gerou mensagens de erro/aviso. Isso é útil quando a origem de uma mensagem não é óbvia.

  • Adicionada a opção --backend:js|c|cpp|objc (ou -b:js etc.) para alterar o backend.

  • Adicionada a flag --usenimcache para gerar arquivos binários no nimcache.

  • Chaves removidas: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • O utilitário nimsuggest agora mostra não apenas a declaração antecipada, mas também a localização da implementação para uma consulta def.

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

Fonte: linux.org.ru

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster