Other File Options#
There are a few other options that may be specified within
an #include
clause, but which do not fit into any of the above
categories. These options are define:
, undefine:
,
seal-functions:
and read-only:
.
The define:
and undefine:
options control the C
preprocessor definitions which will be implicitly defined
during parsing of the header files. If you specify neither of
these options, Melange will use a default set of definitions
which correspond to those used by a typical C compiler for the
machine you are running on. The define options takes a string
containing a single C token and an optional string or integer
literal, which will be used as the expansion. (If no literal is
specified, the token will be expanded to 1
.) The undefine:
removes one or more of the default definitions. You might, for
example, use:
define interface
#include "gc.h",
define: {"PMAX", "BSD_VERSION" => "4.3"},
undefine: {"HPUX"};
end interface;
The seal-functions:
option controls whether the various
imported functions and slot accessors will be sealed or open. By
default, functions are sealed, but you may explicitly specify
this by using seal-functions: sealed
or reverse it by using
seal-functions: open
. Melange does not support the Creole’s
inline
sealing option as this is handled with the
inline-functions:
option instead.
The inline-functions:
option specifies how functions
should be inlined. It may have values of inline
, inline-only
,
may-inline
or not-inline
.
The read-only:
option specifies whether setter functions
should be defined for slot and object accessors. They will be
defined by default, but if you specify read-only: #t
, no
setters will be defined.
The effects of the seal-functions:
, inline-functions:
and
read-only:
options can be modified for particular container
types. We will explain how to do this in a later section.