From 4e987026148fe65c323afbc93cd560c07bf06b3f Mon Sep 17 00:00:00 2001 From: Yale AI Dept Date: Wed, 14 Jul 1993 13:08:00 -0500 Subject: Import to github. --- csys/cache-structs.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 csys/cache-structs.scm (limited to 'csys/cache-structs.scm') diff --git a/csys/cache-structs.scm b/csys/cache-structs.scm new file mode 100644 index 0000000..ba38840 --- /dev/null +++ b/csys/cache-structs.scm @@ -0,0 +1,48 @@ +;;; these structures deal with the compilation system and the unit cache. + +;;; An entry in the unit cache: + +(define-struct ucache + (slots + (ufile (type string)) ; the name of the file containing the unit definition + (cifile (type string)) ; the filename of the (compiled) interface file + (sifile (type string)) ; the filename of the (uncompiled) interface file + (cfile (type string)) ; the filename of the (compiled) output file + (sfile (type string)) ; the filename of the (uncompiled) output file + (udate (type integer)) ; the write date of ufile + (idate (type integer)) ; the time stamp of the binary interface file + (stable? (type bool)) ; the stable flag + (load-prelude? (type bool)) ; true if unit uses standard prelude + ;; status is initially available (in cache). It is set to loading when + ;; requested and loaded once all imported units are loaded. + (status (type (enum loaded loading available))) + (ifile-loaded (type bool)) ; true when interface is loaded (modules) + (code-loaded (type bool)) ; true when the associated code is in memory + (source-files (type (list string))) ; source files in the unit + (imported-units (type (list string))) ; the filenames of imported unit files + (lisp-files (type (list (tuple string string)))) ; source/binary pairs + (modules (type (list module))) + (printers-set? (type bool)) + (printers (type (list symbol))) + (optimizers-set? (type bool)) + (optimizers (type (list symbol))) + (chunk-size (type (maybe int))) + )) + + +;;; This is used to hold various flags used by the compilation system, +;;; instead of passing them all as individual arguments. + +(define-struct cflags + (slots + ;; Whether to load code for unit into core + (load-code? (type bool) (default '#t)) + ;; Whether to create an output code file. + (write-code? (type bool) (default '#t)) + ;; Affects whether write-code? creates a source or compiled file, + ;; and whether load-code? uses the interpreter or compiler. + ;; Ignored if load-code? and write-code? are both false. + (compile-code? (type bool) (default '#t)) + ;; Whether to create an output interface file. + (write-interface? (type bool) (default '#t)) + )) -- cgit v1.2.3