An IDL file may be compiled by using the
corba:idl function with a single
argument, the pathname of the file to be compiled. By default the preprocessor symbol
"LISP" is defined.
The effect of the function
is to load into the Lisp image those Lisp values defined by the official
mapping that correspond to the IDL file denoted by
When the parser sees
where ... is a relative name, it searches for ... in the directory containing the source file.
When the parser sees
where ... is a relative name, it searches for ... in the directories whose names it
finds in the special variable
The default value of that variable is
nil, which will result in failure to
find the include file.
The user should setq or bind
a list of pathnames to be searched to find <...> include files.
corba:idl function can also be used to generate a
file from an IDL file. This .fasl can later be loaded into a Lisp image into which ORBLink
has been loaded. When the
.fasl file is loaded, the effect on the Lisp world
is the same as if the original IDL file had been passed as sole argument to the
function. The name of the generated fasl file is determined by keyword arguments passed to
corba:idl. The allowed keyword arguments to
faslis to be generated from the argument IDL file. The default is
nil. If set to
T, a fasl file is generated from the argument IDL file. The default name of this fasl file is the same as the concatenation of the name of the IDL file without extension concatenated to the string "-tmp" with the file extension replaced by ".fasl". Note that by default, when the value of
:compileis set to
T, the fasl file is generated but is not loaded; thus, it is necessary subsequently to load manually the generated fasl file.
faslfile is to be generated from the argument IDL file and subsequently loaded into the running Lisp image. The name of the generated
faslfile follows the conventions of the
:compile-and-loadwere set to
Tif the intermediate Lisp file is to be retained after compilation; by default it is deleted. This option is included for didactic purposes only; in particular, the operation of recompiling this generated Lisp file by the user is explicitly not supported, as the compilation must be done in a particular environment controlled by the ORB.
For example, given a file /a/b/x.idl, the form
"/a/b/x.idl" :compile t) will generate a fasl file named /a/b/x-tmp.fasl.
When loaded into another Lisp world, the effect will be the same as if
"/a/b/x.idl" ) were evaluated.