Anzeige Generierung

Die Optionen in dieser Anzeige definieren die vom Compiler generierte Ausgabe.

Erweiterte Hilfe für Dialogfenster enthält Informationen über die Einstellungen *CMDDFT und Hilfe zu Druckknöpfen.

Generierungsoptionen

Berechtigung
Gibt die Objektberechtigung für Benutzer an, die keine spezifische Berechtigung für das Objekt besitzen. Der Benutzer ist unter Umständen nicht in der Berechtigungsliste aufgeführt, oder seine Gruppe hat keine spezifische Berechtigung für das Objekt. Sie können in diesem Feld einen der folgenden Werte auswählen:

*CMDDFT
Bezieht sich auf die Objektberechtigung, die derzeit als Standardwert für Ihr System definiert ist.

*LIBCRTAUT
Die allgemeine Berechtigung für das Objekt wird dem Schlüsselwort CRTAUT der Zielbibliothek (der Bibliothek, die das erstellte Objekt enthält) entnommen. Dieser Wert wird bei der Erstellung des Objekts festgelegt. Ändert sich der Wert CRTAUT für die Bibliothek nach der Objekterstellung, hat dieser neue Wert keine Auswirkung auf bereits vorhandene Objekte.

*ALL
Erteilt die Berechtigung für alle Objektoperationen, mit Ausnahme der Operationen, die auf den Eigner beschränkt sind oder die über die Berechtigung zum Verwalten der Berechtigungsliste gesteuert werden. Jeder Benutzer kann die Existenz des Objekts steuern, seine Sicherheit festlegen und Basisfunktionen für das Objekt ausführen, aber nicht das Eigentumsrecht übertragen.

*CHANGE
Erteilt alle Datenberechtigungen sowie die Berechtigung zur Ausführung aller Objektoperationen, mit Ausnahme der Operationen, die auf den Eigner beschränkt sind oder die von der Objektberechtigung und der Objektverwaltungsberechtigung gesteuert werden. Das Objekt kann geändert werden und es können Basisfunktionen für das Objekt ausgeführt werden.

*EXCLUDE
Benutzer ohne Sonderberechtigung haben keine Zugriffsberechtigung für das Objekt.

*USE
Erteilt Objektverwendungsberechtigung, Leseberechtigung und die Berechtigung für Basisoperationen an dem Objekt. Benutzer ohne spezifische Berechtigung können das Objekt nicht ändern.

Ziel-Release
Gibt den Release-Stand des Betriebssystems für das zu erstellende Objekt an. Sie können in diesem Feld einen der folgenden Werte auswählen:

*CMDDFT
Bezieht sich auf den Release-Stand, der derzeit als Standardwert für Ihr System definiert ist.

*CURRENT
Das Objekt, das kompiliert wird, soll auf einem Betriebssystem verwendet werden, das denselben oder einen höheren Release-Stand aufweist als das Betriebssystem, das derzeit auf Ihrem System läuft. Hat beispielsweise das kompilierende System den Release-Stand V2R3M5, wird durch Auswahl dieser Option ein Objekt erzeugt, das auf einem System ausgeführt werden kann, auf dem der Release-Stand V2R3M5 oder höher installiert ist.

*PRV
Das Objekt, das kompiliert wird, soll auf einem Betriebssystem verwendet werden, das eine Stufe niedriger ist als das Betriebssystem, das auf dem kompilierenden System verwendet wird. Hat beispielsweise das kompilierende System den Release-Stand V2R3M5, wird durch Auswahl dieser Option ein Objekt erzeugt, das auf einem System ausgeführt werden kann, auf dem der Release-Stand V2R2 oder höher installiert ist.

Sie können auch den Zielreleasestand unmittelbar in dieses Feld eingeben. Geben Sie das Release im Format xRxMx an; dabei gibt x die Version, Rx das Release, und Mx die Modifikationsstufe an. Beispiel: V4R3M0 steht für Version 4, Release 3, Modifikationsstufe 0.

Optimierung
Gibt an, welche Optimierungsstufe auf das kompilierte Objekt angewendet wird. Sie können in diesem Feld einen der folgenden Werte auswählen:

*CMDDFT
Bezieht sich auf die Optimierungsstufe, die derzeit als Standardwert für Ihr System definiert ist.

10
Der generierte Code wird nicht optimiert. Diese Stufe führt zur kürzesten Kompilierzeit.

20
Bestimmte Optimierungsvorgänge werden für den generierten Code ausgeführt.

30
Alle Optimierungsvorgänge werden für den Code ausgeführt.

40
Alle Optimiierungen auf der Stufe 30 werden für den generierten Code ausgeführt. Zusätzlich wird der Code aus Prozedurprolog- und -epilogroutinen entfernt, die die Systemfunktionen Anweisungsablaufverfolgung und Aufrufablaufverfolgung aktivieren. Durch das Entfernen dieses Codes wird die Erstellung von Blattprozeduren aktiviert. Blattprozeduren enthalten keine Aufrufe an andere Prozeduren, und Prozeduraufrufe an Blattprozeduren sind erheblich schneller als Aufrufe an normale Prozeduren.

