This directory contains an implementation of the Common Lisp
Condition System for KCL.  It is based on Kent Pitman's cond18.lisp,
and will work both with and without CLOS.

If you wish to revert to KCL's original error handling system
after loading clcs use (conditions::revert-clcs-symbols).


If PCL (or some other CLOS implementation) is loaded after
clcs is loaded, and you want to change clcs to use clos,
just call (load-clcs) again.  (You might need to call 
(compile-clcs) first.)  The CLOS dependencies are restricted to 
the files conditions.lisp and condition-definitions.lisp.


(optional)
The CLCS system redefines the functions LOAD and OPEN (adding
restart handlers), and the function SYSTEM:ERROR-SET.  But AKCL is
set up to compile calls to these functions into direct calls to
C functions.  You can fix this by:
     A. Edit the file cmpnew/lfun_list.lsp, commenting out every line
        that begins with #-clcs.  
     B. Remake AKCL.
     C. Delete the files cmpnew/cmputil.o, and lsp/debug.o (these files 
        call SYSTEM:ERROR-SET).
     D. Remake AKCL.


Still to do:
  The mapping from error-name,error-format-string (the first and 
fifth arguments to si:universal-error-handler) to condition classes
that is defined in the file kcl-cond.lisp is incomplete.  The error
calls made by the kcl files c/error.c, c/eval.c, and c/file.d are
mapped correctly, but other all other calls are mapped to a
condition (conditions::internal-simple-error) that is (often) less 
specific than the correct condition.  

