D Language/DLang 2.099.0 lançado

D Language/DLang 2.099.0 foi lançado no mês passado.

O anúncio mostra que este é um lançamento importante, e os destaques da atualização incluem:

  • Módulos de código D podem ser importados para código C via ImportC
  • Introduzir expressões de arremesso
  • A saída PE/COFF agora é a saída padrão do DMD no Windows
  • ……

Consulte o Registro de alterações para obter detalhes .

Importar módulos de código D na fonte C usando ImportC

A partir do D 2.099.0, __importos módulos de código D podem ser importados diretamente para arquivos C por meio de palavras-chave.

// dsayhello.d
import core.stdc.stdio : puts;

extern(C) void helloImport() {
    puts("Hello __import!");
}
// dhelloimport.c
__import dsayhello;
__import core.stdc.stdio : puts;

int main(int argc, char** argv) {
    helloImport();
    puts("Cool, eh?");
    return 0;
}

Compile com o seguinte código:

dmd dhelloimport.c dsayhello.d

Também é possível importar módulos de código C que foram compilados com ImportC:

// csayhello.c
__import core.stdc.stdio : puts;

void helloImport() {
    puts("Hello _import!");
}
// chelloimport.c
__import csayhello;
__import core.stdc.stdio : puts;

int main(int argc, char** argv) {
    helloImport();
    puts("Cool, eh?");
    return 0;
}

Compile com o seguinte código:

dmd chelloimport.c csayhello.c

Introduzir expressões de arremesso

No ciclo de vida da linguagem D, throwé um comando (instrução) e não pode ser usado em uma expressão, pois a expressão deve ter um tipo, e como thrownão retorna um valor, não existe um tipo adequado, o que a torna impossível usar a seguinte sintaxe.

(string err) => throw new Exception(err);

Apenas os seguintes esquemas podem ser usados:

(string err) { throw new Exception(err); }

No entanto, a partir de D 2.099.0, o seguinte trecho de código compila:

void foo(int function() f) {}

void main() {
    foo(() => throw new Exception());
}

Consulte o Registro de alterações para obter detalhes .


PS Veja que a versão mais recente é  2.099.1 antes de publicar . As atualizações são principalmente correções de bugs, bem como duas mudanças importantes no compilador e nas bibliotecas.

Acho que você gosta

Origin www.oschina.net/news/190336/dlang-2-099-0-released
Recomendado
Clasificación