ack/doc/pascal/options.doc

167 lines
5.3 KiB
Plaintext
Raw Normal View History

1991-11-01 09:43:36 +00:00
.sp 1.5i
.NH
Compiler options
.nh
.PP
There are some options available to control the behaviour of the compiler.
Two types of options can be distinguished: compile-time options and
run-time options.
.sp
.NH 2
Compile time options
.LP
.sp
There are some options that can be set when the compiler is installed.
Those options can be found in the file \fIParameters\fR. To set a parameter
just modify its definition in the file \fIParameters\fR. The shell script
in the file \fImake.hfiles\fR creates for each parameter a separate .h file.
This mechanism is derived from the C compiler in ACK.
.sp
\fBIDFSIZE\fR
.in +3m
The maximum number of characters that are significant in an identifier. This
value has to be at least the value of \fBMINIDFSIZE\fR, defined in the file
\fIoptions.c\fR. A compile-time check is included to see if the value of
\fBMINIDFSIZE\fR is legal. The compiler will not recognize some keywords
if \fBIDFSIZE\fR is too small.
.in -3m
.sp
\fBISTRSIZE\fR, \fBRSTRSIZE\fR
.in +3m
The lexical analyzer uses these two values for the allocation of memory needed
to store a string. \fBISTRSIZE\fR is the initial number of bytes allocated.
\fBRSTRSIZE\fR is the step size used for enlarging the memory needed.
.in -3m
.sp
\fBNUMSIZE\fR
.in +3m
The maximum length of a numeric constant recognized by the lexical analyzer.
It is an error if this length is exceeded.
.in -3m
.sp
\fBERROUT\fR, \fBMAXERR_LINE\fR
.in +3m
Used for error messages. \fBERROUT\fR defines the file on which the
messages are written. \fBMAXERR_LINE\fR is the maximum number of error
messages given per line.
.in -3m
.sp
\fBSZ_CHAR\fR, \fBAL_CHAR\fR, etc
.in +3m
The default values of the target machine sizes and alignments. The values
can be overruled with the \-V option.
.in -3m
.sp
\fBMAXSIZE\fR
.in +3m
This value must be set to the maximum of the values of the target machine
sizes. This parameter is used in overflow detection (see also section 3.2).
.in -3m
.sp
\fBDENSITY\fR
.in +3m
This parameter is used to decide what EM instruction has to be generated
for a case-statement. If the range of the index value is sparse, i.e.
.br
.ti +5m
(upperbound - lowerbound) / number_of_cases
.br
is more than some threshold (\fBDENSITY\fR) the \fBcsb\fR instruction is
chosen. If the range is dense a jump table is generated (\fBcsa\fR). This
uses more space. Reasonable values are 2, 3 or 4.
.br
Higher values might also be reasonable on machines, which have lots of
address space and memory (see also section 3.3.3).
.in -3m
.sp
\fBINP_READ_IN_ONE\fR
.in +3m
Used by the generic input module. It can either be defined or not defined.
Defining it has the effect that files will be read completely into memory
using only one read-system call. This should be used only on machines with
lots of memory.
.in -3m
.sp
.bp
\fBDEBUG\fR
.in +3m
.nf
If this parameter is defined some built-in compiler-debugging tools can be used:
.in +2m
\(bu only lexical analyzing is done, if the \-l option is given.
\(bu if the \-I option is turned on, the allocated number of structures is printed.
\(bu the routine debug can be used to print miscellaneous information.
\(bu the routine PrNode prints a tree of nodes.
\(bu the routine DumpType prints information about a type structure.
\(bu the macro DO_DEBUG(x,y) defined as ((x) && (y)) can be used to perform
several actions.
.in -2m
.in -3m
.sp
.NH 2
Run time options
.LP
.sp
The run time options can be given in the command line when the compiler is
called.
.br
They all have the form: \-<character>
.br
Depending on the option, a character string has to be specified. The following
options are currently available:
.sp
.IP \-\fBC\fR 18
The lower case and upper case letters are treated different (\fBISO 6.1.1\fR).
.sp
.IP \-\fBu\fR
The character '_' is treated like a letter, so it is allowed to use the
underscore in identifiers.
.br
Note: identifiers starting with an underscore may cause problems, because
.br
\h'\w'Note: 'u'most identifiers in library routines start with an underscore.
.sp
.IP \-\fBn\fR
This option suppresses the generation of register messages.
.sp
.IP \-\fBr\fR
With this option rangechecks are generated where necessary.
.sp
.IP \-\fBL\fR
Do not generate EM \fBlin\fR and \fBfil\fR instructions. These instructions
are used only for profiling.
.sp
.IP \-\fBM\fR<number>
Set the number of characters that are significant in an identifier to <number>.
The maximum significant identifier length depends on the constant IDFSIZE,
defined in \fIidfsize.h\fR.
.sp
.IP \-\fBi\fR<number>
With this flag the setsize for a set of integers can be changed. The number must
be the number of bits per set. Default value : (#bits in a word) \- 1
.sp
.IP \-\fBw\fR
Suppress warning messages (see also section 2.5).
.sp
.IP \-\fBV\fR[[\fBw\fR|\fBi\fR|\fBf\fR|\fBp\fR|\fBS\fR][\fIsize\fR]?[\fI.alignment\fR]?]*
.br
Option to set the object sizes and alignments on the target machine
dynamically. The objects that can be manipulated are:
.br
\fBw\fR\h'\w'ifpS'u' word
.br
\fBi\fR\h'\w'wfpS'u' integer
.br
\fBf\fR\h'\w'wipS'u' float
.br
\fBp\fR\h'\w'wifS'u' pointer
.br
\fBS\fR\h'\w'wifp'u' structure
.br
In case of a structure, \fIsize\fR is discarded and the \fIalignment\fR is
the initial alignment of the structure. The effective alignment is the least
common multiple of \fIalignment\fR and the alignment of its members. This
option has been implemented so that the compiler can be used as cross
compiler.
.bp