Next: Running QSIM on a
Up: QSIM: Installation Instructions
Previous: Creating a Lucid Disk
QSIM has been developed using standard Common Lisp. As a result, it
can usually be ported to most versions of Common Lisp with a minimal
amount of effort. Currently, the distribution provided has only been
debugged for Allegro CL and Lucid CL. It also may work fine for
Harlequin Lisp. The changes for harlequin were made by somebody
outside of our research group so I do not know what type of problems
you might encounter. If you have questions or problems, please send
mail to clancy@cs.utexas.edu.
The following suggestions should help you install QSIM using a
different version of lisp.
- Most of the problems occur within the Common Lisp Defsystem
and Logical Pathname
code. This code was obtained from CMU. Documentation for the
code is included in the c-lisp directory within this distribution.
The code itself is well documented.
I recommend that you try to install QSIM without these
facilities. Look at the file
start-nq-no-defsystem.lisp which should be in the nq
directory and change the declaration of the
special variables at the beginning of the file and then load
the file.
Then run the function:
(compile-qsim)
In the future, QSIM can be loaded by loading the same file and
running (load-qsim). The file that actually has
the load statements is nq/source/main/nq-no-defsystem.
If you run into problems doing this here are some
suggestions to help you through them:
- An error occurs when compiling a file. You might
want to simply try and load the non-binary version of
the file and see if you can get through the
compilation process. A number of facilities are
provided within the distribution that you will
probably never use. Sometimes, these may cause
problems in installation. By loading the lisp
version, you avoid the compiler preventing you from
getting everything else from running.
- Problems with undefined special variables. Some
lisps load after compiling and some do not. Also,
some Lisps will complain if they encounter a special
variable that is not initialized. This happens if it
is declared in a preceding file and it does not have
an (eval-when (compile) ... around it. If you
modify the file that compiles the source files so that
it loads some of the files immediately after compiling
them, then this problem can be avoided. You can find
out which file is causing the problem by doing a
grep for the offending special variable.
- If you keep running into problems, you might want to
try and load the Lisp source files first and see if
you can get things running.
- If you get a continuable error, continue and see what
happens.
- If you wish to use the Defsystem and logical pathname code, then
attempt to get these components running independent of QSIM
using an example defsystem that is included within the
distribution. It is in the c-lisp directory. Once the
Defsystem code is running you should not have much difficulty.
- You will not be able to use the ``compile-qsim'' and ``load-qsim''
functions if you are using a different lisp. These functions simply
call common lisp defsystem functions. Look at the
declarations of these functions in clisp/defsystem-patches.lisp.
- Ignore warnings when compiling QSIM. I would only be concerned with
error messages.
- The function qplot-end-display in the file
xpos/qplot-primitives will need to be modified. To display
the results of a simulation, the POS package writes to a file
and then forks a Unix process that executes the xbatch
program. This program displays the results which are stored
in this file. Qplot-end-display makes the lisp call that
forks this process. Currently, the code will work for lucid,
allegro and kcl. A new line with a read-time conditional will
need to be added to this function for any new lisps that are
used.
- If you have problems getting the function call to xbatch to
work, a temporary work around is to route the output to a
postscript file (select CH from the qsim-display menu)
and then manually display this file using ghostview.
Next: Running QSIM on a
Up: QSIM: Installation Instructions
Previous: Creating a Lucid Disk
Daniel J. Clancy
5/29/1998