.
original commit: 8e1ae82643cfca83ae3e2551b4021ad491eab668
This commit is contained in:
commit
1a81b3da0f
|
@ -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)))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user