Synergy .NET compiler options

For Synergy .NET projects, Visual Studio and .NET CLI build features invoke the Synergy .NET compiler, and Visual Studio project properties control the way the Synergy .NET compiler works.

The most commonly used Synergy .NET compiler options are set using options on the following project properties pages:

Additionally, you can set some compiler options manually by entering them in the “Other options” field of the Compile page of project properties. These options are documented below.

Compiler options for the “Other options” field

Note that optional argument elements are enclosed in [italic square brackets].

Return value of ^SIZE and %SIZE

Syntax: -s or -q[no]decscope

^SIZE (or %SIZE) of a real or pseudo array returns the size of the whole array. By default, Synergy DBL returns the size of one array element (-qnodecscope).

For example, assume you have the following array declarations:

array,   [10]d4
pseudo,  10d4

The effect of this option is as follows:

^SIZE reference -qnodecscope (default) -s or -qdecscope
^size(array) 4 40
^size(array[ ]) 40 40
^size(array[1]) 4 4
^size(pseudo) 4 40
^size(pseudo[ ]) 40 40
^size(pseudo(1)) 4 4

Omit duplicate global structures and enumerations

Syntax: -qrelaxed:allowdup

Ignore duplicate global structures and enumerations. The first declarations for duplicates will be used, and successive declarations will be ignored, but the compiler will report W_GLOBDUPIGN warnings.

Allow passing alpha to decimal

Syntax: -qrelaxed:paramad

Allow passing type a to an input d or unspecified direction d. (For decimal type only, not implied-decimal.)

COMMON statement defaults

Syntax: -c or -qexternal

Treat COMMON statements that don’t specify GLOBAL or EXTERNAL modifiers as global in the main routine and as external in all other routines.

Syntax: -G or -qglobal

Treat COMMON statements that don’t specify GLOBAL or EXTERNAL modifiers as global commons instead of external commons.

Lock records for FIND

Syntax: -F

Lock records that the FIND statement positions to. By default, Synergy DBL does not lock the record unless the LOCK qualifier is specified.

Map decimal arguments to numeric

Syntax: -N

Map decimal subroutine arguments (d) to numeric (n), which is the same as using system option #28.

STATIC default for unqualified RECORD

Syntax: -qstatic or -qlocal

Make STATIC the default behavior of unqualified RECORD statements.