summaryrefslogtreecommitdiff
path: root/top/globals.scm
diff options
context:
space:
mode:
Diffstat (limited to 'top/globals.scm')
-rw-r--r--top/globals.scm75
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* '())
+