git.fiddlerwoaroof.com
top/globals.scm
4e987026
 ;;; These are global variables used throughout the compiler.
 
 ;;; Configuration stuff
 
 (define *prelude-unit-filename* "$PRELUDE/Prelude.hu")
 
 (define *haskell-compiler-version* "Y2.0.5")
 (define *haskell-compiler-update* "")
 
 
 ;;; Control over the init process
 (define *haskell-initialized?* '#f)
 
 ;;; Error control
 (define *break-on-error?* '#f)
 (define *never-break?* '#f)
 
 (define *runtime-abort* '())
 
 (define *recoverable-error-handler* '())
 (define *error-output-port* '())  ; initialized later
 
 (define *context* '#f)  ; ast node being compiled.
 
 (define *unit* '())
 
 (define *standard-module-default* '())
 
 (define *undefined-def* '())
 (define *printer-class* '())
 (define *printers* '(phase-time))
 
 (define *all-printers*
   '(phase-time time compiling loading reading extension
     parse import type-decl scope depend
     type cfn depend2
     flic optimize optimize-extra strictness codegen codegen-flic
     dumper dump-stat))
 
 ;;; Global context stuff 
 ;;; ***This variable is actually only used by the parser.
 
 (define *current-file* '())
 
 (define *printed-tyvars* '())
 
 
 ;;; Used by the symbol table routines
 
 (define *modules* '())  ; maps module name -> module structure
 (define *module* '())   ; current module
 (define *module-name* '())
 (define *symbol-table* '())  ; part of the current module
 (define *inverted-symbol-table* '())  ; maps def -> localname
 (define *fixity-table* '())  ; name -> fixity
 (define *suffix-table* '())  ; name -> int (for uniquifying names)
 
 (define *special-parse-for-type-macros* '#f)
 
 ;;; These are for diagnostic purposes only
 
 (define *big-let* '())
 
 (define *show-end-of-phase* '#f)
 
 ;;; This is used to configure error messages & responses.
 
 (define *emacs-mode* '#f)
 
 ;;; This is used to stash the Prelude symbol environment
 
 (define *prelude-symbol-table* '())
 (define *prelude-fixity-table* '())
 (define *prelude-inverted-symbol-table* '())