[slime-cvs] CVS slime

heller heller at common-lisp.net
Fri Oct 20 17:07:55 UTC 2006


Update of /project/slime/cvsroot/slime
In directory clnet:/tmp/cvs-serv25845

Modified Files:
	swank-backend.lisp swank-cmucl.lisp swank.lisp 
Log Message:
(startup-idle-and-top-level-loops): Deleted. Merged into
initialize-multiprocessing.



--- /project/slime/cvsroot/slime/swank-backend.lisp	2006/10/20 00:15:01	1.106
+++ /project/slime/cvsroot/slime/swank-backend.lisp	2006/10/20 17:07:55	1.107
@@ -846,15 +846,10 @@
 ;;; implementations.
 
 (definterface initialize-multiprocessing (continuation)
-   "Initialize multiprocessing, if necessary and then invoke CONTINUATION."
-   (funcall continuation))
+   "Initialize multiprocessing, if necessary and then invoke CONTINUATION.
 
-(definterface startup-idle-and-top-level-loops ()
-  "This function is called directly through the listener, not in an RPC
-from Emacs. This is to support interfaces such as CMUCL's
-MP::STARTUP-IDLE-AND-TOP-LEVEL-LOOPS which does not return like a
-normal function."
-   nil)
+Depending on the impleimentaion, this function may never return."
+   (funcall continuation))
 
 (definterface spawn (fn &key name)
   "Create a new thread to call FN.")
--- /project/slime/cvsroot/slime/swank-cmucl.lisp	2006/10/20 00:14:39	1.165
+++ /project/slime/cvsroot/slime/swank-cmucl.lisp	2006/10/20 17:07:55	1.166
@@ -1475,7 +1475,12 @@
                       (error (make-condition
                               'sldb-condition
                               :original-condition condition)))))
-      (funcall debugger-loop-fn))))
+      (unwind-protect
+           (progn
+             #+(or)(sys:scrub-control-stack)
+             (funcall debugger-loop-fn))
+        #+(or)(sys:scrub-control-stack)
+        ))))
 
 (defun frame-down (frame)
   (handler-case (di:frame-down frame)
@@ -2046,14 +2051,12 @@
 (progn
   (defimplementation initialize-multiprocessing (continuation) 
     (mp::init-multi-processing)
-    (funcall continuation))
-  
-  (defimplementation startup-idle-and-top-level-loops ()
+    (mp:make-process continuation :name "swank")
     ;; Threads magic: this never returns! But top-level becomes
     ;; available again.
-    (unless mp::*initial-process*
+    (unless mp::*idle-process*
       (mp::startup-idle-and-top-level-loops)))
-
+  
   (defimplementation spawn (fn &key name)
     (mp:make-process fn :name (or name "Anonymous")))
 
--- /project/slime/cvsroot/slime/swank.lisp	2006/10/20 00:14:07	1.409
+++ /project/slime/cvsroot/slime/swank.lisp	2006/10/20 17:07:55	1.410
@@ -406,10 +406,9 @@
   "Start the server and write the listen port number to PORT-FILE.
 This is the entry point for Emacs."
   (flet ((start-server-aux ()
-           (setup-server 0 (lambda (port) (announce-server-port port-file port))
-                         style dont-close external-format)
-           (when (eq style :spawn)
-             (startup-idle-and-top-level-loops))))
+           (setup-server 0 (lambda (port) 
+                             (announce-server-port port-file port))
+                         style dont-close external-format)))
     (if (eq style :spawn)
         (initialize-multiprocessing #'start-server-aux)
         (start-server-aux))))
@@ -3691,7 +3690,7 @@
 The result is a list of property lists."
   (let ((package (if package
                      (or (find-package (string-to-package-designator package))
-                         (abort-request "No such package: ~S" package)))))
+                         (error "No such package: ~S" package)))))
     (mapcan (listify #'briefly-describe-symbol-for-emacs)
             (sort (remove-duplicates
                    (apropos-symbols name external-only case-sensitive package))




More information about the slime-cvs mailing list