summaryrefslogtreecommitdiff
path: root/top/globals.scm
blob: eba139bee02ada4b7d1e5af6c7421ae2459f4761 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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* '())