From cf67831cbedd6cf3a6c65d35de6e1c9934b6ba37 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 10 Jan 1998 19:56:32 +0000 Subject: [PATCH] code unitized and interface sanitized original commit: abdf1b56a7cf0d87cba22e2b4177b9e6398a2da4 --- collects/compiler/sig.ss | 74 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 collects/compiler/sig.ss diff --git a/collects/compiler/sig.ss b/collects/compiler/sig.ss new file mode 100644 index 0000000000..8fcf238399 --- /dev/null +++ b/collects/compiler/sig.ss @@ -0,0 +1,74 @@ + +(reference-library "compiles.ss") +(reference-library "makes.ss" "make") +(reference-library "collections.ss" "make") + +;; Compiler options +(define-signature compiler:option^ + (verbose ; default = #f + + setup-prefix ; string to embed in public names; + ; used mainly for compiling extensions + ; with the collection name so that + ; cross-extension conflicts are less + ; likely in architectures that expose + ; the public names of loaded extensions + ; default = "" + + clean-intermediate-files ; #t => keep intermediate .c/.o files + ; default = #f + + propagate-constants ; default = #t + assume-primitives ; #t => car = #%car; default = #f + stupid ; allow obvious non-syntactic errors; + ; e.g.: ((lambda () 0) 1 2 3) + + vehicles ; Controls how closures are compiled: + ; 'vehicles:automatic, + ; 'vehicles:functions, + ; 'vechicles:units, or + ; 'vehicles:monolithic. + ; default = 'vehicles:automatic + vehicles:monoliths ; Size for 'vehicles:monolithic + seed ; Randomizer seed for 'vehicles:monolithic + + max-exprs-per-top-level-set ; Number of top-level Scheme expressions + ; crammed into one C function; default = 25 + + unpack-environments ; default = #t + ; Maybe #f helps for register-poor architectures? + + debug ; #t => creates debug.txt debugging file + test ; #t => ignores top-level expressions with syntax errors + )) + +;; Compiler procedures +(define-signature compiler^ + (compile-extensions + compile-extensions-to-c + compile-c-extensions + + compile-extension-parts + compile-extension-parts-to-c + compile-c-extension-parts + + link-extension-parts + + compile-zos + + compile-collection-extension + compile-collection-zos)) + +;; Low-level extension compiler interface +(define-signature compiler:inner^ + (compile-extension + compile-extension-to-c + compile-c-extension + compile-extension-part + compile-extension-part-to-c + compile-c-extension-part + eval-compile-prefix)) + +;; Low-level multi-file extension linker interface +(define-signature compiler:linker^ + (link-extension))