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.
corba:idl
(corba:idl pathname)
is to load into the Lisp image those Lisp values defined by the
official mapping that correspond to the IDL file denoted by pathname
.
This includes:
corba:idl
corba:idl
function can also be used to generate a .fasl
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 corba:idl
function. The name of the generated fasl file is determined by keyword arguments passed to corba:idl
.
The allowed keyword arguments to corba:idl
are:
T
if a fasl
is 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 :compile
is set to T
, the fasl file is generated but is not loaded; thus, it is necessary subsequently to load manually the generated fasl file.
T
if a fasl
file is to be generated from the argument IDL file and subsequently loaded into the running Lisp image. The name of the generated fasl
file follows the conventions of the :compile
keyword argument.
:compile
or :compile-and-load
were set to T
.
T
if 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.
compile-file
without change.
(corba:idl "/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
(corba:idl "/a/b/x.idl" )
were evaluated.