Enum-Größe
Gibt an, wieviel Speicher enum einnimmt. Sie können in diesem Feld einen der folgenden Werte auswählen:

*CMDDFT
Verwendet die enum-Größe, die derzeit als Standardwert für Ihr System definiert ist.

1
Die Größe aller enum-Variablen wird auf 1 Byte gesetzt.

2
Die Größe aller enum-Variablen wird auf 2 Byte gesetzt.

4
Die Größe aller enum-Variablen wird auf 4 Byte gesetzt.

*INT
Verwendet die ANSI C Standard-enum-Größe (4 Byte mit Vorzeichen).

*SMALL
Wählt die kleinste Größe aus, die die enum-Variable aufnehmen kann.

Speichermodell
Gibt die Art des Speichers (fest oder dynamisch) an, den das Modulobjekt verwenden wird. Sie können in diesem Feld einen der folgenden Werte auswählen:

*CMDDFT
Bezieht sich auf die enum-Größe, die derzeit als Standardwert für Ihr System definiert ist.

*SNGLVL
Das Modul oder Programm verwendet das traditionelle Speichermodell *SNGLVL (Single Level Storage). Fester und dynamischer Speicher für das Objekt werden aus Speicher einer Ebene zugeordnet; der Zugriff auf den Speicher kann nur über 16-Byte-Zeiger erfolgen. Das Modul kann wahlweise auf dynamischen Teraspace-Speicher zugreifen, wenn die Option TERASPACE(*YES) angegeben ist.

*TERASPACE
Das Modul oder Programm verwendet das Teraspace-Speichermodell. Dieses Speichermodell stellt für einen einzigen Job bis zu 1 Terabyte lokalen Adressraum zur Verfügung. Fester und dynamischer Speicher für das Objekt werden aus Teraspace zugeordnet; der Zugriff auf den Speicher kann über 8-Byte- oder 16-Byte-Zeiger erfolgen.

*INHERIT
Das erstellte Modul kann entweder Speicher einer Ebene oder Teraspace-Speicher verwenden. Welche Art von Speicher verwendet wird, ist von der Art des Speichers abhängig, der vom aufrufenden Programm benötigt wird.

Zwischensprachendaten
Ist dieses Markierungsfeld ausgewählt, werden mit dem Objektmodul, das kompiliert wird, Zwischensprachendaten gespeichert.

Standardzeichenart
Ist dieses Markierungsfeld ausgewählt, behandelt der Compiler Zeichen (char) als Wert mit Vorzeichen. Andernfalls wird char als Wert ohne Vorzeichen behandelt.

Profildaten
Ist dieses Markierungsfeld ausgewählt, wird die Programmprofilierung für das zu kompilierende Programm oder Modul eingeschaltet. Es wird Code generiert, der bei der Objekterstellungszeit Profildaten erfaßt, einschließlich der Angaben, wie oft Basisblöcke innerhalb von Prozeduren ausgeführt und wie oft Prozeduren aufgerufen werden. Durch die Profilierung kann die Verwendung von Cache-Zeilen und Speicherseiten in ILE-Anwendungen verbessert werden. Dies führt zu einer besseren Programmleistung.

Anmerkungen:

  1. Eigenständige *MODULE-Objekte können nicht profiliert werden.

  2. Diese Option ist nur dann wirksam, wenn die folgenden Optionen in der Anzeige Generierungsoptionen ebenfalls aktiviert sind:
    • Optimierung ist auf *FULL, 30 oder höher eingestellt.
    • Ziel-Release ist auf *CURRENT eingestellt.

Teraspace-Optionen

Teraspace-Speicheradressen
Ist dieses Markierungsfeld ausgewählt, generiert der Compiler Code, der Teraspace-Speicheradressen handhaben kann, einschließlich der Parameter, die von anderen Teraspace- und Serviceprogrammen übergeben werden. Durch Auswahl dieses Markierungsfelds werden auch folgende Markierungsfelder aktiviert:

Teraspace-Speicherfunktionen
Ist dieses Markierungsfeld ausgewählt, verwendet der Compiler Teraspace-Versionen von Speicherfunktionen, wie z. B. malloc oder schmat, ohne daß Änderungen am Programmquellencode erforderlich sind. Der Compiler definiert das Makro __TERASPACE__ und ordnet bestimmte Speicherfunktionsnamen ihren für Teraspace aktivierten Äquivalenten zu. Die Auswahl dieser Compileroption führt beispielsweise dazu, dass die Speicherfunktion malloc() der Funktion _C_TS_malloc() zugeordnet wird.

Ist dieses Markierungsfeld nicht ausgewählt, verwendet der Compiler keine für Teraspace aktivierten Versionen von Speicherfunktionen, wie beispielsweise malloc() oder schmat().