Por padrão, quaisquer programas em D que você compila usando o dtrace - s ou especifica usando as opções de linha de comando dtrace -P, -m, -f, -n ou -i são vinculados à versão da interface de programação de D mais recente oferecida pelo compilador de D. Você pode determinar a versão da interface de programação de D atual usando a opção -V do dtrace:
$ dtrace -V dtrace: Sun D 1.0 $ |
Se você quiser estabelecer uma vinculação a uma versão específica da interface de programação de D, defina a opção de versão como uma seqüência de versão apropriada. Semelhante a outras opções do DTrace (consulte o Capítulo 16Opções e ajustáveis), você pode definir a opção de versão na linha de comando usando dtrace -x:
# dtrace -x version=1.0 -n 'BEGIN{trace("hello");}' |
ou pode usar a sintaxe #pragma D option para definir a opção em seu arquivo-fonte do programa em D:
#pragma D option version=1.0 BEGIN { trace("hello"); }
Se você usar a sintaxe #pragma D option para solicitar uma vinculação de versão, deverá colocar esta diretiva no início do arquivo do programa em D antes de quaisquer outras declarações e cláusulas de teste. Se a versão do argumento de vinculação não for válida ou se referir a uma versão não oferecida pelo compilador de D, uma mensagem de erro apropriada será produzida e a compilação falhará. Portanto, você também pode usar o recurso de vinculação de versão para fazer com que a execução de um script de D em uma versão mais antiga do DTrace falhe com uma mensagem de erro óbvia.
Antes de compilar as declarações e as cláusulas do seu programa, o compilador de D carrega o conjunto de tipos, funções, constantes e tradutores de D da versão de interface apropriada nos espaços de nome do compilador. Portanto, quaisquer opções de vinculação de versão que você especifica simplesmente controla o conjunto de identificadores, tipos e tradutores que estão visíveis para o seu programa, além das variáveis, tipos e tradutores que o seu programa define. A vinculação de versão impede que o compilador de D carregue interfaces mais recentes que possam definir identificadores ou tradutores que entrem em conflito com as declarações existentes no código-fonte do seu programa e que, portanto, causariam um erro de compilação. Consulte Nomes e palavras-chave do identificador para obter dicas sobre como selecionar nomes de identificador que provavelmente não entrarão em conflito com as interfaces oferecida por versões futuras do DTrace.