1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
[This directory is included in XLISP-STAT to allow building of a pure
XLISP without the statistical code. It is also available separately.]
This is a version of XLISP-PLUS 3.0 that includes a byte code
compiler. This version is derived from XLISP-STAT 2.1 R3 by deleting
the statistical code. I have only used the compiler options relevant
to XLISP-STAT; other options may or may not work. There are also some
other minor and/or gratuitous differences included to support the
statistical code of XLISP-STAT.
To build this system, start by running configure,
configure
This creates a Makefile. Look at the Makefile and check the variables
BINDIR, LIBDIR, CFLAGS, and CC. by default, BINDIR and LIBDIR are
LIBDIR=$(prefix)/lib/xlisp
BINDIR=$(exec_prefix)/bin
with prefix and exec_prefix set to /usr/local. You can give configure
a different prefix by using
configure --prefix=/my/prefix/dir
An alternate exec_prefix can be given similarly. You can specify gcc
by using a
--with-gcc
flag with configure (I have not tested this on all systems).
After running configure, run
make
This builds the executable, compiles some .lsp files to .fsl files,
and creates a shell script and saved workspace. Doing
make install
installs the shell script, executable, and workspace.
The directories are
sources C source code
lsp .lsp files form Tom Almy's xlisp21f distribution
cmplsp modified .lsp files for use with the compiler
compiler the compiler code
The interface to the compiler is through the functions
COMPILE
COMPILE-FILE
These accept the arguments described in CLtL2. In addition,
COMPILE-FILE accepts the keyword :PRINT-SYMBOL-PACKAGE with
default value *COMPILE-PRINT-SYMBOL-PACKAGE*, initially NIL.
The .fsl files created by the compiler are text files that are
read with the standard reader. Symbols are printed accrording
to the current package when this argument is NIL. That works
fine most of the time. But if you do a lot of importing and
exporting things may get confused; in that case you can give
this keyword argument as T, or set the variable to T. The
resulting .fsl files should then contain fully qualified names
for all symbols. This is safer but takes up more space.
The variable XLSCMP::*COMPILE-WARN-SPECIALS*, initially NIL,
determines whether the compiler issues warnings when it
encounters a reference to a global variable that is not
special. This is useful for debugging, but may get annoying if
classes are defined as in cmpclasses.lsp as non-special globals.
Luke Tierney
School of Statistics
University of Minnesota
Minneapolis, MN 55455
luke@stat.umn.edu
|