[slime-devel] Very simple cygwin clisp + NTEmacs + slime hack breaks meta-point in strange way

Nathaniel Calloway ntc6 at cornell.edu
Sun Apr 20 19:58:33 UTC 2008


So after reading some of the horror stories of getting clisp inside
cygwin to work with slime + emacs on windows, I was determined to get a
simpler solution than rewriting how all the path names are parsed
inside slime. So this is what I came up with in my .emacs:

(require 'slime)
(slime-setup)
(defun slimed ()
  (interactive)
  (let ((lisp-process
	 (start-process "lisp" "lisp" "clisp"
           "-i ~/.slime.lisp -ansi")))
    (while (and (memq (process-status lisp-process) '(open run))
	        (goto-char (point-max))
	        (forward-line -1)
	        (not (looking-at ";; Swank started")))
      (accept-process-output lisp-process 1)
      (sit-for 1))
    (slime-connect "127.0.0.1" 4005)))


My .slime.lisp file is:

(load "/usr/emacs/site-lisp/slime/swank-loader.lisp")
(swank-loader::loadup)
(swank::create-server)

So, everything works great! I was super pleased with the hack,
"slimed" gets slime REPL running and everything in slime-mode
works....

except for M-. It causes the slime trace quoted below, but only in
cases where it should actually find the symbol in question. If the
symbol isn't defined, slime propperly indicates this. I'm somewhat new
to slime (and windows), so if anyone has any insight, let me know. For
the record I'm using the CVS version of slime on Emacs 22.2 with
clisp 2.44.

Thanks,
-Nat


Slime trace:
--------------------------------------------------

PARSE-NAMESTRING: argument #1=(SYSTEM::DEFUN/DEFMACRO #P"/home/Nat/.slime.lisp"
    3 3) should be a pathname designator #2=(OR STRING FILE-STREAM PATHNAME)
   [Condition of type SIMPLE-TYPE-ERROR]

Restarts:
 0: [ABORT] Return to SLIME's top level.
 1: [CLOSE-CONNECTION] Close SLIME connection
 2: [SKIP] skip (CREATE-SERVER)

Backtrace:
  0: [319] frame binding variables (~ = dynamically):
       | ~ SWANK::*SLDB-STEPPING-P* <--> NIL
      [No Locals]
  1: [316] frame binding variables (~ = dynamically):
       | ~ SWANK::*SLDB-LEVEL* <--> 0
  2: [313] frame binding variables (~ = dynamically):
       | ~ *PACKAGE* <--> #<PACKAGE COMMON-LISP-USER>
  3: <1/307> #<COMPILED-FUNCTION SWANK::DEBUG-IN-EMACS>
     - #(NIL #<SIMPLE-TYPE-ERROR #x1025C0AD>)
  4: <1/304> #<COMPILED-FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
     [302] frame binding variables (~ = dynamically):
       | ~ *DEBUGGER-HOOK* <--> #<COMPILED-FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
  5: <1/299> #<SYSTEM-FUNCTION INVOKE-DEBUGGER> 1
     [298] frame binding variables (~ = dynamically):
       | ~ SYSTEM::*PRIN-STREAM* <--> #<UNBOUND>
  6: [295] frame binding variables (~ = dynamically):
       | ~ *PRINT-READABLY* <--> NIL
  7: [292] frame binding variables (~ = dynamically):
       | ~ *PRINT-ESCAPE* <--> T
  8: <1/289> #<SYSTEM-FUNCTION PARSE-NAMESTRING> 1
     - #<UNBOUND>
  9: <1/283> #<SYSTEM-FUNCTION PATHNAME-TYPE>
     - NIL
 10: <1/278> #<COMPILED-FUNCTION SWANK-BACKEND::FSPEC-PATHNAME>
     - #<COMPILED-FUNCTION SWANK-BACKEND::FSPEC-LOCATION>
 11: <1/276> #<COMPILED-FUNCTION SWANK-BACKEND::FSPEC-LOCATION>
     - TEST
 12: <1/273> #<COMPILED-FUNCTION #:|244 245 (DEFIMPLEMENTATION FIND-DEFINITIONS (NAME) ...)-21-1-1|>
     - #<COMPILED-FUNCTION #:|244 245 (DEFIMPLEMENTATION FIND-DEFINITIONS (NAME) ...)-21-1-1|>
 13: <1/269> #<COMPILED-FUNCTION SWANK-BACKEND:FIND-DEFINITIONS>
     - #<COMPILED-FUNCTION SWANK::XREF>ELISP>
 14: <1/263> #<COMPILED-FUNCTION SWANK:FIND-DEFINITIONS-FOR-EMACS>
     - #<COMPILED-FUNCTION SWANK:FIND-DEFINITIONS-FOR-EMACS>
 15: [261] EVAL frame for form (SWANK:FIND-DEFINITIONS-FOR-EMACS "test")
 16: [258] frame binding environments
       VAR_ENV <--> NIL
       FUN_ENV <--> NIL
       BLOCK_ENV <--> NIL
       GO_ENV <--> NIL
       DECL_ENV <--> ((DECLARATION OPTIMIZE DECLARATION))
 17: <1/253> #<SYSTEM-FUNCTION EVAL>
     [252] frame binding variables (~ = dynamically):
       | ~ SWANK::*BUFFER-PACKAGE* <--> #<UNBOUND>
 18: [249] frame binding variables (~ = dynamically):
       | ~ SWANK::*PENDING-CONTINUATIONS* <--> NIL
 19: [246] frame binding variables (~ = dynamically):
       | ~ SWANK::*BUFFER-READTABLE* <--> #<UNBOUND>
 20: [242] unwind-protect frame
      [No Locals]
 21: <1/237> #<COMPILED-FUNCTION SWANK::EVAL-FOR-EMACS-1>
     - #<COMPILED-FUNCTION SWANK::EVAL-FOR-EMACS-1>
 22: [236] frame binding variables (~ = dynamically):
       | ~ *DEBUGGER-HOOK* <--> #<COMPILED-FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
 23: <1/232> #<COMPILED-FUNCTION #:|592 597 (DEFINTERFACE CALL-WITH-DEBUGGER-HOOK (HOOK FUN) ...)-57-3-1|>
     - #<COMPILED-FUNCTION #:|592 597 (DEFINTERFACE CALL-WITH-DEBUGGER-HOOK (HOOK FUN) ...)-57-3-1|>
 24: <1/227> #<COMPILED-FUNCTION SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK>
     - #(NIL (SWANK:FIND-DEFINITIONS-FOR-EMACS "test") NIL 11)
 25: <1/223> #<COMPILED-FUNCTION SWANK::EVAL-FOR-EMACS>
     <2/223> #<SYSTEM-FUNCTION FUNCALL> 4
     - SWANK::EVAL-FOR-EMACS
 26: <1/217> #<COMPILED-FUNCTION SWANK::READ-FROM-EMACS>
     [217] frame binding variables (~ = dynamically):
       | ~ SWANK::*SLDB-QUIT-RESTART* <--> ABORT
 27: [214] frame binding variables (~ = dynamically):
       | ~ SYSTEM::*ACTIVE-RESTARTS* <--> (#S(RESTART :NAME SWANK::CLOSE-CONNECTION :TEST #1=#<COMPILED-FUNCTION SYSTEM::DEFAULT-RESTART-TEST> :INVOKE-TAG #:SIMPLE-RESTART-21719 :INVOKE-FUNCTION NIL :REPORT #<FUNCTION :LAMBDA (STREAM) (FORMAT STREAM "Close SLIME connection")> :INTERACTIVE #2=#<COMPILED-FUNCTION SYSTEM::DEFAULT-RESTART-INTERACTIVE> :MEANINGFULP T) #S(RESTART :NAME SYSTEM::SKIP :TEST #1# :INVOKE-TAG NIL :INVOKE-FUNCTION #<COMPILED-FUNCTION SYSTEM::EVAL-LOADED-FORM-1> :REPORT #<COMPILED-FUNCTION SYSTEM::EVAL-LOADED-FORM-2> :INTERACTIVE #2# :MEANINGFULP T) #S(RESTART :NAME SYSTEM::STOP :TEST #1# :INVOKE-TAG NIL :INVOKE-FUNCTION #<COMPILED-FUNCTION SYSTEM::EVAL-LOADED-FORM-3> :REPORT #<COMPILED-FUNCTION SYSTEM::EVAL-LOADED-FORM-4> :INTERACTIVE #2# :MEANINGFULP T))
 28: [211] catch frame for tag #:SIMPLE-RESTART-21209
 29: <1/207> #<COMPILED-FUNCTION SWANK::HANDLE-REQUEST-1>
     - #<COMPILED-FUNCTION SWANK::HANDLE-REQUEST-1>
 30: [206] frame binding variables (~ = dynamically):
       | ~ *DEBUGGER-HOOK* <--> #<COMPILED-FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
 31: <1/202> #<COMPILED-FUNCTION #:|592 597 (DEFINTERFACE CALL-WITH-DEBUGGER-HOOK (HOOK FUN) ...)-57-3-1|>
     - #<COMPILED-FUNCTION #:|592 597 (DEFINTERFACE CALL-WITH-DEBUGGER-HOOK (HOOK FUN) ...)-57-3-1|>
 32: <1/197> #<COMPILED-FUNCTION SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK>
     - #<COMPILED-FUNCTION SWANK::CALL-WITH-CONNECTION-1>
 33: <1/194> #<COMPILED-FUNCTION SWANK::CALL-WITH-CONNECTION-1>
     - #<COMPILED-FUNCTION SWANK::CALL-WITH-CONNECTION-1>
 34: [193] frame binding variables (~ = dynamically):
       | ~ *TERMINAL-IO* <--> #<IO TERMINAL-STREAM>
 35: [190] frame binding variables (~ = dynamically):
       | ~ *STANDARD-INPUT* <--> #<IO SYNONYM-STREAM *TERMINAL-IO*>
 36: [187] frame binding variables (~ = dynamically):
       | ~ *QUERY-IO* <--> #<IO SYNONYM-STREAM *TERMINAL-IO*>
 37: [184] frame binding variables (~ = dynamically):
       | ~ *DEBUG-IO* <--> #<IO SYNONYM-STREAM *TERMINAL-IO*>
 38: [181] frame binding variables (~ = dynamically):
       | ~ *TRACE-OUTPUT* <--> #<IO SYNONYM-STREAM *TERMINAL-IO*>
 39: [178] frame binding variables (~ = dynamically):
       | ~ *ERROR-OUTPUT* <--> #<IO SYNONYM-STREAM *TERMINAL-IO*>
 40: [175] frame binding variables (~ = dynamically):
       | ~ *STANDARD-OUTPUT* <--> #<IO SYNONYM-STREAM *TERMINAL-IO*>
 41: <1/167> #<COMPILED-FUNCTION SWANK::CALL-WITH-REDIRECTED-IO>
     - #<COMPILED-FUNCTION SWANK::MAYBE-CALL-WITH-IO-REDIRECTION>
 42: <1/164> #<COMPILED-FUNCTION SWANK::MAYBE-CALL-WITH-IO-REDIRECTION>
     [162] frame binding variables (~ = dynamically):
       | ~ SWANK::*EMACS-CONNECTION* <--> NIL
 43: <1/157> #<COMPILED-FUNCTION SWANK::CALL-WITH-CONNECTION>
     [155] frame binding variables (~ = dynamically):
       | ~ SWANK::*SWANK-STATE-STACK* <--> NIL
 44: <1/151> #<COMPILED-FUNCTION SWANK::HANDLE-REQUEST>
     - #<COMPILED-FUNCTION SWANK::SIMPLE-SERVE-REQUESTS-2>
 45: <1/149> #<COMPILED-FUNCTION SWANK::SIMPLE-SERVE-REQUESTS-2>
     - #<COMPILED-FUNCTION SWANK::SIMPLE-SERVE-REQUESTS-2>
 46: [148] handler frame for conditions SWANK::SWANK-ERROR
 47: [142] compiled block frame for #S(RESTART :NAME SWANK::CLOSE-CONNECTION :TEST #<COMPILED-FUNCTION SYSTEM::DEFAULT-RESTART-TEST> :INVOKE-TAG #:SIMPLE-RESTART-21719 :INVOKE-FUNCTION NIL :REPORT #<FUNCTION :LAMBDA (STREAM) (FORMAT STREAM "Close SLIME connection")> :INTERACTIVE #<COMPILED-FUNCTION SYSTEM::DEFAULT-RESTART-INTERACTIVE> :MEANINGFULP T)
 48: [138] frame binding variables (~ = dynamically):
       | ~ SYSTEM::*ACTIVE-RESTARTS* <--> (#S(RESTART :NAME SYSTEM::SKIP :TEST #1=#<COMPILED-FUNCTION SYSTEM::DEFAULT-RESTART-TEST> :INVOKE-TAG NIL :INVOKE-FUNCTION #<COMPILED-FUNCTION SYSTEM::EVAL-LOADED-FORM-1> :REPORT #<COMPILED-FUNCTION SYSTEM::EVAL-LOADED-FORM-2> :INTERACTIVE #2=#<COMPILED-FUNCTION SYSTEM::DEFAULT-RESTART-INTERACTIVE> :MEANINGFULP T) #S(RESTART :NAME SYSTEM::STOP :TEST #1# :INVOKE-TAG NIL :INVOKE-FUNCTION #<COMPILED-FUNCTION SYSTEM::EVAL-LOADED-FORM-3> :REPORT #<COMPILED-FUNCTION SYSTEM::EVAL-LOADED-FORM-4> :INTERACTIVE #2# :MEANINGFULP T))
 49: [135] catch frame for tag #:SIMPLE-RESTART-21719
 50: [132] unwind-protect frame
 51: <1/128> #<COMPILED-FUNCTION SWANK::SIMPLE-SERVE-REQUESTS>
     - #<COMPILED-FUNCTION SWANK::SIMPLE-SERVE-REQUESTS>
 52: <1/125> #<COMPILED-FUNCTION SWANK::SERVE-REQUESTS>
     - #<SWANK::CONNECTION #x10274595>
 53: [122] unwind-protect frame
 54: <1/118> #<COMPILED-FUNCTION SWANK::SERVE-CONNECTION>
     - #<COMPILED-FUNCTION SWANK::SETUP-SERVER-SERVE>
 55: <1/113> #<COMPILED-FUNCTION SWANK::SETUP-SERVER-SERVE>
     - NIL
 56: <1/107> #<COMPILED-FUNCTION SWANK::SETUP-SERVER>
     - #<COMPILED-FUNCTION SWANK:CREATE-SERVER>
 57: <1/101> #<COMPILED-FUNCTION SWANK:CREATE-SERVER>
     - #<COMPILED-FUNCTION SWANK:CREATE-SERVER>
 58: [96] EVAL frame for form (SWANK:CREATE-SERVER)
 59: [93] frame binding environments
       VAR_ENV <--> NIL
       FUN_ENV <--> NIL
       BLOCK_ENV <--> NIL
       GO_ENV <--> NIL
       DECL_ENV <--> ((DECLARATION OPTIMIZE DECLARATION))
 60: <1/88> #<SYSTEM-FUNCTION EVAL>
     - #<COMPILED-FUNCTION SYSTEM::EVAL-LOADED-FORM-LOW>
      [No Locals]
 61: <1/86> #<COMPILED-FUNCTION SYSTEM::EVAL-LOADED-FORM-LOW>
     [85] frame binding variables (~ = dynamically):
       | ~ SYSTEM::*ACTIVE-RESTARTS* <--> NIL
 62: [82] compiled tagbody frame for #(NIL NIL)
 63: <1/74> #<COMPILED-FUNCTION SYSTEM::EVAL-LOADED-FORM>
     - (SWANK:CREATE-SERVER)
 64: [71] unwind-protect frame
 65: [69] frame binding variables (~ = dynamically):
 66: [68] frame binding variables (~ = dynamically):
       | ~ SYSTEM::*C-ERROR-OUTPUT* <--> #<UNBOUND>
 67: [65] frame binding variables (~ = dynamically):
       | ~ *READTABLE* <--> #<READTABLE #x100B5AED>
 68: [62] frame binding variables (~ = dynamically):
       | ~ *PACKAGE* <--> #<PACKAGE COMMON-LISP-USER>
 69: [59] frame binding variables (~ = dynamically):
       | ~ FFI::*FOREIGN-LIBRARY* <--> NIL
 70: [56] frame binding variables (~ = dynamically):
       | ~ FFI::*FOREIGN-LANGUAGE* <--> NIL
 71: [53] frame binding variables (~ = dynamically):
       | ~ SYSTEM::*CURRENT-SOURCE-LINE-2* <--> NIL
 72: [50] frame binding variables (~ = dynamically):
       | ~ SYSTEM::*CURRENT-SOURCE-LINE-1* <--> NIL
 73: [47] frame binding variables (~ = dynamically):
       | ~ SYSTEM::*CURRENT-SOURCE-FILE* <--> NIL
 74: [44] frame binding variables (~ = dynamically):
       | ~ *LOAD-TRUENAME* <--> NIL
 75: [41] frame binding variables (~ = dynamically):
       | ~ *LOAD-PATHNAME* <--> NIL
 76: [38] frame binding variables (~ = dynamically):
       | ~ SYSTEM::*LOAD-INPUT-STREAM* <--> NIL
 77: [35] frame binding variables (~ = dynamically):
       | ~ SYSTEM::*LOAD-LEVEL* <--> 0
 78: [30] frame binding variables (~ = dynamically):
       | ~ *LOAD-OBSOLETE-ACTION* <--> NIL
 79: [27] frame binding variables (~ = dynamically):
       | ~ *LOAD-COMPILING* <--> NIL
 80: [23] frame binding variables (~ = dynamically):
       | ~ *LOAD-ECHO* <--> NIL
 81: [20] frame binding variables (~ = dynamically):
       | ~ *LOAD-PRINT* <--> NIL
 82: [17] frame binding variables (~ = dynamically):
       | ~ *LOAD-VERBOSE* <--> T





More information about the slime-devel mailing list