2
@node Miscellaneous, Compiler Definitions, Debugging, Top
8
* Low Level X Interface::
11
@node Environment, Inititialization, Miscellaneous, Miscellaneous
14
The environment in GCL which is passed to macroexpand and
15
other functions requesting an environment, should be a
16
list of 3 lists. The first list looks like ((v1 val1) (v2 val2) ..)
17
where vi are variables and vali are their values.
18
The second is a list of ((fname1 . fbody1) (fname2 . fbody2) ...)
19
where fbody1 is either (macro lambda-list lambda-body) or
20
(lambda-list lambda-body) depending on whether this is a macro
21
or a function. The third list contains tags and blocks.
23
@node Inititialization, Low Level X Interface, Environment, Miscellaneous
24
@section Initialization
26
If the file init.lsp exists in the current directory, it is
27
loaded at startup. The first argument passed to the executable image
28
should be the system directory. Normally this would be gcl/unixport.
29
This directory is stored in the si::*system-directory* variable. If
30
the file sys-init.lsp exists in the system directory, it is loaded
31
before init.lsp. See also si::*TOP-LEVEL-HOOK*.
33
@node Low Level X Interface, , Inititialization, Miscellaneous
34
@section Low Level X Interface
36
A sample program for drawing things on X windows from lisp
37
is included in the file gcl/lsp/littleXlsp.lsp
39
That routine invokes the corresponding C routines in XLIB.
40
So in order to use it you must `faslink' in the X routines.
41
Directions are given at the beginning of the lisp file,
42
for either building them into the image or using faslink.
44
This program is also a good tutorial on invoking C from lisp.
46
See also defentry and faslink.