Painel de Geração

As opções nesse painel definem a saída gerada pelo compilador.

Consulte Ajuda do Diálogo Geral para obter informações sobre as definições do *CMDDFT e a ajuda do botão de comando.

Opções de geração

Autoridade
Especifica a autoridade do objeto aos usuários que não tenham autoridade específica para o objeto. O usuário pode não estar na lista de autorização ou o grupo ao qual pertence não possui autoridade específica para o objeto. É possível selecionar um dos seguintes valores neste campo:

*CMDDFT
Refere-se à autoridade do objeto atualmente definida como padrão para o sistema.

*LIBCRTAUT
A autoridade pública do objeto é tirada da palavra-chave CRTAUT da biblioteca de destino (A biblioteca que contém o objeto criado). Esse valor é determinado quando o objeto for criado. Se o valor CRTAUT da biblioteca for alterado depois que o objeto for criado, o novo valor não afetará nenhum dos objetos existentes.

*ALL
Fornece autoridade para todas as operações do objeto, menos para as que estiverem limitadas ao proprietário ou controladas pela autoridade de gerenciamento da lista de autorização. Qualquer usuário pode controlar a existência do objeto, especificar a segurança deste e nele realizar funções básicas, mas não pode transferir sua propriedade.

*CHANGE
Fornece toda a autoridade de dados e a autoridade para a realização de todas as operações no objeto, menos as que estiverem limitadas ao proprietário ou controladas pela autoridade do objeto e pela autoridade de gerenciamento. O objeto pode ser alterado e nele serem realizadas funções básicas.

*EXCLUDE
Os usuários sem autorização especial não podem acessar o objeto.

*USE
Fornece autoridade operacional do objeto, autoridade de leitura e autoridade para operações básicas no objeto. Os usuários sem autoridade específica são impedidosde alterar o objeto.

Release de destino
Especifica o nível do release do sistema operacional para o objeto que está sendo criado. É possível selecionar um dos seguintes valores neste campo:

*CMDDFT
Refere-se ao nível do release atualmente definido como padrão para o seu sistema.

*CURRENT
O objeto que está sendo compilado destina-se a ser utilizado em um sistema operacional com o mesmo nível de release ou maior, que o sistema operacional atualmente em execução no seu sistema. Por exemplo, se o sistema de compilação estiver no nível do release V2R3M5, selecionar essa opção produzirá um objeto que poderá ser executado em um sistema com o nível do release V2R3M5 ou maior, instalado.

*PRV
O objeto que está sendo compilado destina-se a ser usado em um sistema operacional com um nível imediatamente anterior ao nível do sistema operacional que está sento utilizado no sistema de compilação. Por exemplo, se o sistema de compilação estiver no nível do release V2R3M5, selecionar essa opção produzirá um objeto que poderá ser executado em um sistema com o nível do release V2R2 ou maior, instalado.

Você também pode informar o nível do release de destino diretamente nesse campo. Especifique o release usando o formato VxRxMx, sendo que Vx é a versão, Rx é o release e Mx é o nível de modificação. Por exemplo, V4R3M0 é a versão 4, release 3, nível de modificação 0.

Otimização
Especifica o nível de otimização aplicado ao objeto compilado. É possível selecionar um dos seguintes valores neste campo:

*CMDDFT
Refere-se ao nível de otimização atualmente definido como padrão para o seu sistema.

10
O código gerado não é otimizado. Esse nível tem o menor tempo de compilação.

20
Alguma otimização é executada no código gerado

30
A otimização total é executada no código gerado.

40
Todas as otimizações feitas no nível 30 são executadas no código gerado. Além disso, o código é eliminado das rotinas prólogo e epílogo do procedimento que ativam o rastreio da instrução e chamam as funções do sistema de rastreio. Eliminar esse código ativa a criação dos procedimentos-folha. Os procedimentos-folha não contêm chamadas para outros procedimentos e chamadas de procedimentos para procedimentos-folha são significativamente mais rápidas que as as chamadas para procedimentos normais.

