[slime-cvs] CVS update: slime/swank-backend.lisp slime/swank-lispworks.lisp slime/swank-cmucl.lisp slime/swank-allegro.lisp

Helmut Eller heller at common-lisp.net
Tue Sep 27 21:50:41 UTC 2005


Update of /project/slime/cvsroot/slime
In directory common-lisp.net:/tmp/cvs-serv7264

Modified Files:
	swank-backend.lisp swank-lispworks.lisp swank-cmucl.lisp 
	swank-allegro.lisp 
Log Message:
(startup-multiprocessing): Deleted.
(initialize-multiprocessing, startup-idle-and-top-level-loops): The 
replacements for startup-multiprocessing. startup-idle-and-top-level-loops is
only needed for CMUCL, but initialize-multiprocessing is useful for other too.

Date: Tue Sep 27 23:50:39 2005
Author: heller

Index: slime/swank-backend.lisp
diff -u slime/swank-backend.lisp:1.88 slime/swank-backend.lisp:1.89
--- slime/swank-backend.lisp:1.88	Thu Sep 22 22:17:32 2005
+++ slime/swank-backend.lisp	Tue Sep 27 23:50:38 2005
@@ -745,10 +745,12 @@
 ;;; The default implementations are sufficient for non-multiprocessing
 ;;; implementations.
 
-(definterface startup-multiprocessing ()
-   "Initialize multiprocessing, if necessary.
+(definterface initialize-multiprocessing ()
+   "Initialize multiprocessing, if necessary."
+   nil)
 
-This function is called directly through the listener, not in an RPC
+(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."


Index: slime/swank-lispworks.lisp
diff -u slime/swank-lispworks.lisp:1.79 slime/swank-lispworks.lisp:1.80
--- slime/swank-lispworks.lisp:1.79	Thu Sep 22 22:20:43 2005
+++ slime/swank-lispworks.lisp	Tue Sep 27 23:50:38 2005
@@ -676,7 +676,7 @@
 
 ;;; Multithreading
 
-(defimplementation startup-multiprocessing ()
+(defimplementation initialize-multiprocessing ()
   (mp:initialize-multiprocessing))
 
 (defimplementation spawn (fn &key name)


Index: slime/swank-cmucl.lisp
diff -u slime/swank-cmucl.lisp:1.154 slime/swank-cmucl.lisp:1.155
--- slime/swank-cmucl.lisp:1.154	Wed Sep 21 13:40:08 2005
+++ slime/swank-cmucl.lisp	Tue Sep 27 23:50:38 2005
@@ -182,8 +182,7 @@
   (buffer (make-string 8000) :type string)
   (index 0 :type kernel:index)
   (column 0 :type kernel:index)
-  (last-flush-time (get-internal-real-time) :type unsigned-byte)
-  )
+  (last-flush-time (get-internal-real-time) :type unsigned-byte))
 
 (defun %print-slime-output-stream (s stream d)
   (declare (ignore d))
@@ -225,17 +224,21 @@
        (unless (zerop end)
          (let ((s (subseq (sos.buffer stream) 0 end)))
            (setf (sos.index stream) 0)
-           (funcall (sos.output-fn stream) s)))
-       (setf (sos.last-flush-time stream) (get-internal-real-time)))
+           (funcall (sos.output-fn stream) s))
+         (setf (sos.last-flush-time stream) (get-internal-real-time))))
      nil)
     (:force-output
      (log-stream-op stream operation)
-     (let ((last (sos.last-flush-time stream))
-           (now (get-internal-real-time)))
+     (unless (or (zerop (sos.index stream))
+                 (loop with buffer = (sos.buffer stream)
+                       for i from 0 below (sos.index stream)
+                       always (char= (aref buffer i) #\newline)))
+       (let ((last (sos.last-flush-time stream))
+             (now (get-internal-real-time)))
          (when (> (/ (- now last)
                      (coerce internal-time-units-per-second 'double-float))
-                  0.2)
-           (finish-output stream)))
+                  0.1)
+           (finish-output stream))))
      nil)
     (:charpos (sos.column stream))
     (:line-length 75)
@@ -2009,7 +2012,10 @@
 
 #+mp
 (progn
-  (defimplementation startup-multiprocessing ()
+  (defimplementation initialize-multiprocessing () 
+    (mp::init-multi-processing))
+  
+  (defimplementation startup-idle-and-top-level-loops ()
     ;; Threads magic: this never returns! But top-level becomes
     ;; available again.
     (mp::startup-idle-and-top-level-loops))


Index: slime/swank-allegro.lisp
diff -u slime/swank-allegro.lisp:1.77 slime/swank-allegro.lisp:1.78
--- slime/swank-allegro.lisp:1.77	Thu Sep 22 22:20:43 2005
+++ slime/swank-allegro.lisp	Tue Sep 27 23:50:38 2005
@@ -518,7 +518,7 @@
 
 ;;;; Multithreading
 
-(defimplementation startup-multiprocessing ()
+(defimplementation initialize-multiprocessing ()
   (mp:start-scheduler))
 
 (defimplementation spawn (fn &key name)




More information about the slime-cvs mailing list