[slime-devel] upgraded clisp on cygwin, now slime won't load

funkyj at gmail.com funkyj at gmail.com
Wed Jun 21 08:05:23 UTC 2006


I had slime + clisp (on cygwin) working fine.  Yesterday I decided to
upgrade various cygwin packages (including clisp).  Now when I try to
start slime I get this error:

    ;; Loading file /home/jcano/.clisprc.lisp ...
    ;; Loaded file /home/jcano/.clisprc.lisp
    [1]> 
    *** - LOAD: A file with name
          /c/cygwin/home/jcano/elisp/slime/2006-06-21/slime/swank-loader.lisp does
          not exist
    The following restarts are available:
    ABORT          :R1      ABORT

I tried picking up the latest SLIME (my previous slime was
2006-jan-20) but neither "fairly stable" nor "head" made any
difference.  I also blew away my ~/.slime directory in case that was
stale (slime is no longer getting far enough to rebuild ~/.slime) but
that didn't help.


Yes, I looked in "~/elisp/slime/2006-06-21/slime" and it does indeed
contain the file that 


Here is my current version of clisp;

    GNU CLISP 2.38 (2006-01-24) (built on winsteingoldlap.bluelnk.net [10.41.52.143])
    Software: GNU C 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125) 
    gcc -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -O2 -fexpensive-optimizations -DUNICODE -DDYNAMIC_FFI -I. -x none -lintl libcharset.a libavcall.a libcallback.a -lreadline -lncurses  -liconv -L/usr/local/libsigsegv-cygwin/lib -lsigsegv -L/usr/X11R6/lib -lX11
    SAFETY=0 HEAPCODES STANDARD_HEAPCODES SPVW_PAGES SPVW_MIXED
    libsigsegv 2.2
    libiconv 1.9
    libreadline 5.0
    Features: 
    (READLINE REGEXP SYSCALLS I18N LOOP COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP
     LISP=CL INTERPRETER SOCKETS GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN FFI
     GETTEXT UNICODE BASE-CHAR=CHARACTER PC386 UNIX CYGWIN)
    C Modules: (clisp i18n syscalls regexp readline)
    Installation directory: /usr/lib/clisp/
    User language: ENGLISH
    Machine: I686 (I686) jcano-lt [192.168.1.103]


I run slime like this

   M-x slime

and this is in my .emacs:

    (defun slime ()
      "load my .emacs_slime and run M-x slime"
      (interactive)
      (load-file "~/.emacs_slime")
      (slime))

.emacs_slime file:

    ;; -*- mode: emacs-lisp -*-
    (message "begin .emacs_slime")
    (setq inferior-lisp-program "clisp")

    (add-to-list 'load-path
                 ;; CVS head
                 (concat (getenv "HOME") "/elisp/slime/2006-06-21/slime")
                 t)
    (require 'slime)
    (slime-setup)

    ;;; Configuration of Erik Naggum's HyperSpec access package.

    ;; If you have a local copy of the HyperSpec, set its path here.
     (setq common-lisp-hyperspec-root
           "file:///c:/cygwin/home/jcano/docs/CL/HyperSpec/")
     (setq common-lisp-hyperspec-symbol-table
           (concat (getenv "HOME") "/docs/CL/HyperSpec/ilisp/map_sym.txt" ))
    (message "end .emacs_slime")


If I run clisp and execute the following command manually:


    [1]> (load "/c/cygwin/home/jcano/elisp/slime/2006-06-21/slime/swank-loader.lisp")

    *** - LOAD: A file with name
          /c/cygwin/home/jcano/elisp/slime/2006-06-21/slime/swank-loader.lisp does
          not exist
    The following restarts are available:
    ABORT          :R1      ABORT
    Break 1 [2]> (load "/c:cygwin/home/jcano/elisp/slime/2006-06-21/slime/swank-loader.lisp")

    *** - PARSE-NAMESTRING: syntax error in filename
           "/c:cygwin/home/jcano/elisp/slime/2006-06-21/slime/swank-loader.lisp"
          at position 2
    The following restarts are available:
    ABORT          :R1      ABORT
    ABORT          :R2      ABORT
    Break 2 [3]> abort

    Break 1 [2]> abort

    [4]> (load "/home/jcano/elisp/slime/2006-06-21/slime/swank-loader.lisp")
    ;; Loading file /home/jcano/elisp/slime/2006-06-21/slime/swank-loader.lisp ...
    ;; Compiling file /home/jcano/elisp/slime/2006-06-21/slime/swank-backend.lisp ...
    ;; Wrote file
    ;; /home/jcano/.slime/fasl/2006-06-18/clisp-2.38-unix-pc386/swank-backend.fas

        [... successful loading ...]

I see in slime.el

    (eval-and-compile 
      (defvar slime-path
        (let ((path (or (locate-library "slime") load-file-name)))
          (and path (file-name-directory path)))
        "Directory containing the Slime package.
    This is used to load the supporting Common Lisp library, Swank.
    The default value is automatically computed from the location of the
    Emacs Lisp package."))

    ; ...

    (defun slime-init-command (port-filename coding-system)
      "Return a string to initialize Lisp."
      (let ((loader (if (file-name-absolute-p slime-backend)
                        slime-backend
                      (concat slime-path slime-backend)))
            (encoding (slime-coding-system-cl-name coding-system)))
        (format "%S\n%S\n\n"
                `(load ,loader :verbose t)
                `(swank:start-server ,port-filename :external-format ,encoding))))

    
OK, so CLisp wants file paths to be in cygwin/unix format
(e.g. "/home/jcaon" and "/cygdrive/c/cygwin" etc.) but emacs (which is
a win32 application) is providing a windows style "c:/cygwin/home/..."
path which, somewhere along the way gets converted to
"/c/cygwin/home/..."

I can probably fix this by overriding slime-path (I'll try that after
posting this).  Does anyone know why upgrading (I think I had 2.35) to
2.38 would cause this failure?  Can this be fixed so other noobs don't
suffer the same problems I have?

Regards,
  --jfc





More information about the slime-devel mailing list