[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Clisp under Xemacs



[Message forwarded from Valentino Kyriakides <vkyr@lavielle.com>.]

[stein@uni-paderborn.de:]
> 
> I didnt get Clisp properly run in Xemacs (Xemacs 19.15, ilisp-version V5.8).
> After having launched Clisp as an inferior lisp process, the 
> communication between Clisp and Xemacs hangs. Perhaps somebody may send
> me his Xemacs adaptation for Clisp.
> 
> PS.
> 
> I added the following lines to define Clisp as an inferior Lisp dialect:
> 
> (autoload 'clisp97 "ilisp" "Run an inferior Clisp" t)
> (defdialect clisp97 "Clisp version of ..." clisp (setq clisp97-program "clisp"))

 
I use clisp together with ilisp-5.8a. My .emacs startup file looks
like the following for clisp/ilisp:


;;; ------- start of ILISP stuff for clisp --------

;;; If you use clman from Franz Inc. uncomment the following line
;;; and set the correct load-path
;(setq load-path (cons "/export/home/vkyr/clman" load-path))

(require 'ilisp)
(require 'completer)
(autoload 'clisp      "ilisp" "Inferior gereral Common LISP." t)
(setq clisp-program "clisp -I") ;Note the "-I" option for clisp
 
;;; This makes reading a lisp file load in ilisp.
(set-default 'auto-mode-alist
             (append '(("\\.lisp$" . lisp-mode)) auto-mode-alist))
(setq lisp-mode-hook '(lambda () (require 'ilisp)))
 
;;; Sample load hook
(add-hook 'ilisp-load-hook 
          (function
           (lambda ()
             ;; Change default key prefix to C-c (default is C-z)
             ;;(setq ilisp-prefix "\C-c")
 
             ;; Make sure that you don't keep popping up the 'inferior
             ;; lisp' buffer window when this is already visible in
             ;; another frame. Actually this variable has more impact
             ;; than that. Watch out.
             ;(setq pop-up-frames t)
 
             (message "Running ilisp-load-hook")
             ;; Define LispMachine-like key bindings, too.
             ;; (ilisp-lispm-bindings) Sample initialization hook.
 
             ;; Set the inferior LISP directory to the directory of
             ;; the buffer that spawned it on the first prompt.
             (add-hook 'ilisp-init-hook
                       (function
                        (lambda ()
                          (default-directory-lisp ilisp-last-buffer))))
             )))
 
;;; ------- end of ILISP stuff for clisp --------


Assumed that you setup the above ilisp/clisp settings, you use
"M-x clisp" to start up ilisp with clisp. Now ilisp is loaded
and starts clisp in a (*clisp*) interaction buffer. Now type in some
expression to be evaluted by clisp. - If you load *.lisp files via
"C-x C-f ..." these are also under ilisp/clisp control (see the ilisp
info files for available options etc.).


*Note* that ilisp sometimes behaves unusual in conjunction with clisp,
however I discovered the same behaviour for Allegro CL and ilisp, so
these things are common ilisp problems and not clisp's!

Here are some of the common ilisp problems:

1) during the clisp startup ilisp prints two prompts instead of one.

2) abort often doesn't work immediately in clisp break-levels, meaning
here that it throws you into the next break-level, so you have to
retype it more times than usual to get back into the top-level.

3) It sometimes happens (if quite seldom) that clisp hangs under
ilisp. The only workaround so far for this is to type "C-g" and
then "M-x panic-lisp", which repairs the broken/hanging ilisp/clisp
connection.


However, if you use ilisp for some time and now how to avoid or live
with some of its unusual behaviours, you can still use it for CL 
programming.


Hope this helps?

Valentino

-- 
Valentino Kyriakides

Lavielle EDV Systemberatung GmbH & Co.  Tel.: +49(0)40 / 65 80 8 - 997
Lotharstrasse 2b, D-22041 Hamburg, Germany  Fax.:  +49(0)40 / 65 808-202
http://www.lavielle.com/                    mailto: vkyr@lavielle.com