From 7083db6b12bb4e5de6e28b40d81a34c48e76c3a2 Mon Sep 17 00:00:00 2001 From: CSRG Date: Mon, 30 Apr 1984 01:03:32 -0800 Subject: [PATCH] BSD 4_4 development Work on file usr/src/old/lisp/lisplib/buildlisp.l Synthesized-from: CSRG/cd3/4.4 --- usr/src/old/lisp/lisplib/buildlisp.l | 101 +++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 usr/src/old/lisp/lisplib/buildlisp.l diff --git a/usr/src/old/lisp/lisplib/buildlisp.l b/usr/src/old/lisp/lisplib/buildlisp.l new file mode 100644 index 0000000000..e1a3460a4b --- /dev/null +++ b/usr/src/old/lisp/lisplib/buildlisp.l @@ -0,0 +1,101 @@ +(int:setsyntax '\; 'splicing 'zapline) +;; buildlisp.l -[Mon Aug 15 11:04:31 1983 by jkf]- +;; build the lisp system from the C kernel +;; the order of these files is very important. +;; +(setq rcs-buildlisp- + "$Header: /usr/lib/lisp/RCS/buildlisp.l,v 1.2 83/08/15 22:16:06 jkf Exp $") + +; variables to modify the way buildlisp works: +; build:dir -- directory containing the object files to load +; default: /usr/lib/lisp +; build:map -- map file to write the fasl map into. +; default: no map is written +; build:load -- if t then only loading will be done, no fasl'ing +; build:lisp-type -- may contain a site dependent name to help build +; a personalized lisp +; lisp-library-directory -- directory which will contain lisp library +; this directory will be part of the default search path +; lisp-object-directory -- directory which contains the lisp object file +; +(or (boundp 'build:dir) (setq build:dir '/usr/lib/lisp)) +(or (boundp 'build:map) (setq build:map nil)) +(or (boundp 'build:load) (setq build:load nil)) +(or (boundp 'build:lisp-type) (setq build:lisp-type 'franz)) +(or (boundp 'lisp-library-directory) + (setq lisp-library-directory '/usr/lib/lisp)) +(or (boundp 'lisp-object-directory) + (setq lisp-object-directory '/usr/ucb)) + + +(def build:load + (lambda (x) + (prog (name) + (setq name (concat build:dir "/" x)) + (cond (build:map + (fasl-or-load name t build:map) + ; concatentate to map after first file loaded + (cond ((null (status appendmap)) + (sstatus appendmap t)))) + (t (fasl-or-load name nil nil)))))) + +(def fasl-or-load + (lambda (name provide-map map-name) + (prog (tempname) + (cond ((and (null build:load) + (probef (setq tempname (concat name ".o")))) + (cond (provide-map (fasl tempname map-name)) + (t (fasl name)))) + ((probef (setq tempname (concat name ".l"))) + (load tempname)) + (t (patom "fasl-or-load: Can't find file: ") + (patom name) + (terpr) + (exit 1) ; just go away fast so user will realize problem + ))))) + + +(build:load 'common0) +(build:load 'syntax) +(build:load 'charmac) +(build:load 'macros) +(build:load 'common1) +(build:load 'common2) +(build:load 'common3) +(build:load 'vector) +(build:load 'array) +(build:load 'pp) + +; only load format if it is compiled. This will save some time when +; building an interpreted lisp system +(cond ((probef (concat build:dir "/format.o")) + (build:load 'format))) + +(build:load 'version) + +(and (not (eq build:lisp-type 'zlisp)) + (build:load 'tpl)) + +(build:load 'toplevel) + +(cond ((eq build:lisp-type 'franz)) + ((eq build:lisp-type 'zlisp) + (build:load 'zlisp)) + (t (patom "Invalid lisp type: ") + (patom build:lisp-type) + (terpr) + (exit 1))) + +; kill definitions +(putd 'fasl-or-load nil) +(putd 'build:load nil) +(allocate 'hunk3 2) ; make space for format to use +(new-vector 1024) +(new-vectori-long 512) +(gc) + + + + + + -- 2.20.1