diff --git a/code/lispinit.lisp b/code/lispinit.lisp index 61e9f78f290ee19109dbe4153b4c1a5eeb557ac0..27d2053328fb4584bbaf48379bd95fa43e9c766c 100644 --- a/code/lispinit.lisp +++ b/code/lispinit.lisp @@ -75,6 +75,9 @@ (defparameter %fasl-code-format 6) +;;; Must be initialized in %INITIAL-FUNCTION before the DEFVAR runs... +(proclaim '(special *gc-inhibit* *already-maybe-gcing* + *need-to-collect-garbage* *gc-verbose*)) ;;;; Global ports: @@ -87,17 +90,6 @@ (defvar *nameserverport* () "Port to the name server.") - -;;; GC stuff. - -(defvar *gc-inhibit* nil) ; Inhibits GC's. - -(defvar *already-maybe-gcing* nil) ; Inhibits recursive GC's. - -(defvar *need-to-collect-garbage* nil - "*Need-to-collect-garbage* is set to T when GC is disabled, but the system - needs to do a GC. When GC is enabled again, the GC is done then.") - ;;; Software interrupt stuff. @@ -513,6 +505,17 @@ "Make an object set for use by a RPC/xevent server. Name is for descriptive purposes only.") +;;; Default-Default-Handler -- Internal +;;; +;;; If no such operation defined, signal an error. +;;; +(defun default-default-handler (object) + (alien-bind ((msg (server-message-msg server-message))) + (error "No operation for ID ~D on ~S in ~S." + (alien-access (mach:msg-id (alien-value msg))) object + (car (gethash (alien-access (mach:msg-localport (alien-value msg))) + *port-table*))))) + ;;; MAP-XWINDOW and MAP-PORT return as multiple values the object and ;;; object set mapped to by a xwindow or port in *xwindow-table* or @@ -756,6 +759,7 @@ (setq *already-maybe-gcing* t) (setf *gc-inhibit* t) (setf *need-to-collect-garbage* nil) + (setq *gc-verbose* t) (%primitive print "In initial-function, and running.") ;; Many top-level forms call INFO, (SETF INFO).