Compilador de linguagem D versão 2.100

Os desenvolvedores da linguagem de programação D apresentaram o lançamento do principal compilador de referência DMD 2.100.0, que suporta sistemas GNU/Linux, Windows, macOS e FreeBSD. O código do compilador é distribuído gratuitamente sob a BSL (Boost Software License).

D é digitado estaticamente, tem uma sintaxe semelhante a C/C++ e fornece o desempenho de linguagens compiladas, ao mesmo tempo que empresta alguns dos benefícios de eficiência de desenvolvimento e segurança de linguagens dinâmicas. Por exemplo, ele fornece suporte para matrizes associativas, inferência de tipo, gerenciamento automático de memória, programação paralela, um coletor de lixo opcional, um sistema de modelo, componentes de metaprogramação, a capacidade de usar bibliotecas C e algumas bibliotecas C++ e Objective-C.

Entre as mudanças no novo lançamento:

  • O antigo estilo de sobrecarga de operador usado no ramal D1 foi descontinuado. Substitui opNeg, opAdd_r, opAddAssign, etc. vieram opUnary, opBinary, opBinaryRight e opOpAssign. O estilo antigo de sobrecarga do operador foi descontinuado em 2019 e gerará um erro a partir da versão 2.100.
  • A palavra-chave delete está obsoleta desde 2018. Em vez de excluir, você deve usar a função destroy ou core.memory.__delete.
  • Foi implementado um novo atributo @mustuse que pode ser aplicado aos tipos struct e union como um método alternativo de tratamento de erros quando o código não consegue lidar com exceções (por exemplo, em blocos @nogc). Se uma expressão marcada com o atributo @mustuse não for usada no código, o compilador irá gerar um erro.
  • Para arrays estáticos é permitido o uso da propriedade ".tupleof" para obter a sequência de valores (lvalue) de cada elemento do array. void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analógico foo(1, 2, 3); float[3] fa; fa.tupleof = ia.tupleof; // atribuição simples fa = ia resulta em um erro assert(fa == [1F, 2F, 3F]);

Fonte: opennet.ru

Adicionar um comentário