git.fiddlerwoaroof.com
Raw Blame History
;;; 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* '())