43 lines
1.2 KiB
Scheme
43 lines
1.2 KiB
Scheme
|
; Copyright (c) 1993-1999 by Richard Kelsey. See file COPYING.
|
||
|
|
||
|
|
||
|
; Parameterizing the compiler.
|
||
|
|
||
|
(define lookup-primop 'unset-compiler-parameter)
|
||
|
(define lookup-imported-variable 'unset-compiler-parameter)
|
||
|
|
||
|
(define type/unknown 'unset-compiler-parameter)
|
||
|
(define type-eq? 'unset-compiler-parameter)
|
||
|
|
||
|
(define lambda-node-type 'unset-compiler-parameter)
|
||
|
|
||
|
(define true-value 'unset-compiler-parameter)
|
||
|
(define false-value 'unset-compiler-parameter)
|
||
|
|
||
|
(define determine-lambda-protocol 'unset-compiler-parameter)
|
||
|
(define determine-continuation-protocol 'unset-compiler-parameter)
|
||
|
|
||
|
(define (set-compiler-parameter! name value)
|
||
|
(case name
|
||
|
((lookup-primop)
|
||
|
(set! lookup-primop value))
|
||
|
((lookup-imported-variable)
|
||
|
(set! lookup-imported-variable value))
|
||
|
((type/unknown)
|
||
|
(set! type/unknown value))
|
||
|
((type-eq?)
|
||
|
(set! type-eq? value))
|
||
|
((lambda-node-type)
|
||
|
(set! lambda-node-type value))
|
||
|
((true-value)
|
||
|
(set! true-value value))
|
||
|
((false-value)
|
||
|
(set! false-value value))
|
||
|
((determine-lambda-protocol)
|
||
|
(set! determine-lambda-protocol value))
|
||
|
((determine-continuation-protocol)
|
||
|
(set! determine-continuation-protocol value))
|
||
|
(else
|
||
|
(error "unknown compiler parameter ~S ~S" name value))))
|
||
|
|