param.scm 1.2 KB

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