param.scm 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. ; Part of Scheme 48 1.9. See file COPYING for notices and license.
  2. ; Authors: Richard Kelsey
  3. ; Parameterizing the compiler.
  4. (define lookup-primop 'unset-compiler-parameter)
  5. (define lookup-imported-variable 'unset-compiler-parameter)
  6. (define type/unknown 'unset-compiler-parameter)
  7. (define type-eq? 'unset-compiler-parameter)
  8. (define lambda-node-type 'unset-compiler-parameter)
  9. (define true-value 'unset-compiler-parameter)
  10. (define false-value 'unset-compiler-parameter)
  11. (define determine-lambda-protocol 'unset-compiler-parameter)
  12. (define determine-continuation-protocol 'unset-compiler-parameter)
  13. (define (set-compiler-parameter! name value)
  14. (case name
  15. ((lookup-primop)
  16. (set! lookup-primop value))
  17. ((lookup-imported-variable)
  18. (set! lookup-imported-variable value))
  19. ((type/unknown)
  20. (set! type/unknown value))
  21. ((type-eq?)
  22. (set! type-eq? value))
  23. ((lambda-node-type)
  24. (set! lambda-node-type value))
  25. ((true-value)
  26. (set! true-value value))
  27. ((false-value)
  28. (set! false-value value))
  29. ((determine-lambda-protocol)
  30. (set! determine-lambda-protocol value))
  31. ((determine-continuation-protocol)
  32. (set! determine-continuation-protocol value))
  33. (else
  34. (error "unknown compiler parameter ~S ~S" name value))))