Compilador de linguaxe D versión 2.100

Os desenvolvedores da linguaxe de programación D presentaron o lanzamento do compilador de referencia principal DMD 2.100.0, que admite sistemas GNU/Linux, Windows, macOS e FreeBSD. O código do compilador distribúese baixo a licenza gratuíta BSL (Boost Software License).

D está tipificado de forma estática, ten unha sintaxe similar a C/C++ e ofrece o rendemento das linguaxes compiladas, ao tempo que toma prestadas algunhas das vantaxes de seguridade e eficiencia do desenvolvemento das linguaxes dinámicas. Por exemplo, ofrece soporte para matrices asociativas, inferencia de tipos, xestión automática de memoria, programación paralela, un colector de lixo opcional, un sistema de modelos, compoñentes de metaprogramación, a capacidade de usar bibliotecas C e algunhas bibliotecas C++ e Objective-C.

Entre os cambios na nova versión:

  • O antigo estilo de sobrecarga do operador usado na rama D1 foi descontinuado. Substitúe a opNeg, opAdd_r, opAddAssign, etc. veu opUnary, opBinary, opBinaryRight e opOpAssign. O antigo estilo de sobrecarga do operador quedou en desuso en 2019 e xerará un erro a partir da versión 2.100.
  • A palabra clave delete quedou en desuso desde 2018. En lugar de eliminar, debes usar a función destruír ou core.memory.__delete.
  • Implementouse un novo atributo @mustuse que se pode aplicar aos tipos de estrutura e unión como método alternativo de tratamento de erros cando o código non pode xestionar excepcións (por exemplo, nos bloques @nogc). Se unha expresión marcada co atributo @mustuse non se usa no código, o compilador xerará un erro.
  • Para matrices estáticas, permítese o uso da propiedade ".tupleof" para obter a secuencia de valores (lvalue) de cada elemento da matriz. void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // foo analóxico(1, 2, 3); flotar[3] fa; fa.tupleof = ia.tupleof; // a asignación simple fa = ia dá lugar a unha afirmación de erro (fa == [1F, 2F, 3F]);

Fonte: opennet.ru

Engadir un comentario