Hi
I have just begun experimenting with dumping (simplified by using the clob lib at http://www.lrde.epita.fr/~didier/software/lisp/clon.php)
I have run into one issue. I load slime (even if I don't start a swank server) do a dump execute the dump try to start slime
I get an error saying
Error: #<BASIC-CHARACTER-OUTPUT-STREAM :CLOSED #x30200050C08D> is closed While executing: CCL::STREAM-IS-CLOSED, in process toplevel(3). Type :POP to abort, :R for a list of available restarts. Type :? for other options.
1 > :b (7F767E05CAA8) : 0 (STREAM-IS-CLOSED #<BASIC-CHARACTER-OUTPUT-STREAM :CLOSED #x30200050C08D>) 45 (7F767E05CAC0) : 1 (FUNCALL #'#<#<CCL::STANDARD-KERNEL-METHOD STREAM-WRITE-CHAR (CCL::BASIC-CHARACTER-OUTPUT-STREAM T)>> #<BASIC-CHARACTER-OUTPUT-STREAM :CLOSED #x30200050C08D> #\Newline) 53 (7F767E05CAE0) : 2 (FUNCALL #'#<#<CCL::STANDARD-KERNEL-METHOD STREAM-FRESH-LINE (CCL::CHARACTER-OUTPUT-STREAM)>> #<BASIC-CHARACTER-OUTPUT-STREAM :CLOSED #x30200050C08D>) 69 (7F767E05CAF8) : 3 (FUNCALL #'#CCL::FORMAT-& #<BASIC-CHARACTER-OUTPUT-STREAM :CLOSED #x30200050C08D> NIL NIL NIL) 229 (7F767E05CB40) : 4 (SUB-FORMAT #<BASIC-CHARACTER-OUTPUT-STREAM :CLOSED #x30200050C08D> 1 33) 2349 (7F767E05CBE8) : 5 (DO-SUB-FORMAT #<BASIC-CHARACTER-OUTPUT-STREAM :CLOSED #x30200050C08D>) 157 (7F767E05CC08) : 6 (FORMAT #<BASIC-CHARACTER-OUTPUT-STREAM :CLOSED #x30200050C08D> "~&;; Swank started at port: ~D.~%" 4005) 1845 (7F767E05CD10) : 7 (SIMPLE-ANNOUNCE-FUNCTION 4005) 109 (7F767E05CD28) : 8 (SETUP-SERVER 4005 #<Compiled-function SWANK::SIMPLE-ANNOUNCE-FUNCTION #x300000F2656F> :SPAWN T "utf-8-unix") 277 ...
I have found a solution by writing code as below (defun start-slime () (when (and swank:*log-output* (not (open-stream-p swank:*log-output*))) (setf swank:*log-output* nil) (swank::init-log-output)) (swank:create-server :port 4005 :dont-close t :coding-system "utf-8-unix"))
I am wondering what is the right way to do this or how do people do this. Basic requirement is be able to dump my whole app including slime code and then load up the dumped executable and be able to start slime as part of the app execution. The above code does allow me to do this (I think). But I haven't yet tried what else can go wrong (like when debugger is invoked etc) What is the usual thing people do for this situation
-Antony