diff options
author | Yale AI Dept <ai@nebula.cs.yale.edu> | 1993-07-14 13:08:00 -0500 |
---|---|---|
committer | Duncan McGreggor <duncan.mcgreggor@rackspace.com> | 1993-07-14 13:08:00 -0500 |
commit | 4e987026148fe65c323afbc93cd560c07bf06b3f (patch) | |
tree | 26ae54177389edcbe453d25a00c38c2774e8b7d4 /top/globals.scm |
Import to github.
Diffstat (limited to 'top/globals.scm')
-rw-r--r-- | top/globals.scm | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/top/globals.scm b/top/globals.scm new file mode 100644 index 0000000..eba139b --- /dev/null +++ b/top/globals.scm @@ -0,0 +1,75 @@ +;;; 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* '()) + |