Tamanho de Enum
Especifica a quantidade de armazenamento ocupada por enum. É possível selecionar um dos seguintes valores neste campo:

*CMDDFT
Utiliza o tamanho de enum atualmente definido como padrão para o sistema.

1
Faz todas as variáveis de enum terem 1 byte de tamanho.

2
Faz todas as variáveis de enum terem 2 bytes de tamanho.

4
Faz todas as variáveis de enum terem 4 bytes de tamanho.

*INT
Utiliza o tamanho padrão C de enum ANSI (Assinado com 4 bytes).

*SMALL
Seleciona o menor tamanho que acomodará a variável de enum.

Modelo de armazenamento
Especifica o tipo de armazenamento (estático e automático) que o objeto module usará. É possível selecionar um dos seguintes valores neste campo:

*CMDDFT
Refere-se ao tamanho enum atualmente definido como o padrão para o seu sistema.

*SNGLVL
O módulo ou programa usará o modelo de armazenamento de nível único tradicional. Os armazenamentos estático e automático do objeto serão alocados a partir do armazenamento de nível único e poderão ser acessados somente com o uso de indicadores de 16 bytes. O módulo poderá opcionalmente acessar o armazenamento dinâmico de teraespaço se a opção TERASPACE(*YES) estiver especificada.

*TERASPACE
O módulo ou programa usará o modelo de armazenamento de teraespaço. Esse modelo de armazenamento fornece até 1 terabytes de espaço de endereçamento local para um único job. Os armazenamentos estático e automático para o objeto serão alocados a partir do teraespaço e poderão ser acessados usando indicadores de 8 e 16 bytes.

*INHERIT
O módulo criado poderá usar uma entre estas opções: nível único ou armazenamento de teraespaço. O tipo de armazenamento usado dependerá do tipo de armazenamento solicitado pelo originador da chamada.

Dados de linguagem intermediária
Se esta caixa de entrada estiver selecionada, os dados de linguagem intermediária são armazenados com o módulo de objeto que estiver sendo compilado.

Tipo char padrão
Se esta caixa de entrada estiver selecionada, o compilador trata char como um tipo assinado. Caso contrário, char será tratado como um tipo não assinado.

Dados de perfilamento
Se essa caixa de entrada estiver selecionada, o perfil do programa estará ativado para o programa ou módulo que está sendo compilado. O código que coletará os dados do perfil no momento da criação do objeto será gerado, incluindo o número de vezes que os dados do bloco básico dentro dos procedimentos são executados e o número de vezes que os procedimentos são chamados. Os perfis podem melhorar o uso das linhas de cache e das páginas de memória nos aplicativos ILE, conduzindo ao melhor desempenho do programa.

Notas:

  1. Você não pode criar o perfil de um objeto *MODULE autônomo.

  2. Essa opção tem efeito somente quando as seguintes opções no painel de opções Geração também estão ativadas:
    • A Otimização está definida para *FULL, 30 ou superior.
    • O Release de destino está definido para *CURRENT.

Opções do teraespaço

Endereços de armazenamento de teraespaço
Se essa caixa de entrada estiver selecionada, o compilador gerará o código ativado para tratar dos endereços de armazenamento de teraespaço, incluindo os parâmetros passados a partir de outros programas ativados de teraespaço e programas de serviço. Selecionar essa caixa de entrada ativa a seguinte caixa de entrada:

Funções de armazenamento de teraespaço
Se essa caixa de entrada estiver selecionada, o compilador usará as versões de teraespaço das funções de armazenamento, tais como malloc ou schmat, sem requerer alterações no código fonte do programa. O compilador define a __TERASPACE__ macro e mapeia determinados nomes de função de armazenamento para seus equivalentes ativados para teraespaço. Por exemplo, selecionar essa opção do compilador faz a função de armazenamento malloc() ser mapeada para _C_TS_malloc().

Se essa caixa de entrada não estiver selecionada, o compilador não usará as versões de funções de armazenamento ativadas para teraespaço, tais como malloc() ou schmat().