Fix conservative GC some more.
[sbcl.git] / loader.lisp
blob905493b45715b01850b4e59480d4e17016ce5997
1 (defun load-sbcl-file (file &optional (exit t))
2 (labels ((exit-sbcl (code)
3 #+sbcl #.(if (eq :external
4 (nth-value 1 (find-symbol "EXIT" :sb-ext)))
5 `(,(find-symbol "EXIT" :sb-ext) :code code)
6 `(,(find-symbol "QUIT" :sb-ext) :unix-status code))
7 #+ccl (ccl:quit code)
8 #+abcl (ext:quit :status code)
9 #+cmucl (unix:unix-exit code)
10 #+ecl (si:quit code)
11 #+clisp (ext:quit code)
12 (return-from load-sbcl-file)))
13 (restart-case
14 (load file)
15 (abort ()
16 :report "Abort building SBCL."
17 (exit-sbcl 1)))
18 (when exit (exit-sbcl 0))))