[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