From d5a8fd7a8f6df19db350e40cb4fd773a443e99c5 Mon Sep 17 00:00:00 2001 From: ram <ram> Date: Tue, 29 May 1990 16:51:48 +0000 Subject: [PATCH] Init *BEFORE-GC-HOOKS*, *AFTER-GC-HOOKS* and %SP-INTERRUPTS-INHIBITED before we run top-level forms. Added WORLD-LOAD-INIT-FUNCTION so that we don't have to use an interpreted lambda in worldload (and swap in the entire interpreter on startup.) --- code/lispinit.lisp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/code/lispinit.lisp b/code/lispinit.lisp index 27d205332..05f2f4265 100644 --- a/code/lispinit.lisp +++ b/code/lispinit.lisp @@ -77,7 +77,8 @@ ;;; Must be initialized in %INITIAL-FUNCTION before the DEFVAR runs... (proclaim '(special *gc-inhibit* *already-maybe-gcing* - *need-to-collect-garbage* *gc-verbose*)) + *need-to-collect-garbage* *gc-verbose* + *before-gc-hooks* *after-gc-hooks*)) ;;;; Global ports: @@ -760,6 +761,9 @@ (setf *gc-inhibit* t) (setf *need-to-collect-garbage* nil) (setq *gc-verbose* t) + (setq *before-gc-hooks* ()) + (setq *after-gc-hooks* ()) + (setq %sp-interrupts-inhibited nil) (%primitive print "In initial-function, and running.") ;; Many top-level forms call INFO, (SETF INFO). @@ -939,6 +943,16 @@ (funcall init-function))) +;;; WORLD-LOAD-INIT-FUNCTION -- Interface +;;; +;;; The init function we pass to SAVE-LISP in worldload. We turn on GC and +;;; thow to top level. +;;; +(defun world-load-init-function () + (gc-on) + (abort)) + + ;;; Quit gets us out, one way or another. (defun quit (&optional recklessly-p) -- GitLab