Previous: , Up: Compilation model options   [Contents][Index]


9.8.6 Developer compilation model options

Of the options listed below, the ‘--num-tag-bits’ option may be useful for cross-compilation, but apart from that these options are all experimental and are intended for use by developers of the Mercury implementation rather than by ordinary Mercury programmers.


--tags {none, low, high}

(This option is not intended for general use.)
Specify whether to use the low bits or the high bits of each word as tag bits (default: low).


--num-tag-bits n

(This option is not intended for general use.)
Use n tag bits. This option is required if you specify ‘--tags high’. With ‘--tags low’, the default number of tag bits to use is determined by the auto-configuration script.


--num-reserved-addresses n

(This option is not intended for general use.)
Treat the integer values from 0 up to n - 1 as reserved addresses that can be used to represent nullary constructors (constants) of discriminated union types.


--num-reserved-objects n

(This option is not intended for general use.)
Allocate up to n - 1 global objects for representing nullary constructors (constants) of discriminated union types.

Note that reserved objects will only be used if reserved addresses (see --num-reserved-addresses) are not available, since the latter are more efficient.


--no-type-layout

(This option is not intended for general use.)
Don’t output base_type_layout structures or references to them. This option will generate smaller executables, but will not allow the use of code that uses the layout information (e.g. ‘functor’, ‘arg’). Using such code will result in undefined behaviour at runtime. The C code also needs to be compiled with ‘-DNO_TYPE_LAYOUT’.


Previous: , Up: Compilation model options   [Contents][Index]