261 |
(* backtrace generation hooks *) |
(* backtrace generation hooks *) |
262 |
local |
local |
263 |
val hook = |
val hook = |
264 |
ref { save = fn () => fn () => (), |
ref { reserve = fn (nfct: int) => 0, |
265 |
|
save = fn () => fn () => (), |
266 |
push = fn () => fn () => (), |
push = fn () => fn () => (), |
267 |
add = fn (i: int) => (), |
add = fn (module: int, fct: int) => (), |
268 |
register = fn (i: int, s: string) => (), |
register = fn (module: int, fct: int, s: string) => (), |
269 |
report = fn () => fn () => ([]: string list) } |
report = fn () => fn () => ([]: string list) } |
270 |
val ! = InLine.! |
val ! = InLine.! |
271 |
infix := |
infix := |
272 |
val op := = InLine.:= |
val op := = InLine.:= |
273 |
in |
in |
274 |
(* entry points for use by BT-annotated modules: *) |
(* entry points for use by BT-annotated modules: *) |
275 |
|
fun bt_reserve () = #reserve (!hook) |
276 |
fun bt_save () = #save (!hook) |
fun bt_save () = #save (!hook) |
277 |
fun bt_push () = #push (!hook) |
fun bt_push () = #push (!hook) |
278 |
fun bt_add () = #add (!hook) |
fun bt_add () = #add (!hook) |