|
|
1.1 root 1: (* Copyright 1989 by AT&T Bell Laboratories *)
2: signature RUNTIMECONTROL =
3: sig
4: val collected : int ref
5: val collectedfrom : int ref
6: val gcmessages : int ref
7: val majorcollections : int ref
8: val minorcollections : int ref
9: val ratio : int ref
10: val softmax : int ref
11: end
12:
13: signature MCCONTROL =
14: sig
15: val printArgs : bool ref
16: val printRet : bool ref
17: val bindContainsVar : bool ref
18: val bindExhaustive : bool ref
19: val matchExhaustive : bool ref
20: val matchRedundant : bool ref
21: val expandResult : bool ref
22: end
23:
24: signature CGCONTROL =
25: sig
26: structure M68 : sig val trapv : bool ref end
27: val tailrecur : bool ref
28: val recordopt : bool ref
29: val tail : bool ref
30: val profile : bool ref
31: val closureprint : bool ref
32: val closureStrategy : int ref
33: val rounds : int ref
34: val path : bool ref
35: val hoist : bool ref
36: val reduce : bool ref
37: val bodysize : int ref
38: val reducemore : int ref
39: val alphac : bool ref
40: val comment : bool ref
41: val knowngen : int ref
42: val stdgen : int ref
43: val knowncl : int ref
44: val foldconst : bool ref
45: val etasplit : bool ref
46: val printit : bool ref
47: val printsize : bool ref
48: val scheduling : bool ref
49: end
50:
51: signature PRINTCONTROL =
52: sig
53: val printDepth : int ref
54: val stringDepth : int ref
55: val signatures : bool ref
56: end
57:
58: signature DEBUG =
59: sig
60: val debugging : bool ref
61: val getDebugf : (int -> 'a) ref
62: val interface : (int -> ('a -> 'b)) ref
63: end
64:
65: signature PROFILE =
66: sig
67: structure IO : sig type outstream end
68: val profiling : bool ref (* controls profiling mode of compilation *)
69: val profileOn : unit -> unit (* turn interrupt timer on *)
70: val profileOff : unit -> unit (* turn interrupt timer off *)
71: val clear : unit -> unit (* clear profiling database *)
72: val reset : unit -> unit (* reset profiling counts to zero *)
73: val report : IO.outstream -> unit (* print profiling report to stream *)
74: end
75:
76: signature PROFILEINTERNALS =
77: sig
78: val add : 'a -> unit
79: val setToplevel : unit -> unit
80: val setOther : unit -> unit
81: structure P : PROFILE
82: end
83:
84: signature CONTROL =
85: sig
86: structure Runtime : RUNTIMECONTROL
87: structure MC : MCCONTROL
88: structure CG : CGCONTROL
89: structure Print : PRINTCONTROL
90: structure ProfileInternals : PROFILEINTERNALS
91: structure Profile : PROFILE
92: structure Debug : DEBUG
93: val prLambda : (unit -> unit) ref
94: val debugging : bool ref
95: val primaryPrompt : string ref
96: val secondaryPrompt : string ref
97: val internals : bool ref
98: val weakUnderscore : bool ref
99: val interp : bool ref
100: val debugLook : bool ref
101: val debugCollect : bool ref
102: val debugBind : bool ref
103: val saveLambda : bool ref
104: val saveLvarNames : bool ref
105: val timings : bool ref
106: val reopen : bool ref
107: end
108:
109: signature TIMER =
110: sig
111: datatype time = TIME of {sec : int, usec : int}
112: type timer
113: val start_timer : unit -> timer
114: val check_timer : timer -> time
115: val check_timer_gc: timer -> time
116: val makestring : time -> string
117: val add_time : time * time -> time
118: end
119:
120: signature TAGS =
121: sig
122: val width_tags : int
123: val power_tags : int
124: val tag_record : int
125: val tag_array : int
126: val tag_bytearray : int
127: val tag_string : int
128: val tag_embedded : int
129: val tag_suspension : int
130: val tag_backptr : int
131: val tag_forwarded : int
132: end
133:
134: signature STATS =
135: sig
136: structure Timer : TIMER
137: val lines : int ref
138: val parse : Timer.time ref
139: val translate : Timer.time ref
140: val codeopt : Timer.time ref
141: val convert : Timer.time ref
142: val hoist : Timer.time ref
143: val cpsopt : Timer.time ref
144: val closure : Timer.time ref
145: val globalfix : Timer.time ref
146: val spill : Timer.time ref
147: val codegen : Timer.time ref
148: val freemap : Timer.time ref
149: val execution : Timer.time ref
150: val update : Timer.time ref * Timer.time -> unit
151: val summary : unit -> unit
152: end
153:
154: signature UNSAFE =
155: sig
156: type object
157: structure Assembly : ASSEMBLY
158: val boxed : 'a -> bool
159: val ordof : 'a * int -> int
160: val slength : 'a -> int
161: val store : 'a * int * int -> unit
162: val subscript : 'a array * int -> 'a
163: val update : 'a array * int * 'a -> unit
164: val delay : int * 'a -> 'a
165: val force : 'a -> 'a
166: val boot : string -> ('a -> 'b)
167: val cast : 'a -> 'b
168: val syscall : int * string list * int -> int
169: val blast_write : 'outstream * 'a -> unit
170: val blast_read : 'instream -> 'a
171: val create_s : int -> string
172: val store_s : string * int * int -> unit
173: val lookup_r : (int -> object) ref
174: val lookup : int -> object
175: val isolate : (unit->'a) -> 'a
176: val pstruct : {core: object, initial: object, math: object} ref
177: exception Boxity
178: val tuple : object -> object array
179: val string : object -> string
180: val real : object -> real
181: val int : object -> int
182: datatype datalist = DATANIL | DATACONS of (string * string * datalist)
183: val datalist : datalist
184: end
185:
186: signature SYSTEM =
187: sig
188: structure ByteArray : BYTEARRAY
189: structure Control : CONTROL
190: structure Tags : TAGS
191: structure Timer : TIMER
192: structure Stats : STATS
193: structure Unsafe : UNSAFE
194: val exn_name : exn -> string
195: val version : string
196: val interactive : bool ref
197: val cleanup : unit -> unit (* closes all files *)
198: val system : string -> unit
199: val cd : string -> unit
200: val argv : unit -> string list
201: val environ : unit -> string list
202: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.