original commit: 8e1ae82643cfca83ae3e2551b4021ad491eab668
This commit is contained in:
Matthew Flatt 2001-02-02 23:25:37 +00:00
commit 1a81b3da0f

View File

@ -1,109 +1,111 @@
(begin-elaboration-time (module sig mzscheme
(require-library "compiles.ss")
(require-library "inflates.ss")
(require-library "makes.ss" "make")
(require-library "collections.ss" "make")
(require-library "get-infos.ss" "setup"))
;; Compiler options (import (lib "unitsig.ss"))
(define-signature compiler:option^
(verbose ; default = #f
setup-prefix ; string to embed in public names; (export compiler:options^
; used mainly for compiling extensions compiler^
; with the collection name so that compiler:inner^
; cross-extension conflicts are less compiler:linker^)
; likely in architectures that expose
; the public names of loaded extensions
; default = ""
use-mrspidey ; #t => whole-program analyze with MrSpidey ;; Compiler options
; default = #f (define-signature compiler:options^
(verbose ; default = #f
use-mrspidey-for-units ; #t => per-unit analyze with MrSpidey setup-prefix ; string to embed in public names;
; default = #f ; 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 = ""
lightweight ; #t => perform lightweight closure conversion; use-mrspidey ; #t => whole-program analyze with MrSpidey
; default = #f ; default = #f
clean-intermediate-files ; #t => keep intermediate .c/.o files use-mrspidey-for-units ; #t => per-unit analyze with MrSpidey
; default = #f ; default = #f
compile-subcollections ; #t => use 'compile-subcollections lightweight ; #t => perform lightweight closure conversion;
; from infor for collection compiling ; default = #f
; default = #t
compile-for-embedded ; #f => make objects to be linked clean-intermediate-files ; #t => keep intermediate .c/.o files
; directly with MzScheme, not dynamically ; default = #f
; loaded; default = #f
max-inline-size ; max size of inlined procedures compile-subcollections ; #t => use 'compile-subcollections
; from infor for collection compiling
; default = #t
disable-interrupts ; #t => UNSAFE: turn off breaking, stack compile-for-embedded ; #f => make objects to be linked
; overflow, and thread switching; ; directly with MzScheme, not dynamically
; default = #f ; loaded; default = #f
unsafe ; #t => UNSAFE: omit some type checks
; default = #f
fixnum-arithmetic ; #t => UNSAFE: don't check for overflow or
; underflow for fixnum arithmetic;
; default = #f
propagate-constants ; default = #t max-inline-size ; max size of inlined procedures
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: disable-interrupts ; #t => UNSAFE: turn off breaking, stack
; 'vehicles:automatic, ; overflow, and thread switching;
; 'vehicles:functions, ; default = #f
; 'vechicles:units, or unsafe ; #t => UNSAFE: omit some type checks
; 'vehicles:monolithic. ; default = #f
; default = 'vehicles:automatic fixnum-arithmetic ; #t => UNSAFE: don't check for overflow or
vehicles:monoliths ; Size for 'vehicles:monolithic ; underflow for fixnum arithmetic;
seed ; Randomizer seed for 'vehicles:monolithic ; default = #f
max-exprs-per-top-level-set ; Number of top-level Scheme expressions propagate-constants ; default = #t
; crammed into one C function; default = 25 assume-primitives ; #t => car = #%car; default = #f
stupid ; allow obvious non-syntactic errors;
; e.g.: ((lambda () 0) 1 2 3)
unpack-environments ; default = #t vehicles ; Controls how closures are compiled:
; Maybe #f helps for register-poor architectures? ; 'vehicles:automatic,
; 'vehicles:functions,
; 'vechicles:units, or
; 'vehicles:monolithic.
; default = 'vehicles:automatic
vehicles:monoliths ; Size for 'vehicles:monolithic
seed ; Randomizer seed for 'vehicles:monolithic
debug ; #t => creates debug.txt debugging file max-exprs-per-top-level-set ; Number of top-level Scheme expressions
test ; #t => ignores top-level expressions with syntax errors ; crammed into one C function; default = 25
zo-compiler-flags unpack-environments ; default = #t
)) ; Maybe #f helps for register-poor architectures?
;; Compiler procedures debug ; #t => creates debug.txt debugging file
(define-signature compiler^ test ; #t => ignores top-level expressions with syntax errors
(compile-extensions
compile-extensions-to-c
compile-c-extensions
compile-extension-parts zo-compiler-flags
compile-extension-parts-to-c ))
compile-c-extension-parts
link-extension-parts ;; Compiler procedures
glue-extension-parts (define-signature compiler^
(compile-extensions
compile-extensions-to-c
compile-c-extensions
compile-zos compile-extension-parts
compile-extension-parts-to-c
compile-c-extension-parts
compile-collection-extension link-extension-parts
compile-collection-zos)) glue-extension-parts
;; Low-level extension compiler interface compile-zos
(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 compile-collection-extension
(define-signature compiler:linker^ compile-collection-zos))
(link-extension
glue-extension)) ;; 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
glue-extension)))