Versión de Nim 1.2.0

Lanzouse unha nova versión da linguaxe de programación do sistema Nim. Ten unha incompatibilidade parcial coa versión 1.0, por exemplo debido a unha conversión de tipos máis estrita. Pero neste caso hai unha marca -useVersion:1.0.

A principal innovación é un novo colector de lixo, habilitado pola opción -gc:arc. O autor da linguaxe, Andreas Rumpf, vai escribir un artigo detallado sobre as vantaxes de ARC, pero polo momento convida a ler coa súa actuación en FOSDEM, que mostra os resultados de referencia.

  • O compilador agora admite a opción --asm para un exame máis cómodo do código ensamblador producido.
  • O pragma de aliñamento pódese usar en variables de obxecto e campos, isto é semellante ao aliñado en C/C++.
  • O operador =sink agora é opcional. O compilador agora pode usar unha combinación de =destroy e copyMem para mover obxectos de forma eficiente.
  • As conversións en enteiros sen asinar non se verifican no tempo de execución. Detalles en https://github.com/nim-lang/RFCs/issues/175
  • Nova sintaxe para lvalue: var b {.byaddr.} = expr, conectado mediante import std/decls
  • O compilador admite un novo interruptor -panics:on, que converte os erros de execución como IndexError ou OverflowError en erros mortais que non se poden detectar mediante try. Isto pode mellorar a eficiencia do tempo de execución e o tamaño do programa.
  • O código JS xerado usa só espazos en lugar dunha mestura de espazos e tabulacións.
  • O compilador engadiu soporte para o pragma .localPassc, que se pode usar para xestionar opcións especiais de back-end C(++) para un ficheiro C(++) xerado a partir do módulo Nim actual.
  • Nimpretty xa non acepta un argumento negativo para configurar a sangría, xa que isto estaba a romper ficheiros.
  • Engadíronse novas macros (recoller, duplicar, capturar), conectadas mediante azucre de importación.

Ademais, engadíronse moitos cambios á biblioteca estándar e moitas correccións de erros.

Fonte: linux.org.ru

Engadir un comentario