Configuring PL/I project's properties

To set project properties that apply to all files in the project, right-click the project in the Application Explorer view and click Properties, then expand the Micro Focus > Project Settings > PL/I Compile Settings node. The following options can be set:

Common options

Enables linking to the mainframe system with which the program will operate: either IMS, MVS for programs executing under JCL, or CICS.
Restriction: This option applies to Mainframe PL/I projects only.
Compile for debug
Compile the program for debugging.
Generate listing file
Produce a compiler listing file. The default name of the file containing the listing is xxx.lst, where xxx is the source filename (excluding the pathname) up to, but not including, a last "." (period) in the name. For example, if the source filename is prog.pl1, the default listing is prog.lst. A compiler listing is produced by default whenever -exp, -map, or -xref is specified.
Optimization level
Specifies the level of optimization by the PL/I compiler, where level stands for the level (1 - 3) of optimization. The default setting is -noopt. If a level is not included, the program is optimized at level 3. If -deb is specified, -opt 2 is the maximum level allowed. Note -opt -deb is equivalent to -opt 2 -deb.

Select the endianness of the system. The default is "Big endian" (or non-native). Select "Native" for little endian.

EXEC preprocessor options
Specify options for the EXEC preprocessor. Options include PLITEST and NEWNAME(name)
Additional options
Enter any other required compiler directives in this text box.

Logging information

Warnings for filters in structures
Produce warnings for structures containing fillers.
Emit diagnostics

Emit diagnostics for I, W, E, or S level errors.

Print statistics
Prints compiler statistics to the standard output as each compiler phase completes.
Cross reference information

Controls the production of cross reference information

Verbose output
Shows additional build output.

Data types

Use float binary as float decimal

Controls whether or not to use float binary as float decimal.

Use floating point in trigonometry

Controls the uses of floating point for trigonometric functions.

Fixed binary precision

Changes the default precision of fixed binary variables.

Inverse bits
Inverse bits for UNSPEC, INT, and POSINT on big-endian machines.

Formatting and display

Control alignment
Controls alignment of generated code.
Currency symbol
Provides a currency symbol for picture specification. It can take the character, decimal number, or hex constant of the form 0xDD. For example:
  • -currency_symbol £
  • -currency_symbol 163
  • -currency_symbol 0xa3
Specify margins

Specifies the margins (-margins left, right).

Additional NLS support
Provides extended character support. For example, "-names 'string1' ['string2']" where string1 are extralingual characters to add to identifiers, and string2 are optional corresponding uppercase characters. Hex constants of the form 0xDD are accepted in place of the strings. The default is -names.


Initialize aggregates
Performs initialization of aggregates (arrays and structures) compatible with 7.x versions of Open PL/I.
Initialize automatic storage
Initializes automatic storage to zero.
Set value of null pointer
Designates a null pointer value n to be returned by the NULL built-in function, where n is a decimal value. If this option is not specified, the value of the NULL built-in function is an address with all bits set to 1.
Storage allocation map
Specifies production of storage allocation maps.

Data checking

More extensive prototype checking
Provides more extensive prototype checking on arguments against parameters in entry declarations (also assumed by default when using -vax).
Subscript range checking
Specify subscript range checking
Undeclared variable declarations
Do not allow implicit compiler declarations for undeclared variables.

External elements

External vars in data section
Causes external variables to be defined in the .data section. You must use this option for programs using external files.
Include file suffix
File extension to use for include files. While the defaults are both .in and .inc, you can only add one extension in this field.
Include handling
Determines how %INCLUDE statements are handled.
Unreferenced external handling in obj files
Include or exclude unreferenced external entries in object files.


Use VAX conventions
Makes the following adaptations for programs originally written with Digital Equipment Corporation's PL/I Compiler for the VAX platform:
  • enables the Fixed Binary(p ≤ 7) data type as a one-byte signed binary integer.
  • enables Float Binary(24) as equivalent to Float Binary(23).
  • enables Float Binary(53) as equivalent to Float Binary(52).
  • causes the BINARY attribute to be assumed if the FIXED attribute is specified without BINARY or DECIMAL.
Limit argument descriptors
Tells the compiler to produce argument descriptors for calls only when array bounds or string lengths in the parameter declaration are represented by the asterisk (*) symbol.
When this option is not used, the compiler produces descriptors for array, structure, and string arguments, which can be a problem for very large structures.
Set unaligned at level 1
Causes all structures to be mapped as if the UNALIGNED attribute is specified at the level 1 structure level. This option is for compatibility with versions of DEC VAX PL/I.

Other compiler options

Alternate NOT symbol
Selects alternate NOT symbol.
Alternate OR symbol
Selects alternate OR symbol.

CICS Preprocessor settings

Restriction: These options apply to Mainframe PL/I projects only.

You need to select Enable configuration specific settings to change these settings.

CICS preprocessor options
Specify the options for the CICS External Compiler Module to use.

Macro Preprocessor settings

You need to select Enable configuration specific settings to change these settings.

Emit full listing
When invoking macro preprocessor do not emit %NOLIST before includes.
Infuse include file
Name of include file to infuse as first line of source
No debug information
Specifies that the preprocessor will not generate the normal debug information that it passes to the Compiler. This is useful if you wish to debug using the post-preprocessing PL/I source file rather than the original source file.
Define a macro
Causes value to be used in place of name wherever the identifier name appears.
Undefine a macro
Removes a definition for name, if name was created by a -define option, and leaves the identifier name in the source as name. It does not preclude a %REPLACE statement or %name=expr from changing the value of name.
Specify variant
Supplies a string to be used in place of the VARIANT built-in function.
Process include name
Causes the preprocessor to examine a %INCLUDE file name for the characters @, #, and $, and to replace @ with A, # with N, and $ with D.

SQL Preprocessor settings

You need to select Enable configuration specific settings to change these settings.

DB2 preprocessor options
Specify the DB2 precompiler options for the SQL External Compiler Module to use.