CLISP

From AtariForumWiki
Jump to navigation Jump to search
                        Introduction to CLISP
                        =====================

CLISP names this implementation of COMMON LISP for the Atari ST.
It consists of the following files:

LISP.PRG           main program
LISPINIT.MEM       memory image needed for startup
CONFIG.LSP         site-dependent configuration
INTRO.TXT          this introduction

What is LISP?
-------------

LISP is a programming language. It was invented by J. McCarthy in 1959.
There have been many dialects of it, but nowadays LISP has been standardized
and wide-spread due to the industrial standard COMMON LISP. There are
applications in the domains of symbolic knowledge processing (AI), numerical
mathematics (MACLISP yielded numerical code as good as FORTRAN), and
commercial programs like editors (EMACS) and CAD (AUTOCAD).
There is an introduction in the language:
  Sheila Hughes: Lisp. Pitman Publishing Limited, London 1986.
  107 pages.
After a while wou will need the standard text containing the language
definition:
  Guy L. Steele Jr.: Common Lisp - The Language. Digital Press.
  1. edition 1984, 465 pages.
  2. edition 1990, 1032 pages.
LISP is run in an interactive environment. You input forms, and they will be
evaluated at once. Thus you can inspect variables, call functions with given
arguments or define your own functions.

Installation:
-------------

Change the strings in CONFIG.LSP, using a text editor. Then start LISP.PRG.
When the LISP prompt
      > _
appears, type
        (compile-file "config")
        (load "config")
and then
        (saveinitmem)
to overwrite the file LISPINIT.MEM with your configuration.
(Please do this only once!)

Things to know
--------------

Keyboard input is line buffered.
The following keys are recognized:
  Tab                   1 to 8 spaces
  Backspace             deletes one character to the left
  Delete                deletes one character to the right
  Insert                inserts a space
  <-                    moves the cursor one character to the left
  ->                    moves the cursor one character to the right
  Shift <-              moves the cursor to the beginning of the line
  Shift ->              moves the cursor to the end of the line
  Return, Enter         finishes editing of this line
  Help, Undo, F1-F10    context dependent

The loudspeaker bell sounds on every beginning and end of a garbage
collection.

Screen output can be stopped temporarily by pressing the right mouse key.
If the mouse is moved with the right mouse key being pressed, the screen
output continues slowly.

Running programs can be interrupt in most cases by pressing both mouse keys
at the same time. If this shouldn't work, simultaneous pressing of a shift
key and both mouse keys will work.

You leave the LISP system by executing (exit).

When you encounter problems:
----------------------------

After errors, you are in the debugger:
     1. Break> _
You can evaluate forms, as usual. Furthermore:
         Help
               calles help
         Undo
               climbs up to next higher input loop
         (show-stack)
               shows the contents of the stack, helpful for debugging
And you can look at the values of the variables of the functions where the
error occurred.

On lack of memory (this is the case if garbage collections occur more and
more often and you then get an error message) remove some memory pigs.
If there is even not enough space to evaluate forms, then evaluate the form
0 three times and clean up or leave LISP using (exit).
Hints to save memory: Don't leave programs in the background when starting
LISP. Compile functions that have been tested enough.

On bigger problems, e.g. bombs, please send a description of the error and
how to produce it reliably to the authors.

Authors:
--------

        Bruno Haible                    Michael Stoll
        Ritterstraže 42                 Riesenfeldstraže 96
    D - W 7500 Karlsruhe 1          D - W 8000 Mnchen 40
        Germany                         Germany

Email: haible@ma2s2.mathematik.uni-karlsruhe.de