Opened 10 years ago

Last modified 10 years ago

#537 assigned defect

IDE does not complete swank load at startup

Reported by: mikel Owned by: mikel
Priority: normal Milestone: Cocoa IDE v?
Component: IDE Version: 1.3
Keywords: Cc:

Description

Set up a SLIME configuration that identifies the Cocoa IDE is the Lisp you want to run. For example:

(add-to-list 'slime-lisp-implementations

`(ccl-ide ("/Users/mikel/Valise/clozure/ccl/bin/ccl-ide") ) t)

...where ccl-ide is a shell script that executes the lisp kernel inside the IDE's app bundle:

CCL_DEFAULT_DIRECTORY="/Users/mikel/Valise/clozure/ccl/source" DD=${CCL_DEFAULT_DIRECTORY} CCL_DEFAULT_DIRECTORY=${DD} exec ${DD}/Clozure\ CL64.app/Contents/MacOS/dx86cl64 "$@"

The IDE starts up, but the SLIME connection never completes; it hangs waiting for a response from the swank server that it expects the Lisp to be running.

If you abort SLIME's attempt to connect, then manually load and start swank, you can then obtain a working SLIME connection.

If you follow the same procedure with a CCL kernel and image that are not an IDE build (for example, with the CCL kernel and image that are built by default with the CCL distribution) then SLIME startup completes normally.

Perhaps there is a problem with the way that the IDE handles command-line arguments at startup?

SLIME passes a string like the following to CCL for evaluation at startup:

(progn (load "/Users/mikel/emacs/site/slime/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/var/folders/In/InwJX++UGgy+fa2kvmnfAU+++TI/-Tmp-/slime.16025" :coding-system "iso-latin-1-unix"))

(Taken verbatim from a failed SLIME startup). Note that one way to obtain a working SLIME connection is to abort the startup connection, copy the string like the one above from the Emacs buffer that reports that it's waiting for the connection, and eval it in the Cocoa listener window. That evaluation completes successfully and reports the port on which swank is running; thereafter you can obtain a working SLIME connection by using M-x slime-connect to connect to the reported port.

Change History (1)

comment:1 Changed 10 years ago by mikel

  • Owner set to mikel
  • Status changed from new to assigned
Note: See TracTickets for help on using tickets.