Lanzamiento de Nim 1.2.0

Se ha lanzado una nueva versión del lenguaje de programación del sistema Nim. Tiene incompatibilidad parcial con la versión 1.0, por ejemplo debido a una conversión de tipos más estricta. Pero en este caso hay una bandera -useVersion:1.0.

La principal innovación es un nuevo recolector de basura, habilitado por la opción -gc:arc. El autor del lenguaje, Andreas Rumpf, va a escribir un artículo detallado sobre las ventajas de ARC, pero por ahora te invita a leer con su actuación en el FOSDEM, que muestra los resultados del benchmark.

  • El compilador ahora admite la opción --asm para un examen más conveniente del código ensamblador producido.
  • El pragma de alineación se puede usar en campos y variables de objetos, esto es similar a aligns en C/C++.
  • El operador =sink ahora es opcional. El compilador ahora puede usar una combinación de =destroy y copyMem para mover objetos de manera eficiente.
  • Las conversiones a enteros sin signo no se verifican en tiempo de ejecución. Detalles en https://github.com/nim-lang/RFCs/issues/175
  • Nueva sintaxis para lvalue: var b {.byaddr.} = expr, conectado mediante import std/decls
  • El compilador admite un nuevo modificador -panics:on, que convierte errores de tiempo de ejecución como IndexError o OverflowError en errores fatales que no se pueden detectar mediante try. Esto puede mejorar la eficiencia del tiempo de ejecución y el tamaño del programa.
  • El código JS generado utiliza sólo espacios en lugar de una mezcla de espacios y tabulaciones.
  • El compilador ha agregado soporte para el pragma .localPassc, que se puede usar para manejar opciones especiales de backend de C(++) para un archivo C(++) que se genera a partir del módulo Nim actual.
  • Nimpretty ya no acepta un argumento negativo para establecer la sangría, ya que esto estaba rompiendo archivos.
  • Se han agregado nuevas macros (recopilar, duplicar, capturar), conectadas mediante importación de azúcar.

Además, se han agregado muchos cambios a la biblioteca estándar y se han corregido muchos errores.

Fuente: linux.org.ru

Añadir un comentario